I first tested that persistent storage works at this scale in indexedDB, you can try a browser test here (small download file): https://taonexus.com/publicfiles/aug2025/index.html this is an IndexDB persistence test with random data that I used to verify that the offline functionality works as I expected, I verified it on many different occasions over multiple days and across power cycles, etc. After I verified that this was working as expected I used the help and work of a lot of different projects to complete the offline maps application.
The offline map of Budapest listing embassies (150 megabyte browser download):
http://stateofutopia.com/bpoffline/
This project leans on a lot of other projects, there is a long acknowledgments list in the application. It's a 150 megabyte offline map of Budapest (where I live) that is stored persistently in the browser's indexedDB database (you can click the remove button to remove it). I added hard-coded embassy locations and addresses, that are written into the underlying image files. These are all static images current as of August 7, 2025 and the embassy addresses were also verified as of that date.
The process of creating this involved downloading the maps, creating a web app to load the tiles, and loading the tiles, as well as adding the correct mobile support. There is a button to center on the current user's location based on GPS locations, which I verified works correctly in Budapest.
As you might expect, I used Claude, ChatGPT, and Gemini as tools to complete this project successfully.
The project is served on a dedicated server I pay around $180 per month for that is not serving anything else (other than a small react front-end demo), it has enough capacity to serve the files at full speed to most users.
If you are experiencing any slowdowns, please contact your Internet Service provider to advocate for better upload and download links.