Table of Contents
I've been meaning to set up a website for myself for quite some time, always putting it off for a nonreason or another. But no more! If you are reading this, be it whoever you are, then I have successfully claimed for myself a small corner of the information superhighway. It may be small, it may be boring and unremarkable1, but it is mine, and that's what matters.
Some backstory, and a reason for being
I believe it is good praxis for a netizen to have their own website. A part of the web they can mold how they see fit, without the constraints imposed by foreign platforms, a place for self-expression constrained only by the limits of what you can imagine to it, that sort of thing.
For the longest time, however, I had predicated having a website on having something worthwhile to show, something good enough to be put up so that other people can look at it, something just right. And I never felt what I had was all that right, so I'd spend all my time worrying about what I could do, what could be interesting, what I would want to show other people, that sort of stuff; a magical solution to a merely psychological dillema that wasn't even all that well defined in the first place. And I'd set my eyes very far, and set myself off without all that much consideration, and then get frustrated and throw it all away when I'd notice I didn't seem all that much closer, or the destination seemed to have lost it's spark. And then I'd daydream endlessly, about doing all of those {cool,fun,interesting} projects, and writing about them online and having other people talk about them, and the cycle repeats.
But that's silly, isn't it? Nobody really just decides they ought to do something and then blot out a perfect, done masterpiece out of nowhere; most people just work on what they think is fun or interesting or worthwhile, bit by bit, and then look back one day and realize they've built something remarkable. But even then, this whole thing is just pretense. It doesn't matter. Your website doesn't really need a justification to exist any more than you do yourself. And going from something little to something slightly less tiny is much easier than getting there from nothing. So you could just start with a page with your name in it, or a pithy aphorism, or whatever. A little later, throw in a few interesting links, or a bunch of corny 88x31 buttons, a nice stylesheet, whatever tickles your fancy. Write about a stray thought, a project you've been toying with, something you've read. It doesn't matter how silly or inconsequential it seems, as long as you care about it. And when you think you've finally stumbled upon what you've been looking for, you already have somewhere to share it to the world, if you don't happen to realize you already had been all along.
So that's that. There's no reason for this website to be beyond that I want it to be, and there is no purpose for it to serve beyond what it currently serves. For now, that's this page and the homepage, though I hope to do more in the future. But regardless of what I do, it is something, which is better than nothing.
But how does it work?
I am weird, so this website works in a rather peculiar way which I don't know whether to think rather neat or horrifying. In short:
- Posts are written into
org-roam
documents and tagged accordingly to how they should be published.- Files intended for publication get commited to git, while sketchy/private/unpublishable notes do not, but still get synced across my devices though syncthing.
- An Emacs Lisp program,
blog.el
2, serves theorg-roam
database in a format more palatable for the web- It listens for HTTP requests, interpreting the path as a document name and a series of tags under which to look for
- For instance,
/blog/hello-world.html
would serve theorg-roam
document with slughello-world
and tagblog
, if it exists./blog/
would serve a listing for theblog
tag. - Documents are served as HTML fragments after processing by
org-export
, tag listings as an RSS feed.
- For instance,
- It is not intended to serve directly to the web (though it could), but rather to serve as a "document store" for the frontend composer.
- It listens for HTTP requests, interpreting the path as a document name and a series of tags under which to look for
- A Common Lisp program takes care of intermediating client requests and composing the response page from the output of one or more servers.
- The intention being that the bit of software taking care of document publishing, the one taking care of webmentions, and so on can be mostly independent, and a final program takes care of composing and presenting it all. 3
This whole contraption currently runs under OpenBSD on top of a $3.50 Vultr VPS deployed with a set of cavemanly-written Ansible playbooks, with builtin daemons taking care of most operational minutiæ. Everything is still shifting around as I decide how I want things to stand, but a more detailed writeup should come once things have settled down a little.
Hopes for the future
There's quite a bit to do around here. The style isn't there yet: it's fine, but I really wish we had something with a bit more panache; say, gradients, flowery backgrounds, pretty navs, side footnotes, Silk-style icons, that sort of thing. As far as functionality goes, I don't really like comments even from a conceptual point of view, but sending and receiving WebMentions would be a great alternative. blog.el
already generates RSS, I need only to tweak a few things and expose those under the main website. On the more "archtecture astronaut" side of things, I still hold the pretense of turning this website into a view onto a personal wiki (which explains some of the design decisions, I figure), I don't really like org-mode as a composition medium all that much, and I still wish we had a better document store overall..