🚧 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

Generated things need generated names

Tags: naming, history, findability

Naming used to cost a proportionate amount of attention. You made a document β€” an hour of work β€” and spending four seconds on a filename was obviously worth it. Generative products invert that: creating takes a sentence, and naming takes more deliberate thought than the creation did. So nothing gets named.

The cost is not untidiness

A column of Untitled (47) looks like a housekeeping problem. It is not.

It means the history has stopped being an asset. People cannot find what they made, so they make it again β€” which spends the money a second time, and throws away whatever editing they had done to the first one. The most valuable artifacts in the product are the ones somebody improved, and those are precisely the ones that get lost, because improvement does not change the name.

So the product develops a strange shape: enormous generation volume, near-zero retrieval, and users who believe the history is useless because in practice it is.

A handle, not a summary

The instinct is to title it accurately, which produces twenty-word descriptions that are correct and useless. A name is for picking one thing out of a list of similar things, which makes distinctiveness the requirement, not fidelity.

Three properties:

Name from the request, not the answer

A small point that turns out to matter a lot.

The user remembers what they asked for. They do not remember what the model said, because they had not read it yet when they formed the memory. So a title generated from the output is a title describing something the user never committed to memory, and it reads as a stranger's label on their own work.

Naming from the first message is a bet that the opening request characterises the thread. Usually true. Occasionally wrong β€” a conversation that started as one thing and became another β€” and the remedy for that is an editable name, not a cleverer generator. Regenerating titles as threads evolve breaks stability, which costs more than the occasional bad name.

And never overwrite a name a person chose. A human name is a statement that this one matters.

When to use something other than prose

Rendering diagram…

The natural-key branch is worth checking before reaching for a model. "Invoice 4471" and "Q3 board deck β€” draft" are better handles than anything generated, and they are free.

Grounded in

Poppy titles threads from the first message and persists them, with a sidebar that adapts to where you are β€” so a teacher returning to last week's parent email takes one glance rather than running a search.

The use case is what makes the requirement sharp. These are people with a few minutes between classes, generating several things a day, every day, across a term. At that volume an unnamed history is not mildly inconvenient; it is a product that silently stops having a second session. The auto-title is what turns a streamed answer into a durable, findable artifact, and it is a much smaller piece of work than the streaming it makes worthwhile.

Anti-patterns

The smallest version worth building

Generate a title from the first request, at creation, in under six words. Store it. Make it editable. Never regenerate it.

That is one call and one field, and it converts a write-only history into something people come back to.