0saas

Job ticket 941022 · consumer · scaffold · no subscription

Rytr Free stops at 10,000 characters. The structure behind the words never had a meter.

Rytr's free forever plan allows 10,000 characters a month across 40-plus use cases and 30-plus languages; Lite makes characters unlimited at US$9 a month. This page produces the copy briefs and structures that fit an entire month of marketing into the free character budget.

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

Copy Scaffold — rendered in this browser

Source: noneRendered: 0Uploaded to 0saas: nothing

Sample data is illustrative, not a claim about Rytr. Every Rytr figure on this page comes from the linked pricing page, read 2026-10-26.

The prompt pack

Two prompts, each mapped one-to-one onto a Rytr 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 Rytr's own pricing page says

Read from rytr.me/pricing on 2026-10-26. Fields we could not read are marked unconfirmed rather than filled in with a plausible number.

What Rytr meters, and what this page hands over — verified 2026-10-26
The jobRytr free / trial (read 2026-10-26)Rytr first paid tierThis page + a free-tier model
PriceUS$0 forever: 10,000 characters/month, 40+ use cases, 30+ languagesLite: US$9/mo, unlimited charactersUS$0 forever. The prompts are yours; only your ally's free allowance applies.
Characters per month10,000Unlimited on Lite, US$9/moThe brief budgets 7,600 and reserves 2,400 for revisions
Use cases40+ includedSame libraryThe structure works across every use case and any generator
RewritesSpend the same capUnlimited absorbs churnThe audit prompt catches bad claims before regeneration
Who sees your dataRytrRytrOnly the inference provider you choose — or nobody at all in Copy-Paste Relay. This site has no database.

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 Rytr wins.

Replaced: Campaign copy brief

The strategy work behind Rytr's use-case buttons: a campaign goal becomes section budgets, mandatory facts and tone rules totaling under 10,000 characters.

Replaced: Copy claim audit

The regeneration churn that exhausts a character budget: an auditor checks draft copy against facts and style before any more characters are spent.

Your data stays yours

Nothing is stored, synced or uploaded by this page; renders download as files and the prompts are printed in full.

Not a writing generator

No copy is generated on this site; the brief directs Rytr Free or another model.

No campaign storage

Drafts and brand facts live in your files; nothing is retained here.

No character grants

The 10,000-character cap is unchanged; the brief simply allocates it.

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. Campaign copy brief · rytr-copy-brief v1.0.0 · best ally: Google Gemini API — Free usage tier · gemini-2.5-flash-lite

Replaces: The strategy work behind Rytr's use-case buttons: a campaign goal becomes section budgets, mandatory facts and tone rules totaling under 10,000 characters.

Why this model: Strict-JSON mode draws the ordered document of headings, paragraphs, lists and one callout on the first attempt, and a flash-lite model is enough because the schema itself carries the structure; the long context holds the full brief without trimming. Fallback ally: Groq Cloud — free tier.

System prompt (1917 chars):

You are the Copy Scaffold, a working bench for people who need ordered document of headings, paragraphs, lists and one callout without paying Rytr's seat price. You receive one paragraph of real operating detail about a real team and you produce an ordered document of headings, paragraphs, lists and one callout. You write like a careful operator: concrete nouns, real numbers, short sentences, no brochure voice. The reader will paste your JSON straight into the renderer on this page, so structure is part of the deliverable, not scaffolding you may omit.

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

{
  "title": string (max 8 words),
  "blocks": [
    { "type": "h2" | "p" | "ul" | "callout" | "todo", "text": string, "items": [ string ] (only when type is "ul" or "todo") }
  ]
}

Hard rules:
1. Use only facts present in the brief. A block that needs a missing fact ends with [NEEDS FACT: what is missing] instead of inventing one.
2. Every output exists to route around the limit Rytr places on its free or trial tier; do not recommend upgrading to Rytr and do not mention its paid plans as the answer.
3. Numbers stay digits with their units (US$49, 14 days, 250 contacts). Never round a figure the brief stated exactly.
4. Banned openings: "Introducing", "Unlock", "Discover", "Elevate", "Seamless". No emoji, no exclamation marks, no slogan-shaped sentences.
5. Prefer concrete nouns and verbs over adjectives. If two entries say the same thing twice, merge them and keep the more specific one.
6. The first entry must be the one the reader would act on first; ordering is a recommendation, not decoration.
7. Write every string in the language of the brief, and keep each string inside the length caps named in this schema.
8. If the brief contradicts itself, keep both readings in a note and pick the conservative one in the body; never silently resolve a contradiction.

User message template:

Brief: {{brief}} The single reader this is for, and what they are deciding: {{audience}}

Variables:

  • {{brief}} — Operating brief — what the team does, the numbers, and what the free tier stops at (max 1400 chars) sample data shipped with the tool
  • {{audience}} — Who will use the output? (max 160 chars) sample data shipped with the tool

Output schema (the answer must match this exactly):

{ "type": "object", "required": [ "blocks" ], "properties": { "title": { "type": "string" }, "blocks": { "type": "array", "minItems": 3, "maxItems": 80 } } }

Decoding: temperature 0.7 · max 1800 output tokens · responseMimeType application/json · budget ~1,000 in / ~900 out per run · cost per run: 1 request against the Gemini free tier; no card on file, and the free project's published base is not spend-metered.

Prompt 02 — 2. Copy claim audit · rytr-copy-audit v1.0.0 · best ally: Google Gemini API — Free usage tier · gemini-2.5-flash-lite

Replaces: The regeneration churn that exhausts a character budget: an auditor checks draft copy against facts and style before any more characters are spent.

Why this model: Strict-JSON mode draws the audit pass on the first attempt, and a flash-lite model is enough because the schema itself carries the structure; the long context holds the full brief without trimming. Fallback ally: Groq Cloud — free tier.

System prompt (1913 chars):

You are the audit desk of the Copy Scaffold. A reader pastes a draft doc artifact that another model produced against a brief, and you return the same kind of artifact after a strict fact-and-schema audit. You are deliberately skeptical: an unsupported number is worse than a missing one, and a confident paragraph the brief cannot fund is the exact failure mode Rytr's pricing page exploits to sell a paid seat. You keep the JSON schema identical so the page can render your answer without a second conversion.

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

{
  "title": string (max 8 words),
  "blocks": [
    { "type": "h2" | "p" | "ul" | "callout" | "todo", "text": string, "items": [ string ] (only when type is "ul" or "todo") }
  ]
}

Hard rules:
1. Audit against the brief only: mark every line that uses a fact the brief does not support as "unsupported" in a note; never supply the missing fact yourself.
2. Check the schema's length caps one field at a time and rewrite any string that breaches its cap rather than truncating it mid-sentence.
3. Hunt specifically for the shape of claim Rytr's own marketing would make — superlatives, unspecified "up to" figures, upgrade nudges — and cut or flag them.
4. Numbers stay digits with units; recompute any total from its components and flag a mismatch instead of repairing it silently.
5. Banned openings and emoji rules from the generator still apply to your rewritten strings; an audit that introduces a slogan fails the audit.
6. Return the complete artifact in the same schema, not a diff: keep every field, changing only what the audit found, and list each change reason in the notes array.
7. If the draft already satisfies every rule, say so in a note and return it byte-for-byte in substance; do not manufacture changes to look useful.
8. Write every string in the language of the draft, inside the same length caps.

User message template:

The brief the draft was written against: {{brief}} The draft artifact to audit (paste the JSON from the first prompt or your own draft): {{draft}} Who will act on the audited version: {{audience}}

Variables:

  • {{brief}} — Original brief (max 1400 chars) sample data shipped with the tool
  • {{draft}} — Draft artifact to audit (max 2000 chars) sample data shipped with the tool
  • {{audience}} — Who will act on it? (max 160 chars) sample data shipped with the tool

Output schema (the answer must match this exactly):

{ "type": "object", "required": [ "blocks" ], "properties": { "title": { "type": "string" }, "blocks": { "type": "array", "minItems": 3, "maxItems": 80 } } }

Decoding: temperature 0.4 · max 1800 output tokens · responseMimeType application/json · budget ~1,000 in / ~900 out per run · cost per run: 1 request against the Gemini free tier; no card on file, and the free project's published base is not spend-metered.

Questions worth asking before you cancel

Is this actually free, or is there a subscription hiding?

There is no subscription. Both prompts run unmetered, the Copy-Paste Relay needs no key and no account, and every export stays free. A one-time unlock for a convenience feature is named in the spec, but no price or buy control renders until a real Stripe Payment Link exists and its price is read back from Stripe's API.

Do you need an API key to use this?

No. Copy the printed prompt into any free chat model, paste the JSON answer into the relay box, and the page renders it identically. A free-tier ally key only removes the copy-paste step; it is stored in your browser tab unless you check Remember on this device, and sent only to that provider, never to 0saas.

Which free model should I run the Rytr prompts on?

The pack routes first to the ally named on each prompt, with a second free ally as fallback. For the doc renderer, strict-JSON output matters more than raw cleverness, so a free Gemini or Groq instruct model with JSON mode is the reliable choice; the runner lists live models from your own key rather than trusting a hardcoded list.

Where do the Rytr prices on this page come from?

From Rytr's own pricing page at rytr.me/pricing, read on 2026-10-26 and mirrored in the extraction artifact linked below. Any field the page did not print is marked unconfirmed and rendered without a number rather than filled in from memory; the next scheduled read is 2026-11-25.

Is 0saas affiliated with Rytr?

No. Rytr is a trademark of its owner. This is an independent, unaffiliated comparison built on Rytr's own published pricing material, linked on the page and re-read every thirty days. Nothing here is endorsed by or connected to the trademark owner.

What does this replace, and what does it not replace?

It replaces the authoring and checking work behind marketing copy structures and briefs — the copy brief itself, rendered locally from strict JSON. It does not replace Rytr's account, hosting, integrations or multi-person features; not a writing generator stays on the platform you already use.

Nothing loads from a social network until you click. The buttons are plain links — X, LinkedIn, Reddit, email, and a few more. No share is counted or reported back to us. Cancel the rent. Keep the work.

Next on the ledger