Zum Inhalt springen
Zurück

Wie ich meine persönliche Website mit Next.js gebaut habe

Next.jsReactTailwindCSSWebentwicklung

Warum eine eigene Website?

Als Webentwickler ist eine eigene Website mehr als nur eine digitale Visitenkarte. Sie ist ein lebendiges Projekt, das zeigt, was man kann — und gleichzeitig eine Spielwiese für neue Technologien.

Der Tech-Stack

Für diese Website habe ich mich für einen modernen Stack entschieden:

  • Next.js mit App Router für Server-Side Rendering und optimale Performance
  • TailwindCSS v4 für schnelles, konsistentes Styling
  • ShadCN/ui als Komponentenbibliothek mit clean Design
  • MDX für Blog-Artikel und Projektbeschreibungen
  • next-intl für Mehrsprachigkeit (Deutsch + Englisch)

Architektur-Entscheidungen

Content als MDX

Anstatt ein Headless CMS zu verwenden, liegen alle Inhalte als MDX-Dateien direkt im Repository. Das hat mehrere Vorteile:

  • Versionierung über Git
  • Kein externer Service nötig
  • Volle Kontrolle über das Rendering
  • React-Komponenten direkt im Markdown nutzbar

Internationalisierung

Mit next-intl und dem [locale]-Segment im App Router lässt sich Mehrsprachigkeit elegant umsetzen. UI-Texte kommen aus JSON-Dateien, Content wird pro Sprache als separate MDX-Datei gepflegt.

// Beispiel: Übersetzungen verwenden
const t = useTranslations("nav");
return <Link href="/projects">{t("projects")}</Link>;

Code-Highlighting

Blog-Artikel unterstützen Syntax-Highlighting mit rehype-pretty-code und shiki. Hier ein Beispiel:

function greet(name: string): string {
  return `Hallo, ${name}!`;
}
 
console.log(greet("Welt"));

Deployment

Die Website läuft als Docker-Container auf einem VPS mit Caddy als Reverse Proxy. Über GitHub Actions wird bei jedem Push auf main automatisch gebaut und deployed.

Fazit

Der Stack hat sich bewährt: Next.js liefert exzellente Performance, TailwindCSS beschleunigt das Styling enorm, und MDX gibt mir die Flexibilität, die ich für Blog und Projekte brauche.