Project ideas from Hacker News discussions.

A brief history of Windows scroll bar shortcuts

📝 Discussion Summary (Click to expand)

Theme 1 – Scrollbar behavior varies wildly across platforms and apps
Users repeatedly point out that clicking, shift‑clicking, or middle‑clicking a scrollbar does different things on Windows, Linux/GTK, Qt, Firefox, LibreOffice, etc.
- “In Linux/GTK, clicking in the gutter navigates to that position… Shift+clicking is equivalent to PageUp/PageDown… right‑clicking seems to also be equivalent to PageUp/PageDown in Firefox…” – chrismorgan
- “If you mean dragging… you have to make use of the auto‑repeat functionality, which takes O(n) time… Shift+Click does it instantly in O(1).” – layer8
- “On Windows it's effectively a page down. The behavior you are describing is present on other platforms.” – McGlockenshire

Theme 2 – Preference for native/default widgets over custom scrollbars
Many commenters argue that using the OS‑provided scrollbars yields consistent theming, accessibility, muscle‑memory, and avoids unnecessary work.
- “I want apps to use the default widgets because I want theming and color selection in the OS to work again… I derive joy and pleasure from software that allows me to quickly accomplish my tasks.” – EvanAnderson
- “I don’t mind if you want a custom look and feel for your application… I very much do mind if your widgets don’t behave like other widgets of the same type…” – bartread
- “I would go further and say that I don’t want a custom look and feel for each app unless the app is a game… The default Win32 widgets are good enough.” – kccqzy

Theme 3 – Debate over the usefulness of non‑standard scrollbar shortcuts (Shift‑click, middle‑click, etc.)
Some see these shortcuts as power‑user features worth preserving; others consider them niche and not worth the complexity.
- “They'll just assume your site/app is broken, because their reference for what's correct is their platform. If they're annoyed enough, they go to a competitor…” – joshuaissac
- “Why do I care about matching it all? … What percentage of the population would you reckon is shift+clicking their scrollbars on a routine enough basis to notice a web‑app that doesn't meet their expectations? 1%? 0.1%? 0.0001%?” – applfanboysbgon
- “I think the article is focusing on the shortcuts.” – SupLockDef

These three themes capture the dominant opinions in the thread: platform‑specific scrollbar inconsistencies, a strong inclination toward native UI controls, and a split view on how essential advanced scrollbar interactions really are.


🚀 Project Ideas

Generating project ideas…

Cross‑Platform Native‑Scrollbar Widget

Summary

  • Provides a scrollbar widget that behaves like the OS native bar (click‑to‑scroll‑here, Shift+Click = PageUp/Down, middle‑click optional) across Qt, WinForms, WPF, GTK, and Electron.
  • Core value: eliminates platform‑specific scrollbar inconsistencies so developers get predictable mouse behavior without reinventing the wheel.

Details

Key Value
Target Audience Desktop app developers using Qt, .NET (WinForms/WPF), GTK, or Electron who need reliable scrollbar interactions.
Core Feature A reusable widget/component that emits standard scroll events and implements click‑to‑position, Shift+Click page navigation, and configurable middle‑click behavior.
Tech Stack C++/Qt (primary), C#/.NET bindings, Rust‑GTK wrapper, Node.js/Electron wrapper; optional WASM port for web views.
Difficulty Medium
Monetization Hobby

Notes

  • HN users lament missing “scroll here” (mrob: “IMO, ‘scroll here’ should be the default action for clicking on a scrollbar”) and inconsistent Shift+Click behavior (layer8: “Shift+Click does it instantly in O(1)”). This widget directly satisfies those wishes.
  • By offering a single API that maps to native OS messages on Windows/macOS/Linux, it reduces UI‑threading bugs and gives developers a drop‑in replacement for custom scrollbars that currently feel “like an absolute dogshit eyesore” (applfanboysbgon).

Scroll‑Normalizer Browser Extension

Summary

  • A WebExtension that forces native‑like scrollbar behavior on any website: clicking the thumb jumps to that position, Shift+Click triggers PageUp/Down, and middle‑click can be remapped.
  • Core value: gives end‑users a consistent scrolling experience regardless of a site’s custom scrollbar CSS or JS.

Details

Key Value
Target Audience Power users and accessibility‑conscious browsers frustrated by non‑standard scrollbars on the web (e.g., sites with hidden or thin scrollbars).
Core Feature Content script that detects custom scrollbars, replaces them with a thin overlay that forwards mouse events to the native scrolling API, and adds Shift+Click/ middle‑click handlers.
Tech Stack Manifest V3, JavaScript/TypeScript, CSS overlay, optional Rust‑wasm for performance‑critical hit‑testing.
Difficulty Low‑Medium
Monetization Hobby

Notes

  • Users complain that “different platforms behave differently, and you can’t match it all” (applfanboysbgon) and that “shift+clicking their scrollbars… they’ll just assume your site/app is broken” (joshuaissac). The extension removes that guesswork.
  • Restoring click‑to‑position addresses mrob’s desire for a mouse‑only “scroll here” action, while Shift+Click restores the O(1) page navigation layer8 praised.

Native‑Feel Scrollbar Design System + Linter

Summary

  • A UI library (React/Vue/Svelte) that provides scrollbars matching OS look‑and‑feel, proper keyboard shortcuts, and accessible focus handling, paired with a CLI lint rule that flags non‑standard scrollbar implementations in codebases.
  • Core value: lets web teams ship consistent, native‑scrolling UI without sacrificing design freedom, while catching regressions early.

Details

Key Value
Target Audience Front‑end engineers, design system teams, and product owners building web apps who want scrollbars that feel native across browsers and OSes.
Core Feature component that uses CSS environmental variables (e.g., scrollbar-width, scrollbar-color) and falls back to a JS‑driven overlay only when needed; plus @scrollbar-lint rule for ESLint/Stylelint.
Tech Stack TypeScript, Styled Components / CSS Modules, PostCSS for browser‑specific fallbacks; Node.js CLI for linting.
Difficulty Medium
Monetization Revenue-ready: Tiered pricing – free open‑source core, $10/mo per team for premium themes, enterprise support, and lint‑as‑a‑service CI integration.

Notes

  • HN commentators note that “custom look and feel… you very much do mind if your widgets don’t behave like other widgets” (bartread) and that developers “don’t want to either fork over hundreds… or spend time wrangling the framework” (tacodestroyer). This solution gives them a ready‑made, behaving‑like‑native widget.
  • The linter can catch the very issues highlighted by chrismorgan (different behavior in Firefox vs LibreOffice vs Inkscape) by detecting when a site overrides scrollbar appearance without providing fallback native behavior, prompting discussion on accessibility and consistency.

Read Later