Longform.social updates

mAT terenzio May 12, 2026
Source

So many updates over the weekend I've lost count. Improved standard.site support, Leaflet, WhiteWind, and other lexicons.

It's coming along.

The Reader

I added reader views with so-so block support, markdown rendering, for those posts, even one's that deviate from the spec. We support index multiple document formats natively: Leaflet's block-based structure, WhiteWind's markdown entries, and other site.standard.document formats. If we can't render something yet, we tell you and link to the original. (Note, I made a judgement call and we only display posts with > 100 words. How do others handle the thousands and thousands of non-native aggregator and forum links coming over the firehose? Let me know @librenews.bsky.social )

Each article shows the author's profile, a publication badge if it belongs to one, and the publish date. You can like or repost directly from the reader. There's also a "View Source" link if you're curious about the raw AT Protocol record behind the article. I did that to help me debug but I think I'll leave it.

Below the article, we pull in discussion from the ATmosphere — any Bluesky posts that reference the article URL show up as comments, with their own like and repost counts.

And now there's a Related Posts section in the right column powered by OpenSearch's more_like_this query against our full article index. Each related post shows the author's avatar so you can see it's from different writers across the network.

The Feed

The home page is a three-column layout. The center column shows a chronological feed of long-form articles from across the AT Protocol. We filter for English-language content over 100 words — this keeps out stub records but this needs work and customization.

If you're signed in, you get a Following tab. Follow a publication from any article card and its new posts show up there. The follow relationship is stored as a site.standard.graph.subscription record on your own PDS — it's your data.

The right sidebar now shows Popular posts, ranked by engagement (likes and reposts) with exponential time decay. A post from yesterday with 3 likes ranks higher than a week-old post with the same count. It's a simple formula but it keeps things fresh.

Writing & Collaboration

Longform isn't just a reader. You can write here too. The editor uses Yjs for real-time collaborative editing — multiple people can work on the same document simultaneously with conflict-free merging.

There's an ACL system backing it. When you create a document, you own it. You can share it with other AT Protocol users by their DID or handle, granting either read or write permission. There's also a wildcard (*) permission for public access. The permissions are checked on every WebSocket connection and HTTP request, so it's not just UI-level gating.

When you're ready, publishing writes the document as a site.standard.document record to your PDS. It's yours. (Did I mention that already? I't obvious in this community but not the rest of the world. ; ) If you delete it from Longform, it's gone from your PDS too.

Search

The search bar in the header hits our OpenSearch index, which has the full text of every indexed article with multi-language analyzers (English, Spanish, French, German, CJK). You can search by content, not just titles. Results show highlighted snippets so you can find what you're actually looking for.

What's Under the Hood

The whole thing runs on a single VPS. Hono for the web server, PostgreSQL for state, OpenSearch for full-text search and recommendations, Redis for caching, PM2 for process management. A Jetstream consumer watches the AT Protocol firehose for new documents and indexes them in near real-time.

There's no React. No client-side framework. It's server-rendered JSX with Hono's built-in JSX support. Pages load fast because there's nothing to hydrate.

What's Next

Honestly, I'm not sure yet. The "For You" tab is gone for now because I didn't want to ship something half-baked. There's groundwork laid for topic clustering, and the OpenSearch index could support semantic search if we add embeddings. The collaborative editor could grow into something more substantial, or another product itself.

But for now, it reads well, it writes well, and it's built on open protocols. That feels like enough to keep me going for a bit more.

Longform is open source and runs at longform.social. Sign in with your Bluesky AtProto account to start reading or writing.

Discussion in the ATmosphere

Loading comments...