Start with the page

Cow gives each page file a URL. You can read a form, query a database, and render the result in that same file. There’s no application router to wire up first.

Keep using JavaScript

Use imports, async functions, and packages from npm. Add TypeScript where you want it. Cow handles the page syntax and the server.

Skip the build step

Save the file and refresh the browser. Cow compiles a page when someone requests it, so there’s no bundler, no watcher, and no configuration file to write first.

Start every request fresh

Each request gets its own clean state. A variable that you set for one visitor never leaks into the next request. What you want to keep goes in a database, a file, or a session. PHP works the same way.

Find the everyday tools built in

Forms, file uploads, cookies, sessions, password hashing, SQLite, JSON, downloads, and streaming come with Cow. Choose your JavaScript runtime too: Cow runs on Node.js, Bun, Deno, or Nub.

When Cow is not the right fit

Cow is in early development, and Windows is the platform it is tested on. If your application depends on Express middleware, a platform’s deployment adapters, or a client-side framework’s build pipeline, keep the tools you have. Otherwise, start with a small project and check what’s supported.