Launch Week #12 — TS SpecKickoff Mon, Jun 15

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.

1import { app, page, query, route } from "@wasp.sh/spec";
2import { MainPage } from "./src/MainPage" with { type: "ref" };
3import { getTasks } from "./src/tasks" with { type: "ref" };
4
5export default app({
6 wasp: { version: "^0.24.0" },
7 title: "ToDo App",
8 auth: { // Full-stack auth out-of-the-box.
9 userEntity: "User",
10 methods: { google: {}, gitHub: {}, email: {} },
11 onAuthFailedRedirectTo: "/login"
12 },
13 spec: [
14 route("RootRoute", "/", page(MainPage, {
15 authRequired: true
16 })),
17 query(getTasks, {
18 entities: ["Task"] // Automatic cache invalidation.
19 })
20 ]
21});
// 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 logic layer in TypeScript, using high-level terms like app, route, page, ... . Think framework config, but taken to a whole new level.

main.wasp.ts
1import { app, job, page, query, route } from "@wasp.sh/spec";
2
3import { AdminDashboard } from "./src/admin/Dashboard" with { type: "ref" };
4import { dailyDigest, getMetrics } from "./src/admin/ops" with { type: "ref" };
5import { HomePage } from "./src/pages/Home" with { type: "ref" };
6
7export default app({
8 name: "todoApp",
9 title: "ToDo App",
10 wasp: { version: "^0.24.0" },
11 head: ["<link rel='icon' href='/favicon.ico' />"],
12 auth: {
13 userEntity: "User",
14 methods: { email: {}, google: {} },
15 onAuthFailedRedirectTo: "/login"
16 },
17 spec: [
18 route("HomeRoute", "/", page(HomePage)),
19 route(
20 "AdminRoute",
21 "/admin",
22 page(AdminDashboard, { authRequired: true })
23 ),
24 query(getMetrics, { entities: ["Task", "User"] }),
25 job(dailyDigest, {
26 executor: "PgBoss",
27 schedule: { cron: "0 7 * * *" }
28 })
29 ]
30});
// ai

Perfect for AI, by design

By making Wasp as easy as possible for humans (opinionated, high-level, batteries-included) we made it the ideal framework for AI too.

$ ask "why AI loves Wasp"

  • Clear best practices and structure keep AI's focus on what is important.
  • Less boilerplate, less code, less space for bugs and security issues.
  • No "connection" points where things break - Wasp glues everything together.
  • Less code = smaller context, saving tokens and keeping your AI smart.
  • Batteries included means bigger building blocks, keeping AI on point, codebase tidy, and reducing chance of mistakes.

$ ask "how does Wasp keep me in control"

  • Wasp's spec files give you a unique high-level overview of your app.
  • High-level code keeps you in the loop even when AI does the heavy lifting.

$ ask "first-party AI tooling?"

  • Rule files, skills, and plugins crafted by the Wasp team and shaped by community experience, so you get the most out of your AI.
  • llms.txt built directly from the docs and always up to date.
// how it works

You write your app as high-level config in *.wasp.ts files, alongside the usual React, Node, and Prisma code. Wasp compiles it into a full-stack app, ready to deploy anywhere.

YOUR CODE*.wasp.ts*.tsx*.tsschema.prismaDockerfile...WASP CLICOMPILEIRintermediaterepresentationGENERATEGENERATED CODEfrontendReactbackendNodedatabasePrismaDEPLOYFly · Railway · your VPS

* Treat the generated code like any compiler output. You can look at it, but there is no need to.

// example apps

Reference implementations to learn from, fork, or deploy. Each one shows a complete Wasp app. Read the code, run it locally, ship it your way.

// join the community

Real builders, real apps, real conversations. Drop into Discord to ask questions, share what you're working on, or just hang out.

// our philosophy

The Way of the Wasp

"Onion" architecture

We aim to make every surface of Wasp a layer of APIs: highest level covers 80% of the use cases, and then you can peel layer after layer as you need more, trading simplicity for flexibility.

Rely on curated best practice solutions by default, assume more control where/when you need it.

Truly full-stack

In Wasp, full-stack is not an after-thought, it is the initial and central point of our design since inception of Wasp as an idea.

The very way Wasp is designed, with unique specification layer to capture the full-stack logic, and with code generation focused approach in the background, is to allow us to capture all of what a web app is into one solution, to take the definition of "full-stack" as far as it goes.

A powerful, unique full-stack specification layer

Wasp stands for Web App SPecification: you describe the full-stack behaviour (specification) of your app in *.wasp.ts files, at the level of your thoughts (route, auth, job, ...), then implement the details in the underlying stack (React, Node, Prisma, ...).

Every full-stack framework has a way to be configured, but it is usually a mix of file conventions, naming rules, mini-DSLs, and JSON files. Wasp pulls all of that into a single cohesive SDK with the full power of TypeScript, making the specification a first-class citizen, and giving Wasp its superpowers.

Greatest > latest

We are not chasing the bleeding edge. We critically track and curate the latest web dev trends to provide you with a deeply integrated and cohesive experience that we stand behind.

Managed experience over DIY

With Wasp, you don't build your framework up, you build it down: you start with everything working out of the box, then take more control where you need it. You start with big building blocks, then replace them with smaller ones and your own logic as needed.

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!