Replica
A white-label AI chatbot platform for agencies to launch and operate branded chatbot services for their clients.
Replica is a white-label AI chatbot platform built for agencies. An agency signs up, gets its own branded workspace, and resells AI chatbots to its own end clients. Every bot is trained on that client's own material and is embedded on the client's website through a small script tag.
Each client gets useful answers without sharing another client's context.
An agency can sell a chatbot quickly; keeping it trustworthy across a growing client roster is the harder business. One weak answer can become a support escalation, while one client's material appearing in another client's response would damage both relationships at once. The work also compounds: every new account brings a separate body of information, a separate standard of accuracy and another set of questions that changes over time. Without a disciplined way to keep those boundaries and answers dependable, the service stops scaling long before the agency runs out of prospects.
- Self-contained RAG chatbot engine (per-bot model, streamed)
- KB management (PDF/TXT/DOCX/URL → async chunk+embed) (Async knowledge-base ingestion for text-based PDFs, TXT, DOCX and URLs, with chunking and embeddings)
- Bot configuration
The service looks and feels like the business that sold it.
A reseller loses credibility when the product it delivers keeps reminding the customer that somebody else built it. The problem appears in small places first: an unfamiliar name in the portal, a generic interface beside the client's website, or a support experience that feels disconnected from the agency that sold it. Each mismatch makes the service look rented and makes the agency easier to replace. As the client roster grows, those inconsistencies turn into repeated explanations, extra onboarding work and a weaker relationship at the exact moment the agency is trying to prove that the service is its own.
- Embeddable chat widget (isolated, cross-domain)
- Per-client dashboard (client login)
- White-label branding (per-org)
- Advanced per-client branding (custom CSS, domain docs)
Every report shows what worked and what the knowledge still misses.
Chatbot activity is easy to count and hard to defend. A client does not renew because message volume went up; they renew when the agency can show which questions were resolved, where people still needed help and what should change next. Without that evidence, a monthly report becomes a decorative chart and every renewal conversation falls back to opinion. The agency then spends time explaining value manually while the client's most expensive unanswered questions keep repeating. A useful operating report has to make both sides visible: the work the chatbot removed and the gaps that still deserve attention.
- Usage tracking (Client-level message and conversation usage, bot- and organization-level token tracking, and organization-wide ready-document totals)
- Analytics dashboard (agency + client)
- Deflection analytics + gap report
A difficult conversation reaches a person before the client loses trust.
Automation becomes a liability when a visitor needs judgment and the only available response is another automated turn. The damage is rarely one unanswered question. It is the feeling that nobody is watching while frustration rises, followed by a complaint the agency hears about after the customer has already decided the service failed. Teams that cannot see those moments also cannot learn from them: the same difficult topics recur, operators arrive late and the client experiences the gap as silence. A reliable service needs a clear boundary between conversations the bot can finish and conversations that now belong to a person.
- Conversation history + transcripts
- Live human handoff
If nothing in the knowledge base is close enough, the bot gives its fallback response rather than inventing an answer. If the question hits a handoff keyword, or the visitor asks for a person, the conversation is escalated instead.
Each bot carries:
That isolation is why the widget looks identical on a WordPress theme, a Shopify storefront and a hand-written landing page.
You receive this. It ships behind a feature flag and sits on the Pro, Scale tier as configured, so it is revenue you can reserve for your own paying customers.
Client status is one of: - active — normal operation. - paused — temporarily suspended. - archived — retired, kept for history.
Bots are assigned to a client, so a client's dashboard, analytics and conversations all resolve through the bots that belong to them.
A client with a login lands in /client/*, which is a much narrower space than the agency app:
Visitors are anonymous by design — a widget conversation carries no name or email unless the visitor typed one into the chat.
An escalation is triggered by one of four things, recorded on the handoff record: - user_request — the visitor asked for a human. - keyword — the message matched one of the bot's handoff trigger keywords. - low_confidence — nothing in the knowledge base was a good enough match. - fallback — the bot had to fall back rather than answer.
The handoff then moves through pending → accepted → active → resolved, or is declined. The queue updates live, so an operator watching the Live chat screen sees a new request appear without refreshing.
If handoff is not enabled on the agency's plan, the bot still uses its fallback response — it simply does not offer a human.
You receive this. It ships behind a feature flag and sits on the Pro, Scale tier as configured, so it is revenue you can reserve for your own paying customers.
Analytics → Gap report is the report the agency hands its client. It contains:
That is the loop the product is built around: the gap report tells the agency exactly which documents to add, adding them raises the deflection rate, and the next report proves it went up.
Clients with can_view_gap_report enabled see their own version of the same report at /client/analytics/gap-report.
Branding is resolved per agency from the address the visitor arrived on, which is why an installation intended for multiple agencies should be served on a wildcard subdomain: each agency gets its own host, and the host is what selects the branding.
Per-client custom CSS is the paid extension of this, available on Pro and Scale.
You receive this. It ships behind a feature flag and sits on the Scale tier as configured, so it is revenue you can reserve for your own paying customers.
The platform underneath the product — counted in this product's own source, not claimed from a template. Where a row carries a list, open it to read the names behind the number.
Hover a table to isolate what it touches; click one to read its relationships. The big nodes are what everything else hangs off. organizations is referenced by 51 tables because every single record in this product belongs to an organization, and that is what makes tenant isolation a property of the database rather than something the application has to remember on every query.
all 64 tables, as text
active_boosts · admin_notifications · analytics_daily · analytics_events · analytics_funnels · announcement_dismissals · announcements · api_key_logs · api_keys · assistant_actions · assistant_conversations · assistant_messages · assistant_usage · audit_logs · automation_log · automation_templates · bots · clients · conversations · credit_balances · credit_transactions · currencies · data_exports · data_imports · faq_categories · faq_items · feature_flags · gap_topics · handoff_sessions · inbound_webhook_events · inbound_webhooks · kb_chunks · kb_documents · languages · marketing_audience_members · marketing_audiences · messages · notification_log · notification_rules · notifications · org_branding · organization_limit_overrides · organizations · plans · platform_secrets · platform_settings · product_purchases · products · provider_prices · push_devices · report_templates · roles · scheduled_tasks · seo_meta · subscriptions · theme_page_sections · theme_section_library · theme_sections · translations · usage_logs · user_sessions · users · webhook_logs · webhooks
The chassis, and anything particular to this product. 3 required, 2 optional.
The Node version is not pinned; the application declares Next 16.2.10. Supabase supplies Postgres, authentication and storage.
Five jobs are declared in `vercel.json`. On another host, those schedules must be wired to the shipped endpoints.
Choose one of the shipped Brevo, Mailgun, Resend, SendGrid or SMTP providers for invitations and notifications.
The example environment exposes Upstash configuration for deployments that use the hosted integration.
The example environment exposes Sentry configuration for deployments that want external error monitoring.
Already built — plug and play
Every provider integration in this list ships wired into the product. You bring your own keys, connect them in the admin, and go live — there is no integration code to write. Nothing is resold through us: the ongoing cost is whatever these providers charge you. Capabilities marked plan-gated elsewhere on this page unlock by plan, not by extra code.
What exactly do I receive after purchase?
The complete source repository behind the live demo — 162,422 lines across the application and its database, 64 tables defined by 112 migrations that the shipped scripts apply for you, plus the seed data, the demo accounts and the setup documentation. Not a subset and not a scaffold: the same code that runs the demo you just used.
Is the live demo the same product whose source I receive?
Yes. The Replica demo runs the delivered release (v1.0.0), and the build figures on this page are measured from that same source — not from a showcase build kept separately.
Can I test every account role before buying?
Yes — all 4 of them: End client, Agency operator, Agency owner, Platform operator. Each one is seeded in the live demo and reachable from the role board above, so you can inspect the product from the customer's side, the agent's side and the administrator's side before you decide.
Is this a complete product or a starter template?
Complete. 89 page modules and 297 HTTP operations, with authentication, roles, billing, an administration panel, background jobs and seeded demo data all wired and running. A template gives you the shape of an application; this is one you can deploy and start operating.
Can I rebrand and modify it?
Yes, without asking. The name, identity, copy, styling and code are yours to change. Rebranding and operating it as your own service is exactly what the licence is for.
What does the licence allow?
A perpetual, worldwide, non-exclusive, non-transferable licence to the product you bought and to every update released for it. The Standard licence covers one business — yours. If you deploy for clients, the Client licence covers up to five. You can modify it, rebrand it, deploy it and charge your own customers.
Can I resell the source code?
No. Reselling, redistributing, sublicensing or giving away the source itself is not permitted under either licence. You build and deliver products with it — the code stays with you.
What services and ongoing costs are required?
You bring your own accounts, so we never mark anything up and there is no ongoing cost to us beyond the purchase. Required: A Node host and a Supabase project, A scheduled runner, An email delivery provider. Optional: Upstash, Sentry. The table above says exactly what stops working without each one; most have usable free tiers at low volume.
How difficult is deployment?
Two ways, and most buyers use the first. The installer in your saascode dashboard walks it: you create free accounts at Vercel and Supabase, connect them, and it provisions the database, applies 112 migrations, seeds the data, deploys and verifies the result — you watch the steps go green. Or take the source and do it yourself with the shipped scripts and docs, which is the same sequence run by hand.
What updates and support are included?
Updates to that product for as long as we maintain it — no renewal fee and no expiry date on your access. Support covers download problems, defects in the code as shipped, questions about what the product does and how it is structured, and licence questions. It does not cover debugging your own modifications, building features for you, or setting up your hosting and third-party accounts.
Why does a complete codebase cost $299?
Because it was built once and is distributed many times. SaaSCode builds each product and ships the same finished release through the catalog, so the price reflects repeatable distribution — not a reduced codebase, an unfinished template, or what the same work would cost commissioned.
Do I need to be a developer?
No, for the normal path. You create free accounts at Vercel and Supabase, connect them to the installer in your saascode dashboard, and it does the deployment for you — provision, migrate, seed, deploy, verify. What it asks of you is creating two accounts and copying a token, not writing code. If you would rather deploy it yourself, or host it somewhere else, the full source and the scripts are yours to do that with. Running the product day to day needs no technical skill at all: that happens through its own interface, which is what the demo shows.
