The One with the AI Chat Cloneathon...

Explore the start of my journey building Kamba—an AI chat app scaffolded in days with Vercel’s AI SDK, Assistant UI, and an AdonisJS-Inertia-React stack. It all started with a hackathon.

A black and green chat bubble icon.
Photo by Alexander Shatov / Unsplash

In what has become my most popular LinkedIn post to date, I shared my experience building an AI chat app in a hackathon—or cloneathon, if you will. In that post I promised to write about my progress on Kamba (that’s what I’m calling it 😉). But before diving into where I am now, let me tell you about how it all started—cue high-speed video rewind effect..

Getting Into Open Source

Before I saw the tweet (yes, I still call them tweets) about the cloneathon, I was already planning an open-source project. I wrote a whole post about it and was set to release it the day after I came across the tweet. It doesn’t involve AI beyond how AI augments my workflow, but I’ve added it to my list of projects for this year. Speaking of AI-augmented workflows, I’ll write about that someday—mostly tailored to developers.

Anyway, the project boils down to a mini marketplace. My target market? Solopreneurs and digital sellers. Think Gumroad, but built for the Zambian payments ecosystem. I’ve sketched out ideas to enhance it when I return to the code, and I can’t wait for you to see it.

ANNOUNCING THE FIRST EVER CLONEATHON
Build an open source clone of T3 Chat, win up to $5,000
Deadline is next Wednesday. Good luck and have fun nerds 🫡
— Theo (@theo)
View on Twitter

Wow, that was a bit of a tangent. Back to open source. My idea with this project is to share a view of building robust, scalable systems that other Zambian developers can learn from, contribute to, and build on. Of course I’ll learn from their contributions too—a virtuous cycle of iron sharpening iron. I truly believe homegrown open-source projects can uplift our local development landscape, creating a community that grows through practical action and collaboration.

Building Kamba

I saw Theo’s tweet about three days after it went live and was immediately drawn in. First, the prize pool was insane. Second, a hackathon was the push I needed to stop sitting on ideas. Imposter syndrome really ‘imposts’ whenever I start something new.

I first looked at workflows for building AI-powered apps and stumbled on Vercel’s AI SDK. A lifesaver, honestly. But starting a project from scratch three days late brought its own headaches. I needed speed. Scanning comments on the tweet, I discovered Assistant UI. I. Was. Sold.

If you know me, you know I’m an AdonisJS fanboy, but for good reason (check out their post on the v7 roadmap). So I scaffolded an AdonisJS app with Inertia and React for the frontend—anything to prototype fast. While scaffolding the backend, I fired back-to-back queries at v0 so I wouldn’t have to worry about UI just yet. (I have another tangent here, but I’ll save it for another post.)

That was the easy part. I spent most of my time getting the chat to stream from backend to frontend without breaking when the page changed. This is why I’m so happy the next SDK version will use server-sent events (SSE). I still plan to build an AdonisJS adapter around it. After checking out Prism PHP, I’ve found inspiration for structuring that adapter.

The Plan

The next few weeks will be full of API calls, debugging sessions, and, hopefully, small wins. I’ll keep sharing updates, and I hope a few of you might contribute. It’d be great to have extra eyes on the code, doing reviews and bouncing ideas around.

For now, thanks for reading these thoughts I typed up after a long day of writing docs. I hope you’ll stick around until the project officially launches. Until then, sign up for my newsletter! 😁