This is a Svelte 5 conversion of the Next.js portfolio website, maintaining the exact same styling and functionality.
src/
├── app.html # Main HTML template
├── app.css # Global styles (same as original)
├── routes/ # SvelteKit file-based routing
│ ├── +layout.svelte # Root layout
│ ├── +page.svelte # Home page
│ ├── about/ # About page
│ ├── blog/ # Blog pages
│ ├── contact/ # Contact page
│ ├── projects/ # Projects page
│ └── resume/ # Resume page
├── lib/
│ ├── components/ # Reusable Svelte components
│ │ ├── Header.svelte
│ │ ├── Footer.svelte
│ │ ├── ThemeToggle.svelte
│ │ └── Icons.svelte
│ ├── stores/ # Svelte stores
│ │ └── theme.ts # Theme management
│ ├── content.ts # Content loading functions
│ └── types.ts # TypeScript type definitions
├── content/ # Content files (copied from original)
└── static/ # Static assets (images, videos, etc.)
Install dependencies:
npm install
Start the development server:
npm run dev
Open your browser and visit http://localhost:5173
npm run dev
- Start development servernpm run build
- Build for productionnpm run preview
- Preview production buildnpm run check
- Run Svelte type checkingnpm run lint
- Run ESLintnpm run format
- Format code with Prettier$state
, $props
) instead of React hooks+page.ts
files instead of React Server ComponentsThe content is managed through JSON and Markdown files in the content/
directory:
about.md
- About page contentprojects.json
- Projects datacontact.json
- Contact informationresume.json
- Resume dataposts/
- Blog posts in Markdown formatThe styling is maintained exactly as in the original using:
Build the project for production:
npm run build
The built files will be in the build/
directory and can be deployed to any static hosting service or Node.js server that supports SvelteKit.
MIT License - feel free to use this as a template for your own portfolio!