RouterPRISM routing
PRISM routing

This tutorial uses PRISM file-based routing: every folder under src/app/ becomes a URL, with nested layouts and server-side loaders.

Read the routing docs →
UIbext/ui
bext/ui

Components come from bext/ui — a faithful shadcn/ui port for bext and PRISM, styled through route_css tokens.

Explore bext/ui →
FREN
Step 2 of 11 · Get started

Set up the project

A PRISM app is a folder with a bext.config.toml and a src/app/ directory. That's the whole setup.

A PRISM app is just a directory with a bext.config.toml and a src/app/. No bundler to configure, no dev server to babysit — point bext at the folder and it serves it.

bext.config.toml
[framework]
type = "prism"

[build]
live_reload = true   # hot-reload on every file change

With live_reload = true, bext recompiles and reloads the page whenever a file changes — exactly what powers the live preview on the right.

Your first page

Create src/app/page.tsx with a default-exported component. The @jsxImportSource comment on the first line tells bext to use the PRISM JSX runtime.

src/app/page.tsx
/** @jsxImportSource @bext-stack/framework */
export default function Dashboard() {
  return <h1>Dashboard</h1>;
}
NOTE
That's a complete, running page. Everything after this is adding structure and data around it — the file you just wrote is the seed of the app in the preview.
Files
src
app
bext.config.tomlread-only
localhost:3000