Right okay! Robin Sloan is someone of whom we in maya dot land (all of us nibbling on lichen under the bridge here) think highly, and altweb projects are fantastic, so if you haven’t gone and read through his protocol proposal go do that! Little of what I write here will make sense independently of his piece. I am going to aggregate and expand a bit on annotations that I made across a few different pages to do with this.
If I have an actual contribution to make here, you’ll likely find it in one of the sections before the annotations start.
attempting to manufacture some serendipity
I know it’s December 1983, so not spring, but I do like that there’s a Byte magazine cover from 1983 that has a little “tiled content” energy1.
some relevant “see also”s
Robin notes in Discussion 1 of the spec:
This protocol draws inspiration
- from Secure Scuttlebutt: the power of cryptographic keypairs as identities
- from Hashcash: the notion of guarding server resources with client puzzles
- from Ethereum: the gonzo strategy of storing the whole universe in one place
- from ZeroTier: the spirit of “decentralize until it hurts, then centralize until it works”.
and, most of all,
- from the Quote of the Day Protocol, defined by Jon Postel in May 1983: the vision of simplicity
But there are also quite a lot of other projects that might be fun to add to the discussion. Some I know Robin to know of; one I’d imagine he wouldn’t; I’m listing a few here not to imply there are more “inspirations” than he’s letting on, but because I think with stuff like this it’s useful to compare/contrast many fellow-travelers3.
fuck responsive layouts, all my homies hate responsive layouts4
There’s unexpected energy in the space of “being able to lay out elements visually on a 2d plane and know that the browser isn’t going to wrap them somewhere you didn’t mean”.
Kicks Condor’s scrapchats and Weiwei Xu’s comic logs and a lot of engineering work from them both gave birth to Multiverse. I recommend everyone scroll through those and spend some time thinking about why it is people want to make things that work that way, why someone might want to be able to click and drag little paragraphs around and ornament what might otherwise look like an ordinary blog post.
mmm.page nurtures similar aesthetics in an admirably mobile-friendly way; I’d not seen something approach the mobile-desktop divide by showing you the center column where content will be visible on a phone, but letting you decorate out further to the sides where only landscape-format screens will display it. (This also seems similar to Spring ‘83’s intent to let people scroll to overflowing content.) hotglue similarly says: click, drag, drop in an insouciant live-laugh-love cursive5, though I don’t know as many people to use it.
mmm.page and hotglue and comic logs present things in isolation, Multiverse in a stream of vertical panels. It’s fun to think about more complicated ways little blocks could be laid out. Kinopio is a sort of notetaking webpage maker, and it lets you connect little blocks with edges that have labels, and I adore that. This is contrasted to Spring ‘83’s purposeful warning: you get your little board, and you’d better plan that it might show up next to anything! The juxtapositions might be arbitrary or crafted by the client, but don’t come from what the content can itself specify (well, not without client extensions).
So far everything I’ve mentioned is pretty much stuff that I’d expect any random altweb enthusiast within a certain blast radius of the Bay Area to be familiar with – but a maybe more interesting comparison is with something probably fewer Proper Web People know.
There’s a thing called webgardens over in the static site revival community6. Limitations: whatever you can shove in a 250x250px iframe. Here’s someone’s sample collection. The decentralized and very manual nature of it all means that it’s impossible to have a real list of everyone who has one, but I’d guess the number is pretty small, but it includes me so obviously it’s a Super Meaningful Web Movement7. This was the first thing I thought of when reading about Spring ‘83, even though you really couldn’t have my webgarden in that protocol: decorative images, a pixel font I made and have used nowhere else… some people use theirs as unchanging banners linking to their own websites, some as little art pieces expressing something garden-ish, and some people put an update link in theirs like I have.
Anyway, I’ll talk a bit more about the iframe comparison down at the bottom.
The duplication of the content on each server and the intentional spatial juxtaposition a client can assemble also makes me think a bit of teeny towers, though that’s less hypertexty.
tilde.town has cadastre, which is sort of a collaborative ASCII-art town/quilt assembled out of blocks in users’ home directories. (I remember similarly a train where you could add a car? But it seems that lives no longer.)
okay here are the annotations
the base post
…e is a muddle. It’s too uneven; when a user stops speaking, they disappear, and, by corollary, as a follower, you mostly encounter the users who are speaking nonstop. In my memory, Twitter was once …
…ip away rather than layer upon. For my part, I believe presentation is fused to content; I believe presentation is a form of content; so RSS cannot be the end of the story.
Viva! I do still use RSS as more of a notification stream than a consumption stream; I don’t really want the consumption to all happen in one place. When Cinni updates in her RSS feed, the update links to her proper pages, and this is right and good because her site is beautiful in a way RSS couldn’t (shouldn’t) accommodate.
It’s worth making explicit that this is a philosophy directly opposed to how some altweb projects want all styling to be 100% under the user’s control by default, like a universal reader mode8.
Email is a retreat. You probably reached this web page through an email. Whew! It worked! The thing is, …
looks around shiftily at RSS reader
But – external images? No images? 😔
All right, let’s calm down and consider whether this really is as much of a problem as my grasping little pixel mitts would have it. M15o’s status.cafe is the old text-only microblogging, and that’s… nice? It’s not like this is meant to be the only protocol – is it? No, it can’t be, because it relies on the ordinary web to bootstrap the YAML distribution, and the opening-links-in-tabs thing sounds like he means normal web links.
…lly difficult kind of writing! I am not sharing, at this time, code for a client or server, although I have reference implementations of both that I’m testing with a couple of friends. I’ll post them on GitHub eventua…
…re I go further, I want to say: I recommend this kind of project, this flavor of puzzle, to anyone who feels tangled up by the present state of the internet. Protocol design is a form of investigation and critique. Even if what I describe below goes nowhere, I’ll be very glad to have done this thinking and writing. I found it challenging and energizing. On the client side, Spr…
This is fun! Maybe I should try sketching some stuff out here before I work further on that web directory template project.
… racks: A touch of chaos? Yes. More importantly, every board holds its place, regardless of when it was last updated. Each publisher maintains just…
One uncomfortable thing about this is that it replicates a scarcity logic of space in an unscarce medium. I keep lots of barely-more-than-defunct feeds in my RSS reader because it costs me nothing to do so and I’d be so happy if they did start publishing again. Looking at an unchanged board for a year would feel different.
In the spec, though, Robin says that clients do get to choose how to sequence things, so by-last-updated might be an option.
… replaced with the new edition. Client applications display all the boards you are following together, laying them out on a 2D canvas, producing unplanned juxtapositions, just like the newsstand above. Boards might be: mini home pag…
…tly a “plain old web” server.
Boards are cryptographically signed in such a way that they can be passed from server to server and, no matter where your client gets a copy of a publisher’s board, you can be assured it is valid.
The underlying cryptography…
Peer to peer content transmission is an awfully big can of worms. Freedom to delete is real contentious in SSB/Fediverse stuff. Darius touches on this a bit in the frame of moderation. Yes, technically everything on the internet might have been archived as soon it’s been downloaded even once, certainly tweet screenshots circulate, but normally you can do a lot to blunt the impact of having put up something embarrassing by taking it down. I don’t know my thoughts here.
…hich you can find in the spec.) Ten million boards gives us a maximum disk space requirement of 22.17 gigabytes, easily stored on a commodity hard drive or a cheap-enough cloud volume. A capable computer could even hold that in RAM. Turns out, when you don’t store every user’s entire history, plus a record of every advertisement they’ve ever seen, your database can stay pretty slim! A Spring ‘83 server isn’t just …
This is essentially the SSB take too, though they are storing every user’s entire history. I don’t love it, but the way in which I don’t love it is a crotchety computer professional way, not a meaningful one. It’s probably useless aesthetics to prefer systems to be able to fit onto whatever size SD card Raspberry Pi kits ship with these days.
…ased. Spring ‘83 aspires to be: Simple. This means the protocol is easy to understand and implement, even for a non-expert programmer. Expressive. This means protocol…
I’m not sure implementation difficulty is the same thing as simplicity. Gemini also says those things are the same. This is also really tricky to evaluate in a world of libraries and linking; we’re not mentally including the difficulty of Ed25519 cryptography in our assessment of the protocol’s “simplicity” because we’re not absolute loons and would use a library for that… but it’s part of the fabric being woven. Incorporating a complicated off-the-shelf thing doesn’t make it not complicated. Conversely, “complicated” things can be made very simple to include in an implementation with enough elbow grease on the library-writing side, and “simpler” things seem much more complicated in the absence of equivalent elbow grease.
…tionships into database schemas. (It also means the protocol doesn’t provide any mechanism for replies, likes, favorites, or, indeed, feedback of any kind. Publishers are encouraged to use the full flexibility of HTML to develop their own approaches, inviting readers to respond via email, join a live chat, send a postcard… whatever!) Predictable. This means boards …
This has chafed at the users of Gemini even while its designers seem to be proud of holding the line. The “like” as a communication to the algorithmic god in the sky is undesirable – but there’s something likable and friendly in the “I see what you did there” of a Mastodon favorite9, for instance, and excluding that kind of interaction by design is notable10. I wonder if the idea is that the protocol would also be as Gemini-hostile to extension; a client could create a UI affordance to send off a structured email to an address given in a
rel link in the board, for instance, but not if you’ve got someone on the protocol mailing list fuming about such things.
…avaScript included in the board load any images, media, or fonts linked by the board These two requirements should …
I would like more to be articulated here around the reasoning for this. Is it for privacy? Is it to keep things lightweight? Is it to provide a uniform experience? Opinions can differ on the value of each; I don’t want to forgo my dessert without an idea of why11.
…e a collection of followed keys display each board in a region with an aspect ratio of either 1:sqrt(2) or sqrt(2):1 make available to boards the Sp…
Is this really compatible with “[embracing] the richness, flexibility, and chaos of modern HTML and CSS”? I don’t have a big negative opinion about it – fixed display size is how webgardens work, too – but articulating the root of the design decision (to allow things to tile nicely, I’m guessing?) could open interesting discussion.
New boards should be transmitted to peers asynchronously. The server must wait at least five minutes before sharing, but it may wait longer. In this way, the server acts as a buffer, absorbing and “compacting” rapid PUTs. To share a board with a peer, t…
This is interesting. I could imagine wanting a more instant version of a tiled view of those I follow – back when I was on Twitter, there was something cool about the implicit group liveblog of e.g. a major news event. I would have liked to be able to see it all tiled out in one view.
…free”, on a network of servers. Accordingly, a Spring ‘83 realm is limited to 10 million boards , for a maximum possible disk si…
…entually lose their secret key. But the profound magic trick of the signature: that it allows a piece of content to flow around the internet, handed from peer to peer, impossible to tamper with… it’s too good to pass up. And the way public key cryptogr…
I wonder if, given that boards are supposed to expire anyway, the key rotation shouldn’t involve publishing old secrets such that it’s not possible to use an old key to pin someone down as having published something (which would be long after its intended expiry anyway)? With the caveat that I don’t know nothing about cryptography, I’m just a horrible little goblin typing in a Hypothes.is pane.
… almost impossible to achieve. I n the IndieWeb we’ve talked a bunch about following people rather than feeds, and wanting to be able to see that in one place rather than going to each service. For two years I checked Instagr…
I don’t love this, of course, even as I’ve taped on every Indieweb accoutrement to my own site. It’s so prescriptive – like the converse of the idea that one should slice up one’s own posts into neat tag-based filtered feeds for the convenience of The Consumer. Maybe I like that there’s some friction in getting from my hypertexting to my more social nattering. To say it ought be otherwise feels… real-name-policy-esque.
Tracy cites a truly annoying example of an artist announcing releases only on his Instagram, and, well, yeah, that sucks. To some extent that’s a businessperson’s bad accommodation of customers; artisan keycaps are also a hype-driven drop-based commerce model that kills me.
Outside of commerce, it’s less clear. As someone with my own (bad) illustrations on Instagram, though, I have a sense that placing them in an Instagram or Instagram-alike means I get to control something of the context in which they are seen: you meant to go and look at little square pictures, probably on your phone. You meant to follow my illustrations specifically, not my general online presence. As a publisher I like that I can segment that off, and this is in direct opposition to enabling consumer freedom. It’s a bit like that “presentation is a form of content” – there can be context that you want (or don’t want?) stuck onto your content, too.
spring ‘83 vs. iframes
If I were roughing out something like this project, I’d probably start by thinking hard about webgardens. I continue to be extremely butthurt that dynamic transclusion of iframes is extremely common for advertising and not for expressive web stuff. We use iframes for BigTech embeds, and sometimes oembed works for arbitrary WordPress sites, but I want more of them in odd little experimental projects.
I think it’s really interesting that Robin’s landed on a mode of display that you could totally do with iframes12–if the point were only about what you could do, and not also about what you could limit.
My gut instinct with protocols is as Everest Pipkin’s
i believe profoundly in a fucked up hand-made stolen-html-blocks hotlinked-images internet
and so I’m a little suspicious of projects that attempt to fix things lower down. That’s why I like webmentions (and, when I’m not cursing my angle bracket keys, microformats); they’re bolted onto the side of something that already exists13. This is antithetical to the spirit of “what if we could build the thing from scratch”– but importantly, it never manages to get you the guarantees that the existing stuff can’t offer. For example, I’m bearish on Gemini, but they’re absolutely right to note:
deciding upon a strictly limited subset of HTTP and HTML, slapping a label on it and calling it a day would do almost nothing to create a clearly demarcated space where people can go to consume only that kind of content in only that kind of way. It’s impossible to know in advance whether what’s on the other side of a https:// URL will be within the subset or outside it. It’s very tedious to verify that a website claiming to use only the subset actually does, as many of the features we want to avoid are invisible (but not harmless!) to the user.
If you want your protocol to protect you (rather than relying on e.g. social negotiation), you can’t just wing it on top of the web we have. But there are a lot of trade-offs in protective restrictions, so I hope if Robin writes more about this project he touches more on the thinking behind those trade-offs14.
even looser ideation
Things you could do with these kind of boards that I am having fun thinking about:
- distribute a board that displayed as a cryptogram unless you had a local install of the right font with appropriately shuffled glyphs
- make a little ascii art window with a changing view through the panes
- mood-ring style display of current mood with whatever microbloggy status people want
- stories-style display – tap/swipe paging through on phones. (is the idea that the board must be made to display nicely with either a portrait or landscape format, and the client gets to choose? or does the board get to specify?)
- that ticker tape web design trend, but all around the edge of one’s little board
Things you couldn’t do with these kind of boards that I would miss being able to do:
- GIF of the day
- display of current mood icon, LJ-style with whatever microbloggy status people want
see also: commentary on makeworld’s commentary
Check out the piece on page 50: “Microsoft Windows: A mouse with modest requirements”. Everybody loves the desktop metaphor, no one can afford the Apple or IBM machines that can run it… witness the coming of Windows! “an installable device driver under MS-DOS 2.0 using ordinary MS-DOS files”. This was published ten whole years before I was born so it seems a little rude for me to gawk, but damn. The Word ad on page 90! Our cover image returns on page 100 to accompany the collection of pieces running under the overall title: Easy Software15. ↩
Mormons, Protestants – are these odd masonry back page ads familiar to you? ↩
I mention Gemini in the text here a couple times because, well, there aren’t a lot of other folks out there today trying to come up with protocols with a “transmission side”. That said, I don’t see it as intensely similar. Gemini’s design principles are far more anti-the-web-as-it-exists than anything I can imagine from Robin. ↩
I mean, spiritually it says it. ↩
Only takes three examples to get a trend piece, after all, so we’re past that threshold. ↩
A lot of histories of RSS gripe about summary feeds vs. feeds with the full content in them, and you can see the split preferences involved. How dare you make me read this in light mode, etc. etc. ↩
How am I just noticing now that they spell it “Favourite”? ↩
This is also because people naturally tend to push up to the edge of limitations. If it’s to make the boards self-contained, then it isn’t a problem if I shove a tiny inline image in a data URL – but it is a problem if there’s aesthetic motivation. ↩
Trade-offs are always interesting to dig into because they tend to combine the reasoned and felt, the known and guessed. Humans don’t (shouldn’t) tend toward consistency. E.g.: I pay for Proton, but if being tracked is the cost of pretty fonts, I will put a GPS receiver in my arm. ↩
The constituent story “Why Is Software So Hard to Use” is painfully timeless. ↩
Sorry, I love reacji. ↩
Comment with a webmention, or with commentpara.de