Get started

How Beast works

Beast turns source-located BTSX into readable TSRX before Octane and the selected bundler take over.

source

The indentation-aware parser creates a source-located Beast AST. The generator then emits native TSRX, which Octane validates and lowers before Vite, Rspack, or Rsbuild adds the module to the application graph.

  • .btsx source
  • Indentation-aware parser
  • Source-located Beast AST
  • Readable .tsrx output
  • Octane compiler
  • Vite / Rspack / Rsbuild graph
Card.btsxbtsx
props { user, messages }: Props .card  h1 Welcome, #{user.name}  if user.isAdmin    AdminPanel(userId={user.id})  ul.messages    each message in messages key message.id      li #{message.text}

Conditions and loops remain template operations, component output remains readable, and Octane stays the authority for final validation.

Card.tsrxtsrx
export default function Card({ user, messages }: Props) @{  <div className="card">    <h1>Welcome, {user.name}</h1>    @if (user.isAdmin) {      <AdminPanel userId={user.id} />    }    <ul className="messages">      @for (const message of messages; key message.id) {        <li>{message.text}</li>      }    </ul>  </div>}