← Back to case studies Case Study ยท Product

Revisi

An LLM-powered brand voice auditor that scans a website and checks if your pages and articles still sound like your brand.

python llm fastapi
revisi.ai/report
Revisi project screenshot

Revisi came from a simple problem: once a website has enough product pages, landing pages and blog posts, it gets harder to tell whether the writing still sounds like the same brand. Revisi crawls a site, reviews each page against brand voice metrics, and turns that vague feeling into a page-by-page list of things to fix.

01 - The problem

Auditing brand voice by hand doesn't scale

Content and brand teams can feel when a site has drifted off-voice, but proving it is slow, subjective work. Reading tone page by page does not scale past a handful of URLs, and it rarely ends in a fix anyone can action.

The teams who most need a consistent voice, smaller companies without a dedicated brand editor, are exactly the ones who cannot spare days to read their own website like a copy editor.

02 - What I built

A per-page audit that ends in concrete edits

Revisi crawls the site, compares the voice against an uploaded brand voice file or an inferred voice, scores each page against a set of brand-voice metrics, and turns every gap into a specific rewrite. The output is a per-page report: what is working, what is off, and the edit to make.

03 - Walkthrough

From a pasted URL to a prioritised report

04 - Outcomes

What it delivers

~2 min

from a pasted URL to a full per-page audit

100%

of public pages crawled and scored, not a sample

1 line

paste a URL, no install or integration

Live

shipping in production at revisi.ai

05 - What I learned

What I'd carry forward

Cache the crawl

The biggest technical lesson was that crawling should not be treated as disposable work. Once a site has been crawled, the page list, content hashes and previous results should be reusable so re-audits are faster and cheaper.

Only re-score what changed

A second audit should not start from zero. If most pages are unchanged, the system should detect that and only send changed pages back through the scoring layer.

Reports should be shareable

Server-rendered reports made the output easier to use because the result becomes a link, not something trapped inside a one-off session.

Bring your own voice

Uploaded brand voice files make the review more useful than relying on a generic idea of tone. The next layer is making those rules easier to edit, test and reuse.

Built with

A small, async Python stack: FastAPI serving the crawl-and-score pipeline, the Anthropic API generating the recommendations layer, and server-rendered reports so a result is a shareable link rather than a session.

python fastapi anthropic api async crawler server-rendered reports

Keep exploring

See the rest of the case studies

← Back to case studies