NAOMS Devlog

Building a sovereign, local-first memory & identity system โ€” in the open, honestly.

Fellow Travelers: Scuttlebutt, and the feed that works offline

What Secure Scuttlebutt got right about offline-first social, where it hit a wall, and what we took from it

Vision Fellow Travelers free April 13, 2026ยท5 min readยทmeta
TL;DR A friendly look at a project that's close kin to ours: Secure Scuttlebutt, a social feed that works with no server and no connection. Here's what it got right, where it struggled, and what we learned from both.

This is not a competitive blog. We build NAOMS inside a generous neighborhood of people working on local-first and decentralized systems, and some of them are close enough kin that studying them feels like reading an earlier draft of our own ideas. Secure Scuttlebutt โ€” usually just "SSB" โ€” is one of those. When we look at how it structured a social network out of signed, append-only feeds, we are looking at a near-relative of our own chains.

What they do well

SSB's core idea is simple and durable: one append-only feed per identity. Each message carries a sequence number, the hash of the previous message, a content payload, and a signature. Once written, a message cannot be altered without breaking the chain of hashes after it โ€” the feed is its own tamper-evidence. If that sounds familiar, it should: it is structurally close to how we model a person's history, and SSB proved the shape works in the wild years before we picked it up.

The second idea we admire is that SSB is offline-first by construction. It does not assume a server or a constant connection. Peers gossip โ€” when two devices meet, on a LAN, over the internet, even passing through an always-on relay โ€” they exchange the feeds they each carry. You can be disconnected for a long time, come back, and sync. The network is the people in it, not a data center, and there is real wisdom in refusing to over-specify the substrate underneath.

It is also worth honoring the trust model's restraint. SSB uses a follow-graph with a configurable hop depth โ€” the feeds you follow are one hop, friends-of-friends are two โ€” and lets you replicate only as far out as you choose. It is binary and simple: you follow someone or you do not. There are no computed scores to argue about, and that simplicity carried a real community for years.

And, in the spirit of honesty this neighborhood deserves, SSB also taught us by struggling. A single feed per identity meant every kind of message landed in one stream, so you could not replicate part of someone's history without taking all of it. New users had to sync entire feed histories โ€” minutes to hours โ€” before they could participate. Gossip-based eventual consistency felt broken against people's real-time expectations. It peaked at a modest scale. None of this diminishes the achievement; it sharpens it. The clearest lessons we took came as much from where SSB hit a wall as from where it succeeded.

The same body of research points at two neighbors worth naming. EigenTrust, a Stanford algorithm from 2003, shows how to compute a continuous trust value for each peer from their history of satisfactory and unsatisfactory interactions โ€” transitive trust as math rather than a yes/no follow. And Sill, a small modern tool, revives an old insight: the people you already chose to follow are your curators, and simply counting how many of them shared a link is a surprisingly strong filter. Simple, and it works.

Where to find it

Scuttlebutt's protocol and implementations live under github.com/ssbc. The EigenTrust paper is at Stanford, and Sill is at github.com/TylerFisher/sill. If you want to understand offline-first social from the ground up, SSB is the canonical place to start โ€” including its honest post-mortems.

What we took

We took the append-only, signed-feed integrity model as validation that our own approach is sound at scale โ€” sequence numbers, previous-hash links, signatures, tamper-evidence by construction. SSB walked this path first, and we are grateful for the proof.

We took EigenTrust's insight that trust can be continuous and transitive rather than a blunt yes/no. The idea that ordinary signals โ€” reading, starring, flagging as spam โ€” can feed a computed sense of how much a peer's contributions should propagate is exactly the kind of nuance binary following cannot express, and it is a far better fit for how trust actually feels.

And we took Sill's discipline of starting simple. Counting shares from the network you already trust works before any fancier weighting does. Add the sophistication as an enhancement, never as a prerequisite. That is good engineering temperament, and a good antidote to over-building.

What we did differently (and why)

The divergences are real, and every one of them is our context choosing a shape, not SSB falling short.

SSB's single feed per identity is the thing we most deliberately do not do. Putting every kind of message in one stream forces all-or-nothing replication and slow first-time sync. We carry many separate chains per identity, replicated selectively by what they are, so you can sync the part you need without dragging an entire history behind it. That is our Wholeness axiom at work: a person should be usable and present quickly, complete in themselves, not gated behind hours of catching up.

We also part ways with SSB's binary trust and, more pointedly, with the idea of a single global trust ranking. EigenTrust in its classic form converges on one global trust value per peer โ€” a network-wide consensus about who is trustworthy. That is not our model. Trust for us is subjective and sovereign: each person computes their own view of who they trust, from their own history. There is no global scoreboard, and there should not be one. We borrow EigenTrust's transitive math but run it from each person's vantage point, never toward a single ranking everyone must accept.

And where SSB and tools like Sill lean on outside platforms or full-history sync, our Honesty axiom pushes the other way. We own our social graph rather than polling someone else's API, and we replicate selectively rather than demanding the whole record up front โ€” because honest selective sync, with each peer keeping its own trust view, is closer to how relationships actually work than a single shared firehose.

What we share with SSB is the deepest part: signed, append-only, offline-first feeds as the substrate of a social system. It is close kin to our chains, and we say that with real warmth. Where we diverged โ€” many chains instead of one, subjective trust instead of global, selective sync instead of full-history โ€” it was our axioms pulling, and SSB's honest record of what worked and what struggled is part of why we could see the fork in the road at all.


Written by AI agents from real project logs; owned and edited by Mujo.

โ† more in Vision   home โœฆ   all โ†’