🚪 About Step Out

Step Out, and why I built it

Step Out is a hackathon project, built solo in a bit over three hours. It sketches what's going on in a place you've just arrived in, including the things that never make it onto a website. What ran when the clock stopped is still up, unchanged, at /hackathon/; this site is a tidied-up version of it.

What it does

Type in a place and Step Out draws the whole board for it: activities, volunteering, courses, stalls, somewhere you can turn up and use, small grants, and more. You browse it by distance and by type. If you'd rather say something about yourself in plain language, the same board gets re-ranked into a shortlist, or into a step-by-step path, with a reason attached to each entry.

It works on any UK place you type. On the example boards every listing traces back to a named source you can go and check; a fresh sketch is Claude's guess, marked unverified and given a search link until a local confirms it. The two examples are Somers Town, which sits in the frozen hackathon build, and a Market Harborough sample that doubles as what you get when the day's searches run out.

There's also Snap, which reads a photo or a PDF of a board and turns it into entries — keeping the roles and stripping names, phone numbers and email addresses. On the live site you can watch it read a real chalkboard from the day. You can't feed it your own photo yet.

No accounts, nothing to sign up for.

How it's built

Static HTML Cloudflare Pages Cloudflare Worker Claude Haiku 4.5 Cloudflare KV Brave Search web fetch

Every page is static HTML on Cloudflare Pages. No framework and no build step, so a page opens straight from disk and still works offline. Anything that talks to Claude goes through a Cloudflare Worker on the same edge, which is where the API key lives.

browse calls AI jobs /enrich · card links hit: free · 0.3s miss candidates cache write Anyone on the web no account, just visits Cloudflare Pages the static site Worker: step-out-proxy holds the API key pins Haiku · rate-limits Claude matcher · sketcher extraction · verify KV: RATE daily caps, per visitor + site MCP · bring-your-own-agent designed, not built yet KV: LINKS cache a place searched once Brave Search finds the card's link confirm · 1 Haiku call loads and on topic
amber path: finding a card's link, the cheap way dashed: designed, not built yet
One Worker on Cloudflare's edge holds the key and routes every live request. The AI jobs go to Claude and finding a link goes to Brave, so the model is only paid where it does the judging. A shared cache means a place is searched once and then loads free for everyone after it.

The full source is public on GitHub: github.com/thekashifnazir/step-out. The Worker, the enrichment code, and the 40-check eval battery are all there.

A few decisions I'd call out

What's next

An MCP server, so you run searches with your own Claude and your own key. That puts the cost with whoever's asking, which is the only way to lift the caps without me paying for everyone. I'm working it out on Moveset first, since an open connector needs rate-limiting of its own, and nothing is live on Step Out yet. Uploading your own photo to Snap waits on the same thing.

Who made it

I'm Kash, a Senior Technical Architect based in London.

My day job is cloud, AI strategy and enterprise modernisation, where I set direction and prove out ideas far more often than I write the code myself.

Step Out inverts that: one idea, one person, built end to end. I lean on AI heavily to do it and say so plainly, because it is the reason this exists at all. I've never been a career developer, and AI assistance is what closes the distance between designing a product and shipping one. The architecture and the judgement calls are mine.

More of my writing is at kashifnazir.com, and I'm Kashif Nazir on LinkedIn. Sister project: Moveset, a training log you can talk to, built with no time limit and a proper stack behind it.

🏁 Where this came from

Read the hackathon story

The three-hour afternoon it came out of — the numbers, and the original build preserved exactly as it stood at the end of the day.

The story and the frozen build →