In 2019 Topi Tjukanov announced the #30DayMapChallenge on Twitter out of the blue, and there was so much enthusiasm that it has become an annual event - see

The event is a fun and friendly opportunity for cartographical practice, to try new things without the pressure of perfection, and to be inspired by what other people have created. And what's better than a cool map to inspire you to try something similar? A cool map with code so you can immediately reproduce and adapt it! (At least if you know, or want to learn, R ).

Where are the maps?

Click through to the map gallery where you can explore some maps. Filter by year, challenge theme, or R packages used, and search by manually added tags (eg 'interactive', 'africa', 'sport') or user handle.

Then click on a map to see a larger version, and links to the code, tweet and web page (if one exists).

Curatorial Notes


The aim is to include all submissions from the #30DayMapChallenge from 2019 onwards that have full code available (not just a link to a related tutorial). What counts as both a 'map' and a 'submission' is usually straightforward, but sometimes I have to make a judgement call.


The 30 challenge themes from each year have been classified as a 'type', a 'topic' or a 'constraint', and then some have been combined to try and make them as consistent as possible across the years. For example 'hydrology' and 'water' are combined, as are 'urban', 'rural' and 'urban/rural'.


Packages are taken from the code, generally from library calls at the start of the script. But sometimes a package is loaded and never used, or called directly later on, so these are not necessarily 100% accurate.

Trying to keep the focus on map-related packages, I've ignored some of the minor unrelated ones (eg {curl}, {janitor}). I've listed {dplyr} and friends as {tidyverse}, whether the meta-package itself is loaded directly or not.


I've tried to use tags as a simple place to record all other classification information - countries, cities, map styles, general topics, etc. And whilst I've tried to be as complete as possible, this is deliberately not a formally structured and complete classification system so there will likely be missing and inconsistent tagging.


Now that the 2021 challenge has finished I will find some time to catch up on all the previous maps. If I have some 2021 maps from you, then I will get to the others eventually. If I don't have any of your maps and you're not on my todo list then drop me a line on Twitter or email (change a dot to an @ in the domain). I've only got a few people listed from 2019 and 2020 so far, so please let me know of others.

Note that I have only been following the hashtag on Twitter (and my previous galleries have been Twitter-only) but I'm happy to include maps posted anywhere - Instragram, LinkedIn, Github, ...


This site is made with Bootstrap 4 and the Lux theme from Bootswatch. The gallery was made with shuffle.js and lazysizes. The data munging and HTML construction is performed by some rough R code. It needs a bit more polishing, especially on mobile, but I've preferred to spend my time loading the entries and making my own maps.

I quickly cobbled together a gallery of all the maps in 2019 just after the challenge ended - it wasn't sophisticated but it worked. In 2020 I was able to reuse the gallery code, but it was even more time-consuming to process the tweets, and the page was only just working with the amount of maps people produced (a sign of success!). I decided early on that I wouldn't redo this in 2021 as I wouldn't have time either to process the tweets or write a new more technically viable gallery. But the thought occurred to try a gallery of just R maps with code - I could reuse the gallery code and create a useful resource.

David Friggens, November 2021.