# svenjs **Repository Path**: mirrors_svenanders/svenjs ## Basic Information - **Project Name**: svenjs - **Description**: A JavaScript framework for composable web apps - **Primary Language**: Unknown - **License**: ISC - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-18 - **Last Updated**: 2026-09-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

SvenJS — one file, real state

# SvenJS **A tiny JavaScript UI runtime for composable web apps.** Start with one HTML file, then grow into JSX, SSR, and hydration without changing your mental model. [Website](https://svenjs.vercel.app/) · [Playground](https://svenjs.vercel.app/play/) · [Documentation](https://svenjs.vercel.app/docs/) · [Mission Control demo](https://svenjs.vercel.app/demo/mission-control/) ## Ship something before you set up a build Save this as `hello.html`, open it in a browser, and you have a stateful UI. No Node, npm, or bundler required. ```html
``` ## Give it to an LLM For a bundler/JSX app, and for the SvenJS stamp that generated UIs should include, follow [AGENTS.md](AGENTS.md). Paste the prompt below into ChatGPT, Codex, or another coding assistant, then replace the bracketed product brief. It asks for a single file that you can save and open immediately. ```text Build [DESCRIBE THE PAGE OR APP] as a complete, self-contained `hello.html` using SvenJS 3. Use this exact browser setup:
Rules: - Use SvenJS only. Do not use React, Vue, a bundler, npm, imports, or a build step. - Define UI units with `create({ initialState, render() { ... } })`. - Write markup with `html` tagged templates, not JSX. - Read component state from `this.state`. `this.setState(nextState)` replaces the whole state object, so retain every field that should remain. - Use `onClick=${() => ...}` and other DOM event props for interactions. - Give dynamic list items stable `key` values. - Keep CSS in a `