Three platforms, one wave: what it actually takes to own your distribution

How many places can you publish before the adapter layer falls apart?

Wave 1 answer: at least three, and the bottleneck is not code. It is account provisioning, and each platform has a completely different mental model for what “create an account” even means.

Here is what went live this week.

Telegraph is the simplest case because it is almost not a case at all. The API creates anonymous accounts and returns a token. No email, no captcha, no OAuth dance. Write a Markdown to Node converter, POST to createPage, done. Content is live. The tradeoff is that you are renting namespace from Telegram’s servers with no real identity claim. Fine for syndication, bad if you are building a canonical home.

prose.sh is the interesting one. It runs on SSH. You generate a keypair, register the public key, and publish via SCP. The adapter is effectively a file transfer with some path conventions. The result is arihantdeva.prose.sh, an actual URL you can point people at. The catch: SSH based publishing is outside the mental model of every HTTP first publish framework, so you have to build it from scratch rather than borrow a REST pattern. Worth it. The URL is clean and the platform is built by people who clearly care about text.

Matrix registered on an open homeserver (exarius.org, no captcha). Verified via whoami, created a room. Matrix is a protocol first and a platform second, which means reach is uncertain but exit options are real. You own the room. If the homeserver dies, you federate to another one. The tradeoff is that the audience discovery story is basically nothing right now.

Three platforms live. 362 tests passing. Track B is staged: Write.as, Buttondown, dev.to, Tumblr. Misskey hit a Cloudflare Turnstile wall on registration, which is the thing that stops automated provisioning cold. There is no good answer for Turnstile other than a self hosted instance or a human behind a keyboard. The plan doc for that one exists; the solution does not yet.

The Forem API (which powers dev.to) had a quiet tags format drift I caught in testing. The OpenAPI spec says comma separated string; the code was sending a list. That kind of thing does not surface until you actually hit the live API, which is the argument for running the adapter tests against real endpoints rather than mocks.

What I would do differently: ship Track B first. Telegraph is frictionless and prose.sh is technically satisfying, but neither has meaningful organic discovery. dev.to has an actual reader base for technical content. Starting Wave 1 with the platforms that have the hardest account provisioning problems while deferring the ones with the most distribution upside was the wrong sequencing. The correct call is to unblock distribution first, polish the long tail adapters later.

The broader pattern holds: if you want to own your distribution instead of renting it from one algorithm, you have to build the plumbing yourself. That plumbing is boring, it is full of format drift and auth edge cases, and nobody will notice it until it breaks. That is the job.

Write a comment
No comments yet.