Every page here is also plain text.

We turn documents into clean plain text for a living. It would be embarrassing to make a machine parse 90 KB of HTML full of widgets just to read about that. So this page is plain text too.

the convention

Append .md to any path.

Every rendered page has a plain-text twin at the same path plus .md. There's no separate host, no API key, no rate limit. It's a static file served from the same CDN as the HTML.

$ curl https://txtfetch.com/pricing.md
> Source: https://txtfetch.com/pricing
> Plain-text twin — every page on txtfetch.com has one. https://txtfetch.com/text

---

# Priced per document, not per surprise.

No per-page arithmetic, no per-megabyte fine print — Hobby is free, forever.
...

The two lines up top name the canonical source URL and point back here. Everything after the rule is the page's own content. It's converted straight from the same HTML a browser gets.

the whole site in one file

Two files if a whole site is easier than eighty.

what's in the markdown

What survives the conversion, and what doesn't.

The markdown keeps headings, GFM tables, and fenced code blocks. It labels code blocks with the language, where we know it. It also keeps links, always absolute and never root-relative. This way a twin reads correctly on its own, with no base URL to resolve. Some things don't survive: navigation chrome, terminal animations, and anything that needs JavaScript to run. Examples include a drop zone, a live calculator, and a tabbed code switcher. Those get replaced with a one-line note naming the tool and linking to the real thing, instead of dead markup or silence.

why we bother

Agents and answer engines read our docs too.

Developer tools increasingly get found through LLM answer engines and coding agents, not just search results. These tools read markdown far more reliably than they read a page built for a browser. txtfetch sells clean plain text extracted from documents. Serving our own site the same way is the same product, turned on itself.

faq

Do I need an API key to read the plain-text twins?
No. Every .md twin, llms.txt, and llms-full.txt is a static file served from the same CDN as the HTML. Curl them like any other URL. There's no auth and no rate limit.
How current is a twin?
As current as the HTML it's generated from. Twins are rebuilt from the live page content on every deploy. They are not hand-maintained, so they can't drift out of sync the way a hand-typed llms.txt used to.
What happens to interactive tools like the PDF checker or the chunk previewer?
Those tools run client-side in your browser. They have no plain-text equivalent. The twin replaces each one with a one-line note that names the tool and links to it. This avoids leaving blank space where a widget used to be.
Why not just serve Markdown for every request instead of HTML?
Most visitors are people using a browser, not agents. HTML gets the styling, the interactive tools, and the navigation. The .md twin is an addition for readers who want the content without any of that. It's not a replacement.

Stop parsing. Start shipping.

Create an account and get an API key in minutes. The free Hobby plan needs no card.

Get started →