portfolio-astrojs Svelte Themes

Portfolio Astrojs

Personal Site Built with Astro, Svelte, TypeScript, TailwindCSS, Framer Motion, Sanity and shadcn/ui

Portfolio - Astro + Svelte

A modern, brutalist-themed portfolio website built with Astro and Svelte.

šŸš€ Tech Stack

Note: Despite the repository name "portfolio-nextjs", this project uses Astro (not Next.js). The repository was initially planned for Next.js but was rebuilt with Astro for better performance and flexibility.

  • Framework: Astro 5.x
  • UI Components: Svelte 5.x
  • Styling: Tailwind CSS 4.x
  • CMS: Sanity.io
  • Animations: Motion.js
  • Deployment: Cloudflare Pages

šŸ“¦ Installation

pnpm install

šŸ› ļø Development

pnpm dev

šŸ—ļø Build

pnpm build

šŸ“ Project Structure

ā”œā”€ā”€ src/
│   ā”œā”€ā”€ components/      # Reusable components
│   │   ā”œā”€ā”€ Home/       # Homepage sections
│   │   ā”œā”€ā”€ shared/     # Shared components
│   │   └── ui/         # UI primitives
│   ā”œā”€ā”€ layouts/        # Page layouts
│   ā”œā”€ā”€ pages/          # Route pages
│   ā”œā”€ā”€ styles/         # Global styles
│   └── lib/            # Utilities & helpers
ā”œā”€ā”€ public/             # Static assets
└── astro.config.mjs    # Astro configuration

✨ Features

  • āœ… Dark/Light mode toggle
  • āœ… Smooth scroll animations (Lenis)
  • āœ… SEO optimized with JSON-LD
  • āœ… Responsive design
  • āœ… Accessibility compliant (WCAG AA)
  • āœ… TypeScript support
  • āœ… Sanity CMS integration
  • āœ… Contact form (Web3Forms)

šŸ”§ Environment Variables

Copy .env.example to .env and fill in your credentials:

PUBLIC_WEB3FORM_ACCESS_KEY=your_key_here
PUBLIC_SANITY_DATASET=production
PUBLIC_SANITY_PROJECT_ID=your_project_id
PUBLIC_POSTHOG_KEY=your_key_here
PUBLIC_POSTHOG_HOST=https://us.i.posthog.com

šŸ“ License

MIT License - feel free to use this as a template for your own portfolio!

šŸ‘¤ Author

Madusha Sandaruwan

Top categories

Loading Svelte Themes