External Publication
Visit Post

Continue reading on Unthread

dad (aka miguel) March 4, 2026
Source
Unthread I built a TwitLonger for Bluesky. Write as much as you want, it saves to your repo as a site.standard.document record, then posts a teaser to your feed with a link back. Why The 300 character limit is fine most of the time. Sometimes it's not. I didn't want to make a thread. Hence the name. The nerdy bit I'm a Laravel dev, so naturally I overthought this. Instead of a normal backend that stores your OAuth tokens and posts on your behalf, I went a different route: OAuth starts on the server (AT Protocol requires a confidential client), but after the callback, everything goes to the frontend. The backend stores nothing. All XRPC calls go through your PDS using service proxying. Your PDS verifies you, signs a JWT, and forwards it to Unthread. The backend just checks that JWT, no tokens, no sessions. Records get created client-side directly to your PDS. Basically the backend is a stateless bridge. Your tokens stay in your browser, your content stays in your repo. Standard.site Unthread uses Standard.site's site.standard.document lexicon: the growing standard for long-form content on AT Protocol. Other apps like Offprint, pckt.blog, and Leaflet can read your posts too. One detail: Unthread creates "loose documents" without a publication record. This is valid per the spec, the site field accepts a URL, not just an AT-URI. This being an MVP, we haven't implemented the validation portion of the Standard.site spec, nor have we created our content lexicon yet. Try it Still early. Minimal markdown editor with @mention autocomplete, multi-account support, drafts. Let me know what's broken or missing. @aka.dad

Discussion in the ATmosphere

Loading comments...