Can AI replace Animam.ai?
The chat is a weekend. Everything that makes it safe to point at customers is not. Ingest a site, search it, stream an answer · that part is commoditised and the prompt below really does it. What resists is the boring half: an amount computed by the server and never by the model, a visitor email verified before it triggers anything, signed webhooks with retries, and a sending domain whose reputation you did not build in an afternoon.
01What it costs
Checked Aug 14, 2026 · source: animam.ai.
| Plan | Monthly | Billed yearly | What you get |
|---|---|---|---|
| Starter | $33.52 | — | 600 conversations/month; 3 segments; 20 corpus entries; 1 bot |
| Builder | $56.64 | — | 1,200 conversations/month; 10 segments; 100 corpus entries; 2 bots |
| Pro | $91.32 | — | 600 conversations/month; 10 segments; 100 corpus entries; 1 bot |
| Agency | $230.04 | — | 6,000 conversations/month; unlimited segments and corpus entries; 10 bots |
| Enterprise | — | — | Custom multi-bot fleet, white-label, SSO and SLA terms |
Hidden costs: New conversations are blocked at the monthly cap; each bot also has a 20-conversation/day anti-abuse allocation, extra bots cost €15/month, and à-la-carte add-ons cost €9/month for Meetings or Quotes and €19/month for Payments or Digest; BYOK triples the conversation allocation but adds the model provider's API bill
02Could AI build it for you?
The core job: Crawl the sitemap, strip the chrome, store the text, retrieve the 5 best passages by keyword, stream a grounded answer, and refuse to answer outside the context.
What a working version needs:
- An LLM API key (Anthropic, OpenAI, or a local model)
- A place to run a small Node server (a 5 EUR VPS is enough)
- SQLite, or any database you already run
- A domain you can serve the widget from
Self-submitted by the people who sell it. The honest verdict is 'kinda', not 'not really': if we claimed our own chat layer could not be rebuilt in a weekend we would be lying, and this audience would know. The prompt below is the real one · it is not weakened to protect the subscription. What it deliberately leaves out is listed in whatYouLose, and that list is the product.
03What you'd give up
- Amounts computed server-side from a price grid · the model picks the SKU, it never produces the number
- Visitor identity verified by one-time code before any server-to-server action runs
- Signed outgoing webhooks with exponential backoff, delivery log and manual redelivery
- SSRF guard with DNS resolution on every URL the agent is allowed to call
- Per-tenant secrets encrypted at rest, and tenant isolation you did not have to think about
- Email deliverability · a warmed sending domain is not something you prompt into existence
- The evening the model provider changes a default and your widget starts making things up
Because the demo is the easy half. A chat that answers is a weekend; a chat you can leave in front of customers for a year is an operations job · someone watches deliverability, re-crawls the site, keeps the model from inventing a price, and is there the day it breaks. People pay for the second half, and they are right to.
05The build prompt
Paste this into an AI coding tool (such as Claude, ChatGPT, Lovable or Replit) to build your own version.
Build a website chat widget that answers strictly from a site's own content. Node 20 + TypeScript, no framework.
1. Install hono, @anthropic-ai/sdk, cheerio, turndown, better-sqlite3.
2. scripts/ingest.ts takes a sitemap.xml URL as argv and fetches every page, concurrency 4, skipping non-HTML.
3. Strip nav, header, footer and script tags with cheerio, then convert what is left to markdown with turndown.
4. Upsert into SQLite pages(url PRIMARY KEY, title, body, fetched_at) so re-running updates rows instead of duplicating them.
5. src/search.ts takes the 3 to 6 most distinctive words of the question and runs SELECT url, title, substr(body,1,1200) FROM pages WHERE body LIKE ? for each.
6. Rank by number of hits and return the top 5. No embeddings: under ~500 pages LIKE is cheaper, instant, and you can read why a passage was picked.
7. src/server.ts is a Hono app with POST /chat {message, sessionId}.
8. Put the 5 passages and their URLs in the system prompt, call claude-haiku with stream:true, and pipe SSE to the client.
9. System prompt: "Answer only from the CONTEXT below, and cite the page you used."
10. Continue it: "If the answer is not in the context, say you do not know and offer to take a message."
11. And the line that matters: "Never state a price, a date or an availability that is not written in the context."
12. public/widget.js is an IIFE that injects a bubble into a shadow DOM and keeps sessionId in localStorage.
13. It consumes the SSE and writes every message with textContent, never innerHTML · the text comes from a model that read the internet.
14. Store sessions and messages in the same SQLite file, so you can read back what people actually asked.
15. ANTHROPIC_API_KEY lives in .env, server-side only, and never reaches the bundle.
16. No telemetry, no third-party script in the widget.
17. Serve /widget.js with CORS * and a 5 minute cache so a single <script> tag installs it on any page.
Out of scope on purpose, and each of these is a week rather than a line: booking on a real calendar, payments,
quotes with amounts computed server-side, human handover, transactional email that reaches the inbox,
multi-tenancy, GDPR consent, rate limiting and abuse protection.06Open-source starting points
- Chatwoot: Self-hosted support inbox with a website widget
- Typebot: Open-source conversational forms and chat flows
- Onyx (ex-Danswer): Open-source RAG chat over your own documents
App prices, verdicts, alternatives and build prompts are adapted from Can I Vibecode It? (MIT License, © 2026 Rob Hallam). Each price shows the date it was checked and its source. Prices change; confirm on the vendor's site before you decide.
Get new verdicts in your inbox.
One short email when new verdicts land: what AI can now do for you, and what it still gets wrong. No spam. Unsubscribe anytime.