Backfill (concept): landing page and product UI for a dev tool by Krishna BhupathiBackfill (concept): landing page and product UI for a dev tool by Krishna Bhupathi
Backfill (concept): landing page and product UI for a dev tool
Concept, self-initiated. Backfill is not a real product and this was not client work.
The brief I set myself
Backfill checks database migrations before they reach production. Its buyers are backend leads who've been burned by a migration once, so every Postgres claim on the page had to be correct: an engineer who spots one wrong lock name closes the tab.
What I did
Positioning and copy around one promise: know what your migration locks before you merge it.
A visual identity taken from engineering drawings: graphite film, chalk linework, and one amber reserved for anything that blocks.
A live demo in the hero: a React code component that types a migration, measures the lock and draws the safe rewrite.
The rest of the page: the story, pricing, FAQ and a working waitlist form.
Responsive from desktop down to 390px.
Why it's built this way
Developer tools sell on proof, not adjectives. The hero shows the product doing its one job before the visitor reads a word, and the copy stays in the vocabulary engineers use themselves.
A landing page that promises a lock check needs a product that delivers it, so I designed the app as well. Three screens, drawn on the same graphite film, with amber reserved for anything that blocks.
The core screen. One pull request and every lock it would take. The chart from the landing page comes with its reasoning, the statement that blocks, the exact lock name, an estimate shown as a range, and the arithmetic behind the estimate. The rewrite can be copied as three Rails migrations, each with lock_timeout set.
The list. Every pull request that touches a migration, sorted by what it would block. Filled amber means reads or writes would wait. Outlined means it runs alongside traffic. A dashed outline means it was fixed after Backfill commented.
The trust screen. Backend leads ask what a tool can see before they install it. This screen answers with the exact SQL for a role that can read statistics but no rows, a read-replica connection, and a way to skip connecting at all.
Lock types follow the Postgres documentation. Repository names, table sizes and timings are invented for the concept. Backfill is not a real product.