Products · Product
Svelte
Raised as a usability problem by 57 people on Hacker News over 8 years (2019–2026), in 39 threads.
No issue was raised by at least 3 people in 3 threads this year.
- 1
- 2Lack of tooling makes debugging hardUnreviewed
Every issue, all time, most people first
Workings of the $ reactive syntax are hard to understandUnreviewed
20192026- Too much hidden magic, producing arcane errors that are hard to understand2025-08-21
- Too much hidden magic makes complicated state hard to reason about and debug2025-03-26
- $state(0) on the right of the equals sign reads as a plain value assignment, so the reactive behaviour is counterintuitive2025-01-28
Lack of tooling makes debugging hardUnreviewed
20192026- Hidden framework mechanics make apps very hard to debug once complex2023-09-04
- Very difficult-to-debug problems, with no error handling2022-09-08
- Debugger behaves differently from production, causing bugs that only appear in production2021-11-11
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 50 complaints
- Component styles persist after unmounting, so layout depends on navigation path2026-05-26
- Too much hidden magic, producing arcane errors that are hard to understand2025-08-21
- Naming every file +page.svelte makes the IDE experience messy2025-06-13
- Svelte 5 feels less elegant and harder to adopt than Svelte 4 for this developer2025-03-26
- Too much hidden magic makes complicated state hard to reason about and debug2025-03-26
- Error messages are unhelpful and hard to interpret, like early C++ compiler errors2025-03-08
- Floating orange button covers article text and has no way to hide it2025-02-19
- Three state runes to choose between, with hidden Proxy behaviour causing sync problems2025-02-18
- Runes syntax like $state('hello') makes the framework harder to work with than plain variables2025-02-18
- Using runes with SvelteKit is awkward, requiring $state and $effect everywhere for page data2025-02-18
- Svelte 4 is very confusing when working across multiple components and files2025-02-18
- Changed state handling makes existing knowledge obsolete, confusing developers who learned the old way2025-02-17
- State updates are confusing and need workarounds to manually trigger re-renders2025-02-17
- Hard to read and follow; author struggles with the new documentation2025-01-29
- Can't figure out how the new slot replacement works; migration docs too limited2025-01-28
- $state(0) on the right of the equals sign reads as a plain value assignment, so the reactive behaviour is counterintuitive2025-01-28
- Hard to tell which values are reactive, so data flow is hard to track in larger code2024-10-20
- Discord button is not accessible on mobile; page doesn't fully scroll2024-10-20
- Zooming out past 85% makes content larger, which is confusing2024-07-27
- Docs lack a practical example of using {@render} in layout files2024-06-20
- $props syntax is not obvious; assignment producing declarations is unexpected2024-02-11
- The exact workings of the $ reactive syntax are extremely confusing to the user2024-02-10
- Reactive $ syntax is strange and adds cognitive load for learners2023-09-21
- Typed reactive variables with $: require awkward separate declarations, frustrating in TypeScript2023-09-20
- Code looks like JavaScript but the compiler changes its behavior, making it hard to reason about2023-09-20
- Implicit reactivity makes debugging stale views unintuitive for developers2023-09-20
- Reactive $: syntax is extremely confusing with many weird quirks2023-09-20
- Splitting complex components into files adds boilerplate; data flow is hard to reason about2023-09-04
- Hidden framework mechanics make apps very hard to debug once complex2023-09-04
- Svelte tooling in WebStorm is buggy, with false "x is not a module" errors and missing prop autocomplete2023-09-04
- Array mutations silently don't update the UI, leaving users confused2023-06-07
- Reactive expressions behave in ways that are hard to understand and trip people up2023-03-28
- Reactive updates are easy to miss, requiring manual reassignment to trigger refresh2023-03-27
- The $ reactive paradigm is less explicit and confusing, adding to difficulty2023-03-27
- Props must be exported individually, so the props type can't easily be shared or imported2023-03-27
- Forwarding props to child components is kind of a pain2023-03-27
- Reactive update ordering was so confusing it cost a full day of debugging2023-03-23
- Splitting components into separate files and wiring emits and slots is too much hassle2023-03-08
- Keyboard Tab moves focus to the page behind the open drawer2023-02-03
- Typing generic components requires internals knowledge and is hard to figure out2022-12-15
- Looping over lists sometimes fails, requiring an obscure key workaround that hurts performance2022-12-02
- Upload ID buttons fail on desktop with console errors, leaving user stuck2022-10-30
- Custom {#if} template syntax is hard to recall and doesn't make sense immediately2022-09-20
- Hard to work out how to share state and events between components as the app grew2022-09-11
- Tooling like TypeScript, ESLint and Prettier struggles with custom syntax mixed into one file2022-09-08
- Very difficult-to-debug problems, with no error handling2022-09-08
- Svelte's $ reactivity mechanism was so confusing the commenter nearly gave up understanding it2022-09-08
- Custom {#if} syntax is hard to read and remember after time away2022-09-08
- Couldn't get TypeScript type hints working as they do in React2022-06-11
- Very difficult to select a portion of text in large documents2022-01-19