Vol. II — Craft

Portfolio in a box

Most portfolio templates make you sound like everyone who used the same template. This one is the opposite bet: a site with a voice baked in — and an identity you swap out in one file. Taste as a starting point, not a cage.

LinkedIn caps your story at a headline. GitHub hides your best work behind private repos. If you're building with AI — shipping products, writing things, running experiments — you've already outgrown both. A personal site is your homepage on the internet: not a résumé, a living system that shows how you think and what you're available for. Mine runs here, built with Claude over a couple of months with zero frontend experience going in.

So I packaged the bones of it. Not a theme marketplace, not a no-code builder — the actual files this site is made of, with the personality intact and the name pulled out into a config. Fork it, swap your identity, and you have a site that reads like a person on day one. Then you make it weird in your own direction.

What's in the box

The starter

  • One stylesheet, tokens.css — the whole look in a single file: palette, type law, the grain-and-lamplight ambient layer, and the shared chrome. Editing the top of it re-skins everything.
  • An identity block — name, accent colors, fonts, and links live in one clearly-marked section. Change those; keep the craft.
  • Clean templates — a home page and an essay page, already wired to the spine. No build step, no framework, no node_modules.
  • The discovery layerllms.txt, humans.txt, sitemap and RSS scaffolds, so humans and AI agents can read and cite your work.
  • A README that walks you from "git clone" to "live on your own domain" — the five steps below, written down.

It's static — HTML, CSS, a little vanilla JS. It loads instantly and reads clean to every crawler on the internet, including the LLM ones. No React, no dependencies, nothing to maintain but your own words.

Five steps to live

Buy a domain (~$10/yr). A .dev, .io, or .com that fits your identity.
Fork the starter into a GitHub repo. Static source is already visible via View Source, so public costs you nothing — go private only if you add API keys.
Pick free hosting. Vercel (my choice), Netlify, Cloudflare Pages, or GitHub Pages — all deploy a static site free, with SSL.
Point your domain. Two DNS records, five minutes.
Make it yours. Swap the identity block, rewrite the copy in your voice, and let Claude help you grow it from there.

The art of prompting it forward

Once the box is live, you grow it by conversation. Don't ask for "a portfolio" — give it identity, then keep asking for what you want. You don't need the technical terms; describe the outcome:

"I'm a [role] with [X years] in [domain]. Keep the bark-and-lamplight look but make the accent cooler. Add a writing section that reads like a field journal, and a projects shelf with status pills."

You say what you want to happen; Claude figures out how to build it. That's the whole trick — and it's the same five steps that ship a product, not just a portfolio. Domain, repo, host, prompt, ship. Your portfolio site is your first rep. The second one ships something real.

Fork it

The starter lives in this repo under /kit/starter/ — copy that folder and you have the box. (It's built to lift cleanly into its own repository when you want one.) The voice is the default, not the rule: change every value in the identity block and the only thing that survives is the craft. That's the point.

Read the README → See it in the wild →

← the journal about the lab the studio github