{"kind":"doc","doc":{"title":"Pure Internet: no-html","section":{"slug":"posts","name":"Posts"},"rkey":"1740682611811-pure-internet-no-html","cid":"bafkreiawsqsw5ggknse6lnnzt33cs6df4jbxyxmu2gkkvnwe4jsknal65m","renderKey":"bafkreiawsqsw5ggknse6lnnzt33cs6df4jbxyxmu2gkkvnwe4jsknal65m@2025-02-27T10:56:00Z@2026-07-16T14:59:43Z@Posts|","href":"/posts/1740682611811-pure-internet-no-html","publishedAt":"2025-02-27T10:56:00Z","updatedAt":"2026-07-16T14:59:43Z","tags":["web-development","pure-internet","alternative-hosting","bluesky","at-protocol","decentralized-web","test"],"description":"A plain Markdown file hosted on Bluesky's blob storage and rendered directly by the browser.","readingMinutes":1,"markdown":"[no-html.club](https://no-html.club/index.txt) asked whether a website needed HTML, CSS, or JavaScript. The answer was a Markdown file.\n\nI uploaded one to Bluesky's blob storage. The `text/plain` MIME type appeared to be blocked, while `text/markdown` worked. Inspecting the source shows the same text the browser renders, with no document hiding underneath it.\n\n![](blob://bafkreiczsilizgojoawunzo5rj3l526qaew2lpthdknqg56hmcp6a3rz7i)\n\nNon-standard hosting keeps exposing useful corners of the web. [Orbiter](https://orbiter.host/) builds on the Coinbase [Base L2](https://www.base.org/) and [Pinata](https://www.pinata.cloud/), while [Cloudflare Tunnels](https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/) and [ngrok](https://ngrok.com/) can turn a local device into a public origin.\n\nThe upload process is the same as [hosting HTML on Bluesky's AT Protocol](https://iammatthias.com/content/posts/1732585567703-pure-internet-bluesky/), with `text/markdown` in place of `text/html`.\n\nIt has no practical purpose. That is partly why I like it. One file, one MIME type, no build process, still a page.\n\n## Other Pure Internet experiments\n\n- [Feral Pi](/posts/1733357455673-pure-internet-feral): a solar-powered Raspberry Pi serving through a Cloudflare Tunnel.\n- [NFC](/posts/1731984900000-pure-internet-nfc): base64-encoded content carried on an NFC tag and rendered in the browser.\n- [Bluesky](/posts/1732585567703-pure-internet-bluesky): HTML stored as an AT Protocol blob.","media":{"bafkreiczsilizgojoawunzo5rj3l526qaew2lpthdknqg56hmcp6a3rz7i":{"mime":"image/png","width":5344,"height":3054,"dominantColor":"#cececf","blurhash":"LUQcn{M{D%IURjWBfQRj00ayofWB","thumbCid":null}},"series":{},"related":[{"title":"Pure Internet: Bluesky","href":"/posts/1732585567703-pure-internet-bluesky","section":"posts","description":"Static-site hosting on Bluesky's AT Protocol using content-addressed blob storage.","publishedAt":"2024-11-25T17:46:00Z"},{"title":"Pure Internet","href":"/posts/1731955749292-pure-internet","section":"posts","description":"Pure Internet is a running collection of small experiments in publishing with fewer layers.","publishedAt":"2024-11-18T10:49:00Z"},{"title":"Notes on using a PDS as Content Infrastructure","href":"/posts/1767505149657-notes-on-using-a-pds-as-content-infrastructure","section":"posts","description":"Content addressing with normal web requests, identity baked in, delivery over boring HTTPS.","publishedAt":"2026-01-03T21:39:00Z"},{"title":"orbz dot com","href":"/posts/1736537615834-orbz-dot-com","section":"posts","description":"orbz.fun reads Orbiter's onchain site registry and turns it into a StumbleUpon-style discovery tool.","publishedAt":"2025-01-10T11:33:00Z"},{"title":"Pure Internet: Feral","href":"/posts/1733357455673-pure-internet-feral","section":"posts","description":"A solar-powered Raspberry Pi runs a small Hono app through a Cloudflare Tunnel and disappears when the battery drains.","publishedAt":"2024-12-04T16:10:00Z"},{"title":"Pure Internet: NFC","href":"/posts/1731984900000-pure-internet-nfc","section":"posts","description":"HTML, CSS & minimal JS combined with NFC tech to create serverless web experiences.","publishedAt":"2024-11-18T10:55:00Z"}],"prev":{"title":"Scalability → Buildability","href":"/posts/1739212426700-scalability-buildability"},"next":{"title":"Code and Cloth","href":"/posts/1743724413087-code-and-cloth"}}}