Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Who has had a successful PWA product?
127 points by codazoda 5 months ago | hide | past | favorite | 156 comments
They say to find someone who’s done what you want to do. We’ll, I want to re-launch a successful progressive web app (PWA). I had some success ($500 MRR) with shareware, 20 years ago, but those methods probably don’t work anymore. What does work?

If you’ve had success, maybe you would be willing to exchange some email?




I'll give you a hard-earned tip: expect to fight Apple every step of the way. They will randomly erase all local data (cookies, localstorage, push subscription tokens, etc) in your PWA without warning. They say they don't do this, but I have the receipts. They want PWAs to suffer, and you will go insane trying to make workarounds on iPhone.


Are you saying the Safari browser on iOS intentionally cripples web applications by randomly erasing / deleting browser data (cookies, localStorage, etc)? And this happens on purpose because apple wants to boost App Store Apps usage?

If there is evidence of the veracity of this claim, this topic deserves a whole lot more attention. Especially considering Apple's stance on 3rd party mobile web browser engines - Apple forbids them, although EU regulation may force this to change.

I searched a bit and found no smoking gun, the closest hit was:

https://old.reddit.com/r/Safari/comments/185cra6/safari_nuki...

But it seems more likely caused by legitimate bugs than any intentional campaign.

Have I been nerdsniped here by a nutter? :-s


> Are you saying the Safari browser on iOS intentionally cripples web applications by randomly erasing / deleting browser data (cookies, localStorage, etc)?

I would absolutely make this claim.

This isn't even a PWA thing. We had a really simple series of boring web forms that suffered from this. The first iteration of this had the server swap an initial tokenized link for a cookie when clicked.

After some feedback from our customers, we discovered that iOS users were having a lot of trouble getting all the way through the desired workflow. We were able to replicate this on our iOS devices but it seemed completely arbitrary.

After abandoning cookies in favor of maintaining a tokenized URL, we found we were getting 100% success rate for iOS end users.

My theory is there is a malicious bit of code in iOS Safari that is applying some insane cookie policy over "unpopular" domains.


I think they have a thing now where all stored data gets wiped every few days (in the name of privacy, purportedly). And yes, that broke a bunch of apps.


When do legit bugs turn into active negligence?


My most recent workaround for this is to put a session identifier in the URL somewhere and keep literally everything else on the server.

You essentially have to build your app from zero with these limitations in mind if you want any chance at getting around them.

This is a large part of why I am not a fan of frameworks and other popular design patterns. Having total control over how state is managed and communicated is really important if you don't want to get trapped in various tar pits.


Even IndexedDb? Having a PWA based on webassembly(Blazor) that I test on an updated iPhone 6 I have to say that I didn't ever run in such issues, the experience is good even though the device is old.


They definitely clear localstorage. But they also are honest about doing this under disk pressure — can’t find the link right now though. My old company had a Cordova app and we stored the client token in localstorage and we found some 16G phones losing their tokens and it turned out to be this. We changed to store tokens in the keyring. From a real web app you can’t but I guess if you would use a cookie this might just work.


Also sometimes localStorage gets cleared because it can easily become corrupted from concurrent writes. I had a userscript that made a few fetch calls whenever I visited a certain domain and saved the results in localStorage. Every week or so, all the data in localStorage would just get wiped. Switching to IndexedDB (via localForage) solved the problem.


I was about to say "concurrent writes shouldn't be a problem because localStorage is synchronous and JS is single-threaded," but then I started thinking about multiple tabs, WebWorkers, and multi-process browsers and figured I should double-check the spec.

> Warning! The localStorage getter provides access to shared state. This specification does not define the interaction with other agent clusters in a multiprocess user agent, and authors are encouraged to assume that there is no locking mechanism. A site could, for instance, try to read the value of a key, increment its value, then write it back out, using the new value as a unique identifier for the session; if the site does this twice in two different browser windows at the same time, it might end up using the same "unique" identifier for both sessions, with potentially disastrous effects.

https://html.spec.whatwg.org/multipage/webstorage.html#intro...


Yes, a full local reset. Its an issue that plagued us for almost a year sporadically across several thousand customers. After instrumenting our app with very detailed remote logging, we were fortunate enough to catch it on one of our in-house local test iPhones. The logging showed an app with rich local state, the app close, then several minutes later the app open with no local state. Everything was wiped. This lined up with the feedback we had been receiving. Specifically for us, the push notification subscription tokens were being erased/revoked from the browser, meaning the customer couldn't receive notifications anymore. But the logging showed all local state was reset, including IndexedDb. If you dig through the Apple developer forums and StackOverflow, you will see many others complaining about this. You will also see links to resources claiming that Apple ITP does not do this for PWAs, specifically:

https://webkit.org/tracking-prevention/#intelligent-tracking... "Home Screen Web Application Domain Exempt From ITP". This is 100% bullshit though.

My personal belief is that Apple is purposefully nuking PWAs from orbit in a non-deterministic and "buggy" way because they are a threat to the app store business model, and I suspect if they frustrate enough developers, people will stay away from PWAs.


Nah. I used to be a iOS developer. The official native frameworks are buggy as hell. Everything is broken all the time. Occam's razor is on this behaviour being just another bug that receives little attention because everything else is also buggy. I can't even blame them, the iOS api surface is huge, and every year there's new frameworks and every couple of years new devices. Android has the advantage of being open source, which allows external contributions to fix bugs, which oftentimes fixes the small-percentage bugs because one developer ran into it and decided to fix it. On iOS this is impossible, and there's no corporate incentive to fix small-percentage bugs.


They have trillions, no excuse.


You’re wrong, this has nothing to do with bugs. We’re speaking of Safari not implenting features for years and pushing back many of them because of “security”. All bs.


Hoping everyone reading this understands what's being kept from us.

Cross-platform webapps should be table stakes for adopting any platform.


Great point. The fact that they don’t backup to the cloud PWA data makes it a non-starter for any app that wants a local only experience. It’s trash.


I am not sure that I would be happy with a 'local only' experience actually backing up data to the cloud.


I mean if you explicitly enable iCloud backup, I think you’d expect that your app’s data is backed up.


Random data loss happens on Android quite a bit too. Source: I have a PWA with a lot of users, and my #1 complaint is data being lost on both Android and iOS.

This is true even if you use Google's own tool to wrap your PWA and put it in the Play Store, and even if you use the so-called "persistent storage API" to have users request their data not be deleted - still get random data loss, and it makes it very hard to maintain a 4+ star rating when there are a bunch of 1 star reviews about users losing all their data.


Genuine question - not defending Apple/google - does your pwa not use a dedicated server / db for user’s data? And then localstorage just as a cache if needed?


It doesn't... started as a hobby project in 2012, wanted to see if it was possible to make an app that stored a lot of client-side data in IndexedDB. Now, my app is successful so I don't really want to move to another platform, but also it creates too much data to easily and cheaply sync to a server. So I'm in a weird situation. https://basketball-gm.com/ if you're curious.

I realize I'm a bit of an edge case. But also, ideally we could make PWAs that operate with similar data guarantees as native apps. That's kind of the idea of PWAs, that web apps should be able to mostly be the equivalent of native apps.

And it almost works, except for the data loss issue. Kind of sad. Cause there are so many other advantages of a PWA... like being able to target all platforms with one PWA is incredible. Having no gatekeepers to "approve" my app updates is incredible. But the cost is sometimes users lose all their data :)


Wait why not just charge a small amount?


Just refuse to service Apple customers. They can lie in the bed they've made.


The unfortunate truth is that for too many businesses this is equivalent to "stop running your business"


Does Safari on iOS support the File System API, specifically the origin private file system? Can you use that to reliably persist data into a file/SQLite database?


No, that also gets deleted sometimes.

But on the plus side, random deletions also happen on Android!


That's unfortunate. Good to know, though.


I’m not saying this isn’t true. Genuinely! but when I make up random unsubstantiated slander about other companies it gets removed instantly. What makes Apple different? You could never say this about substack or Tesla.


You can definitely say that about Tesla and most people don't care about substack


https://FreeSolitaire.win is a successful PWA of mine.

It’s a Klondike Solitaire game. It used to bring ~$500/mo of advertising revenue, but that’s significantly down these days: I refuse to have a cookie/consent banner, so I refuse customized ads (in the UE, in some US states now, &c.)

Players do add it to homescreen. There is a non-intrusive button prompting them to do so, at the end of a game. People like to be able to play offline. Apart from that, I don’t use much PWA/browser features; no notifications, etc.

More info here: https://news.ycombinator.com/item?id=34483398 Happy to answer any question you may have! Happy to get some feedback too ;-)


I just discovered something interesting while playing your game: I’ve been playing solitaire incorrectly for my entire life, several decades! I thought maybe you had changed the rules but then I just looked up the rules and I see it’s I who have apparently been playing it incorrectly. When I was taught solitaire by my grandparents, instead of turning over one card when you are out of moves, you always turn over three cards. The only way to unlock those cards you passed over in dealing three instead of one is to play one of them which will change the sequence of every three cards the next time you move through that deck. This certainly makes the game harder to win.


Oh, you can play in “draw 3 by 3” mode too: https://FreeSolitaire.win/turn-three ;-)

(You can also choose the mode in the New Game dialog.)

And yes, it’s indeed harder. The solving algorithm has a winning rate of 52% in “turn one” mode, but only 18% in “turn three”.


That's how I learned it too.


Hey great app! I really like the “undo until unstuck” feature, I haven’t seen that before. Is there an algorithm for that or did you come up with something yourself?


Thanks!

The algorithm is described here: https://FreeSolitaire.win/strategy I came up with it by myself.

“The strategy presented here is the basis of the computer algorithm of FreeSolitaire.win, which is used to select finishable deals, offer hints, and detect dead-ends. You also see it surface when you are told that The computer could do it in N moves at the end of a game.

This strategy/algorithm is quite simple. It does not require to “count cards”, i.e. keep track of which cards were seen in the stock. It doesn’t require to make guesses on where such or such face-down card must be located. And the procedure is the same all along the game; there is no special treatement of the opening or ending. It’s stateless, a programmer would say. […]”


>I came up with it by myself.

That is truly great, @palsecam. I love HN because of this!


I don’t know much about these kinds of apps, but when I visit your game page, I don’t see any way to actually add it to the homepage on my iPhone. Is this something that iOS doesn’t allow, or is there another way to do it? The game looks pretty cool though :)


In Safari hit the share button then scroll down and hit Add to Home Screen.


This.

Safari (and Firefox) does not have https://developer.mozilla.org/en-US/docs/Web/API/BeforeInsta... So you can’t have a custom button/way to prompt players to install.

However, they can install a PWA manually, by themselves; there is the option somewhere in their browser menu.


Installing the app on iOS is a pain point for users. If you have a significant iOS user presence it's a concern.

If Apple supported this API it would be much easier to convince stakeholders that PWA is enough.

You can do browser detection and show a dismissible pop up with instructions but it will still just confuse some users and others with scoff at the need to do that.


That’s interesting, thanks. I just did it successfully, I don’t think I’ve ever installed an app like this before. So I guess when I click it it’s just opening a browser window with no actual browser controls and then loading the site?


Exactly.

“it’s just opening a browser window with no actual browser controls”: yes, due to the `display` setting in the app manifest: https://developer.mozilla.org/en-US/docs/Web/Manifest/displa...

It’s similar to a `WebView` component: https://en.wikipedia.org/wiki/WebView


Why do they use the words progressive web app, seems like a fancy term for just saving a link to your home screen. Is there some additional benefit you get besides this shortcut? Does it do things a webpage does not once it’s been added to your home screen?


It basically is nothing more than a glorified shortcut. The installed app gets a custom load screen. It gets listed on the device installed apps list, and can be removed from there.

But there is nothing a PWA can do that a website can’t do. It’s all about Web APIs. Take push notifications (https://developer.mozilla.org/en-US/docs/Web/Progressive_web...): they make more sense for an (PW)app, but a simple website can do them too (if given permission).

See MDN intro on PWA: https://developer.mozilla.org/en-US/docs/Web/Progressive_web..., or https://web.dev/learn/pwa/ for more info.


Love it, super smooth! Played a quick game

https://freesolitaire.win/turn-one#25307


I'm really liking it, I've played multiple times and installed it. I will ask though: is it possible to remove the vibration?


Thanks for the feedback!

I understand your will to disable vibrations. But thing is, right now I can’t think of how to offer that option properly. For instance, adding a Setting menu+icon just for that would be lame.

I’ll think about it more, tho.


A burger menu in the top right where you then see settings and help.

Again, well done


Why does it let you sort through the card deck one-by-one? Ime mkst solitaire offers the top of a set of three.

Maybe it's just a different style of solitaire? This one seems too easy, though. Well done app, regardless - cheers! :)


There is also the “turn 3 by 3” mode! Please see https://news.ycombinator.com/item?id=40726628, just below in this thread.


Your buy a coffee link was not clickable on Firefox Android


OK, finally found a fix:

  /*
    Work around Firefox Mobile getting the hit target (clickable area)
    of the game control buttons wrong, when the (bottom) navigation bar
    gets hidden (when scrolling down).
    
    See https://bugzilla.mozilla.org/show_bug.cgi?id=1813213
    and https://stackoverflow.com/questions/70893056/mozilla-android-addressbar-conflict-with-sticky-button-on-bottom
    and https://news.ycombinator.com/item?id=40733062 ← thanks @ttymck for the bug report!
  */
  if (/Mobile.+Firefox/.test(navigator.userAgent)) {
    self.addEventListener('resize', frameThrottle1(() => {
      document.getElementById('metagame').style.position = (window.outerHeight > window.innerHeight)
        ? 'sticky'
        : 'fixed';
    }));
  }


Oh thank you for that! Could reproduce that bug.

It’s because of https://bugzilla.mozilla.org/show_bug.cgi?id=1813213

I just spent a couple hours trying to find a clean workaround, without success… Will investigate more ASAP.

Thanks again!


Nice and clean!

How did you get it off the ground and gather first users?


Thanks!

Word of mouth, mainly. Posted it on Reddit back then, things like that. It grew organically from that. And, although it’s far from being on top results on SERP (search engine result pages), some people do find it that way.

Also: because it’s so lightweight, it got included some years ago in the Moya app (https://play.google.com/store/apps/details?id=nu.bi.moya), a popular messaging app in South Africa that is “data-free” for users (it does reverse-billing). Now half the players are South Africans!


I'm curious how many unique users you get daily/weekly/monthly?


What ad network are you using?


AdSense.


Start with the customer needs rather than the technology. Do you have some specific product ideas? Those ideas would help steer technology decisions, particularly during the initial prototyping phase.


This is exactly what I was going to say, and PWA is like you're trying to build for 2 cycles ago.

When you've got the problem you want to work on, is a PWA the best method of use/distribution/discovery?

Perhaps a mobile app is the best method, or a hardware device.

When you're thinking about what you want to build, don't forget about distribution. There is a saying that 1st time founders focus on product, 2nd time founders focus on distribution.


Whenever this argument comes up it reminds me of how detached from reality HN is on this subject.

Customers want apps. Companies want apps. No one except us nerds want PWAs. We can talk about how PWAs are second class citizens and how unfair that is or we can remember that end-users _do not care_ about the underlying technology. We constantly make this mistake, customer don’t care what language you are using, they don’t care what framework you use, they don’t care about native vs web, they just want it to work.

I’ve been developing cross platform mobile apps (web, iOS, native) for around 15 years (Titanium, Cordova, and now Capacitor) and while the lesson has been painful: no one cares about PWAs. I will tell clients “you can go to <website> and see exactly what your app will look like once it’s packaged for the app stores” and they will simply wait for the native app instead. I’ve lost count of the number of times the code has been running on the web for weeks+ and it’s not till it’s in the stores that I get _any_ feedback (things they could have easily seen in the web version but didn’t bother with till it was an “app”).

You can complain about this, you can talk about how unfair it is, you can extol the virtues of PWAs but at the end of the day it just doesn’t matter. Customers have spoken, they want apps. I launched my current company as a website/PWA and all I got was a lot of heartache: “I can’t find it in the App Store”. Not a single person said “thank you for making this a website”. In fact, I get 1-2 complaints (from thousands of users) of “I don’t want to download an app” to which I tell them “you don’t have to, the website spells this out very clearly, you can use the website and/or save it to your home screen, no app install needed”. I tell that story to illustrate how few people even say they care, but also can’t grok that they don’t need to install an app. That “1-2” pales in comparison to the people who complained about it not being a “real app”.

So if you want to fight against native apps be my guest but you’re fighting a battle that customers do not care about (I cannot stress enough that: HN != normal customers) and they will not thank you for. Yes, the 15-30% “tax” can suck but 15% of $X is better than 0% of $Y. You will simply miss out on a large number of customers if you refuse to make an app.

No customer has ever cared if you use spaces or tabs internally and they don’t care if you provide a PWA, they just want open their platform’s App Store and search for your app. The ship has sailed on this topic and you can complain about it or you can live in reality and go to where your customers are, the app stores.

You can say this isn’t fair but as my dad used to say: the fair comes once a year and if you miss it, it’s your own damn fault.


"customer don't care what language/framework you are using" is a strange way to support a claim they do care about having a native app over a PWA. The first statement highlights that the user just wants something that works as advertised, and doesn't care about the framework. But the second statement highlights that, despite their disinterest in the technology, they care deeply about the app's delivery tech (PWAs vs native). I think this juxtaposition reveals a lot about why things are the way they are, and why users are forced to care about native apps over PWAs.

Just like language is a vehicle for logic, the app delivery tech is just a vehicle for a UI. PWA tech sucks because platforms are incentivized to make it suck. People prefer native apps because they're being funnelled down that path by anti-competitive interests. You don't seem to make that connection.

I get it, you were burned by PWAs and now you just want to build something that works for everyone relatively painlessly and makes money. Nothing wrong with that. But some of us also want support tech that fulfills the goals of the open web. You don't seem to care about that, but others do. Telling everyone its basically a lost cause is a silly and pointless endeavor, because PWAs are the long game, and you're playing the short game.


> But some of us also want support tech that fulfills the goals of the open web. You don't seem to care about that, but others do. Telling everyone its basically a lost cause is a silly and pointless endeavor, because PWAs are the long game, and you're playing the short game.

Get off the cross, we could use the wood.

Spare me. I love the web, in fact all my “apps” are built with web tech and I offer them all as websites/PWAs in addition to apps but standing on principals of only using the web as some kind of middle finger to the app stores AND your customers is just silly.

So I bite the bullet and wrap my web apps in a thin wrapper and shove them into the App Store. You can call it principles but I just call it stubborn and dragging your customers into a crusade they don’t care about.

At the end of the day I care about the customers of my products more than I care about trying to wage a losing war against something they actively want, apps from stores.

Life is way too short to tie up your identity in things like this. I want to spend my time making products people enjoy using. If you actually care so much about PWAs then stop writing PWAs that your users hate using and go be a full time advocate for that instead. Right now shipping PWAs is a worse experience so the only one you hurt is yourself and your customers when you double down on them.


>If you actually care so much about PWAs then stop writing PWAs that your users hate using and go be a full time advocate for that instead.

I do care about PWAs, and so I am advocating, right now. I don't know why you come across as so angry about people who advocate for PWAs. Pushing companies to adhere to open web standards is a good thing, otherwise we'd still be stuck in IE6 world.


It doesn’t count as advocating is your audience is only people who (in general) agree with you. I don’t think anyone on hackernews wants PWAs to be a worse experience, but they are. If you want to make a difference, you’re not gonna make it here.

“Preaching to the choir” comes to mind.


>If you want to make a difference, you’re not gonna make it here.

I'm replying to the people who disagree with me here, and there are several. The readers who are on the fence can make up their own mind. Your discouragement is not necessary or useful.


Are you ok?

Your hate for PWAs seems a bit excessive. Nowadays it's possible to build binaries for iOS and Android using PWAs and it'll behave just live your Cordova projects. Don't be stuck in the past.


Please read my full comment:

> I love the web, in fact all my “apps” are built with web tech and I offer them all as websites/PWAs

I'm well aware you can build binaries and ship a PWA, I literally do that. I don't hate PWAs, I dislike people that refuse to ship anything but PWAs and I especially dislike being told I don't care about the "open web".

If you want to be a martyr and _only_ ship PWAs be my guest but pretending it's noble is just silly and drags your customers (you know, the people you should actually care about) into a battle they don't give 2 shits about all while making their experience worse.


>I dislike people that refuse to ship anything but PWAs

What a weird thing to get all bent out of shape over. People do things a different way than you, get over it. If someone wants to only ship PWAs, why does that bother you so much? Because they're hurting users, and you're trying to protect them?


Yes, if so he's right. PWAs are a bad experience for the user or at least a worse one than even just a webapp wrapped in a native app, regardless of the reasons. I've never had a pwa not feel like a hanky browser tab, and this is on android.


Yeah but nobody here is making the case that PWAs are better than native apps. The point is that PWAs are worth getting better support because it's better for everyone.


[flagged]


Please don't cross into personal attack on HN.

https://news.ycombinator.com/newsguidelines.html


The user doesn't care about the delivery tech. They care about the installation and usage experience. They want to go search the app store, click the button, and get an icon on their homescreen.


How is requiring the user to open a completely different application a better "user experience" than installing it from the web page they're already on?

Yes, I know that installing a PWA is confusing (especially on Apple's systems), but there no reason it has to be that way.

PWA (if it were implemented properly): "Click here to install app". Click. Confirmation dialog. App is installed. App opens in the same window.

App store: "Click here to install app". Click. An entirely different application opens. Confirmation dialog. App is installed. You open it, but now you're in a different context.


> PWA (if it were implemented properly): "Click here to install app". Click. Confirmation dialog. App is installed. App opens in the same window.

> App store: "Click here to install app". Click. An entirely different application opens. Confirmation dialog. App is installed. You open it, but now you're in a different context.

You’re unfortunately oversimplifying the PWA installation. Say a user has heard of a new service called “Florb” which has a PWA and a native app. To install natively:

1. Open the App Store

2. Tap the search button (optional, might already be selected)

3. Search “Florb”

4. Tap Get

5. Confirm download

For the PWA:

1. Open Safari

2. Search for Florb using your chosen search engine

3. Open Florb homepage

4. Tap “share”

5. Hunt and scroll for “Add to Home Screen”

6. Tap “Add to Home Screen”

7. Give the app a name

8. Tap Add

This is ignoring the possibility that searching Florb returns other sites first (maybe news articles about the neat service, or a wiki page), nor that there are usually enough ads on google pages to completely obscure the first real results from the screen on page load. Yes, the App Store also shows an ad, and it’s possible for other similarly named apps to appear first in the list, but it’s generally less of a problem than relying on google searches.

Even ignoring the fact that the average user doesn’t know or care that PWAs exist, the first option is simply easier and more reliable. There’s no getting around that. And that’s also ignoring that PWAs are, to an average user, “installing a website” rather than “installing an app,” which just feels wrong.

“Add to Home Screen” has been available on iOS since at least iOS 4 (that’s the first time I remember seeing it, but it may have been around longer). If people don’t care about it yet, I have a hard time believing they will any time soon unless it is substantially and objectively better than the App Store.


> 4. Tap “share”

> 5. Hunt and scroll for “Add to Home Screen”

> 6. Tap “Add to Home Screen”

>7. Give the app a name

> 8. Tap Add

None of this is essential except maybe 8.

That is why I said "if implemented properly". In specific,

> Yes, I know that installing a PWA is confusing (especially on Apple's systems), but there no reason it has to be that way.

> PWA (if it were implemented properly):...

You're also pretending there aren't a bunch of junk/garbage/spam/ripped off apps in the App Store with names similar to the real app.

I assure you that is not the case.


This is an idiotic way of breaking it down. How does the user even know Florb exists? They're already on the web at this stage. You're also being totally disingenuous with your break down. Why does the user have to "hunt and scroll" for the app on the PWA side but not the app store? Go ahead, search for "fastmail" on your Android app store and tell me what the first and most prominent result is.

And when I click "add to home" in my browser's menu I don't need to name the app. The app has a name. What are you talking about?


They can hear it from a TV/radio ad, they can see it on a billboard, they can hear it from a friend. Exploring that an app exists doesn't happen only on the product website.


> How is requiring the user to open a completely different application a better "user experience" than installing it from the web page they're already on?

Because it is strange and different. If Web apps were standard going to the iOS App Store would be weird. It’s not so PWAs are weird. Just give them an app, don’t make them work to install it.


Bingo. Defenders of the app store have severe stockholm syndrome. Apple ruins the PWA experience intentionally, so they blame people who use PWAs, instead of Apple.


PWA has no marketing budget and a lot of people invested on private app stores attacking it.


I have a different take. As a person reliant on accessibility, PWAs almost always deliver a worse experience for me. So after a while, I learnt to prefer native apps, simply because PWAs typically deliver a worse UX for me.


That's interesting. In what way is a PWA worse than a website wrt accessibility? I understand that you are comparing PWAs to native apps, but presumably you have a fine time with normal websites? PWAs shouldn't be any different.


Haha, nice suggestive questioning, but I am not falling for it. Your base assumtion is wrong, websites are not nice and dandy, its more like throwing dice to see if you're happy or not. In fact, the more "progressive" a website is, the less likely it is accessible.. If it is nominally accessible, its often not comfortable to use.


That's why there are efforts to get platform companies to allow putting PWAs into their app stores. I think on Android it's already possible with a thin wrapper and with regulatory pressure it might be necessary for other platforms to enable that as well.


You can put PWAs in all the app stores today with a thin wrapper, I know, I do it for all my apps.


What is your preferred method of wrapping? No resistance from Apple? I've read of many instances of wrapped PWAs not getting approved for the app store. I guess mileage may vary


I use Capacitor (via Quasar, though you will only want to use this if you use Vue and like Quasar, else maybe look into Ionic if you sue React or Angular). If you don't use a framework or don't want to use Quasar/Ionic then you can use Capacitor "raw" but I've not done that before.


Thanks. I was considering Capacitor. It looked a bit heavy. Really dreading this process to be honest. I'm hoping we can convert the majority iOS users to installing the PWA and have that hold long enough to either go native or better PWA support on iOS. Not holding my breath for the latter.


Not for Apple/iOS!


I have over 10 apps in the Apple App Store store using Capacitor without any issues.


You talk a lot about what customers want, but they want apps only because Apple makes PWAs so unpleasant. There are some tech limitations (games might be tougher), but most of what makes PWAs suck is Apple.

In another timeline, Apple chose to double-down on PWAs instead of the App Store after the iphone 1, and PWAs are the majority of non-performance-sensitive smartphone applications.


Every single “write once run everywhere” technology has sucked compared to native apps.

Developers complained when the first iPhone came out and when Steve Jobs called web apps a “sweet solution”. Even Gruber called the solution a “shit sandwich”.

If it’s only Apple holding PWAs back, then why do most of the same companies write Android apps instead of just producing PWAs that work on PCs and Android devices?


> If it’s only Apple holding PWAs back, then why do most of the same companies write Android apps instead of just producing PWAs that work on PCs and Android devices?

Google followed Apple's lead, so it's not like they have a choice.

And in case you haven't noticed, those same companies are happy to accept the performance hit of cross-phone libraries in order to not develop an app twice. If the PWA experience were better, they'd probably try that instead.

Most apps are boring, and don't require native performance.


> Customers want apps. Companies want apps. No one except us nerds want PWAs.

I used to work on a platform that offered native iOS apps, native Android apps, and PWA / web apps for all our customers. When users were given the choice, around two thirds opted for the native iOS app, about a quarter opted for the native Android app, and about 10% opted for the PWA / web app. That’s including desktop users, not just mobile.

Users want native apps.


More likely, users want something that works, is a good experience, and don't care about apps _per se_ at all.

If Apple wasn't hamstringing PWAs, they might be viable for more categories of software.


And if you are creating an app, most of the time you want a web page too for PCs. If it’s only Apple, then why don’t companies just build a PWA for PC users and Android users and only write an app for iOS users?


Users also have their favourite messaging apps and services, completely oblivious to the fact that it’s actually completely stupid that there is basically no interoperability between these apps and services. Imagine if Yahoo mail could never send emails to Hotmail or Gmail.

People in the know rightfully care about the erosion of standards for which big tech have built their empires upon.


How do you make messaging apps inoperable and guarantee end to end encryption? How do you add features to your messaging app without having to wait years for a standard body?


Are you using a hackernews app to use hackernews?


On my phone? Yes, a combo of Octal and HACK, but I often fall back to the web since the apps don't expose everything.

On my computer I always use the web. I prefer the web on my computer but on my phone apps can provide a nicer experience (larger touch targets, swipe gestures, etc). But in general I find the phone (and tablet) limiting and if I need to do any actual "research" I immediately move to my computer where I can open multiple tabs and move between them easier.


Tell that to users of https://sniffies.com nsfw

Can’t have that on the app store.


That’s not a good example, I’ll bet 99% of users of that website couldn’t tell you it’s a PWA or what a PWA is. All they know is that the only way to get this “app” is add it to the home screen and if it was allowed in the App Store they’d all get it from there instead.

That’s not customers choosing PWA over native, it’s customers forced to use PWA since native isn’t an option.


Yeah, we don’t disagree on that. It just seems that for end users prudish app stores are the only option for procuring apps.


excalidraw.com is a PWA, but not unsure how helpful it’s going to be as comparison. As mentioned in the comments, success is likely more due to the usefulness of the app rather than the tech used. vjeuxx@gmail.com if you wanna chat.


Unrelated, but this is just a joy to use. Well done.


Unrelated, I'm interested in the tech behind it to build my own PWA. May I ask what tech stack you use. Sorry if it's obvious I'm just getting started


Not OP, but the source code can be found here: https://github.com/excalidraw/excalidraw


For my users having a PWA is completely irrelevant. Once they add it to home screen it's an app for them (I don't even bother to explain anymore). It might be a discoverability issue since they can't find you in app stores though.


why would you not put a wrapped pwa in the app store?

isn't it a small racketeering/marketing price for the promissed discoverability?


Easier with Android. Apple requires many hurdles, at least for US. You'll also then have to revenue share.

Depends on your audience on whether this will actually be worth the investment. Being on the app store doesn't necessarily make you visible anyhow. It's just easier to install for apple users.


If you have a SaaS app, there is nothing stopping you from charging more in app to make up the difference and charging less outside the store


Good point, but I think app store presence would be more important in d2c rather than b2b SaaS.

In that situation I don't think charging more would go over well with consumers.

Have you seen this done?


Spotify did it for awhile before they completely stopped accepting in app purchases. Paramount+ also use to do it.

Netflix offers in app purchases for streaming subscriptions if you pay through their games. But only the ad tier.

You can subscribe to YouTube or Hulu via in app subscriptions. But you can’t subscribe to YouTube TV or Hulu Live TV via the app.

I guess these days I would offer a higher month to month subscription through in app purchases and a lower yearly subscription from the web.


Excellent context, thanks!


If you publish the app in the App Store you will have to give Apple a chunk of you revenue as well, not just the yearly fee


True enough. However, you also need to consider that customers are much more likely to hand their card number over to Apple than to some random website they've never heard of before. In fact, Apple probably already has it.

70% of something is more than 100% of nothing (especially when the product is software or something else that has a marginal cost of production of essentially zero).


Discoverability was a good argument at one time, but much less so with the shitshow the iOS app store has become.


I run a personal finance app that's built as a PWA (https://tender.run, my email is in my profile).

I would say running as a PWA has been a mixed bag. There are quite a few missing features across web platforms (for starters, background sync, full featured push notifications, haptics) that make it hard to be competitive with native apps. Every WWDC, we watch in hopes that Safari gets more PWA features, but it's a thin drip. There's a reason so many apps repackage into electron/cordova/whatever shells.

As other folks in thread have pointed out, it's probably worth thinking through why a product works particularly as a PWA vs alternative distribution methods.


https://flowery.app is exclusively a PWA. It was designed from the ground up to prioritize the “Add to Home Screen” experience on iOS. The web is the ideal platform given the app’s emphasis on text and typography, and a native replica would be reinventing the wheel for no tangible benefit to the user.

WebKit and Safari have come a long way. Flowery puts browser engines through their paces with its UI animation, which is smoothest on WebKit. Safari’s OS integration (e.g., elastic scroll, Sonoma’s “Add to Dock”) is more polished than Chrome’s.

It wasn’t a walk in the park though. An early decision, after maddening attempts to circumvent browser quirks five years ago, was to build substitutes for common building blocks of the browser on mobile, notably the virtual keyboard, textboxes, and text selection. This wouldn’t have been possible without web components and Google’s excellent Lit library.


Thanks for sharing. The app functions really well and is beautiful. It took me quite a while to figure out what it does and I'm still not 100% sure I understand completely. Is the app profitable? How do people find out about it?


I find your experience rather relatable.

I did figure out there is some sort of spaced repetition component to it, but that’s probably because I’m already an Anki user and aware of the concept.

I quite like the eccentricity of it, although I’m sure it could be toned down a notch for wider appeal.

Feature-wise, having thesaurus definitions immediately accessible is very useful.


Thanks! I take the “eccentric” label as a compliment.

I may have gone overboard with the minimalism. Users had been all the more baffled before I added the tooltips hinting to tap the hearts, so I should probably double down on some sort of tutorial.


I appreciate the kind words. A lot of painstaking work went into aesthetics.

The Stripe integration launched a few days ago, so the app is very much in the red. Paid advertising since the initial release six months ago has shown promising signs from prospective customers though.


I have made 2 PWAs that I use daily myself, so I consider them a success! Also one Electron (which I later migrated to Tauri) desktop app and I'm wrapping up another (which took ~2 days).

Nothing big/fancy as you probably want, but for me they are definitely successes for me!


What's the alternative? Certainly multi platform native only makes sense at a certain scale.

Your question might be too light on details to provide much advice.


Releases should be automated anyway. Once you set up the necessary pipelines, there is not that much work involved. I think our only pain point (team of ~7 devs) is keeping a Macbook around for iPad builds and debugging.

But I guess you will need Macbook to debug any Safari issues too.


Are you referring to builds of a PWA wrapper shipped to the App store? If you don't mind sharing, how did your approval process go? Any hangups?


Sorry for the confusion. We ship minimal Electron (Windows) / Cordova (iOS) wrappers to interface with our website. They're a pain to set up but don't require all that much code themselves.

This allows us to publish to the respective stores. Would be hard to convince non-technical users to click "Install as PWA" because noone knows what that is.


Good to hear. I've read a few companies who really struggled getting approved with this method. https://developer.apple.com/app-store/review/guidelines/#min...


If it's about making money or making a living, your best alternative is probably to make an app exclusively for the platform where most of your profitable customers are. You can expand to other platforms later if you get the scale.


In my experience that's always been the web, which is why PWA is so attractive. Especially now that Android allows you to basically publish your PWAs to the Play store.


As someone who started investing in PWAs earlier this year after jumping through Apple and Google’s hoops for years, I’d highly recommend progressier.com for making a PWA with an install experience that makes sense to less technical users. This was far and away the biggest hurdle for me. Haven’t had a single person confused since integrating Progressier.


Thanks for the link! Looks promising.


I wouldnt call it a success (not yet at least) but I have a PWA with ~$130 in MRR for now (launched a couple months ago). Happy to chat


> had some success ($500 MRR) with shareware, 20 years ago

Don't trigger my nostalgia! Fun times, been there done that 2005-2008 https://web.archive.org/web/20080118184913/http://www.sudoku... — then sold it on to another "micro-ISV" (the popular term for indie software maker back then)


Don't copy that floppy! (Busts out greaseweazle and Central Point - Copy II PC Option Board Enhanced, and Nevrlock)

The 5.25" and 3.5" floppy disk shareware cardboard bins on tables at Weird Stuff.[0] This was the equivalent to [Download Demo] in the 90's, except they made you drive to a brick & mortar store and pay for privilege.

0. https://www.atlasobscura.com/places/weirdstuff-warehouse


So much nostalgia! I miss the used book stores and the shareware racks of floppies (which I think another user mentioned).


I run a web client for my app https://github.com/karlomikus/vue-salt-rim and I'm using some PWA features. It's mostly just to get the native app feeling since I don't want to maintain separate apps for all the platforms.


I‘m using https://thelounge.chat/ as PWA on all my devices and it works very good. Maybe you can contact them or look around the source yourself.


Speaking of messaging apps, there's also https://app.revolt.chat/ designed to target a sort-of different userbase.

Been using them as a PWA for a very long time.



I don’t, but the people who’ve build and run https://app.mutinywallet.com/ are rocking it.


Twitter was an excellent PWA untill someone ruined it so that everyone would use native app.

Flipkart.com and housing.com and few good examples


Apps don't have ad blocking, have more tracking options, etc. Of course they want to push you to an app.


I still just use the website for twitter. What am I missing out on?


I’m using the phind pwa on my iPhone so I guess that’s an example that I’d imagine could be classed as successful


What do you want to do with a PWA that you can't do with a webpage? If at all possible, try to use a webpage instead, to avoid the myriad problems and quirks that arise with PWAs. Only resort to a PWA if you need capabilities that you can't get as a webpage.


Push notifications, for starters. But the more compelling argument is that from the user’s point of view, an app is something else than a web page. Even the most basic feature - being represented at the Home Screen on the device - makes a huge difference.


I'm aware of the differences; I was encouraging the OP to consider whether those differences are worth the increased pain that comes with PWAs, particularly on Apple platforms.


https://sniffies.com is bar none the most successful PWA I’ve seen in the wild. Push notifications despite Apple’s nonsense and all. Impossible to have an equivalent on the app store. Nsfw.


tinder has a great PWA web app: tinder.com


Definitely feels like you're putting the cart before the horse. You've got the technology nailed down, but haven't explained why. What platforms are you even targeting?


Twitter.


Flipkart


Apple killed PWAs years ago.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: