Build server-rendered web apps with HTML. No JavaScript frameworks, no build steps, no boilerplate.
wwwhat is a Rust-powered web framework where you write HTML pages instead of backend code. Variables use #hash# syntax, components are plain HTML files, and interactivity works through declarative attributes.
<h1>Hello, #user.name#!</h1>
<p>You have #session.notifications# new notifications.</p>
<button w-set="session.notifications = 0">Mark all read</button>
That's a complete interactive page. The session variable updates on click, and every element showing #session.notifications# updates automatically.
wwwhat follows a simple model:
site/ directory. File paths become routes.#name# syntax. Session, user, environment, and fetched data are all available.components/. The file card.html becomes <what-card>.w-* attributes: w-get, w-set, w-modal-trigger, etc.w-action="create" and server-side validation.A todo app in one file:
<what>
auth: user
fetch.todos = "local:todos"
</what>
<h1>My Todos</h1>
<form w-action="create" w-store="todos" w-validate>
<input name="title" w-required placeholder="What needs doing?">
<button type="submit">Add</button>
</form>
<loop data="#todos#" as="todo">
<div class="flex items-center gap-3">
<span>#todo.title#</span>
<form w-action="delete" w-store="todos" w-id="#todo.id#">
<button type="submit" w-confirm="Delete this todo?">Delete</button>
</form>
</div>
</loop>
This gives you: authentication, form validation, CRUD operations, data fetching, and confirmation dialogs — all from HTML.
Start with Getting Started to install wwwhat and create your first project, or jump to any topic in the sidebar.