Skip to content
Early access is open
Repic
LoginJoin early access
Editorial policy

Every rule on this page is enforced by a script, not a promise.

Editorial policies usually say a site fact-checks its work and updates it regularly. Nothing about that is checkable, so nothing about it is worth much. What follows is the set of rules this site actually holds itself to, and beside each one, the file that will not let the build pass without it. If you do not believe a rule, the enforcement is named and you can go and read it.

Written and maintained by Saffi and Javeria, the two people building Repic. Both have profiles on the team page. There is no third-party content on this site and no byline that is not one of us.

Comparisons and alternatives

A comparison page must name at least two things the other tool does better.

A comparison where the competitor wins at nothing is an advertisement wearing a comparison’s clothes, and readers can tell within one screen.

Enforced by lib/marketing/competitors.js → validateCompetitors()

An alternatives page must list at least four genuine alternatives that are not Repic, and every one of them carries a real limitation — including Repic’s.

The category norm is a list of one: the publisher, plus five options written to lose. A list where only the competitors have drawbacks is not a list, it is a funnel.

Enforced by lib/marketing/alternatives.js → validateAlternatives()

Every alternatives page carries a "stay where you are" case, written to be persuasive.

If no reader should keep the tool they have, the page is not advice. This is the one rule most likely to cost a signup, which is why it is mandatory rather than encouraged.

Enforced by lib/marketing/alternatives.js → validateAlternatives()

No pricing figures for anyone, including Repic.

A price copied from someone else’s site is wrong within a quarter and there is no way for a reader to know when. Pages describe pricing MODELS and link out for numbers.

Enforced by lib/marketing/alternatives.js → validateAlternatives()

A claim about another company that we could not source reads "varies / check their site" rather than being guessed or omitted.

An omitted row looks like a missing feature. A guessed row is a false statement about a real business.

Enforced by lib/marketing/competitors.js

Generated example pages

Every brand kit and persona shown on an example page is real output from the engine the product ships, generated from the brief printed beside it.

A designed-by-hand example on a page that says "this is what the engine makes" is the single most tempting lie available to a product site, and it is unfalsifiable by the reader. The engine is deterministic, so any example on the site can be reproduced from its own printed brief.

Enforced by lib/marketing/brandKitIdeas.js, lib/marketing/professions.js

A generated field is only rendered if it is genuinely distinct across the family, and only if the page can display it truthfully.

This one was written after we broke it. Twenty brand-kit pages shipped rendering a type specimen in a font the public site does not load, so eleven pages showed Times labelled as something else. Captured output is honest data and still renders a false claim if the page asserts something the rendering does not support.

Enforced by pages/marketing/brandKitIdeas/BrandKitIdeaTemplate.jsx (MARKETING_FACES)

No two pages in a family may share more than 34% of the significant words in their differentiating section.

Programmatic pages fail when they could swap bodies without a reader noticing. This is measured pairwise rather than reviewed, because review is exactly what misses it.

Enforced by lib/marketing/brandKitIdeas.js → MAX_PAIR_OVERLAP

Every programmatic family ships with a written pruning rule before its first page.

Pages that never earn a visit are not neutral. They dilute the site and they cost crawl budget the pages that do work would rather have.

Enforced by the registry header of each family; see the rule in full below

Claims about the product

Marketing copy may not describe a gate the product does not enforce.

The binding version of this is the biometric policy, which says plainly that it would "rather tell you exactly where this stands than imply a gate that is not there yet". Marketing is held to the policy, never the other way round.

Enforced by pages/marketing/Biometric.jsx is the authority; marketing copy follows it

A number that appears in copy must match the number in the code that produces it.

Counts drift when the engine gains a field and the copy does not. A figure a reader could check and find wrong costs more trust than the figure ever earned.

Enforced by seo-audit/decisions/branch-fieldcount.mjs (residual scan)

When a page goes stale

A date on a page is a claim about freshness, and a freshness claim that can rot silently is worse than no date at all. So the review windows below are enforced: once a page passes its window, the build fails until somebody re-reads the claims. Bumping the date without re-reading is the failure this is designed to make inconvenient.

Pages that describe another company · re-read every 120 days

These pages state what another company does. That is theirs to change without notice, so the claim needs re-reading against their live site, not just re-dating.

Pages that describe only our own work · re-read every 365 days

Nothing here describes a third party, so the content does not decay. What decays is whether the page earns its place — that is the pruning rule, checked yearly.

The current review log

Generated from the same file the build gate reads, so this table cannot disagree with what is enforced. 20 pages carry claims about another company; 4 families are first-party.

Last review date for every page that carries a dated claim.
PageLast reviewedByWindow
/alternatives/canva16 August 2026Saffi120 days
/alternatives/contentdrips16 August 2026Saffi120 days
/alternatives/jasper16 August 2026Saffi120 days
/alternatives/postnitro16 August 2026Saffi120 days
/alternatives/predis-ai16 August 2026Saffi120 days
/alternatives/taplio16 August 2026Saffi120 days
/brand-kit-ideas16 August 2026Saffi365 days
/compare/aicarousels16 August 2026Saffi120 days
/compare/blaze25 July 2026Saffi120 days
/compare/buffer26 July 2026Saffi120 days
/compare/canva26 July 2026Saffi120 days
/compare/contentdrips25 July 2026Saffi120 days
/compare/jasper26 July 2026Saffi120 days
/compare/kleo16 August 2026Saffi120 days
/compare/looka16 August 2026Saffi120 days
/compare/postnitro25 July 2026Saffi120 days
/compare/predis-ai26 July 2026Saffi120 days
/compare/selfbrand16 August 2026Saffi120 days
/compare/simplified16 August 2026Saffi120 days
/compare/supergrow16 August 2026Saffi120 days
/compare/taplio25 July 2026Saffi120 days
/glossary16 August 2026Saffi365 days
/how-to-announce17 August 2026Saffi365 days
/personal-branding16 August 2026Saffi365 days

Pruning: when a page gets deleted

Pages generated from a template are useful right up until they are not, and a family that only ever grows becomes dead weight on the pages that do work. So each programmatic family ships with this rule before its first page, and the rule is in the registry header where the pages are defined.

Measured: Search Console impressions for the page’s own URL, plus referring domains.

Checked: 90 days after the URL is first reported indexed, then quarterly.

Removed when: over the trailing 90 days the page has both fewer than 50 impressions and zero referring domains.

How: the record is deleted. Route, sitemap entry, hub card and internal links all derive from it and disappear together, and the URL then serves 410 rather than 404, because a removal is a statement.

Exception: a page linked from a live campaign or cited by somebody else is held one further quarter, with the reason recorded in the registry header.

Evidence, and why there are no case studies

Repic opened in early access in 2026. We do not have the kind of customer history a case study is made of, so we have not published any. Writing one anyway is the easiest thing on this list to fake and the hardest thing for a reader to check, which is exactly why we would rather say this than fill the gap.

When the first one is published it will meet this standard, and if it cannot, it will not be published:

A named subject who has read it. A real person or company, identified, who has seen the finished page before it went up. No composites, no “a founder we work with”, no anonymised customer standing in for several.

Numbers with a source and a window. Where they came from and over what period. A figure with no denominator and no date is decoration.

What did not work. Every real engagement has one. A case study without it is a testimonial with a longer word count.

The same review clock as everything else. Named reviewer, dated, and re-read on the schedule above, because a result from two years ago described in the present tense is a stale claim.

Until then, the evidence on this site is of one kind, and it is stated as such: the brand kits and personas on the example pages are genuine output from the engine the product ships, generated from the brief printed beside each one, and the engine is deterministic so any of them can be reproduced. That is a claim about our software, which we can prove. It is not a claim about a customer, which we currently cannot.

Corrections

If something here is wrong, tell us and we will fix it and say what changed. A correction to a factual claim about another company is made on the page itself rather than quietly in a diff, and the review date moves only when the claim has actually been re-read.

Write to us from the contact page. Comparison and alternatives pages are the ones most worth challenging, and the ones we most want to hear about.