Blockprint
Type any US address and get a designed portrait of the block you live on.
See the live product
Context
America is divided into about 242,000 census block groups, 600 to 3,000 people each, and that is the smallest area the government publishes real numbers for. A lot is known about where you live and almost none of it is readable. I wanted that data as an experience: type your address and get the five or six most remarkable true things about your block, designed, with a link to send so somebody looks up their own.
My Role
All of it, start to finish and on my own: concept, naming and trademark clearance, the national data build, the engine that decides which facts are worth saying, the voice and copy, the color system and block drawings, the front door and failure states, mobile, the server and deployment, the test suites, the cold reviews, and every read-aloud.
Discovery & Research
I started with a kill test rather than a plan: build real pages for a few real blocks, show them to five people, and if nobody leans in or takes a screenshot, stop there. It went well, and the feedback turned into requirements, a zero is never an absence of people, “what is a block?” gets answered first, and every portrait ends on one shareable card.
The harder question was the ordinary block, superlatives are easy in Manhattan but most places have none. So the second thing I built was not the product either, it was a harness that generates a hundred real pages from a fixed seed and counts how many come out dull. The first run was 35 boring out of 100, which is the project failing, and I re-ran it after every change to the engine for eleven days.
What I Built
-
The data
One national file I own rather than an API I call: 242,336 block groups, 233 census variables, 56 percentile axes, and eighteen sources in all, from the census surveys and the 2020 head count to health, hazards, national parks, earthquakes, fire perimeters and tornado tracks since 1950. 1.2 GB, rebuilt once a year, and all but two sources are keyless so next year’s rebuild does not depend on a key still working.
-
The engine
66 rules that decide what a page is allowed to say. Every variable is ranked against all 242,000 blocks and a fact only prints if the block sits in a tail, which is what makes it about your block instead of a recital of national averages. Every claim carries its margin of error and vintage, and a caption can use no number, name or comparison that is not already in the block’s computed payload, checked by machine.
-
The design system
A palette of two dozen ground and ink pairs, one per fact family, so the color tells you what kind of fact you are looking at before you read it. Every page is generated, never hand built, and the last card is a color story made from the grounds the page actually used.
-
The product
Address in (or your location), a loading moment that draws your block’s actual outline while the page builds behind it, the cards, the print, share images and link previews, five designed failure states, a too-little-data state for blocks the 2020 Census counted under fifty people, and a look-up-another loop at the end.
The design system
One ground color per fact family, grouped into six territories, generated from the same palette the pages use. Color tells you what kind of fact you are reading before you read it.
The front door
One field, one button, and the education about what a block is sits here rather than on the page itself.
The loading moment
While the page builds behind it, the block's own outline draws in gold inside the rings. The wait is part of the portrait, and it answers what a block is before the facts arrive.
What Was Hard
Owning the whole thing end to end, and in particular the part where the data is confidently wrong about a place. Two lines the engine was ready to print, and that I had read out loud and approved:
Round here, we are an uncommonly typical block.On the block that holds the front door of Olympic National Park
The nearest town is 38 miles away.On an Alaska block that contains eighteen towns
Both were true to the data and wrong about the place. My read-aloud was a gate on the writing, it was never a gate on 242,000 rows, so anything that prints a name or makes a claim about the block’s geometry now gets checked against the full table first. The first catch put national park boundaries into the build, the second cut a tail of 557 blocks down to the 41 that honestly qualify. There were other speed bumps, twenty-six pages once grew prison populations that were not there, from trusting my read of a census table instead of asserting its label, and a white flash between two screens that cost me most of a day turned out to be my own cache header serving a stale page.
When it can't



Four of the product's designed failure states. Each names what went wrong in plain words and offers the way forward, because a wrong portrait is worse than admitting there isn't one.
What a page says



Four cards from real blocks, in Beverly Hills and on Roosevelt Island. Each card's color is its fact family, and the fine print at the foot names the source, the margin and the vintage.
The print, and the end

The print is the page's own color story, one ring per fact in the order they were told. The end card is the loop: share this block, or go and look up another one.
What Happened
Live end to end, and launched, open to anyone at blockprint.nateheld.com. Boring went from 35 pages in a hundred down to 7, all six release-gate lines pass at a hundred pages and at three hundred, a stored page answers in 0.1 seconds and a cold one builds behind the loading moment. 242,336 blocks, 66 engine rules, 15 test suites, and zero unsupported claims across the measured pages. Next in is seasonal vacancy, the 2020 count of homes kept for seasonal or occasional use, a completely different kind of place than income and age show on their own.
The boringness harness
A hundred real pages from a fixed seed, each square one block, grey for a dull page. 35 came out dull on the first engine run and 7 after eleven days of tuning, the same test re-run after every change.
Want a full walkthrough?
Let's talk, I would love to show you how it actually works!