This is how my website (mej.xyz) works and some planned improvements I want to make.
Git
My entire website is set up in a git repository. This provides me with the ability to make changes to the CMS that I am using (Astro), configuration of said CMS and also the content. My site is essentially a clone of the Astro Nano configuration. I use gitlab to store my website for free in a private repo.
Basically, what I do is update the files and push them to my git repo. The actual workflow is described later on.
Future improvements I want to explore:
- It’s been a long time since I have developed from a Windows machine. I am currently using git shell for all git commands, but I feel this could be enhanced with setting up WebStorm, Obsidian and Visual Studio Code.
- I want to improve my use of branches and better unlock the capabilities of Git
- Explore splitting out the content and infrastructure of my website into different repositories.
Hosting
Currently I am hosting my website on Nonic Cloud, it was a fairly affordable VPS that is essentially my cloud facing server. This service has been very reliable. I use this sever for all sorts of other things that need to be exposed to the web.
Future Improvements:
- I might switch this to a dedicated server just for my website if I keep the maintenance of this blog.
- Add performance monitoring.
- Set up some form of High Availability. (I know this is just a personal website, but the fun is in the process!)
SSL
I am simply using lets encrypt for SSL right now.
Future Improvements:
- Explore a more complex setup for education purposes.
Workflow
When I want to update my blog
I follow a pretty standard workflow on git, but I only work out of 1 branch right now (if I was to do some sort of major web redesign or something, I would use a special branch for that):
git pullto get the latest copy of my blog, locally.- …produce content…
git --addgit commit -m "a description"git push
As for publication I have a deploy script that:
git pull- Get the latest blog versionnpm run build- Build the site and create static elements- scp the files to the webserver.
Future improvements:
- Have some testing in the process (for example a spellchecker, deadlinks checking)
- Create a release process and automate deployments off a specific release branch.
Design
As you can see the site’s design is pretty boilerplate at the moment and lacks inspiration. I like the clean and simple approach.
Future Improvements:
- Implement a Rainbow mode colour scheme (in addition to light and dark).
- Add a couple of graphics to the homepage (a picture of myself)
Function
There is not a great deal of function on this website, intentionally.
Future Improvements:
- Simple tracking of page views with a self-hosted (or even self-developed) tool, just to get an idea of site traffic.
- Implement tagging on the site.
- Build a digital business card page.