HackerFriction Feedback

Products · Product

React

Raised as a usability problem by 545 people on Hacker News over 13 years (2014–2026), in 409 threads.

Ranked by people · period

  1. 1
    Hooks are hard to use and to understand intuitivelyUnreviewed

    5 people this year · 5 threads

  1. 1
    Hooks are hard to use and to understand intuitivelyUnreviewed

    56 people in the last 5 years · 41 threads

  2. 2
    Developers forget how useEffect works, causing frequent bugsUnreviewed

    17 people in the last 5 years · 13 threads

  3. 3
    Back button stops working after scrolling due to duplicate history entriesUnreviewed

    9 people in the last 5 years · 9 threads

  4. 4
    Interactions lag about 200ms on older devices with heavy pagesUnreviewed

    7 people in the last 5 years · 7 threads

  5. 5
    Dependency arrays and stale closures are hard to work withUnreviewed

    5 people in the last 5 years · 5 threads

  6. 6
    Pages take 10-60+ seconds to load, with spinners throughoutUnreviewed

    5 people in the last 5 years · 3 threads

  7. 7
    Screens re-render 12+ times on each state changeUnreviewed

    5 people in the last 5 years · 5 threads

  8. 8
    Front-end frameworks are too hard for newcomers to learnUnreviewed

    4 people in the last 5 years · 4 threads

  9. 9
    Bloated assets make pages slow to load and respondUnreviewed

    4 people in the last 5 years · 4 threads

  10. 10
    Managing state is unintuitive for developersUnreviewed

    4 people in the last 5 years · 4 threads

  11. 11
    JSX is too complicated for designers without coding experienceUnreviewed

    3 people in the last 5 years · 3 threads

  12. 12
    Hooks behave unlike regular functions, making render loops hard to debugUnreviewed

    3 people in the last 5 years · 3 threads

  13. 13
    Complex state causes confusing bugs from leaky abstractionUnreviewed

    3 people in the last 5 years · 3 threads

  14. 14
    Easy to end up in confusing reactivity situationsUnreviewed

    3 people in the last 5 years · 3 threads

  15. 15
    Links can't be opened in new tabs or show target URLsUnreviewed

    3 people in the last 5 years · 3 threads

  1. 1
    Hooks are hard to use and to understand intuitivelyUnreviewed

    73 people since the beginning · 53 threads

  2. 2
    Developers forget how useEffect works, causing frequent bugsUnreviewed

    20 people since the beginning · 15 threads

  3. 3
    Dependency arrays and stale closures are hard to work withUnreviewed

    12 people since the beginning · 12 threads

  4. 4
    Back button stops working after scrolling due to duplicate history entriesUnreviewed

    11 people since the beginning · 11 threads

  5. 5
    Front-end frameworks are too hard for newcomers to learnUnreviewed

    10 people since the beginning · 10 threads

  6. 6
    JSX is too complicated for designers without coding experienceUnreviewed

    10 people since the beginning · 9 threads

  7. 7
    Interactions lag about 200ms on older devices with heavy pagesUnreviewed

    10 people since the beginning · 10 threads

  8. 8
    Hard to step through, and error messages are unhelpfulUnreviewed

    10 people since the beginning · 10 threads

  9. 9
    Pages take 10-60+ seconds to load, with spinners throughoutUnreviewed

    9 people since the beginning · 6 threads

  10. 10
    Screens re-render 12+ times on each state changeUnreviewed

    8 people since the beginning · 8 threads

  11. 11
    Webpack and Babel configuration is painful and hard to debugUnreviewed

    8 people since the beginning · 8 threads

  12. 12
    Noticeable scroll lag compared to other sitesUnreviewed

    6 people since the beginning · 5 threads

  13. 13
    Hooks behave unlike regular functions, making render loops hard to debugUnreviewed

    5 people since the beginning · 5 threads

  14. 14
    Scrolling gets trapped inside each code window, interrupting page scrollUnreviewed

    5 people since the beginning · 5 threads

  15. 15
    Hooks, classes and lifecycle methods are confusing and changingUnreviewed

    5 people since the beginning · 4 threads

  16. 16
    Bloated assets make pages slow to load and respondUnreviewed

    5 people since the beginning · 5 threads

  17. 17
    Managing state is unintuitive for developersUnreviewed

    4 people since the beginning · 4 threads

  18. 18
    Inline conditionals and loops in JSX are ugly and hard to writeUnreviewed

    3 people since the beginning · 3 threads

  19. 19
    Complex state causes confusing bugs from leaky abstractionUnreviewed

    3 people since the beginning · 3 threads

  20. 20
    Pages take 250-500ms to render, hurting the experienceUnreviewed

    3 people since the beginning · 3 threads

  21. 21
    Navigation sidebar disappears in narrow windows, making site unusableUnreviewed

    3 people since the beginning · 3 threads

  22. 22
    Needs specialized knowledge to use correctlyUnreviewed

    3 people since the beginning · 3 threads

  23. 23
    Easy to end up in confusing reactivity situationsUnreviewed

    3 people since the beginning · 3 threads

  24. 24
    Stale state in callbacks forces passing state down to childrenUnreviewed

    3 people since the beginning · 3 threads

  25. 25
    The tutorial is hard to use on a phoneUnreviewed

    3 people since the beginning · 3 threads

  26. 26
    Having to write className instead of class feels unnaturalUnreviewed

    3 people since the beginning · 3 threads

  27. 27
    Basic setup like server-side rendering needs heavy configurationUnreviewed

    3 people since the beginning · 3 threads

  28. 28
    Simple pages require learning JSX, hooks and build tooling firstUnreviewed

    3 people since the beginning · 3 threads

  29. 29
    Developers easily make common mistakes that hurt performanceUnreviewed

    3 people since the beginning · 3 threads

  30. 30
    Maintaining state needs an excessive amount of boilerplate codeUnreviewed

    3 people since the beginning · 3 threads

  31. 31
    Supporting library docs are poor and every example differsUnreviewed

    3 people since the beginning · 3 threads

  32. 32
    Links can't be opened in new tabs or show target URLsUnreviewed

    3 people since the beginning · 3 threads

  33. 33
    Component classes and HOCs are hard to type correctly in TypeScriptUnreviewed

    3 people since the beginning · 3 threads

  34. 34
  35. 35
    Mixing markup with JavaScript makes code hard to readUnreviewed

    3 people since the beginning · 3 threads

  36. 36
    Hard to verify logic split across multiple lifecycle methodsUnreviewed

    3 people since the beginning · 3 threads

  37. 37
    Must learn many concepts like useState and hooks to express UIUnreviewed

    3 people since the beginning · 3 threads

Every issue, all time, most people first

  1. Hooks are hard to use and to understand intuitivelyUnreviewed

    73 people since 2018, in 9 different years · 5 this year

    2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 4 people2019: 5 people2020: 7 people2021: 7 people2022: 27 people2023: 13 people2024: 5 people2025: 7 people2026: 3 people
    20142026
    Something wrong here?
  2. Developers forget how useEffect works, causing frequent bugsUnreviewed

    20 people since 2019, in 8 different years · 1 this year

    2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 3 people2020: 1 person2021: 2 people2022: 5 people2023: 5 people2024: 3 people2025: 3 people2026: 1 person
    20142026
    Something wrong here?
  3. Dependency arrays and stale closures are hard to work withUnreviewed

    12 people since 2019, in 6 different years · none this year

    2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 2 people2020: 3 people2021: 2 people2022: 3 people2023: 1 person2024: 0 people2025: 1 person2026: 0 people
    20142026
    Something wrong here?
  4. Back button stops working after scrolling due to duplicate history entriesUnreviewed

    11 people since 2015, in 8 different years · 1 this year

    2014: 0 people2015: 1 person2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 1 person2021: 1 person2022: 1 person2023: 2 people2024: 5 people2025: 1 person2026: 1 person
    20142026
    Something wrong here?
  5. Front-end frameworks are too hard for newcomers to learnUnreviewed

    10 people since 2015, in 9 different years · none this year

    2014: 0 people2015: 1 person2016: 1 person2017: 0 people2018: 1 person2019: 1 person2020: 1 person2021: 1 person2022: 1 person2023: 2 people2024: 1 person2025: 0 people2026: 0 people
    20142026
    Something wrong here?
  6. JSX is too complicated for designers without coding experienceUnreviewed

    10 people since 2015, in 7 different years · none this year

    2014: 0 people2015: 1 person2016: 2 people2017: 0 people2018: 4 people2019: 1 person2020: 0 people2021: 0 people2022: 1 person2023: 1 person2024: 0 people2025: 1 person2026: 0 people
    20142026
    Something wrong here?
  7. Interactions lag about 200ms on older devices with heavy pagesUnreviewed

    10 people since 2017, in 7 different years · none this year

    2014: 0 people2015: 0 people2016: 0 people2017: 1 person2018: 0 people2019: 1 person2020: 1 person2021: 0 people2022: 2 people2023: 1 person2024: 2 people2025: 2 people2026: 0 people
    20142026
    Something wrong here?
  8. Hard to step through, and error messages are unhelpfulUnreviewed

    10 people since 2016, in 6 different years · none this year

    2014: 0 people2015: 0 people2016: 1 person2017: 1 person2018: 0 people2019: 1 person2020: 4 people2021: 1 person2022: 2 people2023: 0 people2024: 0 people2025: 0 people2026: 0 people
    20142026
    Something wrong here?
  9. Pages take 10-60+ seconds to load, with spinners throughoutUnreviewed

    9 people since 2015, in 6 different years · none this year

    2014: 0 people2015: 1 person2016: 0 people2017: 0 people2018: 0 people2019: 2 people2020: 0 people2021: 2 people2022: 2 people2023: 0 people2024: 2 people2025: 1 person2026: 0 people
    20142026
    Something wrong here?
  10. Screens re-render 12+ times on each state changeUnreviewed

    8 people since 2017, in 5 different years · none this year

    2014: 0 people2015: 0 people2016: 0 people2017: 1 person2018: 0 people2019: 0 people2020: 2 people2021: 0 people2022: 2 people2023: 2 people2024: 0 people2025: 1 person2026: 0 people
    20142026
    Something wrong here?
  11. Webpack and Babel configuration is painful and hard to debugUnreviewed

    8 people since 2015, in 5 different years · none this year

    2014: 0 people2015: 2 people2016: 3 people2017: 1 person2018: 1 person2019: 1 person2020: 0 people2021: 0 people2022: 0 people2023: 0 people2024: 0 people2025: 0 people2026: 0 people
    20142026
    Something wrong here?
  12. Noticeable scroll lag compared to other sitesUnreviewed

    6 people since 2015, in 4 different years · 1 this year

    2014: 0 people2015: 1 person2016: 0 people2017: 2 people2018: 0 people2019: 0 people2020: 0 people2021: 0 people2022: 0 people2023: 2 people2024: 0 people2025: 1 person2026: 0 people
    20142026
    Something wrong here?
  13. Hooks behave unlike regular functions, making render loops hard to debugUnreviewed

    5 people since 2020, in 4 different years · none this year

    2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 1 person2021: 1 person2022: 2 people2023: 0 people2024: 1 person2025: 0 people2026: 0 people
    20142026
    Something wrong here?
  14. Scrolling gets trapped inside each code window, interrupting page scrollUnreviewed

    5 people since 2015, in 4 different years · none this year

    2014: 0 people2015: 2 people2016: 0 people2017: 1 person2018: 0 people2019: 1 person2020: 0 people2021: 0 people2022: 0 people2023: 1 person2024: 0 people2025: 0 people2026: 0 people
    20142026
    Something wrong here?
  15. Hooks, classes and lifecycle methods are confusing and changingUnreviewed

    5 people since 2020, in 4 different years · 1 this year

    2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 1 person2021: 2 people2022: 1 person2023: 0 people2024: 0 people2025: 0 people2026: 1 person
    20142026
    Something wrong here?
  16. Bloated assets make pages slow to load and respondUnreviewed

    5 people since 2019, in 3 different years · none this year

    2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 1 person2020: 0 people2021: 0 people2022: 2 people2023: 0 people2024: 0 people2025: 2 people2026: 0 people
    20142026
    Something wrong here?
  17. Managing state is unintuitive for developersUnreviewed

    4 people since 2022, in 3 different years · none this year

    2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 0 people2022: 1 person2023: 2 people2024: 0 people2025: 1 person2026: 0 people
    20142026
    Something wrong here?
  18. Inline conditionals and loops in JSX are ugly and hard to writeUnreviewed

    3 people since 2017, in 3 different years · none this year

    2014: 0 people2015: 0 people2016: 0 people2017: 1 person2018: 0 people2019: 0 people2020: 1 person2021: 2 people2022: 0 people2023: 0 people2024: 0 people2025: 0 people2026: 0 people
    20142026
    Something wrong here?
  19. Complex state causes confusing bugs from leaky abstractionUnreviewed

    3 people since 2022, in 3 different years · none this year

    2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 0 people2022: 1 person2023: 0 people2024: 1 person2025: 1 person2026: 0 people
    20142026
    Something wrong here?
  20. Pages take 250-500ms to render, hurting the experienceUnreviewed

    3 people since 2019, in 3 different years · none this year

    2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 1 person2020: 0 people2021: 0 people2022: 1 person2023: 1 person2024: 0 people2025: 0 people2026: 0 people
    20142026
    Something wrong here?
  21. Needs specialized knowledge to use correctlyUnreviewed

    3 people since 2017, in 3 different years · 1 this year

    2014: 0 people2015: 0 people2016: 0 people2017: 1 person2018: 0 people2019: 0 people2020: 0 people2021: 0 people2022: 0 people2023: 0 people2024: 1 person2025: 0 people2026: 1 person
    20142026
    Something wrong here?
  22. Easy to end up in confusing reactivity situationsUnreviewed

    3 people since 2023, in 3 different years · none this year

    2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 0 people2022: 0 people2023: 1 person2024: 1 person2025: 1 person2026: 0 people
    20142026
    Something wrong here?
  23. Stale state in callbacks forces passing state down to childrenUnreviewed

    3 people since 2017, in 3 different years · none this year

    2014: 0 people2015: 0 people2016: 0 people2017: 1 person2018: 0 people2019: 1 person2020: 0 people2021: 0 people2022: 1 person2023: 0 people2024: 0 people2025: 0 people2026: 0 people
    20142026
    Something wrong here?
  24. The tutorial is hard to use on a phoneUnreviewed

    3 people since 2017, in 3 different years · none this year

    2014: 0 people2015: 0 people2016: 0 people2017: 1 person2018: 0 people2019: 1 person2020: 0 people2021: 1 person2022: 0 people2023: 0 people2024: 0 people2025: 0 people2026: 0 people
    20142026
    Something wrong here?
  25. Having to write className instead of class feels unnaturalUnreviewed

    3 people since 2015, in 3 different years · none this year

    2014: 0 people2015: 1 person2016: 0 people2017: 0 people2018: 1 person2019: 0 people2020: 0 people2021: 0 people2022: 0 people2023: 0 people2024: 0 people2025: 1 person2026: 0 people
    20142026
    Something wrong here?
  26. Basic setup like server-side rendering needs heavy configurationUnreviewed

    3 people since 2016, in 3 different years · 1 this year

    2014: 0 people2015: 0 people2016: 1 person2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 0 people2022: 0 people2023: 0 people2024: 0 people2025: 1 person2026: 1 person
    20142026
    Something wrong here?
  27. Simple pages require learning JSX, hooks and build tooling firstUnreviewed

    3 people since 2016, in 3 different years · none this year

    2014: 0 people2015: 0 people2016: 1 person2017: 1 person2018: 0 people2019: 0 people2020: 0 people2021: 0 people2022: 0 people2023: 0 people2024: 0 people2025: 1 person2026: 0 people
    20142026
    Something wrong here?
  28. Developers easily make common mistakes that hurt performanceUnreviewed

    3 people since 2021, in 3 different years · 1 this year

    2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 1 person2022: 0 people2023: 0 people2024: 0 people2025: 1 person2026: 1 person
    20142026
    Something wrong here?
  29. Maintaining state needs an excessive amount of boilerplate codeUnreviewed

    3 people since 2016, in 3 different years · none this year

    2014: 0 people2015: 0 people2016: 1 person2017: 1 person2018: 0 people2019: 0 people2020: 1 person2021: 0 people2022: 0 people2023: 0 people2024: 0 people2025: 0 people2026: 0 people
    20142026
    Something wrong here?
  30. Supporting library docs are poor and every example differsUnreviewed

    3 people since 2016, in 3 different years · none this year

    2014: 0 people2015: 0 people2016: 1 person2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 0 people2022: 1 person2023: 0 people2024: 1 person2025: 0 people2026: 0 people
    20142026
    Something wrong here?
  31. Component classes and HOCs are hard to type correctly in TypeScriptUnreviewed

    3 people since 2018, in 2 different years · none this year

    2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 1 person2019: 2 people2020: 0 people2021: 0 people2022: 0 people2023: 0 people2024: 0 people2025: 0 people2026: 0 people
    20142026
    Something wrong here?
  32. Abstractions hide how things work, so the underlying workings must be learnedUnreviewed

    3 people since 2021, in 2 different years · none this year

    2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 1 person2022: 2 people2023: 0 people2024: 0 people2025: 0 people2026: 0 people
    20142026
    Something wrong here?
  33. Mixing markup with JavaScript makes code hard to readUnreviewed

    3 people since 2019, in 2 different years · none this year

    2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 2 people2020: 0 people2021: 0 people2022: 0 people2023: 1 person2024: 0 people2025: 0 people2026: 0 people
    20142026
    Something wrong here?
  34. Hard to verify logic split across multiple lifecycle methodsUnreviewed

    3 people since 2018, in 2 different years · none this year

    2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 1 person2019: 0 people2020: 0 people2021: 0 people2022: 2 people2023: 0 people2024: 0 people2025: 0 people2026: 0 people
    20142026
    Something wrong here?
  35. Must learn many concepts like useState and hooks to express UIUnreviewed

    3 people since 2021, in 2 different years · none this year

    2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 2 people2022: 0 people2023: 1 person2024: 0 people2025: 0 people2026: 0 people
    20142026
    Something wrong here?

This list counts all time; the period switch above only changes the ranking. Each issue is a group of similar complaints raised by at least 3 people in 3 different months and threads. Each line under an issue is Claude Haiku's summary of one of its latest comments, not a quote; follow it to read the comment on Hacker News.

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