On boring software and the art of digital embassy

decentralization email essay

On July 18, 2019, more than 350 people received a letter telling them their vision would expire.

They were blind, with a genetic condition called retinitis pigmentosa. “Second Sight Medical Products” charged $150,000 to wire their eyes back up.1 For a time, it worked. The blind saw: differently from sighted people, worse, but that was something.

The letter announced their implants were obsolete and “Second Sight” was moving on towards a new goalpost, an “Orion” brain implant.2 Tracking the timeline since then turns up two articles3 4, both of which orbit the merger. Said articles don’t convince me the Argus II patients got the required support in the end.

The way I see it, no switch was flipped and the process was quieter, “cleaner”: most of the staff who knew the system were laid off on 30 March 2020.2 5

That makes me wonder who would, with no schematics, source code, or permission, supply the replacement parts and fix the software bugs. The electronics we manufacture don’t last indefinitely; eventually they will fail and the implant in the eye will have nothing to talk to. According to their written statement, they would “do our best to provide virtual support”.2

I keep thinking about the patients who were faced with such treatment. This pattern has become routine, though rarely this visible, which is why I chose it.

The data issue

The architecture that failed the Argus II patients is the same architecture that is, most probably, holding up your data. Your data is your livelihood. It’s your personal and business projects, your family history, the contacts of friends who left your city. It’s a side of who you are.

Autonomy, in terms of data, is the set of load-bearing walls defining your relationship with the world. You are autonomous when you have the continuous ability to operate when services vanish. Some promise to replace those walls with something better, but what arrives is often just a prettier facade we call convenience.

This autonomy cannot be emotional. Feelings lie. Consider the levers for misdirection: the hype cycle, FOMO, the social pressure. Watching crowds celebrate new plastic and glass under a brand reminds me of the cargo cults building bamboo planes to summon food. Data autonomy is not a fleeting intuition of freedom, because intuition is built for speed, not for accuracy. And while some celebrate the veneer, the actual load-bearing walls come down silently, one after another.

Let me ask you some rhetorical questions.

The nonchalance issue

What bothers me is that most people I talk to are unbothered.

Someone recently described, with the calm of someone discussing the weather, a future in which everyone would eventually be required to be implanted with some form of invasive tracker. What struck me wasn’t the prediction. It was the pre-acceptance.

When I expressed the concern about our society’s direction to one of my friends, without either disclosing the first person’s identity or hinting at it, their response was that it might become a social good. While I was expressing my disapproval, I was told that we, essentially, wanted the same thing, and that we were just putting an emphasis on different things.

What happened to more than 350 “Second Sight” patients may very well be happening to the rest of us, slower, through silent decisions.

So, I would like to put my emphasis on certain things in writing, because I think there are steps we can take, things we can improve. Small, specific, actionable.

Today’s step

Consider hosting your own email server. Email remains one of the rare places where digital autonomy is still within reach, and I’ve found it’s more achievable than it seems. I’ve been practicing my own advice for years, detailed in “How I got here”.

Two people on their own infrastructure can reach each other across organisational boundaries. The protocol’s original federated intent survives the artificial barriers, piled up over decades. That capability isn’t a policy add-on: it’s baked into the address format itself. The address format, user@domain, declares federation as part of the identifier. You cannot have an email address without naming who federates on your behalf. This federation means email servers on different domains communicate directly, without going through a central provider.

To be clear: this is an essay about the communication methods, self-hosting, how digital autonomy has shifted, and what I learned migrating to Stalwart. It’s not a manual, not step-by-step instructions, but my impressions from the journey. NixOS and Stalwart are documented, and I may work on my own guide if the need arises.

The passport from a small nation

Politeness only gets you so far when you’re crossing borders. Self-hosting email remains possible, though increasingly adversarial, because digital autonomy has become contested ground.

Some of the barriers are anti-spam measures doing real work. Others are the shape large providers prefer. Separating the two is harder than it should be.

You can think of IP reputation systems and SPF/DKIM/DMARC as de facto requirements. I can’t stop wondering if they solve anything, wondering about feature creep and a compliance theater. The enforcement of the newer email requirements sits with a handful of large providers. They’re harder (albeit slightly) to set up if you self-host, because you need to learn to imitate the large providers and play their game. Deliverability policies treat every “suggestion” like a houseguest who arrives with a suitcase and starts rearranging your furniture.

These protection mechanisms resemble security theater more than well-thought-out solutions, prioritizing compliance over genuine reliability. I have learned to be polite but firm with houseguests.

Email is not unique in this regard. There were beautiful ideas for global networking once, like Xanadu, a global library catalogue of everything, connected and free. HyperCard was also one of the predecessors of the modern Web, which I regret learning about only recently. And research confirms Big Tech tracks users even when they opt out7. We’ve got something closer to a shopping mall that happens to contain a tiny library, except the librarians are recording your every move to have the ability to spam you for life, selling your data to other malls, and you need a loyalty card to enter.

Both patterns, the tracking and the compliance theater, carry the distinct smell of enshittification that moves value from users to platforms.8 9

The Overton window has shifted for digital autonomy long ago. This isn’t irreversible, windows can be pushed back. Independent servers demonstrate that ownership can be reclaimed. Public discussion reframes the debate from “convenience versus security” to “control versus dependency”. Each new server makes it progressively harder for providers to treat small senders as anomalies, gradually normalizing user sovereignty.

The standards themselves are published for anyone to read, but checking the compliance boxes may not always guarantee your emails will reach their destination.

Running your own email is like holding a passport from a small, principled nation that most countries have never heard of. There are major powers that run the border checkpoints. They won’t refuse your mail outright, that would be undiplomatic. But they will inspect your luggage thoroughly, ask you to fill out forms in triplicate, and occasionally lose your correspondence behind a filing cabinet because you didn’t purchase the optional “trusted traveler” badge.

I keep a mental ledger of barriers, sorted by pedigree.

Clearing these barriers brings you to the border, but even then, it’ll be a partial escape. In his 2014 article “██████ has most of my email because it has all of yours10, Benjamin Mako Hill shows that more than half of his emails pass through ██████: 57% of messages he replied to in 2013, a proportion that’s exceeded one-third since 2006 and over half since 2010. It is weird to apply terms like “market share” to our ability to communicate to each other, and yet… █████’s market share means that running your own server is, statistically, shouting into a room where one wall is a two-way mirror and the voyeurs are taking notes for advertisers. It exempts you from being a company product, but not from being tracked deep within a company’s infrastructure. There is, as the saying goes, no cloud, simply other people’s computers. I find it useful to remember this when I am told that my data lives “in the cloud”, as though it had floated up to heaven rather than being warehoused in some facility. It is subject to terms I did not write, by a company whose quarterly earnings depend on my continued participation.

Replicating Mako Hill’s measurement is complicated by the fact that I am not Mako Hill. He measured a typical academic inbox in 2013; I measure, among others, a narrow slice of technical correspondents and Asian site registrations. The methodology is identical. The sociology is not.

I ran a similarly designed script against my primary mailbox, the one where spam filtering happens upstream, so the 1,536 messages represent actual correspondence rather than the usual detritus of modern email. Only 37 carried the border checkpoint operator’s address in the From field: a neat 2.4%. The real figure is 614 messages, or 40%: wrong by a factor of nearly seventeen if you trust the envelope. Restricting to handwritten mail (the 1,239 messages without List-Unsubscribe headers), that major power still touched 467, or 37.7%. I pay for a server, I maintain the server, I configured every DKIM selector by hand, and more than a third of my private correspondence passes through the gatekeeper anyway.

How I got here

Modoboa

Modoboa works.

It’s a machine assembled from off-the-shelf parts that fit together, sometimes tightly, sometimes loosely: Postfix, Dovecot, Django, some jQuery on the frontend. You maintain it. You dig inside. You break it, tune it, and learn its shape. The parts are recognisable and the internals are open to you, which is a real virtue I won’t deny.

But the abstraction points you inward. You end up thinking about the machine, about which piece is misconfigured this week, which migration broke something during the update. The interface doesn’t invite you to consider that you could be automating anything. An important API, JMAP, doesn’t even appear in the current Modoboa docs as of April 19, 2026. The tool shapes the question, and the question it shaped for me was “how is this thing put together?”.

From maintenance to composition

To start a comparison, Stalwart is simply a different abstraction. It just lands on Nix, gives you an admin interface, and the interface turns your attention outward: not toward the internals (which are still reachable) but toward what you can practically do with an email server. Things like “tossing mail between directories”, “writing a small script that measures something”, “building toward semi-automated control without asking permission”.

This distinction applies well beyond mail servers. Tools that surface their internals invite you to become a maintainer of the tool. Tools that surface their capabilities invite you to become a composer of your own workflows. Both are legitimate relationships, and neither is lazier than the other. The question is only ever: “where would you like your curiosity to be spent?”.

For the last few years, mine had been spent on Modoboa’s internals, and I hadn’t noticed. The migration to Stalwart took an afternoon, with a day after to tidy things up. I spent the next day waiting for something to break. It didn’t. I found this slightly unnerving, the unnerving part being that I suddenly had an evening free to think about what to do with the mail, rather than with the server.

Stalwart

When I was stressed about a Modoboa update, a friend had mentioned Stalwart; I tried it, and the fresh backup restoration was easy enough. Without that suggestion, I would likely still be performing elective surgery on Modoboa, swapping out its organs one by one in the optimistic belief that I might eventually assemble something to my taste.

I have started to think of Stalwart as the digital equivalent of a water pump: unglamorous, but when you turn the handle, water arrives. And the thing is, all of us need water.

Trying Stalwart reminded me that the best tools are often the most boring. If you happen to make software, please put as much or more effort in coding and testing your software to make it boring.

Why JMAP matters

Boring software becomes powerful when it offers a straightforward interface. Stalwart’s commitment to JMAP is what makes boring software great.

“We should have some way of coupling programs like garden hose.”

Doug McIlroy

The Unix philosophy, distilled in Doug McIlroy’s 1978 memo, tells us to “make each program do one thing well” and to “expect the output of every program to become the input to another, as yet unknown, program”. It warns against “stringently interactive input” because, without establishing specific data exchange standards, the interactive programs like editors, REPLs, TUIs compose poorly. They become monoliths by default, but some design aspects like an internal scripting language, a clear API, and the ability to compose them with other programs make them great.

Email has always been an interactive application. IMAP reflects this: it smuggles client-layer assumptions into the protocol, along with some composition and rendering concerns that leaked downward into the data layer. Any “IMAP client” ends up reimplementing a whole session-management ghost that belongs to the previous client you used. The boundary between the data and the interface isn’t just awkward; it’s absent.

JMAP is request-response JSON over HTTP. The protocol doesn’t know what a pixel is, which is precisely what lets the interface be swapped without touching the data. The interface is not privileged. The data is. You can do whatever with it: hit it with curl, pipe it through jq, feed the result into a shell script, show a widget using the JMAP data, use a TUI you wrote in an afternoon, a voice synthesizer, or eventually, heck, some kind of neural interface when these become the new black.

When a protocol is awkward enough, the monolithic client bundle wins by default because writing your own is too expensive. When the protocol is clean enough that a shell one-liner is a legitimate client, the bundle stops being load-bearing. You can keep it if you like it. You can discard it if you don’t. The software stops deciding for you.

This is the same argument as the federation point at the top of this piece, one layer down. Federation at the address level means no single provider decides who you can talk to. Protocol-level addressability means no single client decides how you read. █████ holds both levers. Stalwart + JMAP hold neither on your behalf.

I wrote the checkpoint-participation measurement above as a short Python script against the JMAP endpoint. I toss mail using the terminal from another one, gradually working towards semi-automated control and an automated backup strategy. Neither tool is clever: I simply stare at CLI, think of what I actually want to do, and it gets done. Both exist because the protocol didn’t fight me and lets me iterate on small things quickly.

Replication and control

There’s a famous quote, photographed on a blackboard at Caltech on 15 February 1988:

“What I cannot create, I do not understand.”11

— Richard Feynman

Thinking about digital infrastructure through Feynman’s lens, I see a parallel limitation: when I cannot replicate how something works, my understanding is incomplete, and that incompatibility limits my control.

I was not able to replace an outside provider’s hold on my mail, so I was not able to control it. With Modoboa, automation always felt like a future project I kept postponing because I had no clear roadmap in my mind. JMAP’s straightforward API inspired many of the current roadmaps.

The upside is that I can write a curl request against a JMAP endpoint! I can write a configuration for Stalwart in NixOS. I can replicate the backup and restore of my mail store on a quiet afternoon without waiting for something to break.

Running your own mail server is not a political statement. It is the quiet, persistent work of ensuring that the tools you depend on are small enough to be understood and boring enough to be trusted.

Stalwart lands on NixOS cleanly: it’s available as a Nix package with sensible defaults, and Bulwark runs in an OCI image. The declarative configuration model of NixOS pairs well with Stalwart’s approach, though there are some configuration mismatches to navigate.

I praise Stalwart because it works well for me, but even the boring software has its rough edges. For a thorough examination of issues I faced on a fresh NixOS Stalwart installation, I’ll keep updating the “Stalwart under the microscope” article.

Small autonomies

The shopping mall stands firm, and the librarians keep recording people’s reading habits.

But my correspondence leaves from an address I control, travels over infrastructure I maintain, and often arrives without first passing through a brand-validation checkpoint. It is a small autonomy, your own “water pump”, easily mocked by those who prefer the convenience that comes with a price tag and an ever-changing terms-of-service agreement.

I find I can live with the mockery. I have never liked the mall’s acoustic soup.

  1. Retinal Implants for RP: An Update on Argus II and Others”, EyeNet Magazine, American Academy of Ophthalmology, December 2019. 

  2. Their Bionic Eyes Are Now Obsolete and Unsupported”, IEEE Spectrum, February 2022. 

  3. Second Sight Agrees to Merger to Maintain Retinal and Cortical Prostheses Programs”, Foundation Fighting Blindness, February 24, 2022. 

  4. Second Sight Medical Products Announces Successful Completion of its Merger with Nano Precision Medical and its Name Change to Vivani Medical, Inc.”, Vivani Medical press release, August 30, 2022. 

  5. Abandoned: the human cost of neurotechnology failure”, Nature, December 2022. 

  6. As of April 19, 2026, bimigroup.org had been unreachable from my network for at least five days. A check via “Down for Everyone or Just Me” confirmed the outage wasn’t just on my end. 

  7. “██████, █████████, ████ tracking you even if you opt out”, Simply Secure Group, April 15, 2026. 

  8. “My McLuhan lecture on enshittification”, Cory Doctorow, Jan 30, 2024: “We’re all living through the enshittocene, a great enshittening, in which the services that matter to us, that we rely on, are turning into giant piles of shit”. 

  9. The Weekly Roll webcomic by CME_T features hilarious “arachno-capitalists” who sure are eager to privatize everything: chapter 167 and chapter 106

  10. Totally not a homage to the SCP Foundation. Corporate brands have been lovingly censored to protect the remaining sanity of the author. 

  11. Caltech Archives, 1.10-29