An experimental IndieWeb site built in Go.
1# Space 2 3> A likely-to-be-unfinished experimental IndieWeb site, built with Go. 4 5Space is an attempt at building an IndieWeb-capable personal site, before I 6started looking into AT Protocol. It uses [Chi](https://go-chi.io/#/), 7[Templ](https://templ.guide/), and [TailwindCSS](https://tailwindcss.com). 8Data is stored using SQLite, and your DB is continuously backed up to S3 via 9[Litestream](https://litestream.io/). 10 11Any unrecognized or unsupported [post types](https://indieweb.org/posts) are 12rendered as raw JSON until they are explicitly supported. Media files are 13stored in the same S3 backend that Litestream uses, so all your data is 14replicated off-machine. 15 16Notably, the Tailwind pipeline is not checked into the project, as this was 17built before Go Tool support. 18 19If you want to take it for a test-drive, you can check the `.env.example` file 20for all required configuration values. 21 22## Supported Specs 23 24- [x] [IndieAuth](https://www.w3.org/TR/indieauth/) via Basic Auth 25- [x] [Micropub](https://www.w3.org/TR/micropub/) 26- [ ] [h-card](https://microformats.org/wiki/h-card) 27- [ ] [Webmentions](https://www.w3.org/TR/webmention/) 28- [ ] [Microsub](https://indieweb.org/Microsub-spec) 29 30## What happened? 31 32At the time, I was quite pleased with how this turned out. I think I nailed the 33aesthetics, and I hit my requirement for data durability and replication. I was 34targeting Fly.io for deployment, and Fly+Tigris was an excellent combo. 35 36Day-to-day, though, I couldn't make a habit of using this. IndieWeb is a lonely 37place when you don't have any connections and you're not a social creature by 38default. Implementing support for different post types over time felt like it 39was going to be a drag, and my heart just wasn't in it. 40 41I have my hopes up with AT Protocol, however. AppViews remove the need for 42implementing display logic for each "post type" manually, and Lexicons allow 43for myriad post types contributed by different services. It's an easier place 44to live for a lurker such as myself. 45 46Maybe at some point, I'll take a stab at implementing my own PDS, but until 47then--here's the thing I already built.