Minimal Files and Config for a Pwa
Posted3 months agoActive3 months ago
github.comTechstory
supportivepositive
Debate
20/100
PwaProgressive Web AppsWeb DevelopmentMobile Apps
Key topics
Pwa
Progressive Web Apps
Web Development
Mobile Apps
The post showcases a minimal configuration for a Progressive Web App (PWA) on GitHub, sparking discussion on the capabilities and limitations of PWAs, particularly on iOS.
Snapshot generated from the HN discussion
Discussion Activity
Moderate engagementFirst comment
34m
Peak period
10
0-2h
Avg / period
3.8
Comment distribution23 data points
Loading chart...
Based on 23 loaded comments
Key moments
- 01Story posted
Oct 1, 2025 at 9:14 AM EDT
3 months ago
Step 01 - 02First comment
Oct 1, 2025 at 9:49 AM EDT
34m after posting
Step 02 - 03Peak activity
10 comments in 0-2h
Hottest window of the conversation
Step 03 - 04Latest activity
Oct 2, 2025 at 4:27 PM EDT
3 months ago
Step 04
Generating AI Summary...
Analyzing up to 500 comments to identify key contributors and discussion patterns
ID: 45437326Type: storyLast synced: 11/20/2025, 6:33:43 PM
Want the full context?
Jump to the original sources
Read the primary article or dive into the live Hacker News thread when you're ready.
It's often argued that Apple doesn't make PWA installs obvious because they want to preserve the sanctity of the web or something along those lines but I'd say that argument is invalidated by the “smart banners” for installing an App Store app that you can set via meta tag:
https://developer.apple.com/documentation/webkit/promoting-a...
In my experience they're far more intrusive than a PWA install banner!
Also interesting: "Now every site can be a web app on iOS and iPadOS." https://webkit.org/blog/17333/webkit-features-in-safari-26-0...
Yes. By default iOS 26 Safari has a new "Compact" tab menu which requires tapping the ellipsis menu button, then Share, then Add to Home Screen. Previously the Share button was located directly on the tab menu.
I've gone into Settings -> Apps -> Safari -> Tabs section and switched from "Compact" to "Bottom". This switches to a larger tab menu with single-tap access to the Share, Bookmark, and tab switcher buttons.
It‘s in the same repo: https://github.com/chr15m/minimal-pwa/blob/main/single-file-...
A single HTML file with favicon, manifest, SVG icons, etc.
Having no build step and no dependencies is such a power move. ;)
Any gotchas with this approach that you‘re aware of?
Can this approach handle updates? I thought the way to do that was usually to check some hash in the manifest and prompt the user that an update is available if it has changed.
For opening HTTP links in the PWA itself, you rely on the way the browser deals with links. I don't think you can reliably open any link in PWAs in a cross-platform manner today.
Mozilla on Web NFC:
> We believe Web NFC poses risks to users security and privacy because of the wide range of functionality of the existing NFC devices on which it would be supported, because there is no system for ensuring that private information is not accidentally exposed other than relying on user consent, and because of the difficulty of meaningfully asking the user for permission to share or write data when the browser cannot explain to the user what is being shared or written.
— https://mozilla.github.io/standards-positions/#web-nfc
Mozilla on Web Bluetooth:
> This API provides access to the Generic Attribute Profile (GATT) of Bluetooth, which is not the lowest level of access that the specifications allow, but its generic nature makes it impossible to clearly evaluate. Like WebUSB there is significant uncertainty regarding how well prepared devices are to receive requests from arbitrary sites. The generic nature of the API means that this risk is difficult to manage. The Web Bluetooth CG has opted to only rely on user consent, which we believe is not sufficient protection. This proposal also uses a blocklist, which will require constant and active maintenance so that vulnerable devices aren't exploited. This model is unsustainable and presents a significant risk to users and their devices.
— https://mozilla.github.io/standards-positions/#web-bluetooth
Yes, it's a risk, essentially by definition. It's no less so (and in particular absolutely not helping your browser product or the web platform!) if you just punt and force everyone to use a proprietary iOS/Android/Windows app instead.
Innovation happens on the physical side of the design wall too, you can't just put your head in the sand and figure someone else will solve it. That's how we got the walled app gardens in the first place.
And just to make this concrete: QMK keyboards configure magically by pulling up a web page ("use.via") on the device. Lots of gadget-space open source hardware uses similar tricks. This is not an obscure or useless feature. And it's deeply sad that Firefox[1], in its senescent obsolescence, doesn't even want to pretend to play for a piece of that action.
[1] The archetypical hacker's browser in its prime!
But yes, if you want them to stick around maybe consider using platforms that best support them.
[1] Apple disallowed open access and so couldn't be a "monopoly" per the court and could charge whatever license fee they wanted; Google let people sideload their own apps and so was forced to allow entire third party app stores. Yes, this is just as insane as it sounds.
I don't know if its been fixed since, but I really needed to tell if I was offline, only way was to make requests, if they failed assume offline, keep retrying till online to sync data to backend.