Built at night
Art Map London is where Adrian Raudaschl cut his teeth building websites. This is how that went, told mostly by the notes he left himself along the way.
Jenny knew the art world. Adrian knew a bit of PHP and, by his own account, very little about art. He joined in 2014 as co-founder and the person responsible for everything with a plug on it, and has said since that the project became the place where I really learned to love and appreciate art
. It was also where he learned to build for the web, in public, with real galleries waiting on the other end.
The form that would not take a picture
The early site ran on WordPress, which was fine for a blog and wrong for what Art Map London needed most: a way for any gallery to send in an event, with a picture, without emailing Jenny. So Adrian started building one by hand.

Got the shiny new ArtMap London form working with Ajax and Bootstrap but for the love of me can't get file uploads working. Grrr!
Everything a listing needed is already there: the name, the date, the address, the postcode. So is the I'm not a robot box. The picture is the part that didn't work, and it went on not working for some time.
2017: starting again
In January 2017 he threw out WordPress and began the site again from nothing in Laravel. The first note in the history, on 21 January, reads CRUD test
. There are 550 in his name over the next five years, and 431 of them are from the first.
See the numbers
| January 2017 | 4 |
|---|---|
| February 2017 | 9 |
| March 2017 | 47 |
| April 2017 | 42 |
| May 2017 | 70 |
| June 2017 | 19 |
| July 2017 | 36 |
| August 2017 | 45 |
| September 2017 | 28 |
| October 2017 | 48 |
| November 2017 | 49 |
| December 2017 | 34 |
| January 2018 | 12 |
| February 2018 | 2 |
| March 2018 | 7 |
| April 2018 | 9 |
| May 2018 | 24 |
| June 2018 | 7 |
| July 2018 | 5 |
| August 2018 | 1 |
| September 2018 | 0 |
| October 2018 | 12 |
| November 2018 | 1 |
| December 2018 | 7 |
| January 2019 | 0 |
| February 2019 | 1 |
| March 2019 | 0 |
| April 2019 | 0 |
| May 2019 | 0 |
| June 2019 | 0 |
| July 2019 | 0 |
| August 2019 | 0 |
| September 2019 | 0 |
| October 2019 | 0 |
| November 2019 | 0 |
| December 2019 | 0 |
| January 2020 | 0 |
| February 2020 | 0 |
| March 2020 | 0 |
| April 2020 | 0 |
| May 2020 | 0 |
| June 2020 | 0 |
| July 2020 | 0 |
| August 2020 | 0 |
| September 2020 | 0 |
| October 2020 | 0 |
| November 2020 | 0 |
| December 2020 | 0 |
| January 2021 | 28 |
| February 2021 | 0 |
| March 2021 | 0 |
| April 2021 | 0 |
| May 2021 | 0 |
| June 2021 | 0 |
| July 2021 | 0 |
| August 2021 | 0 |
| September 2021 | 0 |
| October 2021 | 0 |
| November 2021 | 0 |
| December 2021 | 0 |
| January 2022 | 0 |
| February 2022 | 2 |
| March 2022 | 1 |
It was built around a day job. 68% of those commits were made after eight in the evening and 45% at the weekend. The busiest hour of the whole project was ten to eleven at night.
See the numbers
| 12am | 29 |
|---|---|
| 1am | 0 |
| 2am | 0 |
| 3am | 0 |
| 4am | 0 |
| 5am | 0 |
| 6am | 0 |
| 7am | 1 |
| 8am | 2 |
| 9am | 9 |
| 10am | 3 |
| 11am | 3 |
| 12pm | 1 |
| 1pm | 12 |
| 2pm | 12 |
| 3pm | 26 |
| 4pm | 23 |
| 5pm | 15 |
| 6pm | 31 |
| 7pm | 37 |
| 8pm | 53 |
| 9pm | 68 |
| 10pm | 121 |
| 11pm | 104 |
By spring the new site had what the old one never did: accounts for galleries, a queue where every submission was checked before it went up, search, and a page per event that worked when you shared it. At its busiest, Adrian reckons, five to ten events arrived every day and about a hundred people came to look.
Forty commits about one form
The submission form went live in March 2017 and was never really finished. 40 commits mention the form, submissions or uploads. Read in order they are a small history of everything that can go wrong when strangers are allowed to send you things.
added event submitAdded new form submitset file size limit on image upload and updated blade for uploadfixed uploadMade jenny changes on form stylingFixed event submission formPut restrictions on file uploadAdded new checks to make sure images over 3000px can not be uploadedUpdated submit event to remove any tags or paragraphs which may be causing formatting issues
Photographs arrived straight off the camera, too big for the server to shrink without running out of memory. Pasted text brought its formatting with it and broke the page. Addresses had to be tidied before a map could place them. Each of those became an evening.
The bots
A public form with an upload button is an invitation, and within two months of launch things that were not galleries had accepted it.
Added htmlpurifier to remove nefarious submissionsAdded hidden email field to fool bots with validationadded botscout for future ip address filteringremoved botscoutAdded recaptcha
The hidden field is an old trick: add a box that people can't see, and throw away anything that fills it in. It held for a while. A service that checked visitors against a list of known bots lasted eleven days before it came out again. In the end the answer was the same I'm not a robot box that had been sitting in the 2015 prototype. It went in on 15 February 2019, and it is the last change anyone made to the site for almost two years.
They got through anyway. The last years of the archive are dotted with conferences that had nothing to do with art, a neurology congress in Kuala Lumpur among them, and clearing those out was one of the first jobs when we rebuilt it.
The pictures
Every listing came with an image, and getting thousands of them to appear quickly and at the right size took most of October 2017. 41 commits mention images. Some days the history is just this:
image testfinal test for imageanother image testreset image systemtesting imageexperiment image againincreased memory limit for image manipulation
The originals were kept in a storage bucket, away from the server. That decision is the reason this archive has pictures at all. When the server and its database went, the bucket carried on, and every image you see here was still sitting in it years later.
The parts people remember


- The map. Pins that grouped together as you zoomed out arrived in October 2017, and the side-by-side list and map that December.
- The Sunday email. A newsletter that wrote itself from the week's listings first went out in November 2017. One commit from that week reads
Removed weak point that sends out all newsletter emails
, which is as much as we are going to say about that. - The tube. Nearest station and minutes on foot, for every event, from October 2018.
- Search. Built on a hosted search service in February 2017 and rewritten six weeks later to do without it.
Keeping it alive
The listings stopped in 2020 and the code began to rot, the way code does when the things it depends on move on without it. Adrian went back twice.
debug save eventdebug changedebug moveDisabled event submissionsFailed attempt at dockerising (requires a newer version of laravel). Got it working locally on homestead virtualbox!Re-enabled the event submission and the event page seems to work!
In January 2021 saving an event started to fail and, after an evening of commits called debug
, he switched submissions off. A year later he spent three weeks of evenings getting the whole thing to run on a modern machine, and on 6 February 2022 turned the form back on. The last three listings in the database are his own tests from that evening; one is called Artmap Returns
. His notes for the day end: Successful day!
It was the last one. Some time after that the server went, and the database with it.
This version
The site you are reading has no database, no accounts and no server to fall over. It is a few thousand plain pages, rebuilt from what we could recover, and it should outlast us without anyone having to go back in at ten at night.
Two things survive from the old code. The pink is the same pink. And the guestbook, the one place here where strangers can still send us things, is guarded by a hidden field that people can't see.
Surprise me