The framework for building real apps with AI

Whether you're a pro or a first-time builder, Wasp keeps your agents on track, handles complex features, and lowers token usage and cost.

% npm i -g @wasp.sh/wasp-cli
AuthDatabaseSaaS TemplateEmailCron JobsDeployFree & Open-source

The Framework for the Agentic Era

Works with Claude Code, Cursor, Codex, OpenCode, Gemini CLI, Copilot, etc.

terminal
$
main.wasp.ts
const app = new App()

Your AI has a plan

Wasp gives your agent a clear structure to follow: where code goes, how things connect, and what patterns to use. No guessing, no decision fatigue.

Learn more

It's got skills

Plugins and Agent Skills for your coding tool of choice turn your agent into a Wasp expert.

Learn more

Focus on the fun stuff

Login, database, email, background jobs, etc. Wasp handles it all so your agents can focus on your app's unique features.

Learn more

Save Tokens and Money

Wasp reduces the amount of code you and your agent need to read and write, so you spend less on LLM tokens.

Learn more

Deploy to any platform

Other frameworks tie you to their expensive platforms and pricing. Wasp lets you deploy anywhere easily.

Learn more

Everything. Integrated.

Wasp is truly full-stack, from front-end to database and deployments. No fumbling through multiple tools and services.

Learn more

Three easy steps.

1

Install Wasp

% npm i -g @wasp.sh/wasp-cli@latest

2

Add agent skills

% npx skills add wasp-lang/wasp-agent-plugins

3

Describe what you want

% Create a new Todo app with email login and a Postgres db

Get more done for less money.

Next.js vs. Wasp: same app, same prompt, same model. Big difference.

45%
lower cost
per feature
Wasp$2.87
Next.js$5.17
40%
fewer tokens
for AI to read & write
Wasp2.5M
Next.js4M
31%
fewer API calls
to build the same feature
Wasp66
Next.js96

Everything your app needs, built in

Full-stack Auth

Google, Slack, email login, etc. Just say which ones you want. Wasp sets it all up and even handles the UI for you.

Learn more
Automatic CRUD

Describe your data and Wasp creates all the basic create, read, update, delete operations automatically.

Learn more
Typesafe Operations

Your frontend and backend safely talk to each other automatically. No need to wire API endpoints and full-stack type safety by hand.

Learn more
TypeScript Config

Your app config is written in TypeScript, a safe choice your AI already speaks fluently.

Learn more
Background Jobs

Need something to run on a schedule? Just describe when and what. Wasp handles the rest without relying on expensive third-party services.

Learn more
LLM-friendly Docs

Wasp provides special documentation files optimized for AI, so your agent always has the best context.

Learn more
One-command Deploy

When you're ready to go live, one command gets your app deployed to your favorite platform. No DevOps degree needed.

Learn more
Human-reviewable Output

Because Wasp uses consistent patterns, the code your AI generates is easy to read and review (for humans and AI).

Learn more

The Wasp Difference

Without Wasp
auth.js
import passport from 'passport';
import { Strategy as GoogleStrategy } from 'passport-google-oauth20';
import session from 'express-session';
import RedisStore from 'connect-redis';
import csrf from 'csurf';
app.use(session({
store: new RedisStore({ client: redisClient }),
secret: process.env.SESSION_SECRET,
resave: false,
saveUninitialized: false,
cookie: { secure: true, httpOnly: true, maxAge: 86400000 },
}));
app.use(passport.initialize());
app.use(passport.session());
app.use(csrf());
passport.serializeUser((user, done) => done(null, user.id));
passport.deserializeUser(async (id, done) => {
const user = await prisma.user.findUnique({ where: { id } });
done(null, user);
});
passport.use(new GoogleStrategy({
clientID: process.env.GOOGLE_CLIENT_ID,
clientSecret: process.env.GOOGLE_CLIENT_SECRET,
callbackURL: '/auth/google/callback',
},
async (accessToken, refreshToken, profile, done) => {
let user = await prisma.user.upsert({
where: { email: profile.emails[0].value },
update: { name: profile.displayName },
create: {
email: profile.emails[0].value,
name: profile.displayName,
},
});
return done(null, user);
}
));
app.get('/auth/google',
passport.authenticate('google', {
scope: ['profile', 'email']
})
);
app.get('/auth/google/callback',
passport.authenticate('google', {
failureRedirect: '/login'
}),
(req, res) => res.redirect('/')
);
With Wasp
main.wasp.ts
app.auth({
userEntity: User,
methods: {
google: {},
},
onAuthFailedRedirectTo: '/login',
})

Straight talk

Ready to build something real?

Wasp is free, open-source, and takes 30 seconds to install. Your AI handles the code. Wasp handles the architecture. You focus on your idea.

% npm i -g @wasp.sh/wasp-cli@latest

Free and open-source. No account required. Works with React, Node.js, and Prisma.