How I changed my blog
Luca Bolognese -My blog has been going for more than 20 years. In this timespan there has been just one
change in architecture: going from WordPress
to Eleventy + Netlify
.
At the time, I was looking for the simplest possible solution. I didn’t go far enough.
For a technical blog like mine, you don’t need a static generator like Eleventy
. A bash
or
Python
script is enough - so you are not forced to re-learn the static generator every time you pick up
the blog again.
Also, you don’t need a web provider that knows about your static generator, like Netlify
and compiles
your code. You can compile it on your laptop and ftp the html
to wherever.
Also, the html
and css
I was generating was too complex.
- Too many
div
tags to obtain pixel perfect display. - Server side syntax highlighting creating a tangle mess of tags in the
<code>
tag. - Frivoulous eye candies like TOC, time of reading, web-mentions, …
- Too many
css
variables and indirection for the sake of modularization.
The last point is interesting. In my css
, you could change a few typographic variables
(i.e., font-size, measure, …) and the whole site would changes. That sounds fantastic, except
that it isn’t. I am not Microsoft/Google/Netflix/…
When I pick up the blog again after a few months, I forget how it all works and end up spending hours figuring it out again. Fixing issues means wading through bogs of indirection: is it a browser bug? My framework? …
This is a lesson I had to learn many times, and I am still learning: radical simplicity means you don’t create a framework. You just code the damn thing.
You can see how it used to look by doing a View source
on this.
The new website is still Eleventy + Netlify
, but I fixed the HTML + CSS
to be radically simple.
- Not a single
div
tag: just semantic tags (article
,main
, …). - No syntax highlighting. Do you really need it for small code snippets?
- No eye candies at all. Just text all the way.
- No
css
variables. Just a trivial stylesheet for the typography.
You can see the difference in the source code here.
A few simplification came about as a bonus. When you radically simplify things, you often get to their hidden core.
I used to have different ‘templates’ for different categories of pages (i.e., post, list of posts, home page, …). I now have just one template. The content in the middle of the page is the only thing that changes.
One thing I have not removed is a processing pass that insert typographic niceties (like Hanging Punctuation). You can see an example on the line that says: “I want a piece …” here.
This is frivolous, but for someone who is into typography like me (I have created my own font after all), it does matter.
The old website was already at 100% in all google lighthouse
categories. The new one is even faster.
Not that it matters, but you know …
The next step is to remove the dependency from the static site generator and provider. Just a simple script
that iterates over all the posts and generates the Notes
, Tags
, Code
pages should be about it. Next time.
Oh, and I also need to re-introduce a way to comment on the posts. I am thinking some kind of public email box with one thread for each post, but I have not investigated further.
Tags
- MISCELLANEA
- TYPOGRAPHY