Koen van Gilst

Articles & Experiments

Below, you'll find a collection of coding experiments, blog posts and side projects I've been thinkering with. It's a mix of educational web apps, tutorials, data visualisations and creations just for fun.

2026

Growing a Better World... Together with AI

Notes from my talk at the AI Circle on vibe coding, the changing role of engineers, and why AI should be an exoskeleton — not a replacement.

Generating vs. Searching

My 'Software for One' post got some comments about energy costs of generating small apps with AI. When I looked into it, the numbers surprised me.

Software for One

Instead of downloading someone else's app, I built exactly what I wanted for less than a dollar using AI. Is this the future of software?

Computer Says No

When AI takes over the coding, a layer of knowledge disappears - not just for the user, but for the builder themselves.

Gemini Paints Sunflowers in SVG

A new AI model drops every day. Today it was Gemini 3.1 Pro, which does a surprisingly nice SVG rendition of modern art — the Sunflowers in particular caught my eye.

Omarchy-Inspired Setup for macOS

How to set up a keyboard-driven tiling window manager on macOS using AeroSpace and SketchyBar.

Coding is Dead

From typing over starfield code as a kid to letting AI agents build features - reflecting on how coding is changing and what it means for software engineers.

2025

Building Tetris Time with Claude Code

A New Year countdown and clock visualized with falling Tetris blocks. In this post I share some insights on what has been working well for me when building with AI coding agents.

A Brief History of Large Language Models

From ChatGPT's launch to AI agents with tools - a user's perspective on how LLMs evolved from chatbots to autonomous systems in just three years.

Adding llms.txt (and a honeypot) to my website

Implementing the llms.txt standard to help LLMs understand my website, plus a clever honeypot to track when AI assistants actually visit.

A New Metaphor for AI

A post about a better metaphor for AI than the dominant "Terminator" narrative. What we can learn from the history of automata and scientific progress.

2024

Is creativity nothing more than a little randomness?

By using the randomness, AI can generate more surprising and engaging text, similar to how some human thinkers benefit from unconventional approaches. This post explores the concept of randomness in AI and its implications for creativity.

Analyzing GPT-4 Tokens

For this article I used Llama3 to analyze GPT-4 tokens, revealing a strong bias towards English and code.

AI and the Complexity of Code

Large Language Models like ChatGPT and CoPilot have a dual role in simplifying and complicating software development. Using a simple experiment this post explores how LLMs often lead to an increase in code complexity.

Elder Race, book review

I read "Elder Race" by Adrian Tchaikovsky, a sci-fi novel that explores the concept that any sufficiently advanced technology is indistinguishable from magic.

2023

Rising Temperatures in The Netherlands

Visualizing the weather anomalies in rainfall, sunshine and temperature in the Netherlands using data from the Dutch Meteorological Institute (KNMI).

Why I Prefer Trunk-Based Development

Moving away from the structured Git Flow to a more continuous approach with only one main branch.

Accessible router links in Angular

About the routerLink directive and how to make sure it's accessible

Progressively enhanced dark mode

Adding a dark theme to my website using NextJS 13 and React Server Components

AI Enhanced Education

During the pandemic, I worked on a side project to help parents create lessons for their kids, but it was too time-consuming to create those lessons. Now, with LLMs, I revisited the idea.

Why a plant-based diet is a good idea

My arguments in favor of eating less meat.

2022

Guest post by ChatGPT

I asked ChatGPT to write a blog post about its impact on the way developers write code. The contents might surprise you.

Reading Notes Regenesis

Regenesis: Feeding the World without Devouring the Planet. By George Monbiot.

Plotting the age of parliament with Livebook

A tutorial for Livebook, an interactive coding notebook for the Elixir programing language.

Phoenix LiveView Cursors

Part 2 of my tutorial creating "live cursors" as seen in Figma. In this tutorial, I'll be using Phoenix LiveView to create the same feature.

On returning to the office

Some advice from the Stoic philosopher Seneca for workers returning to the office after the pandemic.

Live user cursors with Phoenix Presence

A tutorial for creating live cursors as seen in Figma. A step-by-step guide focused on beginners (I'm learning Phoenix myself).

Clean code is a phase

Why it's better to be kind than to be clean.

2021

Adding Tailwind CSS to a Phoenix project

With the official mix task it has become very easy to add Tailwind to any Phoenix project. To make it even more straightforward I've written this quick step-by-step guide.

React components should read like a book

How the ordering of functions can make component files easier to read.

One command to run it all

Why mocking all external requests for your app is worth it.

Of Bundles and Barrels

Why index barrel files can lead to large bundle sizes

Code Colocation is King

A simple principle to help structure code better

2020

Using Svelte to create a scroll video effect

Tutorial on how to create a scroll video effect using Svelte’s powerful bind command.

2019

Programming quotes

A collection of great programming quotes

mobx-state-tree

A first look at the state management library mobx-state-tree and a comparison with Redux Saga.

303 See Other

Last week I learned a few things about how redirects and 303 status codes are handled in the browser.

Accessible SVGs in React

How to let screenreaders read the title of an SVG using React

Brutalist CSS

196 bytes of minimal CSS

Forgit me nots

Git commands I keep forgetting

Reading notes Programming TypeScript

Stuff I don't want to forget from the Book Programming TypeScript.

Using React Hooks with canvas

An intro to the React hooks useState, useRef and useEffect

Reading notes Accelerate

Accelerate gives a scientific analysis of what makes IT organizations successful. I've listed the most important ones (from a developer perspective)

2018

Reading notes CSS In Depth

Review of a book for programmers who have always considered CSS to be an (unpleasant) afterthought

2017

API testing with Jest

Testing async API calls using Jest’s mocking features

2016

Generating PDF's with Express

A fun little tutorial of how to create a PDF using a web form, Express and PDFKit