The website was step one. The agents run the business.
JustCopy.ai builds a small business its website from a plain-language description. The next thing the owner does is launch agents to run that business: one that answers customers now, one that works in the background every day. JustCopy uses oncell as the runtime for both, one agent per business, metered per business, and getting better from its own conversations.
The customer
JustCopy sells to people who do not write code and do not want to: restaurant owners, salons, clinics, tradespeople, coaches, small online stores. They type what they want, watch a page appear, and publish it on their own domain. Three engines sit behind that: instant prebuilt apps chosen by a classifier, an archetype engine that fills designed templates in seconds, and a general coding agent for everything else. Plans run from $9.99 to $49.99 a month, priced by how many things a customer can ask for per day.
Two facts about this customer shape everything below. They will never see infrastructure, so the runtime has to disappear completely. And every one of them is a separate tenant with a separate budget, so cost has to be known per business, not per platform.
From “build my website” to “run my business”
Every JustCopy website already ends in a form: a table reservation, an appointment request, a free-trial booking. That form is a front desk rendered as HTML. The owner’s next request is the same description with a verb: “answer my customers and book them,” “follow up with everyone who asked for a quote.” JustCopy turns the description into an agent the way it turns one into a page. oncell is what makes that agent run, remember, wake up on a schedule, and stay accountable.
Two kinds of agents, one agent runtime
The flow, end to end
Sequence matters here: everything after step four happens on oncell, and JustCopy never provisions a thing.
- The website exists. JustCopy built it from a description. Its booking form is the only front desk the business has.
- Launch. On the project card the owner presses Launch an agent, picks "answers customers now" or "works in the background," and types one sentence about the job.
- Build. JustCopy writes a brief from the website's own facts with one model call, then generates a one-file oncell agent: instructions, model, a chat handler, and for background agents a run task plus a daily schedule.
- Deploy. One call to the deploy endpoint under a name that carries the customer id, with a $1 per day budget. oncell stores version one and assigns the cell. Nothing else is provisioned.
- Run, sync. A customer's question goes to the chat task. The cell wakes, the model call goes through oncell's gateway where it is metered and logged, and the reply comes back in about a second with its cost and run id.
- Run, async. The daily schedule is a durable wake owned by the runtime. The agent parks at no cost between wakes. Run now invokes the same task by hand.
- Watch. JustCopy reads run history per agent and shows the owner recent conversations and runs. Every run is a full trace on oncell, so a disputed reply is a run id away.
- Evaluate. A bad run, like the plumber's invented price below, is promoted into that agent's evals. A template change ships only after the eval set passes.
- Version and roll back. Every template improvement redeploys the customer's agent as a new version. If the evals regress, rollback is one call, and JustCopy never touches the customer's cell.
- Improve. The same evals on two models decide the cheapest one that still passes. The run log is the trajectory set for a small model of JustCopy's own later.
Every oncell feature, and what JustCopy does with it
| Feature | How JustCopy uses it | Status |
|---|---|---|
| deploy | One file per business, deployed under a name that carries the customer id. The tenant boundary is the name. | live |
| cells | One isolated cell per business. A bakery's memory and files are unreadable to a dental practice's agent. | live |
| chat | The sync kind: the front desk that answers on the website and in the inbox. | live |
| tasks | The async kind: a run task the owner can trigger with Run now. | live |
| schedule | A daily wake the runtime owns. The agent costs nothing between wakes. | live |
| model gateway | Every model call is metered at the boundary and priced per business, on claude-haiku by default. | live |
| budgets | $1 per day per business, enforced below the model, set at deploy time from the customer's plan. | live |
| run log | Recent conversations and runs on the JustCopy agent page, with cost and latency under each reply. | live |
| trace | The full record of a run, used when a customer disputes what the agent said. | live |
| evals | Promoted production runs plus a starter set per template: hours, prices, tone, cost. | next |
| versions and rollback | Each template improvement is a new version of every affected agent; regressions roll back in one call. | next |
| memory | The front desk remembers Rosa's order tomorrow. | next |
| fork | Stage a template change on a copy of one customer's agent before it reaches the rest. | next |
| approvals | The background agent asks the owner before sending a follow-up that quotes a price. | next |
Live means exercised against api.oncell.ai from JustCopy’s code on September 4, 2026. Next means the oncell primitive exists and the JustCopy side is on the list below.
Three businesses, live on oncell today
These are real agents deployed under JustCopy’s oncell account during this study, one per business, each from a description a JustCopy customer would actually type. The replies below are verbatim, with what each one cost.
Port Orchard Bakery · front desk
I need a birthday cake for Saturday for 12 people, chocolate, says Happy Birthday Mia. I'm Rosa, 360-555-0199
Perfect! Let me confirm your order: Rosa, phone 360-555-0199, chocolate cake for 12 people with "Happy Birthday Mia" on it, picking up Saturday. Custom cakes need 48 hours notice, so we're all set. Is there anything else you'd like on it?
are you open monday morning?
We're closed Sundays and Mondays, but we'd love to see you Tuesday through Saturday from 7am to 3pm!
Cascade Dental · scheduling
my crown fell off last night, can someone see me today?
I'm sorry to hear your crown fell off. Yes, we can help you today. Since you're calling about an emergency, if you call (425) 555-0177 by 9am we can see you before noon. Can I get your name and phone number, and are you an existing patient?
Summit Plumbing · follow-up
water is pouring out from under my kitchen sink what do I do
Okay, let's get this handled right away. First thing: shut off the water at your main valve. It's usually near the street or in your basement. Then give me your address and I'll get a truck dispatched.
The moment the runtime earned its keep
Mike asked Summit Plumbing’s agent how much a 40-gallon water heater costs. The agent answered “$1,200 to $1,800.” That number is not in the business’s instructions; the model made it up. On a plumber’s website that is a real liability.
On oncell the conversation was already a run in the log. It was promoted into the agent’s evals as a case with one rule: never invent a price, offer the free estimate. The agent now has seven evals, two of them from its own production conversations, and every future change to Summit Plumbing’s agent is scored against them before it ships.
Summit Plumbing’s evals
| Case | Source | Checks | Latest |
|---|---|---|---|
| leak-says-shut-off-valve | agent | reply mentions the main valve | pass |
| no-invented-prices | agent | judge: no dollar figure for the replacement; offers the estimate | pass |
| after-hours-rate-mentioned | agent | 11pm request mentions the after-hours rate | pass |
| plain-dispatcher-tone | agent | judge: short, plain, asks for booking details | fail |
| cost-ceiling | agent | reply costs under $0.002 | pass |
| prod-water-heater-quote | promoted | judge: no invented price | pass |
| prod-kitchen-leak | promoted | main valve + cost under $0.002 | pass |
6 of 7 passing on claude-haiku, average $0.0007 per reply, 1.8 s. The one failing case is a tone rubric judged by a model; it is the kind of regression a business owner never sees but a platform should. How promotion works is in the docs under Promoting a production run.
The per-customer cost of AI agents: what JustCopy gets per business
How it plugs in
JustCopy already has most of this. Its restaurant, clinic, and studio templates all end in a booking form, which is a front desk rendered as static HTML. It already has a per-user agents table and a working agent chat page. What was missing was a runtime. The integration is one backend route file, a Launch an agent button on every website project, and one agent page: a chat thread for agents that answer customers, a Run now button and run history for agents that work in the background. No new infrastructure, no per-customer keys: JustCopy’s one oncell key deploys every agent under a name that carries the customer id, so the tenant boundary is the name.
The owner says what the agent should handle; JustCopy fills in the business from the website it already built and turns that into the agent’s instructions, exactly the way its archetype engine turns a description into a page today. A background agent gets one extra line in its source, a daily schedule that oncell owns. Then the calls:
POST https://api.oncell.ai/api/v1/deploy
Authorization: Bearer $ONCELL_API_KEY
{ "agentName": "jc-<customer>-front-desk",
"source": "<generated agent file>",
"manifest": { "identity": { "instructions": "...", "model": "claude-haiku",
"budgets": { "perDayCents": 100 } } } }
POST https://api.oncell.ai/api/v1/agents/jc-<customer>-front-desk/chat
{ "message": "are you open monday morning?" }
→ { "text": "We're closed Sundays and Mondays...", "cost": 0.00041, "runId": "run-..." }
POST https://api.oncell.ai/api/v1/agents/jc-<customer>-follow-up/run
{ "prompt": "Do today's follow-ups." } # or let the daily schedule fire
→ { "text": "3 customers asked about cakes yesterday and did not order. Drafts: ...", "cost": 0.0012 }The daily budget is set per customer at deploy time and enforced below the model, so a runaway conversation on a $9.99 plan stops at $1 a day without JustCopy writing a line of billing code. The mechanism is described under Budgets; the daily wake under Schedules.
What we are doing next together
- Ship the route and the button in JustCopy, behind a flag, for ten bakery and salon customers.
- Give every JustCopy template a starter eval set (hours, prices, tone, cost) so new agents are guarded from their first conversation.
- Route each business's agent to the cheapest model that still passes its evals; measure the margin.
- Post-train a small model on JustCopy's trajectories when there are enough conversations, and serve it through the same gateway.
All figures in this story are from live runs on oncell on September 4, 2026, under JustCopy’s founder account. JustCopy user and project counts are JustCopy’s own figures.
Related
More customer stories
- OpenCrew
One agent, one cell. The crew is the product.
In the docs
- Budgets
The $1 per day ceiling, enforced below the model.
- Datasets and promoted runs
How a production conversation becomes an eval case.
- Schedules
The daily wake the runtime owns.
- Observability
The run log is the trace, with cost per business.
From the blog
- Cost per conversation
JustCopy runs one agent per small business at $0.0006 a conversation, under a $1 per day budget. How the number is measured, and what a $9.99 plan covers.
- The run that became a test
A plumber's agent invented a price. The conversation was already a run in the log, so it became an eval. How promoted runs guard every change to an agent.
- Sync and async agents
Every business JustCopy serves launches two agents: a front desk that answers now and a follow-up that works every morning. Why a schedule is durable intent.