Zain Builds

~/colophon

How this site is built

This site is small on purpose. The goal is to outlive any given stack, framework, or vendor. Everything that matters — the writing, the projects, the photographs — lives in plain text and image files in a Git repository. The framework around it is replaceable.

Stack

framework
Next.js 15 (App Router)
language
TypeScript
styling
Tailwind v4 + hand tokens
content
MDX in /content
hosting
Vercel
source
GitHub
analytics
[ADD — Plausible, Vercel, none]

Type

Set in Geist Sans and Geist Mono— both designed by Vercel. Geist Sans handles body and headings; Geist Mono handles metadata, timestamps, breadcrumbs, and code. Two faces, one family.

Colour

Near-black background (#0A0A0A), near-white ink (#EDEDED), and a single sharp green accent (#00DC82) used for hover, focus, selection, and live-state indicators. Everything else is a step on a cool gray scale.

Decisions worth knowing

  • Content as files, not a database. Every note and project lives as an .mdxfile in the repo. You can change frameworks; you can’t easily change content systems.
  • Static rendering by default.Pages are generated at build time, then cached at Vercel’s edge. Fast everywhere, cheap to run.
  • Minimal client-side JavaScript. The site is mostly HTML and CSS. Faster, more accessible, easier to maintain.
  • Permanent URLs. Once published, a URL never changes. Redirects fill any gaps.

What I borrowed

The structure of this site — the /nowpage, the build-log model — owes a lot to Derek Sivers, Robin Sloan, and a generation of small, handmade websites that have been quietly compounding for decades. The visual language owes to Vercel and Linear — the standard-bearers for what modern dev-tool aesthetics look like.

Source

The full source is at [ADD GITHUB REPO URL]. Feel free to borrow anything useful.