Wasp Pivots from Custom Language to TypeScript

Indie Hacker Newsgo watch the original →

After five years of building a full-stack framework around a custom DSL, the founders of Wasp are replacing the DSL with TypeScript to lower the barrier to entry while retaining their core compiler-based architecture.

The Shift to TypeScript

The Wasp framework, originally built as a Rails-like tool for React and Node, is abandoning its custom domain-specific language (DSL) in favor of standard TypeScript. The founders identified that while their custom syntax allowed for high-level app definitions, it created an unnecessary learning curve and misaligned the project's identity with the Haskell-based compiler powering it. By moving to TypeScript, developers can now define their application structure using standard code patterns like app.page and app.query instead of learning a proprietary file format.

The Core Value Proposition

The project's primary value lies in its compiler's ability to maintain a holistic understanding of the application at build time. This architecture enables features that are difficult to implement in standard frameworks, including:

  • End-to-end type safety from the database layer to the frontend.
  • Built-in authentication flows for email, password, and social login.
  • Seamless client-to-server communication without manual API layer construction.
  • Automated deployment via a single wasp deploy command.

AI-Ready Architecture

The founders argue that the framework's opinionated, structured nature makes it uniquely suited for the era of AI-generated code. Because the compiler enforces a predictable structure, AI agents can generate reliable, production-ready code that adheres to the framework's constraints. The pivot to TypeScript ensures that this generated code remains accessible and editable by human developers using standard tooling, effectively removing the friction of the previous custom syntax while keeping the underlying engine intact.

  • #web-dev
  • #typescript
  • #open-source
  • #frameworks

summary by google/gemini-3.1-flash-lite. probably wrong about something. check the source.