Crafting a Killer Developer Portfolio: 2024 Edition with Next.js 14 & WebAssembly
Behind the scenes of krisnafirdaus.dev - Learn how I achieved 99/100 Lighthouse score while showcasing projects with interactive 3D previews.

Krisna Firdaus
2025-01-20
1. Next.js 14 App Router Magic
Key implementations:
⚡ Dynamic OG image generation for project pages
⚡ Incremental Static Regeneration for blog content
⚡ Route groups for multiple dashboards
Code snippet for dynamic metadata:
export async function generateMetadata({ params }): Promise<Metadata> {
const project = await getProject(params.slug);
return {
openGraph: {
images: [
{
url: `/og?title=${project.title}&desc=${project.excerpt}`,
width: 1200,
height: 630
}
]
}
};
}
2. Performance as a Feature
My optimization stack:
▸ WebAssembly-powered 3D project previews (200KB vs 1.2MB Three.js)
▸ AVIF images with Sharp.js preprocessing
▸ Custom service worker for offline blog access
▸ React Server Components for 0kb client JS
Lighthouse results:
✅ Performance: 99
✅ Accessibility: 100
✅ SEO: 100
3. Interactive Storytelling
Engagement boosters:
• Terminal-style about section with Typewriter effect
• Project case studies with before-after performance metrics
• Interactive architecture diagrams using Mermaid.js
• Custom web components for resume timeline

4. Growth Engineering
My analytics setup:
▶ Plausible Analytics for traffic monitoring
▶ Hotjar session recordings
▶ Custom GPT for visitor Q&A
▶ Automated newsletter with ConvertKit API
Conversion rates:
📈 35% contact form completion rate
📈 22% blog subscription rate
Want my portfolio checklist? Subscribe for exclusive access to templates!