A modern, fast, and minimal personal portfolio built with Astro, Svelte, and Bun.
- Lightning-fast static site generation with Astro
- Interactive UI powered by Svelte components
- SPA navigation using svelte-spa-router
- Custom theming with light/dark mode (WIP)
/
├── public/ # Static assets (images, icons, styles)
│ ├── style.css
│ ├── extra/ # Custom images and SVGs
│ ├── icons/ # Technology icons
│ ├── socials/ # Social media icons
│ └── term/ # Terminal UI assets
├── src/
│ ├── components/ # Svelte UI components (Icon, Tab, Theme)
│ ├── islands/ # Svelte components for partial hydration (Footer, Header, Term)
│ ├── layouts/ # Astro layout wrappers (Layout.astro)
│ ├── lib/ # Shared stores and utilities (ThemeStore.ts)
│ ├── pages/ # Astro entrypoints (index.astro)
│ └── routes/ # Svelte SPA route components (About, App, Contact, Home, Projects)
├── astro.config.mjs
├── svelte.config.js
├── tsconfig.json
├── package.json
├── bun.lock
└── LICENSE
-
Install dependencies
bun install
-
Start the development server
bun dev
Visit localhost:4321 in your browser.
-
Build for production
bun build
-
Preview the production build
bun preview
- Update your info and content in the Svelte route files under
src/routes/(Home.svelte, About.svelte, Projects.svelte, Contact.svelte). - Add or update components in
src/components/. - Change global styles in
public/style.css. - Add images or SVGs to
public/extra/orpublic/icons/. - Update social links in the relevant Svelte components.
- Theme switching is handled by
src/components/Theme.svelteandsrc/lib/ThemeStore.ts. - Light and dark icons are in
public/extra/.
MIT. Feel free to use, modify, and share.