{"slug": "turbo", "name": "Turbo", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "", "recommenders": 3, "commenters": 4, "warners": 0, "score": 2.943, "rising": 0.35, "first": "2025-12-19", "latest": "2026-08-12", "why": "I've been using it for years and it often really is that easy.", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 3, "neutral": 1, "compare": 0, "warn": 0}, "spark": [0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "I've been using it for years and it often really is that easy.", "icon": true, "domain": null, "github_repo": "github.com/magiblot/turbo", "official_url": "https://github.com/magiblot/turbo", "pricing": "", "aliases": ["Turbo", "turbo"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 788430480, "item_id": 49276905, "url": "https://news.ycombinator.com/item?id=49276905", "by": "x0x0", "date": "2026-08-12", "stance": "recommend", "quote": "I've been using it for years and it often really is that easy.", "excerpt": "no api. The way it works is thus (rails, because it's what I regularly use): The system is called Turbo. A turbo_frame is just a custom html element. You can largely use it instead of a div. Turbo's js watches for navigation events (link clicks, form submits) that originate inside one of these elements, and instead of letting the browser do a full navigation, it: 1 - makes the request itself, against the usual rails ", "context": "Rails developer", "use_case": "partial page updates in Rails", "switched_from": "", "story": "HTML over WebSockets: real-time SPAs with barely any JavaScript"}, {"id": 766432977, "item_id": 47902061, "url": "https://news.ycombinator.com/item?id=47902061", "by": "electroly", "date": "2026-04-25", "stance": "recommend", "quote": "you might try to integrate https://github.com/magiblot/turbo too. This is a Scintilla-based text editor control implemented in tvision.", "excerpt": "Definitely. Reach out to me or magiblot if you ever need any help. I love this stuff, and magiblot is extremely responsive. They have helped me many times and even made changes to tvision to support my use cases. As a stretch goal, you might try to integrate https://github.com/magiblot/turbo too. This is a Scintilla-based text editor control implemented in tvision. We worked together to make it embeddable in other pr", "context": "", "use_case": "embeddable text editor control", "switched_from": "", "story": "Turbo Vision 2.0 \u2013 a modern port"}, {"id": 756296368, "item_id": 47268523, "url": "https://news.ycombinator.com/item?id=47268523", "by": "vlz", "date": "2026-03-05", "stance": "recommend", "quote": "Turbo and view transitions go so well together because they have kind of the same philosophy", "excerpt": "> Turbo and view transitions go so well together because they have kind of the same philosophy: write the HTML once to describe what the current state should look like, and let the technology handle the transitioning from one state to another. This leads to writing expressive dead simple code, that is so simple to understand yet behaves like a modern SPA, I love it!", "context": "", "use_case": "smooth UI on server-rendered HTML", "switched_from": "", "story": "Smooth UI animations on server-rendered HTML: Turbo, Stimulus, View transitions"}]}], "caveats": [], "who": [{"by": "x0x0", "context": "Rails developer", "url": "https://news.ycombinator.com/item?id=49276905", "date": "2026-08-12"}], "tags": [], "use_cases": ["partial page updates in rails", "embeddable text editor control", "smooth ui on server-rendered html", "frontend"], "compared": [{"slug": "htmx", "name": "HTMX", "co": 1, "switched_from": 0, "switched_to": 1}], "makers": [{"id": 781213040, "item_id": 48825815, "url": "https://news.ycombinator.com/item?id=48825815", "by": "okzgn", "date": "2026-07-07", "stance": "recommend", "quote": "It has gone through many tests in production", "excerpt": "I started building this project in February 2021 in Go to control all of the information flow, requests, and structural backend logic without needing to restart the process (like httpd or other servers) to make adjustments. It has gone through many tests in production (it didn't have a GUI at the beginning), specifically to serve PHP applications (with php-cgi), but with the option to add any preprocessor I wanted vi", "context": "", "use_case": "HTTP server serving PHP apps", "switched_from": "", "story": "Show HN: Turbo \u2013 An open-source, fast HTTP server with a real-time config GUI"}], "threads": [{"url": "https://news.ycombinator.com/item?id=49275335", "title": "HTML over WebSockets: real-time SPAs with barely any JavaScript", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48825808", "title": "Show HN: Turbo \u2013 An open-source, fast HTTP server with a real-time config GUI", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47898597", "title": "Turbo Vision 2.0 \u2013 a modern port", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47218649", "title": "Smooth UI animations on server-rendered HTML: Turbo, Stimulus, View transitions", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46312973", "title": "Please just try HTMX", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {"neutral": 1}, "2026-01": {}, "2026-02": {}, "2026-03": {"recommend": 1}, "2026-04": {"recommend": 1}, "2026-05": {}, "2026-06": {}, "2026-07": {}, "2026-08": {"recommend": 1}, "2026-09": {}, "2026-10": {}}, "quotes": [{"id": 788430480, "item_id": 49276905, "url": "https://news.ycombinator.com/item?id=49276905", "by": "x0x0", "date": "2026-08-12", "stance": "recommend", "quote": "I've been using it for years and it often really is that easy.", "excerpt": "no api. The way it works is thus (rails, because it's what I regularly use): The system is called Turbo. A turbo_frame is just a custom html element. You can largely use it instead of a div. Turbo's js watches for navigation events (link clicks, form submits) that originate inside one of these elements, and instead of letting the browser do a full navigation, it: 1 - makes the request itself, against the usual rails ", "context": "Rails developer", "use_case": "partial page updates in Rails", "switched_from": "", "story": "HTML over WebSockets: real-time SPAs with barely any JavaScript"}, {"id": 766432977, "item_id": 47902061, "url": "https://news.ycombinator.com/item?id=47902061", "by": "electroly", "date": "2026-04-25", "stance": "recommend", "quote": "you might try to integrate https://github.com/magiblot/turbo too. This is a Scintilla-based text editor control implemented in tvision.", "excerpt": "Definitely. Reach out to me or magiblot if you ever need any help. I love this stuff, and magiblot is extremely responsive. They have helped me many times and even made changes to tvision to support my use cases. As a stretch goal, you might try to integrate https://github.com/magiblot/turbo too. This is a Scintilla-based text editor control implemented in tvision. We worked together to make it embeddable in other pr", "context": "", "use_case": "embeddable text editor control", "switched_from": "", "story": "Turbo Vision 2.0 \u2013 a modern port"}, {"id": 756296368, "item_id": 47268523, "url": "https://news.ycombinator.com/item?id=47268523", "by": "vlz", "date": "2026-03-05", "stance": "recommend", "quote": "Turbo and view transitions go so well together because they have kind of the same philosophy", "excerpt": "> Turbo and view transitions go so well together because they have kind of the same philosophy: write the HTML once to describe what the current state should look like, and let the technology handle the transitioning from one state to another. This leads to writing expressive dead simple code, that is so simple to understand yet behaves like a modern SPA, I love it!", "context": "", "use_case": "smooth UI on server-rendered HTML", "switched_from": "", "story": "Smooth UI animations on server-rendered HTML: Turbo, Stimulus, View transitions"}, {"id": 741178002, "item_id": 46323625, "url": "https://news.ycombinator.com/item?id=46323625", "by": "Daril", "date": "2025-12-19", "stance": "neutral", "quote": "I used Turbo + Stimulus with a CodeIgniter PHP backend.", "excerpt": "I used Turbo + Stimulus with a CodeIgniter PHP backend. Later, I used an HTMX bot with CodeIgniter and GoLang. Now, I have migrated my second brain web app (Brainminder) from HTMX to Unpoly. I really liked HTMX, and I thank the authors for this marvelous library! I switched from Turbo to HTMX because the latter is much more flexible, and I try to avoid Node.js as much as possible, only using it to compile some JavaSc", "context": "", "use_case": "frontend", "switched_from": "", "story": "Please just try HTMX"}]}