Case study · development project

SAM: an AI front desk a one-person business actually owns.

The chat bubble in the corner of this site isn't a rented widget. It's a small system I designed and built — and the same approach works for any small business that's tired of answering the same ten questions.

1 dayidea to live on the site
~2 stypical answer time
<$1/moto run at current traffic
100%owned — no vendor lock-in

The problem

I run Schmoll Technologies on evenings and Saturdays. Most people land on the site after hours, and they all want the same things: What does a tune-up cost? Do you do Macs? Will you come to Arnold? If nobody answers, they close the tab. I'd been renting a chatbot from a form-builder company: it worked, but I couldn't see how it reasoned, couldn't move it, and every improvement meant fighting someone else's settings screen.

What I built

SAM — the Schmoll Assistant Module — is a chat assistant that answers from a knowledge base I write in plain text, quotes prices exactly as published, knows when to hand off to a human, and quietly files a lead into my CRM the moment someone shares a phone number or email.

My laptop takes forever to start. Is it worth fixing or should I just buy new?
Usually worth fixing — a slow start is almost always software, not a dying machine. That's a $79 tune-up: startup cleanup, junk removal, updates, and a disk health check, back to you the same or next day. If I find the drive is actually failing, Dalen tells you before any work and the diagnostic is free either way. What's your first name, by the way?
Mike. Can he come to my house in Arnold?
He can, Mike — Arnold is in the local house-call area, so it's the $79 plus a $25 trip fee. What's the best number for Dalen to text you a firm price?

How a conversation flows

1 · Visitortypes a question in the bubble
2 · SAMreads the whole knowledge base plus the persona rules
3 · Modelan open-weight 70-billion-parameter language model drafts the reply
4 · Guardrailsprices only from the KB; scams → "hang up"; no passwords ever
5 · Leadphone or email given → new row in the CRM, instantly

Design decisions

  • The knowledge base is seven Markdown files. Services, prices, policies, FAQ. I edit text; a build step compiles it into SAM. No retraining, no vector database, no admin console — the whole KB fits comfortably in the model's context, which keeps it accurate and makes "why did he say that?" easy to answer.
  • The model is a setting, not a dependency. SAM talks to whichever language model the configuration points at — today a hosted open-weight model on a serverless platform; tomorrow a local model on a spare PC, or any provider with a standard chat API. When the first model I chose was retired three weeks later, switching took one line.
  • Answer first, then ask. SAM never withholds a price to extract contact details. He answers fully, asks for a first name, and once asks how Dalen can follow up. Many visitors are seniors; the tone is a patient front desk, not a lead-capture form.
  • Hidden handoff tag. When SAM learns a phone number or email, he appends a machine-readable tag to his reply. The server strips it before the visitor sees anything and creates the lead. No tool-calling framework needed; a 30-line regex does it reliably.
  • Fail soft. If the model is unreachable, visitors get a friendly "text Dalen directly" message — never an error. A health endpoint tells me exactly what's wrong.
  • Privacy by default. No cookies, no analytics, no transcript storage unless I turn it on. The widget is 5 KB of dependency-free JavaScript and loads after the page.
Total running cost at current traffic is pennies a month. The rented widget it replaced would have cost more per year than SAM cost to build.

Under the hood

RuntimeServerless edge functions — a single JavaScript worker handles chat, lead intake, the widget, and health checks. No servers to patch.
ModelOpen-weight 70-billion-parameter instruction-tuned model, temperature 0.3, 400-token cap. Swappable via configuration to any standard chat-completions endpoint, including a self-hosted model on local hardware.
Knowledge7 Markdown files (≈12 k characters) + a persona file, compiled by a small Node script into a module the worker imports. Full-context prompting; no retrieval layer needed at this size.
Lead pipelineReply post-processing → CRM REST API → optional push notification to my phone. Source, phone/email, and a one-line summary land on the lead record; CRM formulas then drive follow-up reminders.
Front endVanilla JS widget (~5 KB): launcher bubble, panel, session memory via sessionStorage, quick-reply chips, markdown-lite rendering. One <script> tag to install on any site.
SafetyOrigin allow-list, per-IP rate limiting, prompt rules against credential requests and destructive step-by-step advice, scam-call script, 911 redirect for emergencies.
OperationsSingle-file build for one-paste deployment; /health reports provider, model, KB build date, and binding status. Everything lives in a Git-friendly folder I can move anywhere.

What I'd tell another small business

You don't need an enterprise "AI platform." You need your real prices and policies written down clearly, a well-behaved model reading them, and a short path from "I'm interested" to your phone. That's a weekend of focused work — and once it's yours, it stays yours.

Want one for your business?

I'll build a SAM for your website: your services and prices as the knowledge base, your voice, your rules about what it should and shouldn't say, leads delivered to your inbox or CRM, installed on your existing site. You get the source and the knowledge files — it's yours, not rented.

$450 setup+ $25/month hosting, monitoring & one knowledge-base update a month
Ask about an assistant Text Dalen
💬 Text Dalen — 636-212-0166