The smallest slice that ships

2026-07-20

Build the whole thing, and you wait

The instinct on a new feature is to build the whole thing before anyone sees it. Author the data layer, then the repository, then the hook, then the view, then wire it up — and only at the very end does a single page render. For weeks there is nothing to look at and nothing to correct.

Ship the thinnest slice instead

The opposite instinct is the one worth training. Ask what the thinnest slice is that a reader could actually open, and build only that. For this blog, the first slice was a header link and an empty index. It did nothing but prove the route resolved and the Brutalist shell rendered. That is a slice worth shipping.

That first thin slice is almost always the walking skeleton — the thinnest end-to-end path that proves the wiring runs before any real behavior fills it in. The header link was exactly that example: a route, a page, and a rendered shell, and nothing more.

The second slice — the one you are reading rendered from — is a single hand-authored post. No editor, no database, no list of posts. Just one content file committed to the repo and read at runtime, so a real page reads as a real page before any of the machinery around it exists.

The payoff is correction

A slice in front of you is a slice you can judge: the type is too heavy, the paragraphs wrap wrong, the not-found state was never designed. None of that is visible in a plan. All of it is obvious on a page. The smallest-slice discipline says it plainly: ship the smallest slice, look at it, and let what you see decide the next one.