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
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.