
My favourite articles of 2025
I read a lot of articles about programming and technology as a way of keeping up with the industry and expanding my knowledge. Here are some articles I read in 2025 that I recommend reading.
Hi, I'm rubenwardy! Welcome to my blog, where I write about my projects and various tech-related topics.
Here are some of my favourite posts:

I read a lot of articles about programming and technology as a way of keeping up with the industry and expanding my knowledge. Here are some articles I read in 2025 that I recommend reading.

This article shows how you can make an Eleventy (11ty) website translatable on a string-by-string basis, supporting translation platforms such as Weblate.
A full working example is available at https://gitlab.com/rubenwardy/eleventy-i18n-example.
Read more of "Eleventy (11ty) string-based translation with i18next"

Previously, I created a plant monitor that tracked soil moisture and sent notifications when the plant needed watering. But wouldn’t it be nice if it could water the plant instead of sending a notification? This new project does exactly that.
My plant watering system supports four plants, with a soil moisture sensor and a pump for each plant. The pumps draw water from a water tank, which contains a water level sensor. I’m using an ESP32 microcontroller for the brains, as it comes with Internet connectivity and low-power deep sleeping.

OpenTTD is a game where you build a transportation empire with road vehicles, trains, boats, and planes. It’s an open-source remake of a game called Transport Tycoon by Chris Sawyer, released in 1994. I have been playing it for many years; I have no idea how many hours I’ve sunk into it.
There are a few setting changes that I consider essential. It’s bizarre to me that these aren’t the defaults - I guess OpenTTD is trying to keep close to the original 1994 game. I like to focus on passenger and mail services, and therefore consider these essential.
Read more of "OpenTTD must-change settings that should be default already"

I’m writing to express my objections to the Online Safety Act and ask that you support repealing or amending the Act. The Online Safety Act is highly damaging to tech innovation in the UK, is unfair to small and hobby sites, and is a cybersecurity and privacy nightmare.
Read more of "Problems with the Online Safety Act: a letter to my MP"

One of the reasons why I switched to Eleventy was to make it easier to do custom stuff, like creating a writing statistics page for my needs. This blog post is to share how I created that page and how you can create one for your blog.
Read more of "Writing statistics for your Eleventy (11ty) blog"

The Fediverse is a decentralised social media network. This includes Mastodon, which is where a majority of the users are, but it is not the only option. I have been using Mastodon for seven years. I made my home on Fosstodon, an instance focused on free and open source software.
Last month, it came to light that Fosstodon had a far-right moderator and some other instances defederated with Fosstodon over this. I don’t want to get into the specifics of this situation; whilst it is an important topic, it isn’t something I have any desire or qualification to discuss. I’ll leave this to other people. However, having to move instances did raise some thoughts about the federation model and owning your identity and data.
Read more of "How can we own our identity on the Fediverse?"

I read a lot of articles about programming and technology as a way of keeping up with the industry and expanding my knowledge. Here are some articles I read in 2024 that I recommend reading.
2024 was a busy year for me so I didn’t read as much as in previous years. But still, here’s my top articles.

Ruben’s Virtual World Project was a multiplayer top-down shooter with base-building elements that was in development for five years, from 2015 to 2020. It was a hybrid between a top-down shooter and a base-builder, allowing the player to switch between Hero and Architect modes at any time.
Whilst I started the project to learn about multiplayer networking at a low level - including latency mitigation, reliability, and prevention of cheating - it quickly turned into a project to make a game and game engine.

I made an app to rate coffee shops as an exercise to learn React Native. The app allows users to rate locations based on customisable categories. Whilst it was designed for coffee and coffee shops, it could be used to rate any kind of place. The ratings are stored locally on the device and not uploaded anywhere.
The original idea was to implement the same app in React Native, Jetpack Compose, and Flutter, but I’ve only made the React Native version so far. I’ve started the Jetpack Compose version and will hopefully have time to finish it at some point.

Firefox has been my browser of choice ever since I was first recommended it twelve years ago. It has the extensions I like and it supports the open web.

I’m currently learning React Native and Expo as an alternative to native app development. To do this, I’ve been working on an app so that I can get hands-on experience with React Native app development. This includes end-to-end UI testing, using Detox.
I was surprised that Detox doesn’t have an API to interact with permissions. The
device.launchApp function does have a permissions field, but this only works
on iOS and runs on app start-up - it doesn’t allow you to test the actual user
flow.
In this article, I will explain how you can do end-to-end testing with Android permissions, including simulating user interaction with the Android permission request modal.
Read more of "Detox and React Native: UI testing Android permission flows"

I’ve recently gotten into using TypeScript when working with web technology, for creating web apps and servers. I find that TypeScript makes JavaScript more enjoyable to use. In this article, I’ll explain my reasons why.

I read a lot of articles about programming and technology as a way of keeping up with the industry and expanding my knowledge. Here are some articles I read in 2023 that I recommend reading.

In 2022, I made a goal of writing at least twelve long-form articles on my blog each year. But why bother? In this article, I will explain the reasons why I write.
I recently switched to using Eleventy to generate my blog. As part of this process, I needed to implement word counts for each of my posts. I made my own plugin for this as I was unable to find an existing one that met my requirements.
Read more of "Better word counts and reading time in Eleventy (11ty)"
I recently switched to using Eleventy to generate my blog. Because Eleventy is very easy to extend, I was able to add more features to my blog - including backlinks.

After nine years of using Jekyll, I’ve switched to using Eleventy (11ty) and redesigned my blog whilst I was at it. I was finding that Jekyll was too limiting and wanted something more capable. In this article, I will talk about why I switched, how I did it, and my thoughts about Eleventy as a new user.
Read more of "I've switched to Eleventy (11ty): my thoughts"

The collapse of Twitter last year got me thinking about closed platforms and reducing the hold that privately owned platforms have over the Internet.
I’ve been blogging for nine years now on my personal website. I like owning my own domain as it allows me to retain control and stay independent of particular services. Private platforms have a tendency to be bought out and/or ruined by commercial interests, especially now with tech growth slowing down and investors getting uneasy.

I’m making a device to water my basil plants. Whilst working on this, I encountered an issue where running the pumps whilst connected to WiFi would crash the microcontroller. After investigation, I found the cause was poor grounding and Electromagnetic Interference (EMI).
Read more of "Ghosts live in the ground: debugging an electronic circuit"