Turbo is a JavaScript framework that delivers single-page application performance without requiring developers to write custom JavaScript.
Turbo addresses the problem of building fast, responsive web applications while minimizing JavaScript complexity. It works by sending HTML over the wire and using complementary techniques to intercept and optimize common browser operations. Turbo Drive accelerates links and form submissions by replacing full page reloads with partial updates. Turbo Frames decompose pages into independent contexts that scope navigation and support lazy loading. Turbo Streams deliver page changes via WebSocket or form submission responses using HTML with CRUD-like actions. For native mobile applications, Turbo Native allows a web monolith to power both iOS and Android apps with seamless transitions between web and native sections.
Turbo suits teams building server-rendered applications who want to avoid the complexity of building a separate JavaScript-heavy frontend. It works well for projects where the server already generates HTML and where developers prefer to keep business logic on the backend. The framework is designed for situations where HTML-over-the-wire interactions suffice; when more sophisticated client-side behavior is needed, the documentation explicitly points to Stimulus as a complementary tool for adding targeted interactivity.
The project maintains active development with regular commits across its codebase. The repository includes comprehensive contribution guidelines and demonstrates ongoing refinement of its core techniques. Development activity shows consistent engagement with the framework's multiple subsystems, indicating sustained attention to both the Drive, Frames, and Streams components.