{"enrichment":{"faq":[{"a":"Turbo Drive intercepts all link and form submissions, replacing only the page body via AJAX instead of full browser reloads. This preserves scroll position, maintains history, and delivers SPA-like speed while keeping your HTML server-rendered. Combined with Turbo Frames for scoped updates and Streams for multi-target mutations, Turbo creates responsive navigation without writing client-side JavaScript.","q":"How does Turbo make navigation feel like a single page app?"},{"a":"Turbo Frames scope DOM updates to a single named region\u2014ideal for lazy loading, pagination, and inline editing where you replace content within a frame boundary. Turbo Streams enable multi-target updates in a single request using append, prepend, replace, remove, and update actions, perfect for flash messages, real-time notifications, and complex server-pushed changes across multiple page sections.","q":"What's the difference between Turbo Frames and Turbo Streams?"},{"a":"Yes. Turbo Frames let you target specific sections by wrapping them in `<turbo-frame>` tags; form submissions within a frame update only that frame. Turbo Streams go further, allowing a single server response to update multiple unrelated elements via named actions. Both approaches avoid full-page reloads and eliminate the need for custom JavaScript.","q":"Can you update part of a page without a full reload using Turbo?"},{"a":"Turbo Frames accept a `src` attribute that loads content asynchronously when the frame enters the viewport or is clicked. Pagination links within a frame stay scoped to that frame, replacing its content without reloading the page. This pattern works seamlessly with server-side rendering, letting you defer expensive queries until needed.","q":"How do Turbo Frames enable lazy loading and pagination?"},{"a":"Turbo Streams integrate with server-push protocols like Mercure and Server-Sent Events (SSE). Your server broadcasts Turbo Stream HTML fragments to subscribed clients, which automatically apply append, replace, remove, or update actions to the DOM. This enables real-time notifications, collaborative editing, and live data without polling or WebSocket boilerplate.","q":"Can Turbo push real-time updates to clients via Mercure or SSE?"},{"a":"Turbo is released under the MIT license, making it free to use, modify, and distribute in both open-source and commercial projects with minimal restrictions.","q":"What license does Turbo use?"}],"shadow_tags":["ajax-navigation","server-side-rendering","partial-updates","real-time-push","spa-alternative","dom-morphing","progressive-enhancement","zero-javascript","hotwire-ecosystem"],"summary_rewrite":"Turbo delivers responsive, single-page application feel using only server-side HTML rendering. Drive handles automatic AJAX navigation across all links and forms, Frames scope updates to individual page sections, and Streams push multi-target DOM changes from the server\u2014enabling lazy loading, inline editing, pagination, and real-time updates without client-side logic."},"files":[{"bytes":11486,"path":"skills/turbo/SKILL.md","sha256":"4b19a6d3651f10414499c755f37eeedfae7d9da3ec45f4c01144b7cbbedabb03","url":"https://skillfed.io/files/smnandre/symfony-ux-skills/turbo/b9400b42/SKILL.md"}],"id":"smnandre/symfony-ux-skills/turbo","links":{"html":"https://skillfed.io/smnandre/symfony-ux-skills/turbo","md":"https://skillfed.io/smnandre/symfony-ux-skills/turbo.md","repo":"https://github.com/smnandre/symfony-ux-skills"},"meta":{"agents_supported":[],"first_seen":"2026-07-28","forks":12,"language":null,"last_updated":"2026-06-14","license":"MIT","name":"turbo","publisher":"smnandre","stars":164},"relations":{"similar":[{"id":"smnandre/symfony-ux-skills/symfony-ux"},{"id":"majesticlabs-dev/majestic-marketplace/hotwire-coder"},{"id":"smnandre/symfony-ux-skills/stimulus"},{"id":"smnandre/symfony-ux-skills/live-component"},{"id":"smnandre/symfony-ux-skills/ux-map"},{"id":"smnandre/symfony-ux-skills/twig-component"},{"id":"smnandre/symfony-ux-skills/ux-icons"},{"id":"Guiziweb/guiziweb-plugins/init"},{"id":"majesticlabs-dev/majestic-marketplace/dialog-patterns"},{"id":"pproenca/dot-skills/rails-hotwire"}]},"slug":{"owner":"smnandre","repo":"symfony-ux-skills","skill":"turbo"},"version":"b9400b42"}
