CapsulePress - Gemini / Spartan / Gopher to WordPress bridge
2023-09-10
For a while now, this site has been partially mirrored via the Gemini (Also available via Gemini.) and Gopher protocols. (Also via Finger (but that's another story).) Earlier this year I presented hacky versions of the tools I'd used to acieve this (and made people feel nostalgic).
Now I've added support for Spartan (Also available via Spartan.) too and, seeing as the implementations shared functionality, I've combined all three - Gemini, Spartan, and Gopher - into a single package: CapsulePress.
Diagram illustrating the behaviour of CapsulePress: a WordPress installation provides content, and CapsulePress makes that content available via gemini://, spartan://, and gopher:// URLs.
CapsulePress is a Gemini/Spartan/Gopher to WordPress bridge. It lets you use WordPress as a CMS for any or all of those three non-Web protocols in addition to the Web.
For example, that means that this post is available on all of:
Composite screenshot showing this blog post in, from top-left to bottom-right: (1) Firefox, via HTTPS, (2) Lagrange, via Gemini, (3) Lagrange, via Spartan, and (4) Lynx, via Gopher.
- my weblog, at https://danq.me/2023/09/10/capsulepress,
- my gemlog, at gemini://danq.me/posts/capsulepress,
- my spartanlog, at spartan://danq.me/posts/capsulepress, and
- my goperhole, at gopher://danq.me/1/posts/capsulepress
It's also possible to write posts that selectively appear via different media: if I want to put something exclusively on my gemlog, I can, by assigning metadata that tells WordPress to suppress a post but still expose it to CapsulePress. Neat!
90s-style web banners in the style of Netscape ads, saying "Gemini now!", "Spartan now!", and "Gopher now!". Beneath then a wider banner ad promotes CapsulePress v0.1.
I've open-sourced the whole thing under a super-permissive license, so if you want your own WordPress blog to "feed" your Gemlog... now you can. With a few caveats:
- It's hard to use. While not as hacky as the disparate piles of code it replaced, it's still not the cleanest. To modify it you'll need a basic comprehension of all three protocols, plus Ruby, SQL, and sysadmin skills.
- It's super opinionated. It's very much geared towards my use case. It's improved by the use of templates. but it's still probably only suitable for this site for the time being, until you make changes.
- It's very-much unfinished. I've got a growing to-do list, which should be a good clue that it's Not Finished. Maybe it never will but. But there'll be changes yet to come.
Whether or not your WordPress blog makes the jump to Geminispace (Need a browser? I suggest Lagrange.), I hope you'll came take a look at mine at one of the URLs linked above, and then continue to explore.
If you're nostalgic for the interpersonal Internet - or just the idea of it, if you're too young to remember it... you'll find it there. (That Internet never actually went away, but it's harder to find on today's big Web than it is on lighter protocols.)
Links
My blog post "Spring ’83 Came And Went", in which I mention that my blog has been available on Gemini for a while.
Gemini protocol
The Gemini protocol specification, via Gemini.
Gopher protocol
Finger protocol
My blog post "Finger Portal to WordPress Blog"
Video of my presentation "Yesterday's Internet... Today!"
Garrett Coakley's blog post "Oxford Geek Night 53", in which he talks about the nostalgia he felt listening to me talk about Finger and Gopher.
Spartan protocol
The Spartan protocol specification, via Spartan.
CapsulePress on GitHub
This post, via the Web
This post, via Gemini
This post, via Spartan
This post, via Gopher
Issues list for CapsulePress
Lagrange browser for Gemini, Spartan, and Gopher