{"id":49041993,"url":"https://github.com/whisqjs/whisq","last_synced_at":"2026-04-24T23:04:19.044Z","repository":{"id":352117885,"uuid":"1213428901","full_name":"whisqjs/whisq","owner":"whisqjs","description":"The AI-native JavaScript framework — signals for state, functions for UI, under 5 KB","archived":false,"fork":false,"pushed_at":"2026-04-19T13:53:40.000Z","size":1570,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"develop","last_synced_at":"2026-04-19T15:38:17.999Z","etag":null,"topics":["5kb","ai-native","framework","frontend","javascript","mcp","reactive","signals","ssr","typescript","ui","vite-plugin"],"latest_commit_sha":null,"homepage":"https://whisq.dev","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/whisqjs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-17T11:20:34.000Z","updated_at":"2026-04-19T13:46:55.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/whisqjs/whisq","commit_stats":null,"previous_names":["whisqjs/whisq"],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/whisqjs/whisq","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whisqjs%2Fwhisq","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whisqjs%2Fwhisq/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whisqjs%2Fwhisq/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whisqjs%2Fwhisq/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/whisqjs","download_url":"https://codeload.github.com/whisqjs/whisq/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whisqjs%2Fwhisq/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32128704,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-22T08:34:57.708Z","status":"ssl_error","status_checked_at":"2026-04-22T08:34:55.583Z","response_time":58,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["5kb","ai-native","framework","frontend","javascript","mcp","reactive","signals","ssr","typescript","ui","vite-plugin"],"created_at":"2026-04-19T15:08:08.310Z","updated_at":"2026-04-22T09:00:58.785Z","avatar_url":"https://github.com/whisqjs.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/brand/mascot.png\" alt=\"Whisq mascot\" width=\"160\" /\u003e\n  \u003cbr /\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"docs/brand/wordmark-dark-bg.svg\" /\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"docs/brand/wordmark-light-bg.svg\" /\u003e\n    \u003cimg src=\"docs/brand/wordmark-dark-bg.svg\" alt=\"whisq\" height=\"40\" /\u003e\n  \u003c/picture\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eThe AI-native JavaScript framework.\u003c/strong\u003e Signals for state. Functions for UI. That's it.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/whisqjs/whisq/actions\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/whisqjs/whisq/ci.yml?branch=develop\u0026label=CI\" alt=\"CI\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@whisq/core\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@whisq/core?color=4F46E5\" alt=\"npm\"\u003e\u003c/a\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-MIT-5CE0F2\" alt=\"License\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nWhisq 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.\n\n```ts\nimport { signal, component, div, button, span, mount } from \"@whisq/core\";\n\nconst App = component(() =\u003e {\n  const count = signal(0);\n  return div(\n    button(\n      { onclick: () =\u003e count.value++ },\n      span(() =\u003e `Clicked ${count.value} times`),\n    ),\n  );\n});\n\nmount(App({}), document.getElementById(\"app\")!);\n```\n\n## For AI assistants\n\nPoint Claude, Cursor, Copilot, or any coding assistant at one of these before it writes Whisq:\n\n- **[`whisq.dev/llms.txt`](https://whisq.dev/llms.txt)** — structured site index per the [llmstxt.org](https://llmstxt.org) convention.\n- **[`whisq.dev/llms-full.txt`](https://whisq.dev/llms-full.txt)** — every docs page concatenated into one plain-text fetch (~165 KB, 66 pages).\n- **[`whisq.dev/ai/llm-reference`](https://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).\n- **[`unpkg.com/@whisq/core@latest/dist/public-api.json`](https://unpkg.com/@whisq/core@latest/dist/public-api.json)** — machine-readable manifest of every named export, pinned per release.\n\nNeed deeper tooling? [`@whisq/mcp-server`](packages/mcp-server) exposes scaffold, validate, query-API, and analyze tools via the Model Context Protocol.\n\nEight 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`](./docs/AI_TEST_PROMPTS.md).\n\n## For humans\n\n- **~5 KB gzipped** — complete framework (core: 5.08 KB).\n- **Zero build step** — runs as plain JavaScript, works with any bundler.\n- **100% TypeScript** — every element function fully typed, inferred through components.\n- **One reactive wrapper** — every reactive position accepts `() =\u003e …`. No hooks rules, no dependency arrays, no stale-closure tax. ([Three read shapes inside the wrapper](packages/core/docs/access-shapes.md) — signal / keyed-each accessor / resource field.)\n\n## Get started\n\n```bash\nnpm create whisq@latest my-app\ncd my-app\nnpm install\nnpm run dev\n```\n\nFour templates: `minimal`, `full-app` (router + pages + store), `ssr`, `vite-plugin` (file-based routing).\n\n## Packages\n\n| Package                                      | Description                                  | Size    |\n| -------------------------------------------- | -------------------------------------------- | ------- |\n| [`@whisq/core`](packages/core)               | Signals, elements, components, styling       | 5.08 KB |\n| [`@whisq/router`](packages/router)           | Signal-based client-side routing             | 2.85 KB |\n| [`@whisq/ssr`](packages/ssr)                 | Server-side rendering + streaming            | 982 B   |\n| [`@whisq/testing`](packages/testing)         | Render, query, fireEvent, userEvent, waitFor | —       |\n| [`@whisq/vite-plugin`](packages/vite-plugin) | File-based routing, HMR, code splitting      | —       |\n| [`@whisq/mcp-server`](packages/mcp-server)   | AI tool integration (MCP protocol)           | —       |\n| [`@whisq/devtools`](packages/devtools)       | Signal inspection and component viewer       | —       |\n| [`@whisq/sandbox`](packages/sandbox)         | Isolated code execution                      | —       |\n| [`create-whisq`](packages/create-whisq)      | Project scaffolding CLI                      | —       |\n\n## Documentation\n\n- **[whisq.dev](https://whisq.dev)** — full documentation site\n- [Getting Started](https://whisq.dev/getting-started/introduction/) — installation, quick start, first component\n- [Core Concepts](https://whisq.dev/core-concepts/signals/) — signals, elements, components, styling\n- [API Reference](https://whisq.dev/api/signal/) — every named export\n- [Guides](https://whisq.dev/guides/routing/) — routing, SSR, forms, data fetching, testing\n- [Examples](https://whisq.dev/examples/counter/) — counter, todo, dashboard, forms\n- [Playground](https://whisq.dev/playground/) — try Whisq in the browser\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines. Bug reports and docs fixes are welcome. Code PRs by invitation during alpha.\n\n## License\n\n[MIT](LICENSE) — Markot s.r.o.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwhisqjs%2Fwhisq","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwhisqjs%2Fwhisq","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwhisqjs%2Fwhisq/lists"}