‹Back

Next Gen Static Blogging

2021-01-09 by mmackh

TL;DR

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.

Background

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 <div> after <div> or <p> 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 <em> or <b> 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.