# Franklin: a coffee-shop AI that treats neurodivergent customers as regulars

> Source: <https://dev.to/brewhubphl/franklin-a-coffee-shop-ai-that-treats-neurodivergent-customers-as-regulars-58oe>
> Published: 2026-07-11 00:55:29+00:00

*This is a submission for Weekend Challenge: Passion Edition*

I've left a full cart in a supermarket aisle because the checkout line was four people deep. I've put a game I drove to Best Buy for back on the shelf for the same reason, not because I couldn't afford it, but because the twelve feet to the register had a person in it, a line behind me, and I'd rather keep *wanting* the thing than perform being fine while I bought it.

I'm 46 now and mostly over it. But I spent my twenties abandoning carts, and when I finally started building the coffee shop I always wanted, I built the one thing that would've let that younger me actually buy the coffee: a counter you never have to walk up to.

His name is Franklin.

Franklin is the conversational AI for BrewHub PHL, a neighborhood coffee shop and parcel hub in Point Breeze, Philadelphia. On paper he's a mobile-ordering chatbot: order an oat latte, check the hours, done. That was the boring version I set out to build.

Then I noticed how little it takes to give software an actual memory, and everything changed. Franklin now:

And under all the warmth: server-side pricing authority and a three-layer safety gate, so being friendly never becomes a way to manipulate a price or slip past an allergen check. Warm on the counter, zero-trust in the back. I spent twenty years as a union stagehand watching complex jobs go faster on empathy and fall apart without it. I have never once seen a system fail from an *excess* of care. Franklin is that lesson, in code.

What I described above isn't a niche accessibility case. It's cart abandonment, the single most obsessed-over metric in all of commerce. Everyone agonizes over the online cart someone clicked away from. Almost nobody designs for the physical version: the person who walked out of the store because the interaction cost more than the thing was worth.

I felt that version sharply enough to build the fix. And the thing about building it for the person who feels it most is that it turns out to help everyone, because the neurodivergent customer at the counter isn't a special case. They're the acute end of a friction every single human has felt. Everyone's put something back.

So I stopped designing an ordering bot and started designing belonging. The goal was never an "accessible feature." It was to make someone a *regular*: known, remembered, unhurried, never asked to explain themselves twice. The dignity is in being treated like you belong, not helped.

Watch Franklin be a regular's regular:

Or go talk to him yourself: [https://brewhubphl.com](https://brewhubphl.com)

Fair warning on the live version: he's meeting you for the first time, so you'll get cold-start Franklin, the voice and the warmth, but not yet the memory. Sign up and come back a few times, the magic is what happens on visit three or four, when he becomes *your* Franklin instead of just a chatbot. The recorded convo above is that. The live link is your first hello.

Franklin runs inside the production codebase of a real business — payments, loyalty wallets, and parcel lockers included, so the repo stays private. The architecture, happily shared: Next.js App Router served from a Cloudflare Worker; Claude with tool calling via the Vercel AI SDK; Supabase (Postgres) as the single source of truth for menu, pricing, and the per-customer memory the shadow agent writes; ElevenLabs for the voice. Ask me anything about it in the comments — I'm an open book about the how, just not the keys to the register.

**The voice is the accessibility, powered by ElevenLabs.** ElevenLabs isn't a nice-to-have here. For someone who finds a busy counter overstimulating, who dreads being rushed, who reads an impatient tone as a threat, a warm, patient, consistent voice isn't a garnish. It's the accessibility. A familiar voice that already knows you lowers the cognitive load of the whole interaction. There's no line. No one tapping their foot. No audience to mask for. Just a voice that says your usual back to you like it's glad you're here.

Franklin speaks through ElevenLabs (Elise, on Flash 2.5) for low-latency responses so it feels like a reply, not a wait. Same voice in this demo as in production. Under the hood, Franklin's replies are chunked into sentences as they stream from the model, each sentence is sent to ElevenLabs' streaming endpoint, and the audio plays back in order, so the first words reach your ears while the rest of the reply is still being generated. The tech maps directly onto the human need: memory so you're not starting over, tool calls so you're not parsing alone, and a voice so there's warmth with no rush. Take the audience away, and you can just order the coffee.

**Why "regular" is the whole thing.** There's a word retail loves: "frictionless." I've never trusted it. Friction isn't the enemy. The *audience* is. The performance of being fine while you transact.

Franklin removes the audience. That's the entire design, and it came straight out of my own twenties. I built the technological version of the peace I eventually found on my own (*nobody's really watching, you can just order the coffee*) and wired it into a coffee shop so somebody who's where I was doesn't have to wait until 46 to feel it.

That's my passion project. Not because it's clever. Because I needed it, and now somebody else won't have to leave the cart in the aisle.

*(PS: I also spent one obsessive rainy weekend fine-tuning a fully local, sovereign version of this philosophy into a model I own outright, for about six bucks, so the empathy survives the platform age. But that's a story for another post.)*

Best Use of ElevenLabs.

*Built with Next.js, Supabase, ElevenLabs, and twenty years of union stagehand empathy. Thanks for reading. Go be somebody's regular.*

Written by Thomas, BrewHub's founder. Edited with an assist from Claude (Fable 5) who, in fairness, is also the sibling of the model behind Franklin's brain, so he had skin in the game.
