This is the build-log half of a story I tell in full in this week’s Signal Over Noise. The short version — we wound down MyCityZen last week, a chatbot built over a year with a few hundred people correcting and expanding Spanish bureaucracy answers, and I couldn’t stand the idea of that knowledge disappearing with the container. Stefano Amorelli’s estonia-ai-kit showed me the shape of the answer. Spain AI Kit is what happened when I sat down and did it for Spain.
This post is about the workshop. What the build day on April 8 actually looked like — the code was already done, but the project wasn’t.
The Code Had Been Done for Months
Four MCP servers — INE for national statistics, BOE for legislation and consolidated laws, Catastro for land registry, AEMET for weather. They’d shipped to npm quietly, while I was still figuring out what the project even was.
The code worked, but nobody knew. That’s the gap release day was closing — not between old code and new code, but between code and findable.
Ninety Minutes, Mostly Not Code
The session ran about 90 minutes. Maybe 20 of that was actual code — a couple of small fixes, a version bump to line up the packages for public release. The other 70 minutes were everything else you need when a thing stops being a private tool and becomes a public project.
Rewrote the README to match the shape of Stefano’s kit — narrative intro, badges, a table of the four packages, a section explaining what each government data source actually gives you. The Estonia kit had a clean structure I didn’t need to reinvent.
Generated a hero image — Plaza de España in Seville. Literally named “Spain Square,” terracotta tones echoing the flag without trying to. Uploaded it to the CDN so the README could pull it by URL instead of committing binary into the repo.
Added the project as the top entry in my GitHub profile’s MCP servers table. Added it to my personal site’s projects page twice — once as a current project card, once as the lead open-source entry with the four sub-packages listed underneath.
Voice-edited the LinkedIn announcement through six passes against the writing guide. Saved the draft and pre-post checklist to the vault.
For a project that had been “done” for months, the ratio ended up around 75% surfacing, 25% code.
What Each Piece Was Actually For
The interesting thing about release day isn’t how many things you do. It’s what each thing is for.
A README is a claim. It says this is what the project is, here’s how to use it, here’s why it exists. If the claim doesn’t hold up on its own — without you there to explain it in a DM thread — the project doesn’t exist for anyone who didn’t already know about it. The code had been public for months. Without a README that claimed it properly, it may as well have been private.
The hero image is the same move at a different layer. A GitHub repo without a hero feels like a tool dump. A repo with one hero image that ties the project to a place and a palette tells the reader this is a project about Spain, and somebody cared enough to pick an image. Those two pieces of information close more of the “what is this?” gap than the first paragraph of the README does.
The profile placements are the smallest piece of work and the biggest piece of reach. Once the project is on the profile and the site, it’s findable by the people who already look for what I do. Everything else — the LinkedIn post, the cross-posts, the comment thread that started this whole thing — is drift. The profile is the thing that survives the day of the announcement.
The Comment
The reason any of this happened in the first place was a one-line comment under Stefano’s demo video. Maya Middlemiss wrote “can we build this for Spain 😎” and that was the whole origin story. Not a spec. Not a feature request. A suggestion that the thing should exist.
I tell the longer version of why that matters — MyCityZen, the knowledge that travelled, the container that came down — in the SoN issue. The short version for the workshop log is this: sometimes the prompt that ships a project isn’t “build this.” It’s “wouldn’t it be interesting if someone did.” And then someone does.
Spain AI Kit is open source under MIT, available as @spain-ai-kit/* on npm, and the repo is at github.com/aplaceforallmystuff/spain-ai-kit. The full story of why it exists — and the MyCityZen wind-down that made it necessary — is in this week’s Signal Over Noise.