Personal Portfolio Website

Live

Example flows

$ pnpm build && deploy out/
Static routes + project detail slugs from generateStaticParams
$ Locale: en ↔ he
dir=rtl on <html> + logical Tailwind (ms/me, rtl:rotate)

Overview

A static-friendly portfolio built with the App Router: home with featured work, career timeline, contact form (mailto flow), and per-project detail pages under /projects. Styling uses Tailwind with a cohesive light/dark theme and Hebrew RTL support alongside English.

Architecture

Next.js layouts wrap shared header/footer. Content is driven by typed data modules (projects, translations). Client components handle theme, locale, hash navigation, and interactive sections; pages are prerendered where possible.

┌──────────────┐     ┌─────────────────┐
│  app/layout  │────►│ Header / Footer │
└──────┬───────┘     └─────────────────┘
       │
       ├──► /  (HomeContent)
       ├──► /projects/
       ├──► /projects/[slug]  ◄── project detail
       └──► i18n + Theme providers (client)

Technology stack

  • React
  • Next.js
  • TypeScript
  • Tailwind CSS