Skip to content

The modular backend you can copy and paste

Build modern web applications with the speed of using a library without sacrificing the control of rolling it yourself

Open Source. Type Safe. And Frontend Agnostic.

The missing link between data and server in the TS ecosystem

There are infinite ways to get your data in and out of database and nearly as many libraries to help you do so. But all that freedom comes with the costs of option paralysis, fragmentation, and churn.

Unlike a traditional library, wunshot only provides code patterns and conventions with some sensible defaults. There’s no api to learn, no magic abstractions, and minimal dependencies. That means you can cut through the noise, start building, and worry about the next rewrite from your yacht.

If you understand the diagram below, you already know most of what you need to start implementing wunshot. (And if you don’t, the guides are here to help!)

wunshot

your frontend framework

http req/res

migrations

database (Postgres)

schemas (Drizzle)

validations (Valibot)

queries

ops

router

view

Highlights

Single Source of truth

All the data you need transferred in a single database connection. Less time spent synchronizing across services. Faster page loads. Easily manageable PII.

Modular

Take as much or as little as you want from wunshot. Incorporate with your existing codebase or start a new project from scratch.

Copy-Pastable

Get immediate hands-on control. If you disagree with any of the patterns, you have the power to change them - no pull request required!

End-to-End Type Safety

Never wonder what data is available. Types flow from Drizzle and Valibot through your app logic and into your frontend.

No Frontend Lock-in

Build with your preferred framework. The wunshot modules return plain javascript objects in a standard format so you don’t need to worry about special adapters or compatibility.

Deploy Anywhere

Run wunshot on a server, a vps, or your favorite serverless platforms. Designed to be runtime and platform agnostic.

Best Practice Batteries Included

Keep your data secure, efficient, and auditable. Baked-in patterns for validation, prepared queries, cascade handling, error handling, and standardized responses.

Consistent Structure

Spend less time wondering how to organize and more time building. Clear predictable patterns ensure consistency across your codebase.

Read the Docs


View on Github