spencergilbert.dev #
The site is a hand-drafted sketch on dot paper — the drafting table, not the napkin. Architectural lettering for display type, mono for labels, clean sans for body copy. Warm paper, ink lines, one redline accent.
Paper & ink #
- Warm dot-paper background. Hand-ruled header, section, and footer lines; no gradients, glows, or glass.
- The timeline rail reads as one attempted hand line with a visible redraw, one card per role with hand ticks and dots.
- Sketch styles are scoped to
body.sketch, so the resume page never sees them. Motion is subtle and opt-in; every animation is behind@supportsandprefers-reduced-motion.
The resume stays a document #
- Resume links point straight at the PDF. The resume page itself is unstyled paper: plain, factual lines, every job with 2–3 outcomes and a measured effect where one exists.
- The PDF is ATS-safe (tagged, real Unicode text) and is literally the same page as the HTML resume.
- Fast, accessible, no layout shift, works without JavaScript.
Deploy #
Pushing to main runs .tangled/workflows/deploy.yml on the repository's
spindle. The workflow installs with npm ci, runs npm run render:cv to build
the site and print the resume PDF, then uploads dist/ to Cloudflare Pages with
wrangler pages deploy (direct upload).
Pull requests targeting main run .tangled/workflows/preview.yml instead:
the same build is uploaded with the PR's source branch as the Pages branch, so
it lands at https://<branch>.<project>.pages.dev (lowercased,
non-alphanumerics collapsed to -). Wrangler prints the exact URL in the
pipeline log. Fork pull requests build but skip the upload, because pipeline
secrets are withheld from them.
Preview deployments are public on pages.dev; gate them with Cloudflare
Access if that ever matters.
Requirements:
- A spindle selected under Settings → Pipelines that supports the
microvmengine. CLOUDFLARE_API_TOKENandCLOUDFLARE_ACCOUNT_IDstored as pipeline secrets in the same place.- The Pages project must already exist;
wrangler pages deployonly creates one interactively.
Locally, npm run render:cv still builds and prints the PDF against the
Playwright-managed Chromium. The workflow swaps in the NixOS Chromium through
PLAYWRIGHT_CHROMIUM_EXECUTABLE (see scripts/chromium.mjs).
Still open #
- Real resume content — roles, contact, and metrics are placeholders.
License #
MIT-0