Pengantar
nuforge adalah runtime reaktif yang cepat, aman, dan fine-grained untuk membangun page builder visual no-code dan low-code. Anda mendeskripsikan sebuah halaman dalam DSL kecil; nuforge mem-parsing-nya menjadi AST reaktif yang bertipe, mengevaluasinya menjadi pohon View netral, dan me-render-nya dengan React — serta dapat mengekspor halaman yang sama itu menjadi komponen React yang bersih dan mandiri.
Seluruh pustaka ini dibangun di sekitar satu gagasan: sebuah suntingan seharusnya hanya menghitung ulang apa yang benar-benar bergantung padanya. Hal itu menjadikannya fondasi yang baik untuk editor di mana pengguna menyeret, mengetik, dan menyesuaikan ratusan kali per detik.
Alur pipeline
Sebuah halaman mengalir melalui nuforge dalam satu arah yang dapat diprediksi:
DSL → @nuforge/parser → reactive AST → Frame (@nuforge/core) → View tree → @nuforge/react
DSL di-parsing menjadi AST reaktif, sebuah Frame dari @nuforge/core mengevaluasi AST tersebut menjadi pohon View netral, dan @nuforge/react me-render pohon View itu ke DOM.
Paket
| Paket | Deskripsi |
|---|---|
@nuforge/types | sistem tipe AST + builder (t.*) |
@nuforge/reactivity | fasad signals di atas @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) → TSX bersih |
@nuforge/editor | SDK page-builder: createEditor(nu) |
@nuforge/collaboration | sinkronisasi real-time via Loro CRDT |
@nuforge/react-code-editor | editor DSL CodeMirror |
@nuforge/codemirror | grammar Lezer / dukungan bahasa |
@nuforge/mcp | server Model Context Protocol untuk asisten AI |
Apa yang bisa Anda bangun
nuforge dirancang untuk perkakas di mana sebuah halaman adalah data yang disunting pengguna Anda, bukan kode yang Anda kirim secara manual:
- Page builder visual
- Editor blok CMS
- Editor email dan template
- Dashboard low-code
- Perkakas desain dalam aplikasi
Mengapa nuforge
- Reaktivitas fine-grained — sebuah suntingan hanya menghitung ulang apa yang bergantung padanya, dengan mutasi O(1).
- Undo/redo granular — history merekam tulisan yang dilakukan oleh sebuah perubahan, bukan snapshot penuh.
- Ekspor ke React asli — menghasilkan komponen React yang bersih, sehingga tidak ada lock-in.
- Aman secara konstruksi — allow-list AST plus property guard menjaga halaman yang dievaluasi tetap aman.
- Sebuah SDK editor —
createEditor(nu)memberi Anda primitif untuk membangun page builder visual Anda sendiri. - Siap untuk AI — server MCP memungkinkan asisten AI membaca dan menyunting halaman.
- Kolaborasi real-time opsional — sinkronkan suntingan antar pengguna via Loro CRDT.
Langkah berikutnya
- Memulai — pasang nuforge dan render halaman pertama Anda.
- Bahasa DSL — pelajari sintaks yang Anda gunakan untuk mendeskripsikan halaman.