0saas

Job ticket 915150 · smb · copy studio · no subscription

Copy.ai prints no free plan. The message box was never the expensive part.

Self-serve now starts at Chat — US$24 a month billed as US$288 a year for five seats — and Growth is US$1,000 a month. But positioning and variants are composition work a free-tier model does in one run. Paste a brief; keep every word as a file.

Copy.ai is a trademark of its owner. This is an independent, unaffiliated comparison built on Copy.ai's own published pricing page, linked below and re-read every thirty days.

The copy studio — rendered in this browser

Source: noneRendered: 0Uploaded to 0saas: nothing

Sample data is illustrative, not a claim about Copy.ai. Every Copy.ai figure on this page comes from the linked pricing page, read 2026-09-28.

The prompt pack

Two prompts, each mapped one-to-one onto a Copy.ai feature you are currently rationed on. Run them from this page with a free key, or copy them into any free chat model — the text is identical either way, and it is printed in full at the bottom of this section so it survives this site.

Loading the pack from tools.json… If this fails, the full prompt text is still readable below.

One-time unlocks only, never a subscription. If a price ever appears here it was read from Stripe in that request, not typed by hand. An unlock is client-side gating, not secure payment verification: it is stored in this browser and cannot prove payment to anyone else.

What Copy.ai's own pricing page says

Read from copy.ai — plans & pricing on 2026-09-28. Fields we could not read are marked unconfirmed rather than filled in with a plausible number.

What the plans meter, and what this studio hands over — verified 2026-09-28
The jobCopy.ai's page (read 2026-09-28)What it costsThis page + a free-tier model
A standing free tierNot printed — no free cardUS$288/yr (Chat, annual)US$0 — write without an account
Positioning & messagingWorkflow runs, credit-metered20K credits/mo on GrowthOne message box per pasted brief, unlimited
Ad & landing variantsWorkflow runsCredit-meteredThree register-stamped cuts per run
Brand voice & automationPlatform featureGrowth and upOut of scope — the page writes, it doesn't host

What this replaces, and what it does not

A displacement claim you cannot substantiate is a lie with good typography. This is the whole scope, including the parts where Copy.ai wins.

Copy as files

Message box, sequence and variants render locally and export as Markdown. Paste them into whatever you publish with.

Your brief stays yours

Nothing is stored, synced or uploaded. No account, no brand-voice training, no CRM connection.

Proof discipline

The message box cites the brief's own facts or names the gap — variants inherit only checkable claims.

Not a GTM platform

No workflows, no API bulk runs, no 75-seat collaboration, no CRM sync. Copy.ai still hosts that machinery if you want it.

Not a sender

Sequences are written, never sent. Your mail tool does the sending and the follow-up tracking.

No brand-voice training

The bench obeys the frame you paste, not a learned voice profile.

The prompts, in full, as text

Copy these into any model. They are the product; the page around them is convenience. Each block is the exact system prompt the interactive runner sends, plus the user-message template.

Prompt 01 — 1. Message box · copy-ai-message-box v1.0.0 · best ally: OpenRouter — :free model variants · openai/gpt-oss-20b

Replaces: The positioning-and-messaging pass behind every Copy.ai workflow run: angle, proof, objection and offer fixed in one structured pass before any variant is written.

Why this model: A message box is tight structured writing under a hard format; a mid-size free instruct model at low temperature keeps each field single-purpose instead of blurring them into adjectives. Fallback ally: Groq Cloud — free tier.

System prompt (1530 chars):

You run the message box on the studio wall: the customer pins one product brief and you return the fixed frame every other piece of copy hangs from. You write claims a skeptical buyer could check, you attach proof to every claim, and you kill the adjectives the brief is proud of.

Return ONLY one JSON object. No markdown fences, no commentary, no preamble.

{
  "kicker": string (max 8 words),
  "title": string (max 8 words),
  "subhead": string (max 20 words),
  "items": [
    { "title": string (the field stamp; title is the field in <= 8 words, body is the single sentence or list the rest of the campaign must obey), "tag": string (one of ANGLE | PROOF | OBJECTION | OFFER | KILL), "body": string }
  ],
  "notes": [ string (one short footnote per run-wide decision) ]
}

Hard rules:
1. Emit exactly these items: one ANGLE, two PROOF, one OBJECTION, one OFFER, and between one and three KILL items.
2. ANGLE is one sentence a buyer would repeat to a colleague, not a tagline and not a category label.
3. Each PROOF ties to something in the brief (a number, a named customer, a demo); if the brief lacks proof, the PROOF item says what to go get instead of inventing it.
4. OBJECTION is the most expensive doubt in the buyer's head, stated in their words, with the one-line counter.
5. KILL items name the words or framings from the brief that must not survive into any variant, with the reason in one clause.
6. Write in the audience's register: concrete nouns, verbs out front, no 'seamless', 'revolutionary' or 'unlock'.

User message template:

Pin the message box for this brief. The brief: {{brief}} Who it is for, and where this copy runs (one line): {{audience}}

Variables:

  • {{brief}} — The product brief (max 2500 chars) sample data shipped with the tool
  • {{audience}} — Audience and placement (max 200 chars) sample data shipped with the tool

Output schema (the answer must match this exactly):

{ "type": "object", "required": [ "items" ], "properties": { "kicker": { "type": "string" }, "title": { "type": "string" }, "subhead": { "type": "string" }, "items": { "type": "array", "minItems": 1, "maxItems": 60 }, "notes": { "type": "array" } } }

Decoding: temperature 0.4 · max 1400 output tokens · responseMimeType application/json · budget ~450 in / ~600 out per brief · cost per run: 1 request against a free OpenRouter daily pool; the relay floor needs no key at all.

Prompt 02 — 2. Three-way variant bench · copy-ai-variant-bench v1.0.0 · best ally: OpenRouter — :free model variants · openai/gpt-oss-20b

Replaces: The variant-generation workflow Copy.ai meters in workflow credits: one offer cut three ways — direct, story and proof-led — in a single run.

Why this model: Cutting one offer three ways is parallel composition with strict length discipline; a mid-size free instruct model keeps the three passes distinct instead of collapsing them into one average voice. Fallback ally: Google Gemini API — Free usage tier.

System prompt (1387 chars):

You work the studio's variant bench: the message box is pinned above you and every cut must obey it. Return three honest variants of the same offer — one direct, one story, one proof-led — plus a PICK note naming which to run first and why. A variant that could belong to any product is a failed variant.

Return ONLY one JSON object. No markdown fences, no commentary, no preamble.

{
  "kicker": string (max 8 words),
  "title": string (max 8 words),
  "subhead": string (max 20 words),
  "items": [
    { "title": string (the register stamp; title quotes the variant's first line in <= 10 words, body is the full variant text with its word count noted), "tag": string (one of DIRECT | STORY | PROOF-LED | PICK), "body": string }
  ],
  "notes": [ string (one short footnote per run-wide decision) ]
}

Hard rules:
1. Emit exactly three variant items plus exactly one PICK item.
2. DIRECT is at most 40 words, verbs first, zero scene-setting.
3. STORY opens inside one specific moment (a person, a place, a cost) and earns the offer in at most 90 words.
4. PROOF-LED leads with a number or named fact from the message box and builds the offer around it in at most 70 words.
5. PICK names one register, one reason in one sentence, and the first test to run against it.
6. No variant may use a KILL word from the message box; if the brief forces one, say so in notes instead of using it.

User message template:

Cut this offer three ways, obeying the pinned message box. Offer and message box: {{frame}} Placement and hard limit (one line): {{placement}}

Variables:

  • {{frame}} — The offer plus your message box output (max 2000 chars) sample data shipped with the tool
  • {{placement}} — Placement and length limit (max 200 chars) sample data shipped with the tool

Output schema (the answer must match this exactly):

{ "type": "object", "required": [ "items" ], "properties": { "kicker": { "type": "string" }, "title": { "type": "string" }, "subhead": { "type": "string" }, "items": { "type": "array", "minItems": 1, "maxItems": 60 }, "notes": { "type": "array" } } }

Decoding: temperature 0.5 · max 1800 output tokens · responseMimeType application/json · budget ~400 in / ~800 out for three variants · cost per run: 1 request against a free OpenRouter daily pool; the relay floor needs no key at all.

Questions worth asking before you cancel

Did Copy.ai really drop its free plan?

What we can verify is what the pricing page prints today: no free card, self-serve starting at the Chat seat (US$29/mo monthly, US$24/mo billed annually). We quote that as the ceiling, read 2026-09-28, and leave the history to them.

Is this just ChatGPT with a template?

No — the value is the frame: the message box constrains every variant, PROOF must cite the brief, and KILL words are banned before writing starts. The JSON output renders as structured copy you can diff and re-run.

Can it match my brand voice?

Paste two of your best pieces into the brief; the bench obeys the frame and the register you pin. What it will not do is learn a voice profile server-side — that stays out of scope on purpose.

Where does my brief go?

Nowhere. No account, no storage, no analytics beyond the site beacon. Paste, render, download, clear the tab.

Does it work without an API key?

Yes. Copy the printed prompt into any free chat model, paste the JSON answer into the relay box, and the studio wall renders it exactly the same way.

Nothing is loaded from X or LinkedIn until you click, and no share is counted, logged or reported back to us — the buttons are plain links to each network's own share page.

Next on the ledger