Skip to content
Agentmart
Submit a tool

hotwire

Hotwire Turbo and Stimulus patterns for Rails.

Skill by alec-c4

IndexedMIT★ 1
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/alec-c4-hotwire

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Hotwire Turbo and Stimulus patterns for Rails. Load when turbo-rails gem present per stacks/rails profile.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/hotwire

What's inside

Skill name
hotwire
Description
Hotwire Turbo and Stimulus patterns for Rails. Load when turbo-rails gem present per stacks/rails profile.
License
MIT
Instructions
41 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Hotwire (Turbo + Stimulus)

Load when `turbo-rails` in Gemfile ([stacks/rails](../stacks/rails/profile.yaml) `if_gem`).

## Turbo

- Prefer **Turbo Frames** for partial page updates; **Turbo Streams** for multi-target DOM updates.
- Forms: `data-turbo="false"` only when full page reload is required.
- Drive navigation enabled by default — test stream responses in request/system specs.

### Page refreshes and morphing (Turbo 8)

- Opt in per layout with `<meta name="turbo-refresh-method" content="morph">`: a refresh then
  updates only the changed DOM nodes instead of replacing `<body>`. Pair it with
  `<meta name="turbo-refresh-scroll" content="preserve">` to hold scroll position.
- `<turbo-stream action="refresh">` triggers that refresh, taking `method="morph|replace"`
  and `scroll="preserve|reset"`.
- In Rails, `broadcasts_refreshes` on the model plus `turbo_stream_from` in the view replaces
  hand-written per-target broadcasts: the server sends one signal and the page morphs.
  Prefer it over broadcasting a stream per partial when the whole page reflects the change.
- Morphing preserves element identity — give list rows and stateful nodes stable `id`s, and
  mark anything the server must not touch with `data-turbo-permanent`.

## Stimulus

- One controller per behaviour; `data-controller`, `data-action`, `data-*-target`.
- Keep controllers small; fetch JSON from Rails endpoints, do not embed secrets in JS.

## Testing

- Assert turbo-stream content type and DOM ids in request specs where applicable.
- Morphing changes what a system test sees: assert on the updated node, not on a full
  page reload having happened.

## References

- [Turbo handbook](https://turbo.hotwired.dev/handbook/introduction)
- [Page refreshes](https://turbo.hotwired.dev/handbook/page_refreshes)
- [Stimulus handbook](https://stimulus.hotwired.dev/handbook/introduction)

From alec-c4/agent_dev_kit, MIT.

More from alec-c4/agent_dev_kit

Signals

Stars
1
Forks
0
Open issues
0
Last commit (this folder)
Sep 7, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from alec-c4

Cite this page

hotwire skill. Agent Mart. https://agentmart.dev/skills/alec-c4-hotwire (last updated 2026-10-24)