Skip to main content
U
Back home

Colophon

What this site is built with, and why each piece earns its spot in the bundle. The source is on GitHub if you want to dig in.

By the numbers

Public repos
28
Stars earned
1
Followers
31
Commits in 2026
71
TypeScript32%
JavaScript32%
Java18%
Python9%
HTML5%
EJS5%

Framework + Runtime

  • Next.js 16 (App Router)

    Server components for static-first rendering, route-level OG image generation, and zero-config Vercel deploys.

  • React 19

    Server actions for the contact form, refined transitions, and the new useSyncExternalStore hooks scattered through the UI.

  • TypeScript 5

    Strict mode across the repo. Pinned at ^5 because next-intl@4's peer dep blocks 6 for now.

Styling + Animation

  • Tailwind CSS v4

    Utility-first styling. v4 lets us define brand colours and tokens directly in CSS via @theme.

  • framer-motion

    Section reveals, the hero stagger, the magnetic cursor's springs, and the timeline scaleY on Experience.

  • OGL

    ~50 KB WebGL wrapper powering the cursor-reactive dot grid background. Three.js would be 10× heavier.

  • lenis

    Smooth scrolling on desktop. Skipped on touch and on prefers-reduced-motion.

Content + i18n

  • next-intl

    Locale-aware routing under /[locale]. Currently English only, but the structure lets Hindi land without a refactor.

  • react-rough-notation

    Hand-drawn highlights and underlines on the hero copy.

  • typewriter-effect

    Cycling multilingual greetings in the hero — Hello, سلام, Bonjour, こんにちは, Hola.

Infrastructure

  • Vercel

    Edge hosting, CDN, preview deployments per PR, and free Analytics + Speed Insights.

  • nodemailer + Gmail SMTP

    Contact form delivery via the server action. Server-side captcha re-check + per-email rate limit.

  • Sentry (optional)

    Wired into next.config but disabled until the DSN is set on Vercel. Runs zero overhead until activated.

Tooling + CI

  • ESLint + Prettier + Husky

    Pre-commit lint+format, pre-push typecheck. Stops broken commits before the remote sees them.

  • Vitest 4 + Vite 8

    Fast unit + a11y tests via vitest-axe. Same Vite dev experience as Next, no extra config.

  • GitHub Actions

    CI runs lint+format+tsc, tests, and a production build in parallel. Lighthouse CI runs separately. Bundle-size budget enforced at 600 KB gz.

  • Dependabot

    Security advisories daily, monthly patch-only routine PRs. Ignores typescript and eslint majors until upstream catches up.

Sites that inspired this colophon: brittanychiang.com, wesbos.com/uses.