Next Gen Static Blogging

2021-01-09 mmackh


Take a look at the source code of this page - I rely mostly on CSS for the rendering of this article.

The CSS property powering this article,

white-space: pre-line
, has existed since the IE8 days.


My first programming exercise was to code a blog using PHP. Add text files to a folder via FTP, scan the directory and generate the HTML dynamically. How about adding an admin frontend? Or a database as a backend? All good and well, but when do you find the time to actually write your articles?

If it's one thing I learnt over the past years of coding is that simplicity is key. You don't need a lot of CSS or HTML Tags to make a page look pretty. It may not be the absolute correct way to do it, but look at the source code of this page. It's tiny!

My Solution

Instead of nesting

to create paragraphs, I stumbled upon
white-space: pre-line
. To quote the MDN Web Docs - "Sequences of white space are collapsed. Lines are broken at newline characters, ..." - and that is key. I use HTML tags like
for emphasis only.

Every paragraph is initiated with a newline character. The experience to writing this blog entry is very similar to using a dedicated word processor. Except you have much more control, more settings you can tweak and more visuals you can add.

A similar technology I can think of is Markdown. Except you have to run it through a parser before seeing the result. Also, different flavours produce different outputs. All rather messy for me. My workflow consists of pressing CMD+S, switching to Safari and reloading the page. What you see now is what I get.

Managing this blog is a little more involved than dynamically generating everything. The design could also be a little prettier.

More Benefits

The overall page size is tiny. No need for JavaScript or any other complicated backend or client-side frameworks. I can use PHP to introduce dynamic elements to the page, but that's optional. Maybe you might be inspired a little and move your blog off centralised platforms like Medium, etc. and start embracing the simplicity of creating compelling pages with very little code. Simplicity is key.