DSL deklaratif dwibahasa.

Tulis seperti prompt — hasilkan vanilla JavaScript production-ready.

Coding ⊷ Vibe Coding ⊷ Prompting. PromptJS adalah jembatannya.

PromptJS adalah compiler — bukan framework. Ia menerjemahkan kode yang kamu tulis layaknya prompt menjadi vanilla JavaScript tanpa runtime dependency, tanpa virtual DOM, tanpa overhead.

0 Runtime Deps
3.5 KB Counter App
880 Tests Passing
ID+EN Bilingual
9.8ms Compile
84.8% Coverage

Showcase

Counter Interaktif

3.9 KB JS

Counter sederhana dengan reaktivitas Proxy-based. Klik tombol untuk menambah, reset untuk kembali ke nol.

reaktivitas data on_klik
---
judul: "Counter Interaktif"
---

Gaya:
    body
        font-family: 'Inter', system-ui, -apple-system, sans-serif
        margin: 0
…
Lihat live

Galeri Foto

4.6 KB JS

Galeri kartu foto dari front-matter data binding. Demonstrasi `$external` reference dan nested `Buat`.

front-matter data binding nested
---
judul: "Galeri Foto"
foto: [{judul: "Senja di Pantai", url: "https://picsum.photos/seed/senja/400/300", deskripsi: "Pemandangan matahari terbenam"}, {judul: "Gunung Berkabut", url: "https://picsum.photos/seed/gunung/400/300", deskripsi: "Kabut pagi di pegunungan"}, {judul: "Kota Malam", url: "https://picsum.photos/seed/kota/400/300", deskripsi: "Skyline kota di malam hari"}, {judul: "Hutan Tropis", url: "https://picsum.photos/seed/hutan/400/300", deskripsi: "Kehijauan hutan hujan"}]
---

Gaya:
    body
        font-family: 'Inter', system-ui, -apple-system, sans-serif
…
Lihat live

Todo List

4.9 KB JS

Daftar tugas dengan input, tombol tambah, dan render list via `Ulangi untuk`. Menunjukkan pattern CRUD minimal.

loop array masukan
---
judul: "Todo List"
---

Gaya:
    body
        font-family: 'Inter', system-ui, -apple-system, sans-serif
        margin: 0
…
Lihat live

Todo App LengkapApp

0.0 KB JS

Aplikasi todo list production-ready dengan reaktivitas, localStorage persistence, dan input handling.

app localStorage reactive
---
judul: "Todo App Pro"
todos: ["Belajar PromptJS","Buat aplikasi pertama","Deploy ke production"]
---

Gaya:
    body
        font-family: 'Inter', system-ui, -apple-system, sans-serif
…
Buka Aplikasi

Dashboard SPAApp

0.0 KB JS

Full SPA dashboard dengan autentikasi, role-based access, client-side routing, dan 5 halaman.

spa auth routing
---
judul: "PromptJS Dashboard"
butuhAuth: benar
redirect: /login
token: localStorage
tokenKey: auth_token
---

…
Buka Aplikasi

Multi-Page SiteApp

0.0 KB JS

Website multi-halaman dengan routing dan shared layout — blog, tentang, beranda.

multi-page routing layout
---
judul: "PromptJS Showcase"
---

Gaya:
    body
        font-family: 'Inter', system-ui, sans-serif
        margin: 0
…
Buka Aplikasi

Kenapa PromptJS?

Bilingual

Keyword dwibahasa Indonesia & English — Buat/Create, Jika/If, Ulangi/Loop. Semua error message juga bilingual.

Zero Runtime Deps

Output JS vanilla murni. Tidak ada framework, tidak ada virtual DOM. Node.js cuma dibutuhkan untuk kompilasi — output bisa jalan di browser apa aja.

Reaktivitas

Proxy-based reactivity dengan data, computed turunan, dan Saat watcher. Serasa useState + useEffect — tanpa React.

Pipeline 5 Tahap

Lexer → Parser → Resolver → Analyzer → Compiler. Setiap tahap punya error reporting berkode (70+ kode) dengan saran bilingual.

AST-Based

Full Abstract Syntax Tree dengan recursive-descent parser. Bukan string replacement — kompilasi sungguhan dengan semantic analysis.

CSP Ready

Zero eval(), zero new Function(), semua event pakai addEventListener. Flag --csp untuk nonce injection.

Komponen

Komponen Nama(props): — composeable component system dengan props, children, dan lifecycle.

SPA + Auth

Client-side routing (router: benar), dynamic segments, auth guard (butuhAuth), role-based access.

Pipeline Kompilasi

LexerTokenisasi bilingual ParserRecursive-descent AST ResolverScope resolution AnalyzerSemantic analysis CompilerVanilla JS output .pjs source .js + .css

Perbandingan

Counter app sederhana yang sama. Lihat benchmark lengkap →

PromptJS 3.5 KB
Svelte 5 ~5 KB
SolidJS 22 KB
Alpine.js 45 KB
Vue 3 46 KB

Ukuran runtime production (gzip) — PromptJS & Svelte: output compiled app.

Quality Assurance

880 Tests
0 ESLint Warnings
0 Type Errors
100% Prettier