What is this blog using?
This blog is generated with the static site generator Astro and using the Astro Paper Theme. This may or may not change in the future, but at the time of writing, this is the case.
What is a static site generator?
Most websites today are using Wordpress or similiar content management systems (CMS) that are build around using a backend (often PHP-based), including a database (such as MySQL or MariaDB), and a frontend (HTML, CSS, JavaScript).
The advantage of such systems is that, after the initial setup, the management and publishing of content is very easy, as there is a web-based backend where the author can login and manage all the website’s content.
One disadvantage is that such systems are generally complex and require continuous maintenance as vulnerabilities are discovered and need to be patched. Another hurdle is that content data is stored in a database that needs to be exported to move it to another location. Therefore, simply copying the webspace files is not enough.
Static site generators (SSG) as the name suggests create static sites. This does not actually mean that the content displayed to the viewer is actually static (Thanks JavaScript), but that all files are static files and do not require a backend – so also no database. After running the SSG’s build process all static files are created and can afterwards be copied to a webspace, so that the content is visible by the viewer of the website. Thanks to version control systems like Git and CI/CD pipelines, this process can be automated.
Without going to much into the details, but there are also setups possible which are using a so called headless CMS as a backend system thus not requiring push to the Git repository. It is even possible to use WordPress as a backend for SSG – not that I would recommend it; Shoutout to Payload CMS. For an overview of headless CMS have a look at Jamstack.org.
Why do I use this?
As I do not want to be responsible for managing vulnerabilities in my free time, I chose a SSG. In my opinion most websites could be generated via a SSG and as far as I see the larger companies are also already moving in this direction.
Furthermore, storing all data, including version control, in a Git repository greatly increases the longevity of information, which is a big plus for me.
I chose Astro as the website templates are easily editible and I do not require any other programs besides Node.js and a package manager such as NPM or PNPM. For other an overview of other SSG have a look at Jamstack.org.
Similiar I choose Astro Paper as a theme to get the blog quickly running. With over 3k stars on GitHub this seems be a widely used theme. Additionaly, with its good documentation and config files it was swiftly possible for me to edit it for my likings. Astro, as also most other SSGs, has an overview of themes on its website, but actually I found this theme through websearch – thanks Reddit.
How do I publish?
For the initial configuration of Astro and Astro Paper I used Visual Studio Code. For the further creation of Markdown files (where the actual content of the blog is stored in), I use Obsidian, which is probably the most customizable note-taking application and a personal favorite.
After creating a new Markdown file I will push it via Git to my GitHub repository. This triggers a deployment to Cloudflare Pages, which acts as the webspace and even as a content deliverably network (CDN) for high availability. Alternative CDNs, where similiar workflows are possible would be netfliy, GitHub Pages, or even something selfhosted, for example via Coolify.
The overall process looks like this:
Create MD-file —> Push to GitHub —> Automated Publish to Cloudflare Pages