upvote
So i've done similar things in the past - and my justification for 'app' over website has been offline.

Does the PWA state of things resolve that in the modern days? If it did, yeah I'd agree, no need for an app at all. In my case the app was being used in rural Ontario. I cant even make a phone call here without wifi.

reply
> my justification for 'app' over website has been offline.

Gosh, I wish more apps did some kind of progressive "enhancement" and let people read already cached messages and do deferred sends like the old days, instead of being completely useless without a data connection.

reply
I used to run a company (2010-2018) where our customers were almost always using our product inside of grocery stores, which are almost always metal sheds with some finishings on the walls. Not so great for cell service, it became essential for us to support offline mode if we wanted to keep those customers happy and engaged.

I spent many late nights trying to debug reachability bugs. It's frankly a nightmare trying to build a reliable app when the user has /some/ cell service, but not enough to operate the app reliably.

reply
Gosh, having tried to use the Home Depot app (to find products in store) while IN their stores... It's so bad. I can't even imagine what you dealt with in trying to handle those things.

(And so, so many little bugs in my map thing from upthread were these odd timing quirks when a user didn't have good service and one check would run and leave something else hanging resulting in a blank map. <sigh>)

reply
Yeah, home depot is a tricky case. They have a huge array of products, and in my experience when you cant find something you need to search beyond the store you're in....so the database you need access to isn't exactly small. Makes a practical offline experience tricky.

Home depots website sucks anyway, slow, clunky, terrible touch space, and the search is awful.

Aside, they should ad cell repeaters inside to fix all this.

reply
If I have good service their mobile app is actually pretty quick, but I don't want to join their wifi so... Yeah. :\
reply
Maybe in the US, in Canada i find their online services are pretty average. A lot of the time i search for something and i get a US link, much to my disapointment.
reply
This actually handles that, at least for my use case. Specifically, on first load of the page (in a browser, or the stripped-down browser that runs the app-like PWA install) a service worker gets installed, that caches the entire site/app/map locally, and runs it from there. Then every 24 hours, or on new page load, it checks the live site for content changes and pulls down the changes if they exist. If there's no network connectivity it just silently runs the map.

Each map is 16MB - 20MB in total, so this is all nice and simple to do. Even on a slow 3G connection it's only a minute or so for a full map update to stream in.

The whole point of this system was to take a snapshot of data (mostly OSM), add on some local things that can't really be represented in OSM (like WHICH parking lots are most appropriate, stylistic overrides, system descriptions, etc) and display them. Because of issues I've had in the past with well-meaning-but-misguided OSM mappers wrongly editing trail systems I did not want anything that pulls live.

And then by having purely static content the hosting is very cheap and easy, there's no security concerns around... well... anything dynamic on the site. And each map is portable were I to want someone else to host them. And literally in a couple of years if I haven't updated the map it won't change yet still will work, and that's fine and accepted for this use. Sort-of like a mobile version of a traditional print map. Kinda like the print workflow of editing/design/etc and then rendering the PDF, but web.

This all aligned nicely for me to have a tool that works this way, with each map generated by a tool.

(Sort-of disclaimer: It was also a big personal project in learning to work with AI stuff for development. I knew and understood the inputs and outputs, was able to design the UI, handled/managed all the testing... But I didn't have to worry about the actual-code part. I was able to make pretty quick progress and iterate nicely on my ideas.)

Happy to talk, etc, more about it too. Either here, or contact info is on the site.

reply
Hello fellow map maker! I feel like I’m in the same boat. PWAs work great, I wish Apple would treat them as first class apps. I tinkered with launching a TWA for my app on the Play Store and it works pretty well but I haven’t published it yet. Probably a harder market to monetize than iOS but it seems like good advertising just to have the listing up
reply
Hello! And yeah... :\ The Android/Chrome/Edge support for it is great, and on iOS it's actually nice, but you have to do all the hoop-jumping of clicking Share, whatever, and getting the icon to actually appear.

Also, apparently Apple really doesn't like approving apps that are basically wrapped PWAs (Google will, I guess?) so that is yet another check against bothering with an app.

reply
Yeah, Apple has a rule against simple wrappers. Check out bubblewrap if you haven’t already. It’s made by Google specifically for wrapping PWAs for the Play Store. There’s a tiny bit of work to make a keystore and manifest file, otherwise it just pulls from your PWA config automatically
reply
Thanks for that pointer. I have, but I just really don't want to do it... With my current architecture -- that I like -- it'd be an app per map. Which I guess could make a little pocket money, but they are so hyper-local it wouldn't earn much. So I may as well just keep things going the way they are.
reply
That's a cool project. Sort of a more open Trailforks alternative?
reply
Thanks! Sorta kinda... But also different.

The main idea was to solve the gap of how many trail systems have colored loops, or signed/colored loops made up of multiple "trails", and Trailforks (et al) has no concept of that. So the situation a user finds themselves in is being at a trail, with Trailforks up, wanting to follow the "Orange" loop (for example), and Trailforks doesn't show that.

Hopefully the "Orange" loop is documented as a route, but this stuff often gets missed, and is still awkward since the image of the map still doesn't match the signs.

So my goal was to show the map close to what's physically there, use OSM data as much as possible, and filling in gaps for what OSM doesn't capture, rendering it all into a static map that also happens to work offline. For some specific examples, compare these two systems and their print, Trailforks, and trailmaps.app maps:

RAMBA: [1], [2], [3] Shelden Trails: [4], [5], [6]

There is the same kind of gap when compared to RideWithGPS, Strava, Gaia, etc.

And also, I'm a volunteer with our local trails non-profit. I want anyone and everyone to be able to find maps so they can enjoy the trails. A /lot/ of trail clubs are starting to replace maps with a link to Trailforks, which I believe does riders a disservice because it both requires an app and account and (if a user is trying to view a map out of their home area on a phone) payment. It's literally locking the basic info about a trail -- the map -- behind a semi-paywall. By making a system like this for our local trails I've helped completely avoid that mess. And so I made the map generator open as well so other techy folks can do the same or build on this.

This generated-static-map system does have the downside of being single-person-ish manually managed, and the maps do NOT update automatically. But I also see this as a feature, just like the print maps and in-person signage they are designed to complement.

I've prattled on a little more about the what-why-etc over here on my personal blog if you're interested: https://nuxx.net/blog/2026/06/25/trailmaps-app-map-generator...

--

[1]https://static.wixstatic.com/media/9d19d2_b85c5684f54a4fdc85...

[2] https://www.trailforks.com/region/ramba-trails/

[3] https://trailmaps.app/ramba/

[4] https://www.metroparks.com/wp-content/uploads/2022/04/2022-S...

[5] https://www.trailforks.com/region/stony-creek-metropark/

[6] https://trailmaps.app/shelden/

reply
That’s cool.

Our local trail association did that. Well, actually we went from an old “become a member to download GPS files” to “go find the trails on Trailforks”

But that was when Trailforks was more open and less locked down.

We’ve discussed replacing Trailforks with something better/more under our control, but haven’t gotten around to it.

reply
If you're interested, reach out. Depending on the scale of your system(s) and how much is already in OSM I might be able to spin one of these up for you without much work. (https://cramba.org is my local club, but I work with pretty much all of them in Michigan.)
reply
cool project!
reply
Thanks!
reply