Why rebuild?
The old site was a single static page. It said what I did, but it didn't show how I work. This rebuild is the opposite: trilingual, file-based CMS, deploy-on-push, and a strict CSP with a per-request nonce. The codebase itself is the case study.
What's underneath
- Next.js 16 with the App Router, RSC, and
standaloneoutput. - next-intl routes every URL under
/tr,/en, or/fr. The middleware detectsAccept-Languagefor first-time visitors. - GSAP powers the hero choreography, scroll reveals, and the boot sequence overlay.
- MDX + gray-matter for blog posts and project case studies. No database — every save commits to git, and Coolify auto-deploys on push.
- Sentry for browser + server error tracking, with extension noise filtered out.
- Playwright runs every critical flow on every push. The deploy gate refuses to ship if a single e2e test fails.
The "two sides" gimmick
First-time visitors see a splash that asks them to pick a side. Dark Side flips the palette to terminal crimson; Light Side switches to parchment + Jedi blue. The choice is stored in localStorage, an inline FOUC script sets data-theme on <html> before paint, and the URL bar color tracks the choice via an unmediated <meta theme-color> tag.
What's next
More case studies. A few longer-form posts on backend reliability patterns. Eventually a /talks page once I have something worth recording.
Until then — pick a side, and tell me what you're building.