<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/rails-world-26-herb-and-reactionview-4b5maaerf" -->

---
title: Rails World '26: Herb and ReActionView | daily.dev
description: Marco Roth's Rails World talk covered how Herb, an HTML-aware ERB parser merged into Rails core on August 25, 2026 and slated as Rails 8.2's opt-in view...
canonical: https://daily.dev/posts/rails-world-26-herb-and-reactionview-4b5maaerf
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Rails World '26: Herb and ReActionView | daily.dev
og:description: Marco Roth's Rails World talk covered how Herb, an HTML-aware ERB parser merged into Rails core on August 25, 2026 and slated as Rails 8.2's opt-in view...
og:url: https://daily.dev/posts/rails-world-26-herb-and-reactionview-4b5maaerf
og:image: https://api.daily.dev/og/posts/4b5mAaerf.png
og:image:alt: Rails World '26: Herb and ReActionView
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Rails World '26: Herb and ReActionView

**[Ruby Flow](https://daily.dev/sources/rubyflow)** · 8 min read · 0 upvotes · 0 comments

## Summary

Marco Roth's Rails World talk covered how Herb, an HTML-aware ERB parser merged into Rails core on August 25, 2026 and slated as Rails 8.2's opt-in view engine, sets the foundation for ReActionView, a separate project adding real reactivity to plain .html.erb templates without Hotwire, Stimulus, or hand-written JavaScript. ReActionView doesn't replace Turbo or Stimulus but targets smaller interactions like a value on the page changing, letting the same controller action answer state updates via a new Herb-State header and slots response format. The talk coincided with the release of ReActionView v0.6.0 and Herb v0.11, adding slot-aware hot reload, instrumentation, a dedicated compile-error page, and an npm-distributed client runtime, though the reactive template API is still marked experimental and subject to change.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://go.fastruby.io/w2a>

## Questions this post answers

### What is Herb and when was it merged into Rails core?

Herb is an HTML-aware ERB parser that understands HTML and embedded Ruby as a single tree, built by Marco Roth. It was merged into Rails core on August 25, 2026, and is on track to become Rails 8.2's opt-in view engine, meaning apps running Rails 8.2 defaults compile .html.erb templates through Herb without installing anything extra.

_Rails developers tracking framework internals like this follow release breakdowns on daily.dev._

### How does ReActionView add reactivity to Rails ERB templates without Stimulus or JavaScript?

ReActionView lets a template declare state directly, such as herb:state (order: "oldest"), and read it back in the controller via herb_state. When a value changes, the client sends a request like GET /messages?format=slots with a Herb-State header, the same controller action runs as normal, and ReActionView renders the same template in a JSON slots format so only the changed parts of the page update, with no separate endpoint or duplicated logic.

_Teams deciding between Hotwire, LiveView-style approaches, and lighter reactivity patterns compare options on daily.dev._

### What new features shipped in ReActionView v0.6.0?

ReActionView v0.6.0, released alongside Herb v0.11, added the Herb-State header and slots response format, a dependency map of what each piece of page state affects, slot-aware hot reload through the Herb dev server, built-in render instrumentation, a dedicated compile-error page, and a client runtime distributed as the reactionview npm package. Reactive templates remain experimental and subject to breaking changes.

_Developers upgrading Rails view-layer tooling keep tabs on releases like this via daily.dev._

## Similar posts on daily.dev

- [Herb and ReActionView: A Glimpse Into the Future of Rails Views](https://daily.dev/posts/herb-and-reactionview-a-glimpse-into-the-future-of-rails-views-vkhpjpfy5) · RUBYLAND · 2 upvotes · 0 comments
- [Week 46 - Herb v0.8, Inline Edit Custom Element, and more\!](https://daily.dev/posts/week-46---herb-v0-8-inline-edit-custom-element-and-more--h3go16tsq) · RUBYLAND · 0 upvotes · 0 comments
- [Issue \#814: Bringing Rails into the Ractor age — Ruby Weekly](https://daily.dev/posts/issue-814-bringing-rails-into-the-ractor-age-ruby-weekly-vch5zguhp) · Ruby Weekly · 0 upvotes · 0 comments
- [Ruby Native apps are running on 100,000\+ devices](https://daily.dev/posts/ruby-native-apps-are-running-on-100-000-devices-d38dqlrxd) · Masilotti · 0 upvotes · 0 comments
- [React on Rails Explained: Frontend Development with Rails 8](https://daily.dev/posts/react-on-rails-explained-frontend-development-with-rails-8-zcsa4sbeb) · Ruby Flow · 0 upvotes · 0 comments

---

Tags: [#rails](https://daily.dev/tags/rails), [#hotwire](https://daily.dev/tags/hotwire)

[View this post on daily.dev](https://daily.dev/posts/rails-world-26-herb-and-reactionview-4b5maaerf)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Rails World '26: Herb and ReActionView","url":"https://daily.dev/posts/rails-world-26-herb-and-reactionview-4b5maaerf","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/rails-world-26-herb-and-reactionview-4b5maaerf"},"datePublished":"2026-09-30T04:23:19.967Z","dateModified":"2026-09-30T04:23:44.088Z","description":"Marco Roth's Rails World talk covered how Herb, an HTML-aware ERB parser merged into Rails core on August 25, 2026 and slated as Rails 8.2's opt-in view...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/b033d8e23ec9c56be00215e102acf1c6?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/b033d8e23ec9c56be00215e102acf1c6?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Ruby Flow","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Ruby Flow","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/a21aaa8bcbbf448193a016895c90a0e1","url":"https://daily.dev/sources/rubyflow"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/rails-world-26-herb-and-reactionview-4b5maaerf","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"rails,hotwire","timeRequired":"PT8M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Ruby Flow","item":"https://daily.dev/sources/rubyflow"},{"@type":"ListItem","position":3,"name":"Rails World '26: Herb and ReActionView"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/rails-world-26-herb-and-reactionview-4b5maaerf#faq","mainEntity":[{"@type":"Question","name":"What is Herb and when was it merged into Rails core?","acceptedAnswer":{"@type":"Answer","text":"Herb is an HTML-aware ERB parser that understands HTML and embedded Ruby as a single tree, built by Marco Roth. It was merged into Rails core on August 25, 2026, and is on track to become Rails 8.2's opt-in view engine, meaning apps running Rails 8.2 defaults compile .html.erb templates through Herb without installing anything extra. Rails developers tracking framework internals like this follow release breakdowns on daily.dev."}},{"@type":"Question","name":"How does ReActionView add reactivity to Rails ERB templates without Stimulus or JavaScript?","acceptedAnswer":{"@type":"Answer","text":"ReActionView lets a template declare state directly, such as herb:state (order: \"oldest\"), and read it back in the controller via herb_state. When a value changes, the client sends a request like GET /messages?format=slots with a Herb-State header, the same controller action runs as normal, and ReActionView renders the same template in a JSON slots format so only the changed parts of the page update, with no separate endpoint or duplicated logic. Teams deciding between Hotwire, LiveView-style approaches, and lighter reactivity patterns compare options on daily.dev."}},{"@type":"Question","name":"What new features shipped in ReActionView v0.6.0?","acceptedAnswer":{"@type":"Answer","text":"ReActionView v0.6.0, released alongside Herb v0.11, added the Herb-State header and slots response format, a dependency map of what each piece of page state affects, slot-aware hot reload through the Herb dev server, built-in render instrumentation, a dedicated compile-error page, and a client runtime distributed as the reactionview npm package. Reactive templates remain experimental and subject to breaking changes. Developers upgrading Rails view-layer tooling keep tabs on releases like this via daily.dev."}}]}
```

