I have created a new social network, dotplan.space, which requires you to use ancient technology to post to it – the finger protocol.
Realistically, it’s arguably better described as an aggregator, because it just drives by each of the configured finger servers and posts updates whenever they change, but that doesn’t sound quite so interesting to me.
The finger service, in its original form, essentially returns the contents of a file in a user’s home directory, over TCP port 79. No security, no HTTP, no markup, no nothing. It’s almost like running cat over the network. Traditionally, this would be the contents of the ~/.plan file, hence the name of my site, as well as perhaps ~/.project. It’s like the very earliest version of microblogging.
It doesn’t support images, links, videos, mentions, or many of the other affordances of other actual social networks. It does, however, support preformatted text, so ASCII art is feasible, and ANSI codes to add a little bit of colour. It also doesn’t support things like post visibility, since the finger protocol is generally open to the internet and unencrypted1, so there didn’t seem to be much point.
I don’t have a good reason for this to exist, it just seemed like fun at the time. In terms of tech stack, it’s built from Rust, Axum, Askama, SQLx, and SQLite. This is a combination I have been using quite a bit recently for a variety of small projects. I enjoy a pattern where the web interface is rust_embeded into a single binary which I can ship alongside a systemd unit file that runs it. This way, backup is very simple.
It’s currently invite-only, so if I have vaguely encountered you online before, give me a shout if you want to get involved.
-
I did consider writing an April 1st internet draft for a modern version of the
fingerprotocol adding TLS, but it turns out other people have had a go at building that before I got there ↩