The HTML-First Reactive Framework
Build dynamic, reactive web applications using nothing but HTML attributes.
No build step. No virtual DOM. No transpiler. No JSX. Just HTML.
<script src="https://cdn.no-js.dev/"></script>
<div state="{ user: 'World' }">
<input model="user" placeholder="Enter name..." />
<h1 bind="'Hello, ' + user"></h1>
</div>Zero JavaScript written. Fully reactive. Two-way bound.
| Project | Description |
|---|---|
| nojs | The core framework — directives, reactivity, routing, HTTP, SSE, i18n, filters |
| nojs-elements | Declarative UI plugins — modals, tooltips, tabs, toasts, trees, drag & drop, forms |
| nojs-lsp | VS Code extension — completions, hover docs, diagnostics, go-to-definition |
| nojs-skill | Agent skill giving AI coding assistants deep No.JS knowledge |
- Declarative HTTP —
get,post,put,patch,delete,queryas HTML attributes - Reactive Binding —
bind,bind-*,modelfor one-way and two-way data flow - Conditionals & Loops —
if,else-if,show,hide,each,foreach,switch - State Management —
state,store,computed,watch - SPA Routing —
route,route-view, guards, params, nested and wildcard routes - Server-Sent Events —
ssewith connection state and auto-reconnection - Forms & Validation — built-in and custom validators, per-rule errors, async support
- Filters — 32 built-in pipes:
uppercase,currency,date,truncate, and more - i18n —
tdirective with pluralization, namespaces, browser detection - Security — CSP-safe (no
eval, noFunction), DOMParser sanitization, header redaction - DevTools — built-in inspector for context, stores, and element highlighting
<!DOCTYPE html>
<html>
<head>
<script src="https://cdn.no-js.dev/"></script>
</head>
<body>
<div get="/users/1" as="user">
<h1 bind="user.name">Loading...</h1>
<p bind="user.email"></p>
</div>
</body>
</html>That's the whole app. Read the docs for the rest.
Issues and pull requests are welcome on every repo. Each project ships its own
CONTRIBUTING.md with setup, testing, and branching conventions.
MIT
