Claude Skill MartBrowse skillsQuick linesLearn by videoTerminal guideWhat is a Skill?
Back to list

Turbo (Symfony UX) Guide

A skill that teaches Claude to build SPA-like Symfony UIs with Turbo Drive, Frames, and Streams without writing JavaScript.

Dev & CodingIntermediate17012AI score 9/10Last updated: Jun 14, 2026

What it does

  • Gives a decision tree for choosing Drive (automatic AJAX navigation), Frames (one section), or Streams (many targets, including realtime).
  • Supplies working snippets for <turbo-frame>, all eight <turbo-stream> actions, data-turbo-* attributes, and the <twig:Turbo:Stream:*> component syntax (UX 2.22+).
  • Covers Symfony integration: stream responses via TurboBundle::STREAM_FORMAT, detecting the Turbo-Frame header, and realtime broadcasting with #[Broadcast] + Mercure/SSE.
  • Documents common patterns (inline edit, server-rendered modals, search, flash messages) plus key rules such as matching frame IDs and returning full HTML pages.

Who it's for

  • Symfony/Twig developers who want modern interactivity without a JS framework.
  • Anyone unsure whether a task belongs to Turbo, Stimulus, or Live Components.
  • Teams building reload-free pagination, lazy-loaded sections, or live notifications.

Example uses

  1. "After creating a comment, update the list, the counter, and reset the form" → generates a .stream.html.twig template plus controller code.
  2. "Load the notifications panel after the page renders" → suggests a loading="lazy" frame.
  3. "Render a delete-confirmation modal from the server" → produces the data-turbo-frame="modal" pattern.

· · · Install guide · · ·

Try it now, no install

Paste this into Claude to use the skill without installing anything.

Read the instructions in this file and follow them to help me:
https://raw.githubusercontent.com/smnandre/symfony-ux-skills/HEAD/skills/turbo/SKILL.md

What I want: (describe your task here)

If Claude can't open the link, open it yourself and paste the contents instead.

If it works for you, download the ZIP below and install it. Then it runs on its own — no pasting each time.

Install in the Claude app (no terminal)
  1. Download the ZIP with the button below.
  2. In Claude, open Settings → Capabilities and turn on 'Code execution and file creation'. (one time)
  3. Go to Customize → Skills → + → 'Upload a skill' and upload the ZIP.
Download ZIP
Install in Claude Code

Let Claude do it — paste this into Claude Code

Install the skill I found on Claude Skill Mart.
Copy the skills/turbo folder from the GitHub repo smnandre/symfony-ux-skills into my ~/.claude/skills/turbo/.
When it's done, tell me in one line what this skill can do.

Install with a command instead

git clone https://github.com/smnandre/symfony-ux-skills.git /tmp/symfony-ux-skills && mkdir -p ~/.claude/skills && cp -r /tmp/symfony-ux-skills/skills/turbo ~/.claude/skills/turbo

This is a third-party skill. Check the source repository before installing.

  1. Open a terminal.
  2. Clone the repository: git clone https://github.com/smnandre/symfony-ux-skills.git
  3. Create the skills directory: mkdir -p ~/.claude/skills
  4. Copy just this skill: cp -r symfony-ux-skills/skills/turbo ~/.claude/skills/turbo
  5. Verify that ~/.claude/skills/turbo/SKILL.md and its references/ folder exist.
  6. Restart Claude Code and ask something like "how do I update part of the page without a reload?" to trigger it.
  7. In your actual project, also run composer require symfony/ux-turbo (and set up Mercure if you need realtime streams).