The AI-native JavaScript framework. Signals for state. Functions for UI. That's it.
Whisq is designed so large language models produce working code on the first try. The complete framework is ~5 KB gzipped and the full API fits in a prompt. No hooks rules. No reactivity caveats. No compile-time magic — just signals for state, functions for UI.
import { signal, component, div, button, span, mount } from "@whisq/core";
const App = component(() => {
const count = signal(0);
return div(
button(
{ onclick: () => count.value++ },
span(() => `Clicked ${count.value} times`),
),
);
});
mount(App({}), document.getElementById("app")!);Point Claude, Cursor, Copilot, or any coding assistant at one of these before it writes Whisq:
whisq.dev/llms.txt— structured site index per the llmstxt.org convention.whisq.dev/llms-full.txt— every docs page concatenated into one plain-text fetch (~165 KB, 66 pages).whisq.dev/ai/llm-reference— compact reference card: the whole framework in one page, two copy-paste tiers (~600 tokens minimum, ~1.7 K complete).unpkg.com/@whisq/core@latest/dist/public-api.json— machine-readable manifest of every named export, pinned per release.
Need deeper tooling? @whisq/mcp-server exposes scaffold, validate, query-API, and analyze tools via the Model Context Protocol.
Eight copy-paste prompts that exercise different surfaces of the framework (todo, signup form, chat UI, markdown editor, live dashboard, router SPA, SSR blog, Snake) live in docs/AI_TEST_PROMPTS.md.
- ~5 KB gzipped — complete framework (core: 5.08 KB).
- Zero build step — runs as plain JavaScript, works with any bundler.
- 100% TypeScript — every element function fully typed, inferred through components.
- One reactive wrapper — every reactive position accepts
() => …. No hooks rules, no dependency arrays, no stale-closure tax. (Three read shapes inside the wrapper — signal / keyed-each accessor / resource field.)
npm create whisq@latest my-app
cd my-app
npm install
npm run devFour templates: minimal, full-app (router + pages + store), ssr, vite-plugin (file-based routing).
| Package | Description | Size |
|---|---|---|
@whisq/core |
Signals, elements, components, styling | 5.08 KB |
@whisq/router |
Signal-based client-side routing | 2.85 KB |
@whisq/ssr |
Server-side rendering + streaming | 982 B |
@whisq/testing |
Render, query, fireEvent, userEvent, waitFor | — |
@whisq/vite-plugin |
File-based routing, HMR, code splitting | — |
@whisq/mcp-server |
AI tool integration (MCP protocol) | — |
@whisq/devtools |
Signal inspection and component viewer | — |
@whisq/sandbox |
Isolated code execution | — |
create-whisq |
Project scaffolding CLI | — |
- whisq.dev — full documentation site
- Getting Started — installation, quick start, first component
- Core Concepts — signals, elements, components, styling
- API Reference — every named export
- Guides — routing, SSR, forms, data fetching, testing
- Examples — counter, todo, dashboard, forms
- Playground — try Whisq in the browser
See CONTRIBUTING.md for guidelines. Bug reports and docs fixes are welcome. Code PRs by invitation during alpha.
MIT — Markot s.r.o.
