Jak jsem vybudoval moderní portfolio s Nuxt 3: Kompletní technický rozbor
Úvod
Vítejte u technického rozboru mé nejnovější práce - moderního portfolia postaveného na Nuxt 3 s pokročilými optimalizacemi a administračním systémem. Tento projekt představuje moji práci a zkušenosti jak pracuji.
Součástí portfolia je samozřejmě administrace, která je robustní a obsahuje prvky jako je správa blogpostů, projektů, gistů. U postů nechybí ani like systém, který zaznamenává na základě cookies. Vlastní systém pro sledování views, nejčtenějších článků a podobně.
Níže vypisuji body, které tento web obsahuje nebo s nimi pracuje. Api mám postavenou na latest Nette frameworku a to pouze REST API pro ukládání, editaci.
Hlavní cíle projektu
1. Performance First
- Lighthouse skóre 95+ ve všech kategoriích
- Core Web Vitals optimalizované pro SEO
- Rychlé načítání i na mobilních zařízeních
2. Moderní UX/UI
- Dark/Light mode s automatickou detekcí
- Plynulé animace a přechody
- Responsivní design pro všechna zařízení
3. Robustní administrace
- Kompletní CMS systém
- Media management s automatickou kompresí
- Cache strategie pro produkci
Technický Stack
Frontend Framework
{
"nuxt": "^3.14.159",
"vue": "latest",
"@nuxtjs/tailwindcss": "^6.12.2",
"@vueuse/motion": "^2.2.6"
}
Klíčové knihovny
- Markdown-it - Pokročilé zpracování obsahu
- Prism.js - Syntax highlighting pro kód
- Sharp - Automatická komprese obrázků
- Vee-validate - Validace formulářů
Deployment & Hosting
- Static Site Generation (SSG) - Pre-built HTML/CSS/JS soubory
- Netlify - Statický hosting s automatickými deployments
- Nette API Backend - Separátní PHP API pro dynamický obsah
- MAMP - Lokální vývoj s MySQL
Architektura aplikace
Struktura projektu
mikecode/
├── pages/ # Routing (SSR/SSG)
├── components/ # Vue komponenty
├── composables/ # Vue 3 Composition API
├── server/api/ # API endpoints
├── admin/ # Administrační rozhraní
└── public/ # Statické assets
Klíčové stránky
- Hlavní stránka - Hero section s typewriter efektem
- Moje práce - Portfolio projektů s filtry
- Blog - Markdown blog s kategoriemi
- Gisty - Ukázky/tipy kódu v použití
- CV - Interaktivní životopis
- Kontaktujte mě - Kontaktní formulář s validací
Performance Optimalizace
1. Cache Strategie
Implementoval jsem sofistikovaný cache systém s různými TTL podle typu obsahu:
// Cache strategie s různými TTL podle typu obsahu
routeRules: {
'/blog/**': { headers: { 'cache-control': 'max-age=3600' } },
'/api/blog/**': { headers: { 'cache-control': 'max-age=1800' } },
'/api/gists/**': { headers: { 'cache-control': 'max-age=7200' } }
}
2. Image Optimization
- Sharp - Pro generování OG obrázků a faviconů
- Podporované formáty - JPG, PNG, GIF, WebP, PDF
- Lazy loading pro všechny obrázky
- Responsive images s různými velikostmi
3. Code Splitting
- Automatické chunking podle stránek
- Lazy loading komponent
- Tree shaking pro menší bundle
UX/UI Implementace
Dark/Light Mode
<script setup>
const colorMode = useColorMode()
colorMode.preference = 'system'
</script>
Animace a přechody
- VueUse Motion pro plynulé animace
- CSS transitions pro hover efekty
- Intersection Observer pro scroll animace
Responsivní design
- Mobile-first přístup
- Tailwind CSS pro konzistentní design
- Flexbox/Grid pro moderní layout
Analytics a Tracking
Custom Events
- Contact form submissions
- Project views
- Blog views
- Gist views
- Gist likes
Administrační systém
Kompletní CMS
- Blog management s markdown editorem
- Media library s drag & drop uploadem
- Project management s kategoriemi
- User management s role-based access
Media Management
Cache Invalidation
Deployment a DevOps
CI/CD Pipeline
- GitHub Actions pro automatické build a deployment
- Netlify pro statický hosting
Environment Management
- Development - MAMP s lokální databází
- Staging - Netlify preview deployments
- Production - Netlify + Nette API backend
Výkonnostní metriky
Lighthouse Results
- Performance: 98/100
- Accessibility: 100/100
- Best Practices: 100/100
- SEO: 100/100
Core Web Vitals
- LCP: < 1.5s
- FID: < 100ms
- CLS: < 0.1
Bezpečnost
Implementované ochrany
- CSRF protection na kontaktním formuláři
- Rate limiting na API endpointech
- Input sanitization pro všechny vstupy
- HTTPS enforcement na všech stránkách
GDPR Compliance
- Cookie consent s granular controls
- Analytics anonymization
- Data retention policies
Klíčové výhody
1. Developer Experience
- Hot Module Replacement pro rychlý vývoj
- TypeScript pro type safety
- ESLint + Prettier pro konzistentní kód
2. User Experience
- Instant navigation díky SPA
- Offline support s service worker
- Progressive Web App features
3. SEO Optimalizace
- Server-side rendering pro crawlers
- Structured data pro rich snippets
- Sitemap.xml automatické generování
Budoucí plány
Krátkodobé (1-3 měsíce)
- [ ] Multi-language support (EN/CZ)
- [ ] Advanced analytics dashboard
Dlouhodobé (6-12 měsíců)
- [ ] AI-powered content suggestions
- [ ] Mobile app s podporou VUE
Získané poznatky
Co fungovalo skvěle
- Nuxt 3 - Výborná developer experience
- Tailwind CSS - Rychlý prototyping
- Composition API - Lepší code organization
- Static Site Generation - Rychlé načítání a SEO optimalizace
Výzvy a řešení
- Cache management - Implementoval jsem automatickou invalidaci
- Image optimization - Sharp pro OG obrázky a favicony
- SEO - SSR + meta tags = perfektní výsledky
Závěr
Tento projekt představuje moderní přístup k tvorbě portfolia. Kombinuje výkonnost, UX a funkčnost v jednom celku. Technologie jako Nuxt 3, Tailwind CSS a Static Site Generation umožnily vytvořit něco, co by před pár lety vyžadovalo mnohem více času a úsilí.
Klíčové metriky:
- 98/100 Lighthouse Performance
- 100% Accessibility Score
- Fully responsive design
- Complete CMS system
- < 1s load times
Pokud vás zajímá více technických detailů nebo máte otázky k implementaci, neváhejte mě kontaktovat!
Technologie použité v projektu:
- Nuxt 3, Vue 3, TypeScript
- Tailwind CSS, VueUse
- Sharp, Markdown-it
- Netlify, Nette API
- MySQL, MAMP
Tento článek je součástí mé série o moderním web developmentu. Sledujte můj blog pro další technické články a tutoriály!