🚧 Designers never finish their own portfolio. This one ships rough on purpose and gets better in public. If something looks half-done, it probably is, and I'm on it.🚧 Designers never finish their own portfolio. This one ships rough on purpose and gets better in public. If something looks half-done, it probably is, and I'm on it.🚧 Designers never finish their own portfolio. This one ships rough on purpose and gets better in public. If something looks half-done, it probably is, and I'm on it.🚧 Designers never finish their own portfolio. This one ships rough on purpose and gets better in public. If something looks half-done, it probably is, and I'm on it.🚧 Designers never finish their own portfolio. This one ships rough on purpose and gets better in public. If something looks half-done, it probably is, and I'm on it.🚧 Designers never finish their own portfolio. This one ships rough on purpose and gets better in public. If something looks half-done, it probably is, and I'm on it.
Open menu
Switch to Darkhello@product.inc

A cold product can't be judged

Tags: demo data, cold start, review

Dashboards, maps, feeds and marketplaces are designed for volume and reviewed at zero. An empty product cannot show the problems that decide whether it works — so every decision made against the empty version is made against a product nobody will ever use.

What only shows up when it is full

The failures that matter in a data-shaped product are density failures, and density is exactly what an empty state hides:

None of those can be seen in an empty state, and none of them can be seen in three hand-typed rows either.

Hand-built fixtures flatter the design

The usual stand-in is a handful of example records typed by the team. They are the wrong shape in every way that matters: too few to reveal density, too regular to reveal the long tail, and — because someone chose them — too tidy. Every name fits. Every value is plausible. Every category is represented once.

That is not neutral. A design reviewed against flattering data will pass review, and then meet real data for the first time in production.

Generation made a realistic population cheap

Until recently, a realistic population was expensive enough that it rarely got built: somebody had to write hundreds of believable records by hand, or clean and anonymise real ones. A model can now produce a plausible population — uneven, awkward, full of edge cases — in minutes.

That changes what is reasonable to expect. A realistic population is now cheap enough to be treated as part of the design deliverable, not a nice-to-have for later.

Two rules keep it honest:

Know what it can and can't test

A synthetic population is excellent for layout, density, flow, and performance — everything about whether the interface holds up with realistic volume.

It cannot tell you whether real people behave like the invented ones. A model's idea of a typical user is a stereotype, and a product tuned to it is tuned to a stereotype. Use generated data to make the product reviewable; use real sessions to find out whether it works.

Grounded in

Motive is a live fleet-tracking map, which is about as data-shaped as a product gets — and it had no real trucks behind it.

So it used an LLM to manufacture a plausible fleet. That data-generation step is what makes the map feel populated at all: the difference between an interface that can be looked at and judged — does it read at a glance, do the markers separate, does the motion make sense — and a handful of dots on an empty continent that tells a reviewer nothing.

Anti-patterns

The smallest version worth building

Generate a few hundred records for your main view, and ask specifically for the ugly cases: long names, missing fields, heavy skew, extreme values. Load them, label the environment as synthetic, and review the screen at that volume.

Most of what you find in the first ten minutes could not have been found any other way before launch.