10 Jan 2025
H-Studio's website isn't just a portfolio—it's a production system that demonstrates modern web engineering practices. Built with Next.js 15, React 19, and TypeScript, it serves 20+ service pages, handles bilingual content (English/German), and maintains GDPR compliance while delivering exceptional performance.
This article breaks down the architecture decisions, component patterns, and optimizations that make this site both scalable and maintainable.
Next.js 15 with App Router provides the foundation:
The App Router architecture lets us mix static pages, dynamic routes, and API endpoints seamlessly—essential for a site with multiple service pages, case studies, and a blog.
We use Contentlayer2 for the blog and next-intl for internationalization:
// Contentlayer2 schema for type-safe blog posts
export const Blog = defineDocumentType(() => ({
name: 'Blog',
filePathPattern: `**/*.mdx`,
fields: {
title: { type: 'string', required: true },
description: { type: 'string', required: true },
slug: { type: 'string', required: true },
date: { type: 'date', required: true },
lang: { type: 'string', required: true },
tags: { type: 'list', of: { type: 'string' }, required: true },
readingTime: { type: 'number', required: true },
noindex: { type: 'boolean', required: false, default: false },
},
computedFields: {
url: { type: 'string', resolve: (doc) => `/blog/${doc.slug}` },
localeUrl: { type: 'string', resolve: (doc) => `/${doc.lang}/blog/${doc.slug}` },
},
}))
This ensures compile-time validation of all blog posts and type-safe queries throughout the application.
We maintain 20+ service pages, each with:
/services/[service-slug])Services are organized into five categories:
Each service page follows a consistent structure but allows customization for specific needs.
We've built a component library that powers all service pages:
This pattern reduces duplication while maintaining flexibility.
Our custom middleware handles locale detection and routing:
// Smart locale detection
const detectedLocale = preferredLanguages
.map(lang => lang.split('-')[0])
.find(lang => VALID_LOCALES.includes(lang)) || DEFAULT_LOCALE
// SEO-optimized redirects (301 for search engines)
if (pathname === '/') {
return NextResponse.redirect(new URL(`/${detectedLocale}`, request.url), 301)
}
Features:
/en/services/..., /de/services/...)Each page exists in both languages:
/en/services/website-development/de/services/website-developmentThe middleware ensures users always land on the correct locale version, improving UX and SEO.
We use dynamic imports for below-the-fold components:
// Lazy load heavy components
const StartupFAQ = dynamic(() => import("@/components/FAQGrid/StartupFAQ"), {
loading: () => <div className="min-h-[400px]" />,
});
const StartupStats = dynamic(() => import("@/components/Stats/StartupStats"), {
loading: () => <div className="min-h-[300px]" />,
});
This reduces initial bundle size and improves Time to Interactive (TTI).
Next.js Image component with:
const nextConfig = {
compiler: {
removeConsole: process.env.NODE_ENV === "production",
},
images: {
formats: ['image/webp', 'image/avif'],
dangerouslyAllowSVG: true,
contentDispositionType: 'attachment',
contentSecurityPolicy: "default-src 'self'; script-src 'none'; sandbox;",
},
experimental: {
mdxRs: true, // Rust-based MDX processing for faster builds
},
}
We generate Open Graph images on-the-fly using @vercel/og:
const ogImageUrl = `${siteUrl}/api/og?title=${encodeURIComponent(title)}&description=${encodeURIComponent(description)}&author=${encodeURIComponent(author || 'H-Studio Team')}`
Each page gets a unique social preview image automatically.
Every page includes relevant Schema.org markup:
Automated sitemap with next-sitemap:
The sitemap regenerates automatically on each build.
We've implemented a GDPR-compliant cookie banner that:
According to TDDDG §25(2), language preference cookies are considered essential (technically necessary) and don't require consent. Our middleware sets the locale cookie automatically.
The homepage uses a modular component structure:
<StartupHeroSection onContactClick={openModal} />
<TechFocus />
<StartupFeatures onContactClick={openModal} />
<StartupKeyMessage />
<StartupAlternatingSection onContactClick={openModal} />
<StartupStats />
<StartupBenefits onContactClick={openModal} />
<StartupRoadmap onContactClick={openModal} />
<OurServices />
<StartupTestimonials />
<StartupFAQ />
Each component is:
We use a custom hook for modal state management:
const { isOpen, openModal, closeModal } = useContactModal();
This provides:
Custom design system with:
darkMode: "class")Smooth animations and transitions:
useInView hookswill-change CSSWe implemented Lenis for native-feel scrolling:
requestAnimationFrameServerless API routes handle form submissions:
Privacy-focused analytics:
Comprehensive type safety:
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@/*": ["./src/*"],
"contentlayer/generated": ["./.contentlayer/generated"]
},
"strict": true
}
}
This ensures:
Content changes reflect immediately:
{
"scripts": {
"build": "next build && next-sitemap",
"postbuild": "next-sitemap"
}
}
The build process:
This architecture delivers:
This website showcases our commitment to excellence in web development. Every architectural decision, every component pattern, and every optimization reflects the same standards we bring to client projects in Berlin and across Germany. It's not just a portfolio—it's a demonstration of what's possible with modern web technologies.
Enter your email to receive our latest newsletter.
Don't worry, we don't spam
H-Studio Bot
H-Studio Bot
Anna Hartung
Learn how high-traffic websites engineer performance deliberately: predictable rendering, efficient data delivery, and architecture that holds up at scale.
Discover why Next.js is revolutionizing web development. From all-in-one solutions to lightning-fast performance, learn what makes Next.js the smart choice for modern websites.
Discover how we built this high-performance blog using Next.js 15, Contentlayer2, AI-powered content generation, and modern engineering practices. Learn about our architecture and why it matters.
Discover how H-Studio automated blog content creation with GitHub Actions, AI integration, and automated workflows. See the tech stack and why it's a game-changer.
Explore our case studies demonstrating these technologies and approaches in real projects

E-Commerce Platform for a Premium Surf Brand — Bringing craftsmanship and storytelling online.
Learn more →
Digital Platform for Barefoot Luxury Experiences — From place to platform.
Learn more →
Discover the City Behind Closed Doors — A curated mobile guide to Berlin's underground culture, built for locals, not tourists.
Learn more →