Gijs Nijholt Gijs
Nijholt

👋🏻 Good day! I’m Gijs, a 40-something year old software developer from the Netherlands. I love to build enjoyable software, and I’m always looking for new challenges.

Words by Gijs Nijholt

QGIS in the browser, with real geometry

I built a demo that runs QGIS compiled to WebAssembly in the browser, exposes GEOS to JavaScript, and adds multiplayer editing on top. It’s called gisma, and you can try it at gisma-4cbc4e.netlify.app. There are plenty of web map editors. What’s different here is that the geometry engine is real. When you run a buffer or an intersect in gisma, it’s not a JavaScript approximation — it’s GEOS, the same C++ library that powers QGIS, PostGIS, Shapely, and most of the serious GIS stack, compiled to WebAssembly and called directly from the browser.

Jun 2026 Read more →

Words by Gijs Nijholt

Querying 42,815 simulations with a single command

We built a Claude skill for the HCC API, and the first time I used it in a real conversation I got back a list of 42,815 simulations. That number is both impressive and slightly alarming — the platform has accumulated a lot of compute history. The HCC (Hydrology Computation Cloud) is the backend that runs 3Di water simulations. It’s a REST API that most users interact with through the 3Di modeller plugin for QGIS, or through the web interface.

Mar 2026 Read more →

Words by Gijs Nijholt

Tracking down an invisible scale bar

One of our users filed a bug report with a screenshot attached: the map scale bar had disappeared. The screenshot showed a perfectly normal-looking Rana map viewer, publications panel on the left, layer controls on the right — and no scale bar where there should have been one. The bug was filed as a screenshot but the most useful thing turned out to be a screen recording. Scale bars are one of those UI elements that nobody notices until they’re gone.

Mar 2026 Read more →

Words by Gijs Nijholt

Designing an automatic water storage tool

After the morning empathy mapping session we had energy left, so we stayed in the room and did a quick design sprint on one of the ideas that had surfaced repeatedly: automatic water storage management. By the end of the afternoon we had three screens and a rough interaction model. The core problem is this: water authorities need to actively manage storage capacity across their area, but the relationship between physical water level and usable storage volume is non-linear and varies by location.

Mar 2026 Read more →

Words by Gijs Nijholt

Can we edit water schematisations in the browser?

We ran a spike to find out whether we could build a usable schematisation editor inside Rana — in the browser, without QGIS. The answer is a qualified yes, with meaningful caveats. A schematisation in 3Di is the model of a water network: channels, weirs, culverts, pumps, their geometry, and all the hydraulic parameters attached to each object. Today, editing a schematisation means opening QGIS, loading the 3Di plugin, making changes to the underlying GeoPackage, and uploading the result.

Feb 2026 Read more →

Words by Gijs Nijholt

Currently

Side projects that I’m currently working on. HelemaalGroen HelemaalGroen is a web application founded by Jaap de Boer, a retired veterinarian, who came up with the concept after being forced to walk instead of cycle after a cycling accident. While walking, he noticed the large amounts of litter in the streets and decided to make a website to help people find and clean up litter. The concept is to allow people to use a smartphone while they clean up litter.

Oct 2021 Read more →

Words by Gijs Nijholt

Recently

Interesting things I’ve stumbled upon recently. Web dev & User interface https://htmx.org/ - I’ve seen a bit too many hours get wasted fixing webpack configurations, so I’m looking forward to using something like HTMX or Elixir LiveView to simplify some of my upcoming web UI work. Smartcrop.js: Node & browser smart cropping library Stitches: CSS-in-JS library with near-zero runtime, SSR, multi-variant support Theatre.

Oct 2021 Read more →

Words by Gijs Nijholt

Hello, World!

After writing on a regular basis between 2005 and 2018, I found myself spending more time on Twitter. But more so as a consumer than as a writer. Perhaps I didn’t write much because of the character limit, but the real reason is probably that everything is directly pushed to followers. A blog feels more calm to me. I don’t have to worry about the content being too long, I can just write it and let the audience decide what to read.

Oct 2021 Read more →