// the find
wasp-lang/wasp
The batteries-included full-stack framework for the AI era. Develop JS/TS web apps (React, Node.js, and Prisma) using declarative code that abstracts away complex full-stack features like auth, background jobs, RPC, email sending, end-to-end type safety, single-command deployment, and more.
Wasp is a full-stack framework that lets you declare your app's structure (routes, auth, jobs, RPC) in a TypeScript spec file, then generates the React/Node.js/Prisma boilerplate from it. It's for developers who are tired of wiring up the same auth + API + cache-invalidation plumbing for every new project. Still in beta after several years.
The declarative spec approach genuinely reduces boilerplate — auth, background jobs, and type-safe RPC between client and server are all first-class, not afterthoughts. End-to-end type safety across the client/server boundary without manual schema syncing is the right call. The generated code is inspectable in `.wasp/` rather than hidden in a black box, which matters a lot when you need to debug something the framework doesn't anticipate. The Haskell compiler gives them real static analysis of the spec before codegen, not just string templates.
Still beta after years of development — the API surface has shifted enough that upgrade paths have historically been painful and the 'no lock-in' claim is somewhat aspirational when your whole app structure is expressed in a custom DSL. The Express.js backend is showing its age; there's no path to edge runtimes or serverless functions without a framework rewrite. The framework imposes a specific React Query + Express + Prisma stack with no meaningful flexibility — if you need a different ORM or want tRPC instead of their RPC layer, you're fighting the tool. The Haskell compiler is an unusual dependency that makes contributing or debugging the framework itself a high bar.