Fixing strange behaviours, producing more reliable backups, and web notifications
Summer is now at its peak in the Northern hemisphere and work slows down… but not for everyone! Development continued on the website, and the month of July (and a bit of August) brought these changes.
But before we get to the list: how many of you will attend State of the Map 2026 in Paris? I, and many in the team, will be there and hope to see you! Please come say hi, tell us all about you and OSM, and ask us any questions.
And with no further ado…
User interface
- We continue to improve how we link to Wikimedia content from the data browser. (@hlfan)
- If you saw a strange behaviour where the map zoomed out unexpectedly when interacting with notes, that should be fixed now. (@hlfan)
- There was another weird bug where the map would disappear after clicking back&forward in some circumstances. Fixed too! (@hlfan)
- Another strange behaviour would leave you with no error message if a note failed to save. Also fixed. (@user10)
- Plus yet another one fixed where you wouldn’t be able to remove a social link in an edge case. (mvanhorn)
- And of course we added a banner to remind everyone of SotM taking place. (@tyr_asd)
- Oh, and one more thing. User notifications. On the website, under “My Notifications”. We said we were reworking how notifications are handled behind the scenes and this is a more tangible result. The functionality is still in flux, we’ll keep you updated as it evolves! (Plus follow-ups: one, two, three, four). (@pablobm)
Behind the scenes
- We continue the road to MapLibre, with small refactors to help reduce the weight of the main change to come. This month, this included a refactor of the ability to move the map when dragging a marker (which now can be used in the diary page too), restructuring confusingly named files, and making use of the facilities we have been building. (@CommanderStorm, @TomH, @hlfan)
- Good moment to remember that there are other instances of the OSM website! The folks at OpenGeofiction contributed two changes to allow configuring features that don’t make sense for them: one is about globally disabling the trace upload functionality, and the other allows customising the links to bulk exports (@wangi’s first contributions!)
- Following up some preliminary work in May, there’s now a functionality for moderators to define “Moderation Zones”: sections of the map where some actions are restricted. For now, these will just ban anonymous notes in these specific zones. (Preceded by one smaller technical change) (@pablobm)
- Facebook. They have a functionality to “forget” all your details in order to follow GDPR and similar regulations. To us, this means sometimes they ask us to delete the links between some Facebook accounts and OSM. This involves manual work, so we implemented an API that should automate the process. (Plus follow-ups: one, two, three) (@TomH)
- And finally, a security fix to prevent attackers from potentially, hypothetically, in very specific circumstances, read files that shouldn’t be accessed. Perhaps. Just in case, we secured it, and then polished the fix (@TomH, @AndyAllan, reported by Turgay Mammadli)
Developer experience
- We refactored some JavaScript code to use “promises”, which if you are not familiar might be less exciting than they sound. They can be great in programming though, so here’s some. (Plus follow-up). (@hlfan)
- We made a lot of changes to convert our custom styles to use Boostrap, plus fixed some issues we created in the process
(one, two, three, four, five). (@hlfan) - We make an effort to follow the framework’s conventions as much as it makes sense, as this makes it easier to upgrade, onboard new contributors, and generally avoid surprises. As part of this, we moved a number of files around to the places they are normally expected to be. (@AndyAllan)
- Also as part of following these framework conventions, we converted some JavaScript code to use Turbo, which is the preferred way to handle async page updates. (@hlfan)
- Following recent changes to how we manage dependency upgrades in the Ruby code, we have made the JavaScript code follow suit. (@TomH)
- For the first time in a while, there was a small change to cgimap, to make sure CI passes in newer operating systems. (@TomH)
- And in order to better comply with our code style checkers, we tweaked some links so that they always provide a destination, even when this is calculated dynamically. (@hlfan)
Beyond the codebase
The website is the main point of access to the OSM database, which is huge, at about 14.8 TB as I write these lines. The folks at the OSM Operations team work tirelessly to keep everything running, and this includes making backups of the data, which not only is useful for disaster recovery, but also serves as the basis of the Planet files that anyone can download.
This adds a complexity: with so much data, full backups could take almost 3 days to create, plus about 3 more days to produce the Planet files. But the whole process must be done in under a week, or that messes up with the schedule for weekly Planet files. The team have been working on improving the situation for a while now, and they have just implemented a change that has reduced considerably the time to create a backup which should solve the problem for the foreseeable future. ![]()
Coming up
Now that user notifications are listed on the website, we probably should draw more attention to them. Different sites and apps handle this in different ways, some more subtle than others. We are working on incremental improvements to see how to mark them as “seen”, “read”, or if and how to show a count in the user profile. Stay tuned. Well, you’ll see yourselves anyway!
