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.