DIY Body Lab — Developing Indestructible You

>_ Lab Experiment — LIVE

Building Mobi

Why I Put a Chatbot on the Site

People come to this site with real questions — what’s a good walk speed for their age, how to get off the floor easier, what Touchless Jiu-Jitsu actually is. I didn’t want someone to land on one article, get half an answer, and just leave.

So I built Mobi — a chatbot that lives right on the homepage and only talks about what’s actually here on DIY Body Lab. Ask it something and it either answers straight from the site, points you to the exact article, or tells you plainly when a question needs your doctor instead of a chatbot.

I built it the same way I build everything else here — by working with AI, not by learning to code.

Go Ask Mobi Something →

>_ Before you keep going

That’s the whole story, honestly. Everything below is how Mobi is actually built — and it’s going to read like a recipe full of ingredients you’ve never heard of. Most people read the story, go ask Mobi a question, and never think about it again. That’s completely fine. Keep scrolling only if you’re the type who wants to know what’s actually in it.

>_ The Ingredients

How It’s Actually Built

This part matters to me: none of this showed up because I typed “build me a chatbot” and got a finished product back. Every piece below started as a real problem I ran into, went back and forth with Claude Code to fix, tested, and refined again. That back-and-forth is the actual skill — not the finished rulebook.

The problem: it made things up

The first version answered anything — ask it something that had nothing to do with the site, and instead of saying “I don’t know,” it would answer anyway. Confidently, and wrong.

>_ What this actually looked like

Me, to Claude Code:

“Build a chatbot for the homepage that answers visitor questions about DIY Body Lab topics — walk speed, mobility, balance, that kind of thing. Use the Claude API, keep it simple.”

Testing it:

I asked it something completely unrelated to the site — it made up an answer like it was an expert on everything. Not what I wanted.

The follow-up:

“It's answering things that have nothing to do with this site. Give it a strict rule: only answer from DIY Body Lab content. If a question falls outside that, it should say so instead of guessing, and point them toward the library or their doctor.”

What that produced:

A written rulebook handed to it before anyone ever talks to it — in the industry that’s called a system prompt. Only answer from what’s actually on the site, name the real article when there is one, admit it when a question’s outside that.

The problem: medical questions

Once it was locked to the site’s own content, a new risk showed up — someone asking a real health question, not a “topic” question.

>_ What this actually looked like

Me, to Claude Code:

“It's fine answering movement questions, but I don't want it anywhere near medical advice. If someone describes a symptom or asks for a diagnosis, it needs to say that's a question for their doctor — every single time, no exceptions.”

What that produced:

A hard rule baked into the same rulebook: it never diagnoses, never advises — it redirects to a doctor, full stop.

The problem: it could get expensive

A chatbot answers using AI that costs money per question — and nothing was stopping one visitor, or a bot, from hammering it hundreds of times in a row.

>_ What this actually looked like

Me, to Claude Code:

“I don't want someone racking up my API bill by spamming this overnight. Add a limit — something like 20 questions per person per hour — and cap how long any one conversation can run.”

The follow-up:

“What happens when someone actually hits that limit — does it just throw an error at them?” It did, at first. I had it return a plain-language message instead: come back in an hour.

What that produced:

Two caps: no more than 20 questions per hour, per person (that’s rate limiting), and any single conversation stops at 10 messages (a session limit). Same reason for both — keep the cost predictable instead of a surprise.

The problem: it needed to sound like this site, not a tech demo

>_ What this actually looked like

Me, to Claude Code:

“If someone asks what model this is running on, it shouldn't say Claude or mention Anthropic. It should just feel like part of the site — my voice, my brand, not somebody else's AI wearing a name tag.”

What that produced:

One more line in the same rulebook: never reveal the underlying model or company. As far as anyone talking to it knows, it’s just DIY Body Lab’s assistant.

The real cost

None of this runs on a subscription. It’s billed per question, straight through the AI provider’s API — a fraction of a cent at a time, only when someone actually uses it. Same idea as why $20 a month is almost free — you pay for what you actually use, not a seat.

But here’s the thing — you don’t actually need to know what a system prompt or rate limiting is to get real value out of any of this. That’s the whole point of an ingredients list. It’s there if you’re curious, not because you need it to eat the meal.

We don’t worry so much about memorizing every ingredient. We work on becoming the cook — and working with other cooks.

That’s What DIY AI With Shane Is For →