An experimental IndieWeb site built in Go.

Space#

A likely-to-be-unfinished experimental IndieWeb site, built with Go.

Space is an attempt at building an IndieWeb-capable personal site, before I started looking into AT Protocol. It uses Chi, Templ, and TailwindCSS. Data is stored using SQLite, and your DB is continuously backed up to S3 via Litestream.

Any unrecognized or unsupported post types are rendered as raw JSON until they are explicitly supported. Media files are stored in the same S3 backend that Litestream uses, so all your data is replicated off-machine.

Notably, the Tailwind pipeline is not checked into the project, as this was built before Go Tool support.

If you want to take it for a test-drive, you can check the .env.example file for all required configuration values.

Supported Specs#

What happened?#

At the time, I was quite pleased with how this turned out. I think I nailed the aesthetics, and I hit my requirement for data durability and replication. I was targeting Fly.io for deployment, and Fly+Tigris was an excellent combo.

Day-to-day, though, I couldn't make a habit of using this. IndieWeb is a lonely place when you don't have any connections and you're not a social creature by default. Implementing support for different post types over time felt like it was going to be a drag, and my heart just wasn't in it.

I have my hopes up with AT Protocol, however. AppViews remove the need for implementing display logic for each "post type" manually, and Lexicons allow for myriad post types contributed by different services. It's an easier place to live for a lurker such as myself.

Maybe at some point, I'll take a stab at implementing my own PDS, but until then--here's the thing I already built.