Introduction
nuforge is a fast, secure, fine-grained reactive runtime for building no-code and low-code visual page builders. You describe a page in a small DSL; nuforge parses it into a typed, reactive AST, evaluates it into a neutral View tree, and renders it with React — and it can export that same page to a clean, standalone React component.
The whole library is built around one idea: an edit should recompute only what actually depends on it. That makes it a good foundation for editors where users drag, type, and tweak hundreds of times a second.
The pipeline
A page flows through nuforge in a single, predictable direction:
DSL → @nuforge/parser → reactive AST → Frame (@nuforge/core) → View tree → @nuforge/react
The DSL is parsed into a reactive AST, a Frame from @nuforge/core evaluates that AST into a neutral View tree, and @nuforge/react renders the View tree to the DOM.
Packages
| Package | Description |
|---|---|
@nuforge/types | AST type system + builders (t.*) |
@nuforge/reactivity | signals facade over @vue/reactivity |
@nuforge/parser | DSL ↔ AST (Parser.parseProgram / parseExpression / stringify) |
@nuforge/core | runtime: Nu, change(), Frame, history, externals, extensions |
@nuforge/react | NuProvider, useNu, observer, NuFrame; /server NuStatic |
@nuforge/codegen | toReact(program) → clean TSX |
@nuforge/editor | page-builder SDK: createEditor(nu) |
@nuforge/collaboration | real-time sync via the Loro CRDT |
@nuforge/react-code-editor | CodeMirror DSL editor |
@nuforge/codemirror | Lezer grammar / language support |
@nuforge/mcp | Model Context Protocol server for AI assistants |
What you can build
nuforge is designed for tools where a page is data your users edit, not code you ship by hand:
- Visual page builders
- CMS block editors
- Email and template editors
- Low-code dashboards
- In-app design tools
Why nuforge
- Fine-grained reactivity — an edit recomputes only what depends on it, with O(1) mutations.
- Granular undo/redo — history records the writes a change made, not full snapshots.
- Export to real React — generate a clean React component, so there is no lock-in.
- Secure by construction — an AST allow-list plus property guards keep evaluated pages safe.
- An editor SDK —
createEditor(nu)gives you the primitives to build your own visual builder. - AI-ready — an MCP server lets AI assistants read and edit pages.
- Optional real-time collaboration — sync edits between users via the Loro CRDT.
Next steps
- Getting started — install nuforge and render your first page.
- The DSL Language — learn the syntax you use to describe pages.