Products · Pattern or everyday thing
Web components
Raised as a usability problem by 23 people on Hacker News over 9 years (2018–2026), in 19 threads.
No issue was raised by at least 3 people in 3 threads this year.
- 1
- 2
Every issue, all time, most people first
Web components are full of edge cases, hard for complex workUnreviewed
20182026- WebComponents API is weird and hard to use2026-10-04
- Web components are virtually unusable without JavaScript frameworks to make them palatable2026-10-04
- Web Components are too complex and full of edge cases, hard to use for anything complex2026-02-20
Web components API is too low-level and verboseUnreviewed
20182026- Low-level APIs with awkward warts, more-or-less unusable for developers2024-09-30
- Needs many separate APIs and specs to do basic things2023-08-17
- API is too low level and too verbose to use comfortably2021-09-30
Shadow DOM breaks forms, styles and standard browser functionsUnreviewed
20182026- Shadow root contents are hard to access, so elements must be queried in awkward ways2026-10-04
- Shadow DOM breaks forms, styles and other standard browser functionality2026-08-01
- Shadow DOM inputs not in forms or labelable from outside, breaking expected browser behaviour2023-11-28
Unreviewed issues were grouped by machine: Claude Haiku labelled each comment as a usability complaint, named what it's about and summed up the problem in a line, and a small model grouped similar problems. Nobody has checked them by hand. Expect mistakes.
The newest 29 complaints
- WebComponents API is weird and hard to use2026-10-04
- Basic web components made the site noticeably slow to load2026-10-04
- Using templates needs extra cloneNode steps and must be placed in DOM before scripts run2026-10-04
- HTML in strings has no syntax checks, so mistakes are easy to make and hard to spot2026-10-04
- Shadow root contents are hard to access, so elements must be queried in awkward ways2026-10-04
- Web components are virtually unusable without JavaScript frameworks to make them palatable2026-10-04
- Shadow DOM breaks forms, styles and other standard browser functionality2026-08-01
- Re-renders clear component state and dropdown items, and click handling causes production bugs2026-08-01
- Custom Element API has many edge cases, hard to use for complex apps2026-02-20
- Web Components are too complex and full of edge cases, hard to use for anything complex2026-02-20
- Web components are frustrating to use, full of footguns and bizarre limitations for developers2025-09-16
- ConnectedCallback runs again on every reinsertion, a hidden pitfall docs don't warn about2025-05-12
- Document styles override component's own padding, so reset rules silently break component styling2024-10-25
- Web Components are confusing to learn, hard to understand2024-10-09
- Low-level APIs with awkward warts, more-or-less unusable for developers2024-09-30
- Shadow DOM inputs not in forms or labelable from outside, breaking expected browser behaviour2023-11-28
- Replicating render-prop style parent-to-child data injection requires MutationObserver hacks2023-10-25
- Slots are confusing and complicated to set up; shadow DOM is confusing to debug in dev tools2023-10-25
- Needs many separate APIs and specs to do basic things2023-08-17
- Propagating changes to many custom elements makes pages load slowly2023-08-03
- Content loads via JavaScript, leaving blank boxes and breaking screen reader accessibility2023-08-02
- Authoring web components is ergonomically horrible, especially state management and style inheritance2023-01-11
- API is too low level and too verbose to use comfortably2021-09-30
- Requires excessive boilerplate and extra support code for data binding, making it unusable2020-08-08
- Web Components are nearly unusable by developers, so frameworks avoid building on them2020-07-18
- Links ignore cmd-click, so users can't open them in a new tab2020-03-17
- Can't declaratively pass state or event handlers to child components, which is painful2019-06-20
- Vanilla Web Components are unusable without extra libraries, and templating requires horrible DOM APIs2018-06-13
- Clicking UI elements adds history entries, so user must press back many times2018-06-12