turbo

Automate SPA-like navigation and real-time updates in Symfony UX apps with Turbo.

166|12|Updated Mar 2, 2026
One-click install
npx skills add https://github.com/smnandre/symfony-ux-skills --skill turbo-smnandre
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: turbo
Source: https://github.com/smnandre/symfony-ux-skills/tree/main/skills/turbo
Command: npx skills add https://github.com/smnandre/symfony-ux-skills --skill turbo-smnandre

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

The Turbo skill provides SPA-like navigation and real-time updates for Symfony UX apps by enabling automatic AJAX navigation, frame-scoped content loading, and server-pushed DOM updates using Turbo Drive, Frames, and Streams.

Core Features & Use Cases

  • Drive: Automatic AJAX navigation for all links and forms without writing custom JS.
  • Frames: Scoped updates that replace only the targeted frame content, delivering partial page refreshes.
  • Streams: Server-pushed DOM mutations to multiple page sections via turbo-stream.
  • Mercure integration: Real-time broadcasts to connected clients for live updates.

Quick Start

Enable turbo in your Symfony app and begin using Turbo Drive, Turbo Frames, and Turbo Streams to deliver SPA-like UX.

Frequently Asked Questions about turbo

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add SPA-like navigation to a Symfony UX app without writing custom JavaScript?

SPA-like navigation in Symfony UX is achieved using Turbo Drive, which automatically intercepts link clicks and form submissions to perform AJAX requests, updating the page without full reloads or custom JavaScript.

What is the best way to update only a specific part of a page in Symfony instead of refreshing the whole document?

Partial page updates are handled using Turbo Frames, which scope content replacement to specific frame elements, allowing isolated sections of your Symfony application to load and update independently.

How do I broadcast real-time DOM changes to connected clients in a Symfony application?

Real-time DOM updates are broadcast using Turbo Streams, optionally integrated with Mercure, to push server-rendered HTML mutations directly to connected clients for live content delivery.

Do I need a separate frontend framework to build a single page application with Symfony UX?

A separate frontend framework is not required. Symfony UX utilizes Turbo Drive, Frames, and Streams to deliver a SPA-like experience by relying entirely on server-rendered HTML responses.

Why are my Turbo Streams not updating the page content in my Symfony application?

Turbo Streams require server-rendered HTML responses with correct turbo-stream formatting to function. If the DOM mutations are not properly structured, the client will not apply the partial page updates.

Can I use Turbo to update multiple sections of a page simultaneously from a single server response?

Yes, Turbo Streams can deliver server-pushed DOM mutations to multiple page sections simultaneously, allowing a single server response to update various targeted elements across the view.