New year – new (digital) me

Screenshot of the new version of the blog

It wasn’t really supposed for the New Year, but I’ve had plenty of free time on my hands during the holiday break, so here it is already: a brand new version of my blog 🥳


Where to start? I got increasingly annoyed by the old version. The design started seeming boring and blunt. The code started growing unstable. It was using the Micrus framework, which I stopped supporting a year ago. It was using Micrus Assetic – an outdated method of asset management, which highly depended on the server configuration and binaries installed. The deployments were “iffy”, to say the least. I was afraid of sending even small changes to the server, for fear something might blow up again. Some small things I didn’t even notice were wrong: like still warning about Google Analytics tracking, even though I migrated to Matomo ages ago.

What changed?

I decided to keep it simple. To go with a “less is more” approach. I’ve removed soooo many features that just weren’t useful enough.

I used to have an admin panel: except I didn’t need any fancy editor, the main content was written in an (enhanced) Markdown anyway. So for this version, I’ve decided for a filesystem-based approach: I’ve ditched the database completely, I don’t need any ORM, I don’t need an admin panel. I just have a bunch of SUML files tracked by GIT. Using Esse CMS.

I used to have three language versions of the UI – but why? I don’t think anyone really cared about not seeing the names of the categories in Polish, when most of recent my posts were in English anyway. So now the posts are still available in the language(s) they were written in, but I’m no longer maintaining the multiple versions of the UI, or the features to filter content by language. What a relief!

I used to have a “random post” box. I used to have tag clouds. I used to have an embedded Twitter timeline. I used to have the latest posts on the “about me” page (really?). I used to have a link shortening feature (”<whatever>”) that I’ve never used, not a single time. I used to have a separate controller and database fields to support redirects for legacy URLs from the even earlier version. I used to have database fixtures. I used to have a console command to export legacy comments to Disqus. I used to have tooltips and popovers. All gone now! 😍

I replaced the infinite scroll with... just loading the whole page at once 🤷‍ It’s not that big for today’s standards anyway – the heaviest list of posts is 113 KB of compressed HTML. Instead, I now lazy load images using the IntersectionObserver API. Way simpler than infinite scroll or pagination – which aren’t really necessary with this amount of data.

Oh, and the website is now using a fast an sleek Symfony setup with an HTTP cache 🥰

Design-wise, I use the default Bootstrap theme, with only minor changes of variables and minimal additional styling. The main feature, obviously, are the tilted elements. That’s enough to add some personality to the website, without making it overcomplicated. Compared to the previous version, it’s way more contrasting, better tailored for wider screens and clearer.

Overall, 41090 (!) lines of code were removed:

424 files changed, 6711 insertions (+), 47801 deletions (-)

There’s nothing else in the (programming) world I love more than removing useless code!

Deployments are now stable, simple, reproducible and revertible, thanks to Symfony, Webpack, lack of database (no db = no migrations), and most importantly my recent child: Avris Deployer.

Console output of deployment

Version 1 (”Silva Idearum”)

So, to finish this post, let me just quickly show you the four versions I’ve been through so far:

My first blog was called “Silva Idearum” (Latin for “Forest of ideas”). It was anonymous, spirituality-oriented, Polish-speaking, Joomla-running and with a “too much” design.

Screenshot of the post page in version 1

Version 2

After coming out and becoming independent from my parents, I was finally able to put my name on my posts. New domain and a redesign was also in place.

Screenshot of the homepage in version 2

Version 3

As announced in Brand new blog

Screenshot of the homepage in version 3

Screenshot of the list of posts in version 3

Screenshot of the top of the post page in version 3

Screenshot of the bottom of the post page in version 3

Version 4 (current)

Screenshot of the homepage in version 4

Screenshot of the list of posts in version 4

Screenshot of the top of the post page in version 4

Screenshot of the bottom of the post page in version 4

A photo of me

About the author

Hi! I'm Andrea (they/them). I tell computers what to do, both for a living and for fun, I'm also into blogging, writing and photography. I'm trying to make the world just a little bit better: more inclusive, more rational and more just.

Related posts:

Finally. I got to work and rewrote the code of my sweet blog. Brand new design, new framework, Micrus, better support for language versions, a couple of new features in the admin panel, ditching custom comments for the awesomeness of Disqus, ditching TinyMCE for the beauty and simplicity of Markdown. It was a lot of work, but it was definitely worth it!

Hope you like it! :)

Wreszcie. Wziąłem się do roboty i przepisałem od zera kod mojego blogaska. Zupełnie nowy design, nowy framework, Micrus, lepsze wsparcie dla wersji językowych, parę nowych ficzerów w panelu administracyjnym, rzucenie własnego systemu komentarzy na rzecz zajebistości Disqusa, rzucenie TinyMCE dla piękna i prostoty Markdownu. Zajęło to sporo pracy, ale zdecydowanie było warto!

Mam nadzieję, że się spodoba! :)

There is a website I’ve created many years ago, Stosłowia (Polish only), which collects stories of up to a hundred words. It never got any users, but I didn’t really care to promote it in any way either.

Last week I’ve decided to rewrite it from scratch, because so many things were wrong about it – from an ancient backend in plain PHP with hardcoded credentials and no separation of concerns, to login with Facebook (and only Facebook) that stopped working... Now it’s a fresh Symfony 4.1 with Encore with some new features (like automatic screenshot generation, seen for instance on Twitter).

But what I’d like to show you, is how a couple of pretty small design changes have made the whole website way nicer visually (IMHO).

Continue reading…
(~3 min read)

Yet another one of my projects, Avi • Simple placeholder avatars, grew too outdated to support it. I had to rewrite it from scratch.

I took the opportunity to redesign it as well.

Continue reading…

It’s honestly diffucult being a webdeveloper in the world of shitty websites. I guess that’s how hairdressers feel when they see my pathetic hair after it’s been a while since my last visit...

But the thing is, even though it’s technically easy to use scissors and clippers, I don’t do that on my own hair, I leave that to the professionals.

Continue reading…
(~5 min read)

Yet another one of my projects, Naked Adventure, grew too outdated to support it. I had to rewrite it from scratch.

I took the opportunity to redesign it as well. (screenshots before & after at the bottom)

Continue reading…
(~2 min read)