I've been thinking about how I want my site to work (and additionally how I'd like to share it with other people so they can get it running for their own use cases) over the last few weeks as I had my head down working on [Fortress](https://indieweb.org/Fortress). It's been some time (it'll be 5 years this October 17th!) since I've joined the IndieWeb - and began exploring more people-centric social networking systems in general so it's about time.
I’ve went from a Jekyll site to working on my newer site project. This is what cloc
shows for the site currently:
595 text files.
583 unique files.
55 files ignored.
github.com/AlDanial/cloc v 1.74 T=1.35 s (410.3 files/s, 48459.7 lines/s)
--------------------------------------------------------------------------------
Language files blank comment code
--------------------------------------------------------------------------------
Elixir 336 4509 552 22526
HTML 2 6009 0 13872
JSON 43 0 0 13300
EEx 44 3 3 1265
liquid 78 16 8 1166
Sass 12 144 17 727
Vuejs Component 5 12 7 264
YAML 3 23 45 257
Bourne Shell 17 82 19 225
JavaScript 4 32 7 185
Cucumber 4 20 0 107
PO File 1 21 19 57
make 4 8 0 32
Bourne Again Shell 1 1 0 2
CSS 1 0 1 1
--------------------------------------------------------------------------------
SUM: 555 10880 678 53986
--------------------------------------------------------------------------------
And now, to be honest, I’m thinking about blowing all of it away!
Hear me out - I’ve learned a lot about the IndieWeb by working on this and even more so about the general space of things and now I want to try out something different. Koype works as a ‘monolith’, it has the support for things like Webmentions, IndieAuth and what not. But currently, I haven’t given myself a lot of room to consider other things like templating or making it easy to extend. This is potentially an issue with the framework I chose to work on this project with but blaming the tools doesn’t really fix the problem.
As I’ve continued to work on my site, I’ve seen other projects from people grow and flourish. I envy the flexibility that others have as I kept rushing to cobble more features into my site without taking other parts of it seriously enough. I do have a plan though!
I want to see if I can refactor my site down to a point where it’s truly just a set of “parts”:
- a flexible Micropub server
- something like
silo.pub
to handle syndication - finishing up Lwa to act as a Webmention hub (as well as a WebSub hub, contacts manager, and mention feeds)
- getting Fortress ready with AutoAuth and provisioning protected content (feeds, posts, etc)
I think that once the basis of the above is in place, I can think more on how I want to handle other things like actually showing the site. I really don’t want to go back to static site generation because the build times for Jekyll really frustrated me and was only justified when I was only writing like blog posts. Since I plan to have my website be my identity, place and hub on the Web, that doesn’t work for me anymore. By refactoring Koype down to just the Micropub server (with some extra kicks, of course), I can go and use the same file storage for content as the backing for a very thin server that can act as the ‘front-end’ for my site. Having two apps running to work as my site is a bit weird but it gives me a bit of power in decoupling how I work on my presentation layer of my site without worrying about breaking how things in the background.
I can imagine this sounding so complex but oddly enough, it’s a lot simpler than the general state of Web development (React! ‘Serverless’! Service Workers! oh my! Offload-all-of-the-work-on-client-devices-because-why-not!). I am excited to start working on this too because it’ll be a lot easier to make progress with things too.