Full-Stack Framework for the AI Era

A truly full-stack TypeScript framework that just works.

React, Node.js, and Prisma — wired together with auth, jobs, and deployment built in. Ship in a day and own every line.Designed for humans, works beautifully with AI.

1app todoApp {
2 wasp: { version: "^0.23.0" },
3 title: "ToDo App",
4 auth: {
5 userEntity: User,
6 methods: { google: {}, gitHub: {}, email: {} },
7 onAuthFailedRedirectTo: "/login"
8 }
9}
10
11route RootRoute { path: "/", to: MainPage }
12page MainPage {
13 authRequired: true,
14 component: import { MainPage } from "@src/MainPage" // <-- React
15}
16
17query getTasks {
18 fn: import { getTasks } from "@src/tasks", // <-- Node.js
19 entities: [Task] // <-- Automatic cache invalidation.
20}
// properties

01High Level

A uniquely powerful config layer serves as a backbone that connects all parts of the stack - frontend, backend, database, and deployment.

02Batteries: Included

Like Rails and Laravel, focus on your app, not your framework. Auth, jobs, email, deploy and much more built in.

03Fully Yours

Open source, no lock-in. No third-party provider or cloud platform dependency. Host anywhere.

// features

Instead of wiring everything yourself, Wasp gives you a cohesive set of full-stack features so you can focus on what makes your app unique.

... see all in the docs

Define your app via a specialized full-stack aware logic layer, using high-level terms like app, route, page, ... . Think framework config, but taken to a whole new level.

main.wasp
1app TodoApp {
2 title: "TodoApp",
3 wasp: { version: "^0.23.0" },
4 auth: {
5 userEntity: User,
6 methods: { email: {}, google: {} },
7 onAuthFailedRedirectTo: "/login"
8 }
9}
10
11route HomeRoute { path: "/", to: HomePage }
12page HomePage {
13 component: import Home from "@src/pages/Home"
14}
15
16route AdminRoute { path: "/admin", to: AdminDashboard }
17page AdminDashboard {
18 component: import Dashboard from "@src/admin/Dashboard",
19 authRequired: true
20}
21
22query getMetrics {
23 fn: import { getMetrics } from "@src/admin/ops",
24 entities: [Task, User]
25}
26
27job dailyDigest {
28 executor: PgBoss,
29 perform: { fn: import { dailyDigest } from "@src/admin/digest" },
30 schedule: { cron: "0 7 * * *" }
31}

How does it work? 🧐

Given a simple .wasp configuration file that describes the high-level details of your web app, and .js(x)/.css/..., source files with your unique logic, Wasp compiler generates the full source of your web app in the target stack: front-end, back-end and deployment.

This unique approach is what makes Wasp "smart" and gives it its super powers!

Simple config language

Declaratively describe high-level details of your app.

Learn more

Wasp CLI

All the handy commands at your fingertips.

Learn more

React / Node.js / Prisma

You are still writing 90% of the code in your favorite technologies.

Goodbye boilerplate

Write only the code that matters, let Wasp handle the rest.

Learn more
React

Show, don't tell.

Take a look at examples - see how things work and get inspired for your next project.

Todo App (TypeScript) ✅

A famous To-Do list app, implemented in TypeScript.

wasp GitHub profile picturewasp

CoverLetterGPT 🤖

Generate cover letters based on your CV and the job description. Powered by ChatGPT.

vincanger GitHub profile picturevincanger

Realtime voting via WebSockets 🔌

A realtime, websockets-powered voting app built with Wasp and TypeScript.

wasp GitHub profile picturewasp

Stay up to date 📬

Be the first to know when we ship new features and updates!

🚧 Roadmap 🚧

Work on Wasp never stops: get a glimpse of what is coming next!

Roadmap

Frequently asked questions

For anything not covered here, join our Discord!