With no end to the UK lockdown in sight, Zoom parties will remain the weekly highlight of social interaction. Some classic party games such as Outburst can be easily played without everyone having the game available at home.

Looking for new party games to play I bought The Chameleon by Shoreditch game designers BigPotatoGames. While the idea is simple enough the game doesn’t easily lend itself to be played by Zoom party without some tweaking. Being a javascript developer I decided to port the game to the cloud.

In this article I decsribe the game mechanics of the CloudChameleon prototype…


At GEOLYTIX we build all kinds of map applications for which we require a range of location marker. It is recommended to use a dedicated image hosting service such cloudinary for caching and on the fly transformations. But we also like the comfort of building SVG from code which makes public GitHub repositories a great tool. GitHub allows us to collaborate on, modify, and version SVGs with an IDE or directly through the GitHub web interface.

Sounds good? Well here is a screenshot of Icons for British Pubs to wet your appetite.

It is possible to access GitHub files through…


This article is about the Enterprise Application Architecture which we use at GEOLYTIX in order to facilitate best value from Vercel and GitHub. We are currently building XYZ¹, a free and open source project to provide interfaces for the analysis and presentation of spatial data. Our aim is to implement techniques in modern web development learned from the emergence of the JAMstack.

What’s in a name?

The JAMstack at its core, is simply an attempt to give a name to a set of widely used architectural practices. It gives us one word to communicate a large range of architectural decisions.²

JAMstacks consist of [client-side]…


The success of your open source project and indeed any complex solution depends on good documentation. Writing documentation can be a real challenge, especially if you are too involved with a project from its inception. Knowing every detail you may fail to explain what is obvious to you and your team. In this article I want to discuss the technical aspects of documenting a GitHub repository.

Our project being an open source API and library for spatial data interfaces.

GitHub Pages — keeping it together

Being Open Source in nature we only considered free hosting options. The documentation should also be a part of the code…


Reading this today you will already know that the FOSS4G event in Calgary had to be cancelled due to the ongoing COVID-19 crisis. But after each FOSS4G is always before the next. This being in Buenos Aires in 2021 is all very exciting. Vamos a Argentina!

While it is hard to wait this long there are now even more chances to get involved. On such opportunity is the annual competition for an event logo.

Please visit the competition page for details and guidelines.

I quite like to wear my conference shirts at events such as London Geomobs or in the…


I have previously written about GEOLYTIX’ work to make spatial interfaces serverless with Zeit’s Now platform. Soon after I published that article, Zeit introduced the second coming of their Now cloud platform for static sites and Serverless Functions. Everything changed and we had to go with the flow.

Now Again with Serverless Function

Being able to deploy functions written for the Node.js runtime allowed us to break up the XYZ web server into individual handler for each endpoint. Once build, each handler will be a Serverless Function in an immutable deployment hosted as a Zeit Project.


A couple of weeks ago, roughly around the time when the Prime Minister of the UK promised to do the very same to himself, we finally ditched Wordpress.

Maintaining Wordpress has been a huge pain for us as an organisation and for me personally since I am not a big fan of php, Apache Tomcat, mySQL and monolith architectures in general. We were running our own Digital Ocean droplet having to renew the Let’s Encrypt certificate ever so often. Or as Kevin puts it, ‘Why I’m not the biggest Wordpress fan’.

Moving to Ghost was a breath of fresh air…


I have previously written about cluster algorithms and hex grid algorithms for PostGIS. Today I want to present on the fly data aggregation algorithm for regular tessellation grids (square and hexagonal).

Aggregating data to a regular grid has been inspired by the work of Javier Goizueta for Carto. Please read Javier’s blog post on aggregating data for faster map tiles.

Based on the current XYZ zoom level (_z) of the viewport we can define the grid resolution based on the length of the equator (40075016.68m). …


I hope you find this article as a reference from some work I have done with WFS-T and Geoserver. I don’t really use Geoserver or WFS anymore while we build XYZ, the open source spatial data and application interface at GEOLYTIX.

The implementation of dynamic vector tiles is discussed in a previous medium post. Earlier article highlights the creation and caching of tiles in PostGIS.

This article focuses on the drawing and editing of geometries through an OpenLayers map interface. The complete example which uses REST endpoints provided by the geolytix.xyz/dev instance can be found in following fiddle.

Defining the OL map, layers & sources.

The…


Fastify is a low overhead web framework for node.js. We can not provide definitive benchmarks in terms of performance but have chosen Fastify as framework (web server & router) of choice for its developer friendliness and extensive plugin ecosystem.

The authentication strategy outlined in this article may probably be applied to other web frameworks which facilitate node middleware (e.g. Express, Hapi, Restify, Koa). Code examples are reducted from the XYZ repository for which this authentication strategy was designed. Please consult the Fastify pages for implementation specific details on decorators, hooks, handler, route schema validation & serialization.

XYZ is an open…

Dennis Bauszus

I am doing some web and map stuff with @GEOLYTIX. Mostly maps on the web.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store