A modern portfolio website built with Astro and Svelte, featuring a vintage-inspired design with smooth animations and a focus on performance.
/
āāā public/ # Static assets (favicons, images)
āāā src/
ā āāā components/ # Svelte components
ā ā āāā Sections/ # Page sections (AboutMe, Projects, ContactOptions)
ā ā āāā Card.svelte
ā ā āāā ContactForm.svelte
ā ā āāā Navbar.svelte
ā ā āāā Portfolio.svelte
ā ā āāā VintageBackground.svelte
ā ā āāā VintageMountains.svelte
ā āāā layouts/ # Astro layouts
ā āāā pages/ # Astro pages (routes)
ā ā āāā index.astro
ā ā āāā contact.astro
ā ā āāā api/
ā āāā styles/ # Global styles
āāā static/ # Static files (icons, etc.)
All commands are run from the root of the project:
| Command | Action |
|---|---|
npm install |
Installs dependencies |
npm run dev |
Starts local dev server at localhost:4321 |
npm run build |
Build your production site to ./dist/ |
npm run preview |
Preview your build locally, before deploying |
npm run lint |
Run ESLint and Prettier checks |
npm run format |
Format code with Prettier |
npm run astro ... |
Run CLI commands like astro add, astro check |
The project uses Astro's SSR mode with the Node.js adapter. Components are built with Svelte 5 and styled with TailwindCSS.
Portfolio.svelte - Main portfolio page componentNavbar.svelte - Navigation bar with scroll detectionVintageBackground.svelte - Parchment-style background textureVintageMountains.svelte - Parallax mountain illustrationsAboutMe.svelte - About section with skills and interestsProjects.svelte - Project showcase gridContactOptions.svelte - Contact links and social mediaSee LICENSE.txt for details.