blog@dmn.one
  • /posts/2025-04-14_init

 /$$           /$$   /$$    
|__/          |__/  | $$    
 /$$ /$$$$$$$  /$$ /$$$$$$  
| $$| $$__  $$| $$|_  $$_/  
| $$| $$  \ $$| $$  | $$    
| $$| $$  | $$| $$  | $$ /$$
| $$| $$  | $$| $$  |  $$$$/
|__/|__/  |__/|__/   \___/  
                            
                            
                            

I've been meaning to start a blog for a while. I haven't had much of a web-presence for quite a long time now.

Exploring

The main thing I wanted from it was to have a place to put my photos that I was building and hosting myself. Between 2012 and 2015-ish (with a little revival in the few years after) my main hobby was urban exploration. I spent the vast majority of my free time wandering around abandoned buildings and taking photos, or looking for more abandoned buildings to wander around in. The research and prep was an equally enjoyable part of the process and involved a good amount of sleuthing. The starting point was just reading other people's reports on 28dayslater, a big and popular urban exploration forum. The popular and well-known places were named and easy to find. After the easy finds there, I'd go on to do the same thing with smaller, personal urbex blogs and Flickr accounts, I'd look on listed building registries, in the National Archives for records of hospitals, on local news sites for mentions of derelict buildings or arson attacks. Offline, I was cycling to college daily and already going through an industrial district where a couple of big locations were, so I'd take different detours and side streets and look for telltale signs that a place was abandoned and, more importantly, that there might be a way into it.

In all, I explored over 100 different locations - often revisiting local ones - and took over 10,000 photographs. I've always posted these photos somewhere. When I first started doing urbex in May 2012 I had a Tumblr account, so that was where I posted my photos. I'd do a brief write-up and dump my photos in a single post. I don't remember specifically why I didn't post to 28dayslater. I think partially it was because I didn't feel I had much to contribute - the popular places that were easy to find and access had many, many reports already with better photos than I could take and more details on the history - and partially it was because it felt like a cliquey site, with regular posters knowing each other and using insider lingo. So I stuck to my blog, later dropping much of the write-up aspect and just posting individual photos. Sometimes they got traction and picked up a few likes and reblogs, I didn't mind too much either way.

In April 2013, on the recommendation of my then-girlfriend now-wife Immy, I signed up for Instagram and starting posting through my backlog of pictures. The experience was starkly different, there was instant feedback in a way that just didn't happen on my Tumblr posts. I remember being surprised and pleased at the steady trickle of likes that came in on my first post. The bigger change was that there was now a budding community. As well as the big #urbex tags, there were city-specific ones, and there were people posting to those tags, people who were out exploring the same places as me.

When I first started exploring, I went everywhere solo. This was pretty risky in all honesty, and definitely against the general advice. There was always the danger of falling or getting stuck or encountering undesirables, but I was young, reasonably careful, and knew my limits with things like climbing. No harm befell me when exploring alone apart from minor scrapes. Later I started going everywhere with Immy, it had really become a shared hobby for us and we'd plan trips for the weekend, excitedly messaging each other about leads and promising looking places. With Instagram, we were able to find a place in the community of local explorers. Everyone who posted on the local tags followed one another, not least because you could quickly find out when coveted abandos became accessible, or when there was some newly vacated building ripe for an explore. This too fed into the joy of the discovery process. We'd see a picture of somewhere we didn't recognise and would begin combing through all the photos looking for clues - documents with business names or addresses on, window shots with visible landmarks or at least something to compare with Google Maps or Street View - any hint of where it might be. The rules were different on Instagram, posting the names of places à la 28dayslater was discouraged, we instead tried to keep things secret and people would rarely respond to strangers asking for location details. All this was to avoid the inevitable downfall that came with a location being well-known. Locations that looked almost as if they'd simply been left one day with their contents intact were prized, but that state didn't last long if the whereabouts and the access was generally known. Things would start disappearing and being broken, attention would be drawn and the clandestine access would be discovered and sealed. If you wanted to be able to revisit places, you needed to keep them quiet unless you could trust the person you were sharing the details with.

We met and befriended a fair few people through the Instagram urbex community over the time we were active there, we would go on journeys further afield together and would send each other details of new discoveries, annotated Google Maps screenshots and complicated instructions for access - which fences to climb, which shutters were unsecured, which window boards were loose, which places had active security. It was fun, and I certainly got into a lot of places that I never would have managed on my own. But, over time, the situation changed. The issues with Instagram and the modern internet in general are wide in scope and better suited to their own blog post, though they're also already well documented. An algorithmic feed designed to drive engagement in a walled garden run by one half of the advertising duopoly that drives so much of the surveillance capitalism we live under is no good thing, but we were also experiencing our own small Eternal September. Urbex was becoming popular, new people were doing it and they didn't care about the already pretty ill-defined rules. Forums for hobbies are insular in nature, 28dayslater generally only attracted the attention of people who were already interested in urbex, or in the history of somewhere specific. Instagram was the opposite, the common denominator is just that they want everyone to join, people could find the hobby without being interested in it first. Soon, whenever a new place popped up, you could guarantee that everyone had been there within the week and the access was gone the week after. Sites that had been pristine were going into ruin at an accelerated rate, places that were easily accessible staples were getting locked down tight. I was often left comments or sent DMs from strangers asking for location details or if I could tell them anywhere good to go. I never minded sharing details with people I knew well who played by the rules, but this was different. For us, half the fun had been in finding these places ourselves and it was disheartening to see people have so little interest in that, instead just wanting shortcuts so that they could post pictures for likes. Nobody seemed to really care about the history or about enjoying the exploration, it was just about internet clout.

Eventually the situation with Instagram just made the posting photos aspect of urbex unenjoyable, it was grating to interact with the community and see the low effort stuff floating around, most of the people who were previously active who we followed closely had dropped off posting too. Our life had changed as well, once we were working full time and no longer living at home we didn't have anywhere near as much time to devote to urbex, and responsibilities only grew from there. I recently deleted pretty much all of my social media accounts because I was so fed up with them, they were a constant drain and time-sink that no longer felt like it provided me with enjoyment or value.

Building

So, having no social media or real web-presence anymore, I wanted to start a blog. I figured I could post urbex retrospectives and likely write about the occasional technical topic as well. I like to build my own things and self-host, so I wanted to be able to do that with it too. My initial thought was a static site generator, and likely Hugo. I write plenty of markdown anyway, most of my notes are kept in Obsidian, albeit often edited in Vim. If I had only wanted the written content then that's probably what I would have gone with because it's so straightforward, I wasn't really interested in learning a new tool in some great depth for this, I wanted to be able to spend more time on the actual content. However, there was one thing that I really wanted to include aside from just having straightforward images within the blog content. Tumblr had/has a nice feature where visiting your-blog.tumblr.com/archive just shows a big grid of thumbnails for everything you've posted, this was great for aesthetic blogs and I wanted to have something similar. I planned to tag images in a semi-hierarchical way, with a top level #urbex tag and then a #place for ease of viewing, but then as I added more photos to the blog I would add thematic or aesthetic tags to produce nice pages of similar looking images.

I found a nice looking JavaScript photo galley called PhotoSwipe and a couple of GitHub repos with tools for marrying it to Hugo, but it all felt like it was a world away from the result I was envisioning. I'm sure that what I wanted to do was absolutely possible with Hugo and the PhotoSwipe plugin, but I'm equally sure that I would have garnered no enjoyment from the process of reading enough of the documentation to be able to implement it. I could take the standard trial and error approach and just fiddle until something worked, but that was likely to be equally unenjoyable and would just result in me having a slightly better understanding of something that I didn't really care about understanding. I had a desire to make a blog, not become an expert in a tool that I only wanted to configure once and then forget about. So I did the thing that plenty of devs do when faced with reading a reasonable amount of documentation, I just decided to not bother with the tool and to build something myself from scratch.

I started out by writing some raw HTML and CSS to produce a prototype with the features I wanted. I used Terminal CSS for the look because I'm awful at design and that was basically already what I wanted it to look like - a monospace-y, terminal-y, hacker-y thing. I then spent a while building the tag page layout and remembering why I don't like doing frontend work. Because I don't enjoy it and because it's never been my job, I've also missed out on the last fifteen or so years of frontend development progress, so I had some catching up to do. Eventually, I ended up with a decent enough looking tag page that looked a bit like Tumblr's archive or an Instagram feed.

The next problem was serving images properly. For the proof of concept I was just using my raw JPEGs at full resolution, which obviously meant slow loading and unnecessary bandwidth usage. By this point I'd started writing the actual generation code because I needed to throw a good amount of images onto the page to test the tag gallery layout. I've used Python for this because even though I've never used it at a day job, it's the language I have the most experience in and it's usually what I reach for when it comes to side projects and hobby coding.

I'm using the Python library Marko to generate HTML from markdown. It's simple to use and extend with custom elements that you can render into specific HTML. It can also produce an abstract syntax tree of the parsed elements which lets me do extra processing on things like the images.

For the images, I save a copy at the original resolution with a slightly lower quality as a progressive JPEG, meaning it loads as a progressively less blocky version of the image rather loading line-by-line. I then save a thumbnail at 480p and upload both of these images to Backblaze b2 cloud storage. I followed this guide by Backblaze for serving this images via Cloudflare, which means I don't have to pay network egress fees due to the Bandwidth Alliance. I was already using Backblaze for my remote backups and even though there are downsides to Cloudflare's dominance over the modern web, their free tier offering is really just too good to pass up.

I also extract a few bits of EXIF data to display alongside the photo, namely the camera model, focal length of the lens, shutter speed, f-stop, ISO and whether the flash fired. This is as much for my interest as anyone else's - the camera model and lens length certainly dates the photos, I went from camera phone to camera phone to DSLR, and then bought a fancy wide angle lens.

Being Stuck

The original draft date on these couple of posts was 17/11/2023. When I came back to it, I couldn't believe it had been well over a year since I started this. I had been working on it with the usual vigour associated with a new project and had been sure I was going to get it out in the world quickly. I had a minimal set of features in mind that I definitely wanted before making it public to avoid scope creep and endless fiddling, but I got thoroughly stuck on a relatively minor frontend issue partway through and then abandoned the project for months.

Eventually I picked it up again though, managing to fix the problem fairly quickly and then got on with finishing up my couple of posts and outstanding MVP features.

Starting side projects is easy. Like many devs, I've got a ton of things I've started. The hard part is actually finishing and shipping them, especially persevering through the parts where it stops being fun or novel. I'm happy to work on difficult problems if they're new or interesting, but CSS layout minutiae is neither to me.

Similarly, despite considering this to be "finished" now, I haven't done the hard-but-a-bit-dull work of automating the deployment in a sensible way or cleaning up my crap proof of concept code. The main thing is that I can do what I wanted - I can write posts in markdown with custom images layouts and tagging, and I can generate some HTML that looks half decent and has image galleries. My hope is that now I can focus on actually writing some content and occasionally adding small features to the site incrementally.

Spoilers

I think I want to do the urbex retrospectives mostly chronologically, which means starting out with some of my worst pictures. To combat that, here's some of my favourites.

Looking down from the top of a circular tower, a wide spiral staircase descends, winding around ball lamps that hang from the centre. The image is reminiscent of an eye.
urbex
HTC One X 4mm
1/20.0 f/2.0 320ISO
A vertical, wide-angle shot beginning at the bottom of a narrow staircase, ascending to an open door set in large frame with a triangular lintel. Two large, round skylights above illuminate the scene, with algae growth tinting the flaking walls a yellowy-green.
urbex
Canon EOS 1100D 10mm
2s f/5.6 100ISO
A largely intact castle fills the scene. A hodgepodge of turrets, towers and crenellated walls emerge from a hillside of trees, variously hidden by branches or covered in moss and creeping plants.
urbex
Canon EOS 1100D 23mm
1/100.0 f/6.3 100ISO
An extreme close up shot of the switches and buttons of a dusty old control panel.
urbex
Canon EOS 1100D 39mm
1/2.0 f/5.0 800ISO
Light streams in through an octagonal skylight set into a vaulted ceiling, one quarter of which is green and water damaged with a gaping hole, while the rest still has almost pristine ornamental cornicing. Twisted wrought iron banisters wrap the landing and descend the stairs.
urbex
Canon EOS 1100D 10mm
1/60.0 f/4.5 100ISO
Ferns and buddleia carpet the ground of an alley between two worn brick buildings. At the centre, a walled and roofed bridge crosses the gap on the upper floor. It is half coated in the green of moss and algae, its intact window panes are milky with age and dust.
urbex
Canon EOS 1100D 18mm
1/60.0 f/5.6 800ISO ⚡️
A metal staircase wound in a tight spiral descends into a circular structure below, no bottom is visible, the steps simply disappear into blackness.
urbex
Canon EOS 1100D 18mm
1/8.0 f/8.0 800ISO
In the middle of a wood, across a river, a low stone building is almost completely swallowed by ivy and obscured by trees. The slate roof is missing shingles and is beginning to sag and collapse.
urbex
Canon EOS 1100D 24mm
1/40.0 f/4.0 320ISO
Two curious round brick structures emerge from the grass, each is topped with a dome and set with regularly spaced tunnel entrances. Ferns grow at their edges, creeping plants coat their walls and scrubby grasses are beginning to coat their rooves.
urbex
Canon EOS 1100D 39mm
1/80.0 f/6.3 100ISO
A girl stands in a bare bedroom at the centre of the shot glancing sidelong at the camera, framed by faded pink walls that are beginning to mould. Soft light filters in through a large window, offering a glimpse of dense shrubbery in the garden beyond.
urbex
Canon EOS 1100D 20mm
1/20.0 f/5.6 200ISO
This shot is twisted sideways, showing a long corridor extending through the smashed reinforced glass of a fire door. A broken section of ceiling lights a small band of the corridor dramatically before it plunges into darkness at the end.
urbex
Canon EOS 1100D 10mm
1/2.0 f/4.0 100ISO
A close up of smooth, translucent blue glass that has half melted and appears to ooze over the edge of its rusty, fire damaged frame.
urbex
HTC One X 4mm
1/33.0 f/2.0 125ISO
A fern grows on a rotten windowsill, fronds reaching towards the cracked glass. The bright, lively green stands out against the brown and grey, dingy surroundings
urbex
Canon EOS 1100D 30mm
1/30.0 f/4.5 800ISO
A close up of an old computer keyboard, most of its keys are missing and the few that remain are coated in a fine network of cobwebs.
urbex
Canon EOS 1100D 39mm
1/15.0 f/6.3 1600ISO
A wall of bright green leaves is visible beyond a church lancet window, vines of ivy are just beginning to reach around to the wall inside, glass lies on the pew below.
urbex
Canon EOS 1100D 16mm
1/60.0 f/7.1 800ISO
Soft, yellow light filters in through windows, illuminating an empty room in a mill. A staircase disappears upwards, each step is worn in the middle from countless steps and is piled high with dust.
urbex
Canon EOS 1100D 27mm
1/40.0 f/8.0 1000ISO
A workshop, a sink lies upside down on the floor beside the stop on the wall it used to occupy. Above the workbench, pale morning light streams in through the windows, illuminating everything a soft blue.
urbex
Canon EOS 1100D 16mm
1/3.0 f/9.0 400ISO
A large, brown glass bottle labelled
urbex
Canon EOS 1100D 55mm
1/60.0 f/5.6 400ISO
A long view down what was once a corridor in a stone manor. The floor is now covered in a layer of soil, moss and ferns thrive at the edges. At the end of the corridor is the bright green of the surrounding woods.
urbex
Canon EOS 1100D 20mm
1/4.0 f/9.0 800ISO
A tarnished metal teapot and accompanying blue mug sit on a cupboard, there are rusty nails all along the side of it for hanging tools or tea towels.
urbex
Canon EOS 1100D 23mm
1/30.0 f/3.5 200ISO
A wood panelled office with a dirt floor. Moss grows over the last remaining drawer in a filing cabinet and over the ground, among ferns and other small plants. Everything reaches for the light streaming in through the window.
urbex
HTC One X 4mm
1/20.0 f/2.0 250ISO
Light flows in through a large fan covered with mesh, it illuminates the red top of a stool, the only bit of colour in the picture.
urbex
Canon EOS 1100D 16mm
1s f/8.0 400ISO
A kitchen side covered in broken glass and chunks of plaster, all coated in algae and moss. At the windowsill, plants grow from the edge of the tile and reach for the broken window.
urbex
Canon EOS 1100D 29mm
1/80.0 f/6.3 100ISO
A stone staircase with ornate iron bannisters, the walls are yellowed and cracked where panelling used to be.
urbex
Canon EOS 1100D 10mm
6s f/5.6 400ISO
The corner of a room, on one side is a thick blue door surrounded by peeling paint; on the other, countless tendrils of brambles spill in through a large window.
urbex
Canon EOS 1100D 18mm
1/40.0 f/3.5 640ISO

© DMN. All text and photo content is licensed under CC BY-NC-SA 4.0 unless otherwise stated.

atomRSS