Nothing feels faster than saving a snippet into the bookmarks bar and clicking. Bookmarklets execute in the current page context, require no installer, and thrive on tiny, repetitive tasks like cleaning pagination clutter or copying structured data. They are perfect for time-boxed experiments and urgent fixes, but they lack persistent state, deep permissions, and reliable scheduling. When you need velocity over ceremony, this lightweight entry point earns its keep immediately.
Userscripts introduce a small, recurring setup cost: installing a manager such as Tampermonkey or Violentmonkey, defining @match rules, and granting explicit capabilities. That friction feels justified when your logic grows beyond one-liners, demands modularity, or benefits from automatic updates. Compared to extensions, userscripts remain approachable, searchable, and easily shared as plain text, yet they gain structure, metadata, and tooling that make maintenance less chaotic as collaborators inevitably arrive.
Single‑page applications often re-render content, breaking naive selectors and inline scripts. Bookmarklets can still work, especially with MutationObserver and resilient queries, but require careful timing. Userscripts specify @run-at to hook earlier or later. Extensions inject content scripts predictably and communicate with background processes for heavier logic. The right choice hinges on lifecycle control: if timing proves fickle and events pile up, structured injection and messaging channels provide the discipline fragile pages demand.
Some automations require more than a single page: scheduled fetches, caching, or listening for system events. Userscript managers offer helpful bridges, like cross-origin requests and persistent storage, albeit within limits. Extensions excel here, with background service workers, alarms, declarative net request rules, and richer storage. Bookmarklets, by design, stay lightweight and ephemeral. Consider where state should live, how long tasks must run, and whether reliability outweighs simplicity before committing to any architecture.