A Rust-powered web framework
Server-rendered web apps with HTML attributes.
No JavaScript. No backend code. Just ship.
File-based routing · Template variables · Components · SQLite + D1 · JWT auth · Forms · Uploads · Email · Deploy
The installable demo focuses on the progressive component demos. Full docs live at getwhatnow.com/docs.
A counter that persists server-side. Compare the approaches.
Traditional Stack
// api/counter.ts
import { db } from '../lib/db'
export async function POST(req) {
const session = await getSession(req)
await db.counter.increment(session.id)
const count = await db.counter.get(session.id)
return Response.json({ count })
}
// components/Counter.tsx
'use client'
import { useState } from 'react'
export function Counter() {
const [count, setCount] = useState(0)
const increment = async () => {
const res = await fetch('/api/counter',
{ method: 'POST' })
const { count } = await res.json()
setCount(count)
}
return <button onClick={increment}>
+1 ({count})
</button>
}
wwwhat
<!-- site/counter.html -->
<p>Count: #session.counter|default:"0"#</p>
<button w-set="session.counter += 1">
+1
</button>
That's the whole file.
No API. No state library.
No build step.
Fetches a dog photo, increments your session counter, and updates a wired counter that pushes to every connected browser.
Open in another browser -- your count resets, the wired count stays in sync.
What you'd normally install, configure, and debug separately -- all built in.
site/post/[id].html becomes /post/123
#variable# syntax for data binding, filters, and defaults
Login, logout, role-based access from templates
Auto-migration, CRUD, queries -- local SQLite or Cloudflare D1
HTML files become custom elements with props and slots
Declarative rules, client + server enforcement
Local storage or Cloudflare R2 with collection-based routing
SMTP + Resend API with HTML templates
Cloudflare Turnstile integration for forms and actions
Utility-first styles included, dark mode, zero config
w-get, w-post, w-set -- interactivity without writing JavaScript
Pre-render to static HTML, deploy via Docker, SSH, or CDN
Every feature is interactive. Click through to see it work.