A Modern, Frontend-First Portfolio Template
π Live Demo β’ π Documentation β’ π¨ Design System β’ π Report Bug
- π¨ Modern Design System - Comprehensive UI components with Tailwind CSS
- π± Fully Responsive - Perfect on desktop, tablet, and mobile
- π Dark Mode - Beautiful light/dark theme switching
- π Blog System - MDX-powered blog with syntax highlighting
- π Projects Showcase - Dynamic project cards with GitHub integration
- β‘ Performance Optimized - Next.js 15, App Router, Server Components
- π§ Easy Customization - Well-documented components and clear structure
- π Analytics Ready - Google Analytics 4 integration
- π SEO Optimized - Meta tags and Open Graph support
- π§ Contact Forms - Built-in contact functionality
- π― TypeScript - Fully typed for better developer experience
- Click the "Use this template" button above
- Clone your new repository
- Install dependencies:
npm install - Start development:
npm run dev - Open http://localhost:3000
git clone https://github.com/mirkotrotta/moon-site.git
cd moon-site
npm install
npm run dev- Next.js 15 (App Router)
- TypeScript
- Tailwind CSS
- Carbon Icons
- MDX (Blog)
Deployment:
- Vercel (one-click deploy)
moon-site/
βββ frontend/ # Next.js application
β βββ app/ # App router pages
β βββ components/ # Reusable UI components
β βββ lib/ # Utilities and API
β βββ content/ # MDX blog posts
β βββ public/ # Static assets
βββ backend/ # Optional backend (demo/WIP)
The template includes a comprehensive design system with:
- Buttons - Multiple variants and sizes
- Cards - Product, blog, and info cards
- Forms - Contact forms with validation
- Navigation - Header, footer, and sidebar components
- Typography - Consistent text styles
- Colors - Professional color palette
- Spacing - Consistent spacing system
Edit frontend/lib/data.tsx to update:
- Personal details
- Skills and services
- Featured projects
- Social links
- Colors:
tailwind.config.js - Fonts:
app/layout.tsx - Components:
components/directory
- Blog posts:
content/blog/ - Images:
public/images/ - Metadata:
app/layout.tsx
- GitHub API: Set
GITHUB_TOKENenvironment variable - Analytics: Update
GA_MEASUREMENT_IDinAnalyticsProvider.tsx
- Push to GitHub
- Connect to Vercel
- Set
frontendas root directory - Deploy!
cd frontend
npm run build
npm start- 98/100 Performance score on Lighthouse
- 95/100 SEO score
- 100/100 Accessibility score
- Fast load times with Next.js optimization
- Optimized images with next/image
- Minimal bundle size with tree shaking
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
If this template helped you, please consider:
- β Starring the repository
- π Reporting bugs
- π‘ Suggesting new features
- π’ Sharing with others
Built something amazing with this template? Let us know!
This template was used as the foundation for mirkotrotta.com (more advanced version with additional features).
π Live Demo β’ π Documentation β’ π¨ Design System
Made with β€οΈ by Mirko Trotta