Adam Silver is a UX and front-end designer who writes about form design, accessibility, and the drawbacks of common web patterns.
HN commenters recommend his form design guide as a top UX resource and link his posts on tooltips, live validation, and single page apps.
I want PWAs to succeed, because I would love to publish close-to-native apps without an app store. I think PWAs are a great thing for the open web. However, hyping PWAs with unrealistic expectations doesn't do any good. The Ionic team talks in the same vein. I like Ionic, I don't like hype. Here are a few reasons why PWAs aren't there yet and probably won't replace most apps in the near future:
- No native APIs. Yeah sure, you can order a coffee at Starbucks, but the underyling hardware isn't exposed to JS. You won't be able to make a camera app with PWAs.
- Input controls suck. Same as with every mobile browser and every Cordova-based app: You cannot control how the keyboard behaves and I suspect that it's not even in Apple's interest to make Mobile Safari super-great. Sure, they're working on PWAs, but that doesn't mean anything. Just see how bad Mobile Safari's <select> looks like. Or bugs in multi-selects that have been there forever.
- They still run in a browser. It shows an address bar and whatever else your browser is always showing. Try Twitter's PWA right now: https://lite.twitter.com It's way too easy to accidentally swipe back. And then, Twitter being a shitty Single-Page-App, the browser loses its scroll position.
- PWAs suffer from the same problems like all SPAs [1]
And finally:
- A PWA is just a proxy to download and cache responses from a server. It enables offline support (kinda) for single-page apps. It's not a magical something. The problem is that…
There have been many that have hit the front page over the years. If you're not aware of a technology's shortcomings then you're a bad proponent of said technology. They're also almost the antithesis of what the HTMX crowd also preaches as "the one true way" and meanwhile, Wordpressers will continue developing the majority of the world's websites blissfully unaware that either technology even exists.
https://dev.to/ryansolid/web-components-are-not-the-future-48bh
https://dev.to/richharris/why-i-don-t-use-web-components-2cia
https://daverupert.com/2023/07/why-not-webcomponents/
https://paularmstrong.dev/blog/2023/03/11/why-we-do-not-write-web-components/
https://nolanlawson.com/2024/09/28/web-components-are-okay/
https://www.zachleat.com/web/good-bad-web-components/
https://mayank.co/blog/web-components-considered-harmful/
https://adamsilver.io/blog/the-problem-with-web-components/
https://web-highlights.com/blog/are-web-components-dead/
along with some criticisms from very knowledgeable people:
https://x.com/youyuxi/status/1839833110164504691 (author of Vue) https://x.com/Rich_Harris/status/1839785839036887361 (author of Svelte)
Web Components solve a few problems and introduce a few others, use them when they make sense for your needs.
Yes, you can. Maybe you even should, because then you at least understand all the moving parts. Because there are way too many shitty SPAs out there that break functionality (Twitter and Facebook when hitting the back button) or are annoyingly slow and unreliable (iTunes Connect, Play Developer Console). Read [1] to see all the disadvantages and understand them. Then maybe build an SPA.
[1]: https://adamsilver.io/articles/the-disadvantages-of-single-page-applications/
I've had good fun reading about best practices for forms in Adam Silver's blog.
https://adamsilver.io/blog/form-design-from-zero-to-hero-all-in-one-blog-post/
He has posted many new things since. Probably one of the best UX resources on the web.
> Using other input attributes that create constraints, such as "pattern" or "maxlength"
No. Don't use the maxlength attribute.
https://adamsilver.io/blog/dont-use-the-maxlength-attribute-to-stop-users-from-exceeding-the-limit/
It's not the only downside to consider. http://adamsilver.io/articles/the-disadvantages-of-css-preprocessors/
There are a lot of advantages to them that need consideration too granted.