
git init
git commit -m "Initial commit"
Programmers are used to this command. When a piece of software is being developed collaboratively, a tool called “git” is usually used to help the team of developers keep track of the evolution of the code over time. Devs add sort-of “save points” called commits into this tool, to save and share their progress.
For those programmers like me who work on the occasional personal project, the above command will be familiar: it creates a commit with the message “Initial commit”.
This message means a lot, I think. “This is my first update of many”. It’s a message to the self — like looking at yourself in the mirror and saying “Here’s the first lot of code, but it won’t be the last. I’ll be back.”
Funnily enough, the actual first commit for this website has the message “Create from template” — but the intention is the same, and is familiar to anybody who has started doing something with the intention of carrying on later.
I really want to carry on with this, but my track record isn’t the best. I think my best shot is to talk about all the things I haven’t finished. All life is a work in progress, and if I wait until I’m “done”, I’ll never tell anyone about anything I do.
So, to start the process off, I’m going to talk about my latest unfinished project: this website!
What’s the stack?
This website (repo) is being built in Astro, a nifty little static site generator that I’ve been wanting to try for ages.
I’ve set it up with the default blog template, but there are a lot of features it doesn’t have that are all on my wishlist (tags for blog posts, view counters, a CMS, dark mode, comments). There are a few templates on the Astro website that add some of these, and it should be pretty straightforward to start using one of them, but it could be more fun to write them myself. I have more control over them that way.
The site is being hosted in my VPS. It doesn’t have much space or bandwidth, but I’m not expecting much traffic so it’s perfectly serviceable for now.
I’m using Caddy as the server, which is working pretty well so far.
Astro builds into a dist
folder, so Caddy runs a fileserver directly out of that folder.
(You also get HTTPS for free, which is incredibly neat.)
I haven’t set up any automatic deployments yet, so the process for making any changes to the website, including making new blog posts, is:
- Make the changes locally
- Push the changes to GitHub
- SSH into the VPS
- Pull the changes
npm install
npm run build
- Reload Caddy
It would be better to automate this, obviously, but at the moment it adds negligible overhead since I tend to do these updates in bulk.
Next steps
I have lots of cool ideas for this, so if I’m honest, the next step is to figure out what the next step should be! I think tags are almost certainly the most useful improvement, but the actual most important thing is simply to write more blog posts.
Watch this space and see you around!