A couple of years ago, I started serving my blog posts as plain text. Add .txt to the end of any URl and get a deliciously lo-fi, UTF-8, mono[chrome|space] alternative.
Here's this post in plain text - https://shkspr.mobi/blog/2025/12/a-small-collection-of-text-only-websites.txt
Obviously a webpage without links is like a fish without a bicycle, but the joy of the web is that there are no gatekeepers. People can try new concepts and, if enough people join in, it becomes normal. I'm not saying the plain-text is the best web experience. But it is an experience. Perfect if you like your browsing fast, simple, and readable. There are no cookie banners, pop-ups, permission prompts, autoplaying videos, or garish colour schemes.
I'm certainly not the first person to do this, so I thought it might be fun to gather a list of websites which you browse in text-only mode. If you know of any more - including your own site - please drop a comment in the box!
-
Terence Eden's blog
- add
.txtto any URl. -
Daring Fireball
- add
.textto any URl. -
Zach Flowers
- replace
.htmlwith.txt. -
Fabien Benetou's PIM
- add
?action=sourceto any URl. -
M0YNG
- add
.txtto any URl. -
Gwern
- add
.mdto any URl or send an HTTP Accept for Markdown. - Dan Q's textplain.blog - the entire blog is plain text!
- Matt Hobbs - there is a feed of plaintext which allows you to read recent posts.
-
Bananas Playground
- add
index.txtto any post. Also works withindex.md. -
Jorvik Systems
- change
.htmlto.mdfor Markdown. -
Max Glenister's blog
- add
.txtto any post's URl.
If you'd like to add a site, please get in touch. The rules are simple - content which has the MIME type of text/plain. No HTML, no multimedia, no RTF, no XML, no ANSI colour escape sequences.
Emoji are fine though; emoji are cool.
13 thoughts on “A small collection of text-only websites”
@Edent
Oh I love that !
A new exercice ! Absolutely needed on my website !
I will probably reuse my gemini-capsule output code for that !
| Reply to original comment on indieweb.social
Paul Kelly
I have a bit of a tangential question.
When I view this post in my newsreader, I see an image of a cat, but when I follow the link to view the entry on your website, I see no cat. Where is he or she hiding?
That's the thing about cats - they're contrariwise little things.
I did this a while ago
danny.is/notes/adding...
| Reply to original comment on bsky.app
I have a similar ability, by adding
.mdto my blog URLs. Most of my blog posts contain some HTML, so that is still scattered in the plain-text content – https://www.trovster.com/blog/2025/12/spotify-wrapped.mdJust added this to my blog, I love this concept by the way. Was pretty easy to do creating a Jekyll plugin.
Original: https://kinduff.com/2025/08/30/the-piano-melody Txt version: https://kinduff.com/2025/08/30/the-piano-melody.txt
If Markdown (text/markdown) mimetype is allowed, my website is offered in XHTML and Markdown - just substitute the .xhtml in the URLs with .md and get the “source code” view - aligned to 80 character width on a best-effort basis because this is actually how I type in the content for my site 🙂
I used to use an own plain text data format which was “nicer” to read in the plain text source code (https://masysma.net/32/d5man_legacy.xhtml) but it was too difficult to maintain hence I switched to a Markdown variant understood by pandoc...
A small collection of text-only websites | Hacker News
| Reply to original comment on
Ah neat, thanks for listing my Website!
To clarify for my PIM https://fabien.benetou.fr the engine behind it is PmWiki. It means all PmWiki instances that do not block this action (and I bet it's most) can be browsed this way. I took the occasion to add mine to https://www.pmwiki.org/wiki/PmWiki/PmWikiUsers where you can find a lot more.
So on "a webpage without links is like a fish without a bicycle" and the numerous HN comments on the topic, that highlights that's hypertext is broader than the Web. It is in fact initially text itself linking to more text. One could in terminal curl any of those Websites, parse the specific format for internal links (e.g. [[Group/Page|name]] on PmWiki syntax) then transform to a URL proper. For my own instance it'd be curl https://fabien.benetou.fr/Content/SwappingPartsOfTheRestrictionStack?action=source | sed "s/\[\[/[[https:\/\/fabien.benetou.fr\//g" | sed "s/]]/?action=source]]/g" and I can then click on URLs via Konsole. I could imagine then forcing it to open again via Konsole (rather than my default browser) and browse the entire... oh well, I'm now re-creating a (extremely minimalist) browser 😉
FWIW I do believe it's quite beautiful to attempt at being genuinely responsive, namely going "crazy" with e.g. WebXR or datavizs per page (e.g. your Interactive Relationship Graph, I also have something similar using embedded Observable notebook with D3) but also "just" normal 2D non interactive Web all the way to plain text. The audience should be able to browse the way they prefer.
@blog
Love this idea...
| Reply to original comment on oldbytes.space
Terence Eden’s maintaining a list of websites that are presented as, or are wholly or partially available via, plain text. Obviously my own text/plain blog is among them, and is as far as I’m aware the only one to be entirely presented as text/plain.
| Reply to original comment on danq.me
https://blog.omgmog.net/post/moving-to-github-actions-and-adding-txt-posts/
As a result of reading https://shkspr.mobi/blog/2025/12/a-small-collection-of-text-only-websites/ by @Edent I've added .txt format to my posts on my blog.
| Reply to original comment on
Thank you for the inspiration: https://perrotta.dev/2026/01/.txt-posts/. This is an example using Hugo.
(Apologies if this becomes a double comment. Initially I tried to comment as a webmention but it didn’t seem to work.)
More comments on Mastodon.