Discover GitHub repositories in style! A modern web app built with Svelte 5's bleeding-edge Runes reactivity system, TypeScript, and Tailwind CSS 4. Search any GitHub user, browse their public repos, and star favorites locally ⭐ – all with buttery-smooth interactions!
tailwind-merge
for utility-first styling$state
/$derived
synergygit clone https://github.com/handylim/github-repo-preview.git
cd github-repo-preview
pnpm install
pnpm dev
Visit http://localhost:3000
pnpm build
pnpm preview
Leverage the new reactivity primitives ($state
, $derived
) for granular control over component updates while maintaining minimal boilerplate.
Utility-first styling with dark mode support out of the box. The cn
utility (src/lib/utils/tailwind.ts) combines clsx
and tailwind-merge
for conditional classes.
Full type safety from API responses (github.ts) to component props, catching errors at compile time.
Instant hot module replacement and optimized production builds via Rollup.
📦 src
├── 📂 lib
│ ├── 📂 components # Reusable Svelte components
│ ├── 📂 store # Svelte store for local starring
│ └── 📂 utils # Tailwind/helper functions
├── App.svelte # Root component
└── main.ts # App mount point
Progressive Enhancement:
Graceful degradation for slow networks (loading states, error boundaries)
Accessibility First:
Semantic HTML, ARIA labels, and keyboard navigation support
Reactive Patterns:
Svelte 5's $derived
for computed states, store synchronization
Modern CSS:
Tailwind 4 is used to style the Svelte components
Performance First:Set
operations ensure efficient starred ID lookups even with 1000+ repos
Set
performanceBuilt using the create-vite
template, supercharged with:
🌟 Star this repo (both here and locally in the app🌟) if you find it useful!😉
🐛 Issues/PRs welcome! Let's build something awesome together! 🚀
Crafted with ❤️ by Handy