finds.dev

marcoroth/turbo_power

Custom Actions power-pack for Turbo Streams

View on GitHub

★ 518TypeScriptMITupdated Jul 2026

// the take

TurboPower extends Turbo Streams with ~50 additional actions covering DOM manipulation, attribute management, browser history, storage, notifications, and more. It's the missing stdlib for Hotwire Rails apps that keep bumping into the limits of the built-in append/prepend/replace/remove actions. If you're building a Rails app with Turbo and find yourself reaching for a StimulusReflex-style operation, this is the answer without the ActionCable dependency.

The action surface is genuinely wide — history.pushState, scrollIntoView, CSS class toggling, localStorage — things you'd otherwise wire up with a dedicated Stimulus controller for each. Test coverage is thorough and organized by action category, not just happy-path integration tests. The Rails companion gem (turbo_power-rails) means server-side ergonomics match the JS side, so you're not hand-crafting custom stream templates. Bundle size stays small because each action is just a function registered into Turbo.StreamActions — no runtime overhead beyond what you already have.

The 'morph' action delegates to turbo-morph which itself depends on the idiomorph algorithm, meaning you're pulling in a dependency chain that isn't obvious from the README — if idiomorph has a bug with your DOM structure, the debugging path gets awkward. No server-side support outside Rails and Django; if you're on a different backend you're writing your own stream tags by hand. The playground exists but it's a local Vite mock, not a hosted demo, so evaluating behavior before committing requires running it locally. The set_cookie action builds a raw cookie string rather than using a proper cookie API, which means getting attributes like SameSite or Secure right is on you.

We read the README, the directory tree and a key source file in July 2026. Nobody pays to be listed. How we judge →

// at a glance

Stars
518
Forks
20
Language
TypeScript
License
MIT
Last commit
13 Jul 2026

// nearby

If turbo_power isn't quite it.

All repos →