The idea of an app really appealed to me (at first), but the more I thought about it the more I didn't want to deal with iOS and then Android and then maintaining parallel functionality on the web and all that mess just for a fairly-local hobby project that I make no money off of.
So, I just kept it as a website (which is also a PWA) with extensive testing on every platform I can think of. It's just worked out so well and is so, so, so much less complicated. And if I abandon it, should just keep working for years so long as the website stays up (or until browsers start doing something very different JS-wise.)
(You can see it at https://trailmaps.app if you're interested.)
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.
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.
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.
(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>)
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.
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.
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.
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/
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.
My last attempt, it felt like Apple was no longer interested in the idea of hobbyist developers. The setup just to get the Xcode project setup felt like I needed to have a company and a website. When I selected something about iCloud, because I thought it would be nice if what I made synced to iCloud, I couldn’t even get started without paying $99, so I had to start again and choose a different option without it. And here I thought the $99 was just to publish to the store.
Considering how Apple started, this trend feels wrong. When I wanted to make a simple little app a few weeks ago, I ended up using python with webview. It seemed to be one of the few ways to make a little GUI app without boiling the ocean.
That's an EU thing. If you don't publish in the EU you don't need to dox yourself.
A random counter-example from France. If you have a one-person small business (i.e. with a registered business number and the right to invoice), all personal information beyond the name is private by default, it cannot be looked up. The Nordic countries are perhaps closer to the image you're painting. Personal tax information is famously public in Sweden, for example.
But IMO differences are easy to exaggerate. Let's not forget that private phone numbers used to be published in paper directories - with home addresses! - everywhere, including America.
The internet has created a culture of deranged harassment that makes posting your identity online alongside anything you publish more insane than ever. And your market is more or less the entire world rather than your local community.
Unless I’m mistaken, Steam and GOG games aren’t listing the address of the game developers in the EU, but I admit that I might be mistaken.
I have no interest in installing a web app that could look innocuous today and be entirely different every time I hit F5.
Search right now in the App Store for "Morpho" and you'll find a "Morpho: Network" app. That app says it's some sort of TODO/Note taking app. It uses very broad language in the screenshots and assets from morpho.org (a decentralized protocol).
Once you open the app, it immediately downloads another bundle using OTA updates and shows an entirely different app where you "connect your wallet". You can imagine what happens next.
Section 230 immunity baby!
Or as I have encountered several times over the years, it turned out to have vanished without a trace for whatever reason (author got bored, became ill, didn’t want to pay for the domain any more, etc) when I reach for it, sending me searching for an alternative in the midst of a task.
Self-contained binaries stored on my personal devices don’t do that, and one can usually find third party copies scattered across the internet long after the author stopped publishing/maintaining them.
I personally have no love for web apps either. No matter how many well-behaving developers are out there, the median web developer has ruined the web as an app platform to the point where I view web software as generally hostile, ad-filled, spyware, that's under the control of and serves the web developer's interests over the end user's interests.
I’m a dev and understand how web apps can be attractive to us, but as a user they irritate me. During my formative years, software by and large served the user over the dev, so flipping the scales entirely in my favor as a dev feels almost wrong.
The other issue is that web browsers are dynamic environments (much more so than operating systems) and sometimes break/change things. Users who’ve frozen PWA updates don’t have any access to critical fixes. A lot of devs just wouldn’t support frozen versions.
That's been the case with native apps for a long time now too.
It's such a weird thing to be concerned about though. Your phone automatically updates apps by default so they can suddenly look different later. And even then, so what? If the change was malicious just stop using it? Apps are sandboxed, websites are sandboxed, you'll be fine.
What's worse is that there's practically no process to report any sort of rulebreaking, so someone could be mining crypto or running a residential proxy [1] through the mobile game I've been playing, and I'd be none the wiser.
Not that it doesn’t occasionally happen, but at that point you’re trying to dodge the police… as compared to there being no police in the first place.
All the time I hear that "PhotoSync" is good or I install an app for a business that I deal with like my bank or the local gas station.
On the other hand I feel like it is safe and usually worthwhile to browse the web -- even the sketchy parts, like the web sites that lead me into rabbit holes right out of Videodrome.
and failing at it, because that garbage got published on the app store.
You cannot make that claim unless you know how many apps Apple has rejected for being garbage. On one hand, developers complain Apple runs all kinds of checks on their apps before publishing on the App Store. On the other hand, users complain that App Store has too many low-quality apps. Both can be true at the same time if the stream of apps is high volume and low quality.
Just weeks ago they published a sanctioned Russian bank's app masquerading as a pomedoro timer lmao.
I think if they didn't have immunity for all the scams and fraud - and that's being challenged by both the EU regulators and in US courts - they'd probably have a lot more than 500 people. Multiples of it.
BTW, good recent comment on the difference between Apple and Google reviews: https://news.ycombinator.com/item?id=48911599
For something free I can get why this would seem unreasonable (modulo scams, for which this is a hoop I would rather have than not), but if money's involved, a consumer should be able to contact a human and be made whole, and having the money be handled by a company (even if that company is just a one-man-show) honestly does not seem unreasonable.
If you want to bypass that, you just shouldn't publish to the App Store, which does (or at least is supposed to) have protections suitable for most people. You should still be able to make apps and use them without the App Store involved, then the individual human who wants that app can make decisions based in the specific app in question and the people behind it, but that's a separate conversation.
You're buying a digital good. You can already get refunds. An email address is fine for contact.
You definitely don't need someone's physical home address, nor an actual phone number.
And sure enough, they are in fact the ones who can issue a refund if you need one. The developer cannot. By design.
Yet I can also ask Dell for a refund despite buying my Dell at my local electronics store. Both should be reachable and both should be able to give me a refund if my item is broken.
> And sure enough, they are in fact the ones who can issue a refund if you need one. The developer cannot. By design.
And Apple should fix that.
What Dell will do is repair or replace a computer that is still under warranty. They won't refund.
They're legally required to.[1]
[1] https://lovdata.no/dokument/NLE/lov/2002-06-21-34/KAPITTEL_5... Section 35
Edit: Forgot there's an English version.
Reading the law, it does not say that the consumer is entitled to a refund.
Simple. They operate within the law and provide the customer with a refund, or they get fined. From the consumer's point of view, this is irrelevant. Business can fix this B2B issue between themselves however they wish, so long as it doesn't affect the consumer. If you don't like it, then don't do business here.
Here's a case where a consumer complained directly to the manufacturer,[1] and the Consumer Disputes Commission ruled in favour of the consumer.[2] It's not even the core of the issue, but just mentioned, since it's settled law.
> Reading the law, it does not say that the consumer is entitled to a refund.
Refunding is one possible remediation, see section 32 (cancellation) and section 26 (The consumer's rights in the event of defects). That option cancels the purchase contract, meaning you as the consumer give the item back, while the seller gives you the money you paid for the item.
[1] https://www.forbrukertilsynet.no/wp-content/uploads/2025/12/...
'Innklagde er klaget inn i kraft av å være produsent av syklene. De er følgelig ansvarlige for kjøpsrettslige mangler etter direktekravsreglene i fkjl. § 35.'
Rough translation: 'A claim is lodged against the defendant due to it being the manufacturer of the bicycles. The defendant therefore liable for for defects accordance with the rules on direct claims set out in section 35 of the Act relating to consumer purchases.'
[2] They didn't rule in favour of the consumer's demand to have the manufacturer pay for their jacket that got damaged following them falling of their broken bike. They did rule in favour of the cost of repairing the bike (a new handle bar that the consumer bought themselves to fix the issue), so the manufacturer is on the hook for that.
However, if you’re running your own website you can make those decisions on your own without being forced into most of them.
Plenty of very large “reputable” companies obfuscate their physical address and phone number, and don’t even offer an email address for contact.
I’d also say that this shouldn’t be as necessary when an app platform is involved. Apple takes 15-30% of the revenue and acts as a full retailer. Why do App Store customers have any need to contact the underlying developers in this scenario?
Walmart doesn’t make it easy/possible for me to contact the manufacturer of their t-shirts.
There are even other digital software stores like GOG or Steam that really aren’t selling you software that has a guaranteed point of contact.
Those platforms just have a half-decent to decent return policy and act as the middleman.
But when you’re on iOS you have all the burdens of a third-party supplier without all the benefits.
You will however pay for that privilege - a lot of people don't seem to realise their home address is in the WHOIS data, because they didn't pay the protection money to redact it
The EU decided so, and Apple didn't require this before EU did
Did the EU specifically demand this from Apple? Did they specifically require that consumers must be able to contact developers?
Or is this another "spin" by Apple to make the EU look bad when it imposes consumer protection that is bad for Apples revenue? Like they did with "chargers", "cables" and like the ad- and surveillance-industry has done quite successfully with their "spin" on the GDPR (making it seem like the EU or GDPR requires cookie banners - which it doesnt)
This changed recently.
This is whataboutism. They should do that too. The fact they don't isn't an excuse for smaller devs or companies.
> I’d also say that this shouldn’t be as necessary when an app platform is involved. Apple takes 15-30% of the revenue and acts as a full retailer. Why do App Store customers have any need to contact the underlying developers in this scenario?
You should be able to contact the underlying manufacturer or whatever of any product you buy. Why should programs be different?
> Walmart doesn’t make it easy/possible for me to contact the manufacturer of their t-shirts.
They should.
> There are even other digital software stores like GOG or Steam that really aren’t selling you software that has a guaranteed point of contact.
More whataboutism. You should have a guaranteed point of contact for what you buy there too.
In the Walmart t-shirt example, should I have the contact info for not only the factory but the other suppliers who made the dyes, threads, cotton, the people who made the fuel for the harvester, the people who welded the tractor together?
Sure, maybe your idealist answer is yes, and on a conceptual level I can agree with that. But from a practical standpoint as the end consumer there is a stopping point.
My point is that Apple handles the money and the refunds, and they make all the software APIs. Completely closed platform. Why doesn’t the buck stop there? I feel like they pass along business responsibilities despite taking a large percentage of revenue.
If they’re going to pass on all those responsibilities for me then their cut should be more like ~5% to just cover transaction and platform costs.
Down to the manufacturer of the whole product you're buying. In the case of your strawberries that would probably be the farmer.
> In the Walmart t-shirt example, should I have the contact info for not only the factory but the other suppliers who made the dyes, threads, cotton, the people who made the fuel for the harvester, the people who welded the tractor together?
No.
> Sure, maybe your idealist answer is yes, but from a practical standpoint as the end consumer there is a stopping point.
Of course there is. But you as the sole dev of an app are not at that point.
> My point is that Apple handles the money and the refunds, and they make all the software APIs. Completely closed platform. Why doesn’t the buck stop there?
My local electronics shop also handles the money and refunds when I buy a Dell. I can still get a refund directly from Dell if my machine breaks (not that I actually have a Dell). Yay reasonable laws.
The platform being closed and all the APIs being controlled by Apple are different problems that should be solved separately (which the EU is working on!).
In case of an app, what is the "product" you are buying? Because according to Apple, they add a lot of "value" by ensuring the software is safe, performant, etc etc. Am I not buying "a safe, checked app"? Or am I buying an app and then separately pay Apple for an added service of "checking the app for safety" etc etc. I'd very much presume the first.
But if its separate, "an app" can be rather ambigous. For a one-time-purchase game, its clear. But many apps are really a service or even more that happen to have "an app" as one of the ways to interact with the service: Netflix, Uber, protonmail, Vinted (or ebay), etc etc: the app isn't the thing I buy. It's a wrapper around a service. Or even just one of the portals through which I can buy stuff. Point being: It's not simple, so your answers don't fit the analogy of "wallmart".
The app.
> Because according to Apple, they add a lot of "value" by ensuring the software is safe, performant, etc etc. Am I not buying "a safe, checked app"? Or am I buying an app and then separately pay Apple for an added service of "checking the app for safety" etc etc. I'd very much presume the first.
If you want to, you can imagine the 30% cut being that separate service, but most analyses I've seen of this assume the first is the case, and I can't really see why it wouldn't be.
> But many apps are really a service or even more that happen to have "an app" as one of the ways to interact with the service: Netflix, Uber, protonmail, Vinted (or ebay), etc etc: the app isn't the thing I buy.
In those cases the app on the App Store is free, so there's nothing a consumer can really complain about, since they haven't bought anything. You can complain about the service rendered when you pay, but that purchase is handled completely separately from the app (non-)purchase.
> Point being: It's not simple, so your answers don't fit the analogy of "wallmart".
It does for apps bought as products. If you want an analogy for apps bought as services, then I'll use a different analogy, since they behave differently, and are treated differently in law.
I wouldn't presume that. Malware ends up in the app store all the time.
Apple does not provide any mechanism for developers to issue a refund, or even look up or view your purchase or subscription - so there is nothing a developer can do here besides refer you to apple support.
(Although as a developer I would like to be able to do this, because customers are very confused by it)
That sounds like something that needs to be fixed.
> Contacting the developer by physical mail doesn’t have any effect.
Ditto.
On the web side of things DNS only recently started being more private - 10+ years ago it was common to have your phone + postal address on whois.
Two take aways from my experience 1. I'm happy that I invested more in the web 2. The app store gives you distribution - I have a few websites with almost 0 traffic, but the app I wrote gets a handful of downloads a week almost 2 years later?
This is the .dk TLD today, and it's the reason I've never posted my website here. The .dk registry (punktum.dk) is run by absolute clowns.
On the other hand, the first thing I do before spending money on a danish website is "whois eksempel.dk", and if it doesn't return a danish address (and wasn't created recently), I'm out.
And I think I got that. I like how mine does what it does (maps breaker panels and records home maintenance and stuff) without someone trying to sell me something.
But once I realized what advertising costs everywhere, I pretty quickly realized that app exists essentially just for me.
And that’s ok, but it’s a stark contrast from the goldrush years of (even garbage) apps making money.
Recently I tried out tiktok for a day and couldn't fathom why I would possibly want to ever use this app. Same with Instagram. But people who followed their trajectory since their earlier days find them normal.
Same with Facebook, actually. And Google.
On the other side of that equation, my very old YouTube account (which still has a subscription to "YouTube Red" that costs half of what a new subscription to YouTube Premium costs) has been trained to show me certain content, and if I joined with a new account or told someone else to join, I know the homepage would be filled with dumb slop.
I agree with everything else you said though.
It’s working. Your low quality project you weren’t really committed to got filtered.
My project hasn’t been filtered at all. I just found the process more of a bureaucratic exercise than made sense (and the end result was that my low quality app was accepted so none of this is done in the name of quality).
I got apps on the store before age 18 because I did not believe they were low quality.
You also can make software without selling it on a store.
This is an EU requirement, and Apple didn't do this before EU required it. All app marketplaces have the same requirement for EU
> On a website you can just not deal with any of that
This may violate other EU compliance requirements but sure there's obviously no authority determining your compliance before allowing you to publish on web
The app review process is explicitly meant to keep out garbage apps.
Sounds like it worked as designed?
It didn't, because his admittedly garbage app ended up on the app store, because the app review process doesn't actually keep out garbage apps.
I'm finding it hard to reconcile a) how difficult the process and b) the load of absolute garbage apps that are out there.
If anyone is interested, it's called HACK and I am writing this comment from it. Link is in my bio.