A modern, interactive portfolio website built with Svelte 5 and Vite.
This project is a personal portfolio showcasing professional experience, projects, and skills. It features a dynamic particle background, smooth animations, and a responsive design. It also supports internationalization (English/German) and uses a custom routing solution for a seamless Single Page Application (SPA) experience.
src/
├── components/ # Svelte components
│ ├── blog/ # Blog specific components
│ ├── common/ # Reusable components (Navigation, Footer, etc.)
│ ├── contact/ # Contact page components
│ ├── experience/ # Experience page components
│ ├── home/ # Home page specific components
│ └── projects/ # Project page components
├── pages/ # Top-level page components
├── lib/ # Utilities and constants
│ ├── constants.js # Static data (text, links, config)
│ ├── icons.js # SVG icons
│ ├── scrollSpy.svelte.js # Scroll spy logic (Svelte 5 module)
│ ├── translations.js # Internationalization strings
│ └── utils.js # Helper functions
├── App.svelte # Main application component with routing logic
└── main.js # Entry point
Install dependencies:
npm install
Start the development server:
npm run dev
Build for production:
npm run build
src/lib/constants.js, making it easy to update text and data without touching component code.$state, $props, and $effect for reactive state management.App.svelte implements a lightweight client-side router using the History API to manage navigation and language prefixes (e.g., /en/home, /de/contact).src/lib/translations.js, allowing for easy language switching.