A high-performance, statically generated portfolio and blog built with Vue 3, TypeScript, and modern web technologies. Optimized for Core Web Vitals and SEO.

- Vue 3 - Composition API with TypeScript for type safety
- Vite - Ultra-fast build tool with Hot Module Replacement
- vite-ssg - Static Site Generation for optimal performance
- TailwindCSS v4 - Utility-first CSS framework with modern features
- Motion-v - Lightweight animation library (migrated from GSAP)
- Pinia - State management for Vue 3
- TypeScript - Type safety and enhanced developer experience
- Vue TSC - TypeScript compiler for Vue single-file components
- ESLint + Prettier - Code quality and formatting
- Vue DevTools - Enhanced debugging capabilities
- Beasties - Critical CSS inlining
- Compression - Gzip/Brotli compression for assets
- Code Splitting - Automatic bundle optimization
- Source Maps - Production debugging support
This portfolio leverages vite-ssg for Static Site Generation, providing several key benefits:
- Lightning-fast loading - Pre-rendered HTML eliminates runtime rendering delays
- SEO optimization - Search engines can easily crawl pre-rendered content
- CDN-friendly - Static files can be cached globally for instant access
- Zero JavaScript required - Content is accessible even with JS disabled
- Pre-rendering: All routes are generated at build time
- Dynamic routing: Blog posts use file-based routing (
/blog/:slug
) - GitHub integration: Contribution data and repositories are fetched during build
- Sitemap generation: Automatic XML sitemap creation for better SEO
This portfolio is optimized for Google's Core Web Vitals metrics:
- Static Site Generation - Pre-rendered HTML for instant loading
- Critical CSS inlining - Above-the-fold styles load immediately
- Image optimization - AVIF format with multiple sizes
- Code splitting - Only load necessary JavaScript
- Compression - Gzip/Brotli for reduced file sizes
- Lazy loading - Deferred loading of non-critical resources

- Markdown-based - Write posts in Markdown with frontmatter
- Table of contents - Auto-generated navigation
- Anchor links - Deep linking to headings
- Smooth animations - Motion-v powered transitions
- Responsive design - Mobile-first approach
- Dark mode ready - TailwindCSS v4 theming support
- Accessibility - WCAG 2.1 compliant
src/
├── components/ # Reusable Vue components
├── composables/ # Composition API logic
├── pages/ # File-based routing
├── posts/ # Markdown blog posts
├── stores/ # Pinia state management
└── types/ # TypeScript type definitions
vite.config.ts
- Build configuration and pluginssrc/routes.ts
- Manual route definitionssrc/composables/usePosts.ts
- Blog post processingscripts/generate-sitemap.mjs
- SEO sitemap generation
// vite.config.ts
ssgOptions: {
criticalCSS: false, // Handled by vite-plugin-beasties
}
Latest version with modern features and improved performance. Configuration in src/assets/css/main.css
.
Lightweight alternative to GSAP, configured in src/composables/useMotionConfig.ts
.