A draft, not a verdict
Generated writing has one honest failure mode: it is confidently almost right. The fix is not a better model. It is giving you the pen.
The StoryMap editor
Your generated story is now a draft you can edit. Changes are stored as an overlay on top of the generation rather than replacing it, so the original is never destroyed and you can always see what the machine said versus what you said. Republishing is selective: fix one caption, rebuild that story, keep everything else exactly as it was.
That overlay model is the whole design. Regenerating from scratch to fix a typo is how people learn not to fix typos.
Around it, a set of blocks worth having:
- Wikipedia place context, proxied through the server so the app never talks to Wikipedia directly, and looked up by proximity — a pass gets named as the pass rather than described as "a mountain road".
- Pickers for place info and map insets, so you can drop a small locator map into the narrative at the point where a reader loses track of where they are.
- A cover-photo picker. The title image decides whether anyone reads the rest, and letting an algorithm choose it was optimistic.
- Grouped photo slideshows instead of a wall of twenty images, which is what four days of riding produces if nobody intervenes.
Every enrich block is strictly validated before it renders, with localized thumbnails and proper renderers per block type. A block that fails validation is not rendered at all — no half-drawn card, no placeholder. Showing nothing is a better failure than showing something wrong on a page you are about to send to your friends.
From the phone, in one tap
There is now an Edit story button on the phone with a pre-authenticated handoff to the editor — you tap it, the browser opens, you are already signed in. No copying a URL, no logging in again on a laptop while the moment passes.
Creating and sharing a StoryMap from mobile captures works end to end, with a sync gate so you cannot publish a story whose photos are still sitting on the phone, and explicit warnings when a bake would produce something incomplete. The failure mode we were designing against is the one where you proudly send a link and half the images are missing.
We also made the story page work on a phone screen, and stopped the Edit button falling off the edge of its own card.
Beaches
Elsewhere entirely: the beach seeker pipeline for Norway shipped — sandy-beach discovery from open geodata, stages zero through five, sea and lake both.
It began as a joke about where to stop for lunch. It is now a dataset, and it is a good demonstration of what the platform is for: the question "where can I swim near this road" is a spatial analysis problem, and there has been a GIS sitting underneath this app the whole time.
What we like about this week
The editor is the moment the AI stopped being the author and became the first draft. That is the right relationship, and everything downstream gets easier once you accept it.
Dig deeper: stories, and data products for the beach data.
