i am tired of self-hosting and i’m not alone. yet i want to have everything still work when the internet is down.

i’m still running my own email server. while its in a better state than ever before, there are occasional domains that i just can’t seem to send email to. i’d dearly love to offload that fruitless task to someone else, but there’s not much maintainence and with the scattering of domain names and aliases i use for different things it’d be expensive. i’ll just not send email to those domains.

i’m seriously considering moving on my domain hosting to cloudflare. possibly with a pointer to one of my current servers to implement an ip-over-dns vpn.

i’m also putting new static content (like this website) on cloudflare.

of course, i keep copies of the static content locally, and likewise email. public dns without intenet access is pointless of course, and sending email without internet access is (obviously) a lost cause.

but why i can’t i send email to my partner across the room when the internet is out?

this ties back to my frustrations with federation. but to put a more constructive lens on it this time…

imagine we had a protocol1 whose only job was to securely synchronize concurrently modified data between peers, and that it did that job very well.

our applications can then peer either with a central2 server on the internet, and just as easily peer with their neighbours on the same network. some functionality may require the wider internet, but user-to-user communication can kept on the local network by default, without the application explicitly provisioning for it. the role of applications is then not to manage their own protocols (or storage or distribution) - but rather to manage the data formats they understand and produce.

this is why i’m making converge.

  1. to address moxie’s second point from the link above: this is not an application protocol so it doesn’t need to add new features or change quickly.

    the primary source of change that i expect to see in converge is new signatures. the current signatures are not quantum-resistant, and assuming quantum computers happen we’ll certainly want them to be.

    another thing i could see is a standard way indicate a signature key rotation. the difficulty there is that the rotation key should probably should be seperate from the signing key. the obvious way to do that is to have both keys for each point (mutable object), but that’s a significant overhead that i’m not sure is worth it. another option is to get into pairing curves and more exotic signature schemes… ↩︎

  2. well, centrally managed servers distributed across the earth. ↩︎