Skip to content

Releases: wasp-lang/wasp

v0.24.0

Choose a tag to compare

@github-actions github-actions released this 11 Jun 15:11
v0.24.0

⚠️ Breaking Changes

Remember to check out the migration guide for step-by-step documentation on how to upgrade.

  • The Wasp TS config (main.wasp.ts) is now called the Wasp Spec, and it should import from @wasp.sh/spec instead of wasp-config. (#4153)
  • Wasp now requires vitest to be listed in your project's devDependencies. (#4182)
  • Removed wasp new:ai and the ai-generated starter template. (#4280)

🎉 New Features

  • The api export from wasp/client/api is now a Ky instance instead of Axios for improved performance and smaller final size. (#3998)
  • Wasp TS spec now properly sets the NODE_ENV environment variable depending on which command you use to run Wasp. (#4087)
  • Added a type-safe NavLink component, mirroring react-router's NavLink API (with isActive, isPending, isTransitioning render-prop helpers). (#4104)
  • Wasp TS spec now supports real JS imports, letting you import values in main.wasp.ts and pass them directly instead of using import objects like { import, from }. (#4143)

🐞 Bug fixes

  • Fixed a race condition in development mode that could potentially load the app's JS bundle before the Vite runtime, causing the app to fail the load with a "Can't detect preamble" error. (#4258)
  • Fixed wasp deploy railway launch sometimes producing a crashed server with an empty DATABASE_URL. Wasp now waits for the database service to finish deploying before setting up the other services. (#4291)
  • Fixed a bug where wasp deploy railway launch wouldn't correctly build the Wasp app client if the / route was not prerendered. (#4293)

🔧 Small improvements

  • Wasp now also validates tsconfig.wasp.json and the root tsconfig.json in TS spec projects, and tsconfig validation errors now mention which tsconfig.*.json file caused them. (#3911)
  • The npm package now shows a clear error when installed on an unsupported Node.js version. (#4268)

📖 Documentation

v0.24.0-rc.3

v0.24.0-rc.3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 11 Jun 12:10
3ba4a64
v0.24.0-rc.3

v0.24.0-rc.2

v0.24.0-rc.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 11 Jun 10:35
eb0e451
v0.24.0-rc.2

v0.23.0

Choose a tag to compare

@github-actions github-actions released this 15 Apr 12:11
v0.23.0
5807ed9

0.23.0

⚠️ Breaking Changes

Remember to check out the migration guide for step-by-step documentation on how to upgrade.

  • Wasp now requires Node.js version >=v24.14.1 (previously >=v22.22.2). (#4010)
  • Upgraded the pinned TypeScript version from 5.8.2 to 5.9.3 (required by @tsconfig/node24). (#4010)
  • The HTML file for the final built web app has changed from index.html to 200.html. This is in preparation for prerendering support. (#3981)

🎉 New Features

  • Routes can now be prerendered at build time by setting prerender: true. Prerendered routes are served as static HTML for faster load times and better SEO. (#3982)

🐞 Bug fixes

  • Updated wasp deploy railway to work with the Railpack builder. (#3981)

🔧 Small improvements

  • Updated our wasp deploy tool to support the new 200.html SPA fallback. (#3981)
  • New Wasp projects now include an .npmrc with min-release-age=7 for supply chain protection. (#4016)

📖 Documentation

  • Updated deployment guides for Fly.io, Railway, Netlify, and Cloudflare to work with the new 200.html SPA fallback. (#3981)
  • Added guide for deploying to Render. (#4055)

v0.23.0-rc.1

v0.23.0-rc.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 15 Apr 09:37
v0.23.0-rc.1
3b99123
v0.23.0-rc.1

v0.22.0

Choose a tag to compare

@github-actions github-actions released this 01 Apr 14:08

⚠️ Breaking Changes

Remember to check out the migration guide for step-by-step documentation on how to upgrade.

  • Wasp now requires Node.js version >=v22.22.2 (previously >=v22.12.0) due to the March 2026 Node.js security releases. (#3989)
  • In the wasp build output, the generated Docker image has been upgraded from Alpine 3.20 to Alpine 3.23. (#3989)
  • Upgraded the Zod version used for env validation to Zod v4. If you use custom env validation schemas, you may need to update them to be compatible with the latest Zod API. (#3879)
  • HTML head tags specified in app.head must now be valid React JSX. (#3855)
  • Page routes are now loaded lazily by default. You can set lazy: false per-route to disable this behavior. (#3891)

🎉 New Features

  • The Wasp TS config file (*.wasp.ts) now supports async logic in the default export, enabling use cases like file-based routing and dynamic configuration. (#3900)
  • Wasp AI (wasp new:ai) now accepts any model name string, letting the OpenAI API validate it. The interactive CLI still offers curated GPT-5 options for convenience. (#3904)
  • The wasp.version field now accepts any valid npm-compatible version range (e.g. >=0.15.0 <0.22.0, ~0.21.0, 0.21.x) instead of only ^x.y.z. (#3921)
  • Page routes are now lazy-loaded using React Router's lazy property, greatly reducing the initial download size for apps with many routes. (#3891)

🐞 Bug fixes

  • wasp deploy fly now correctly computes Fly app basenames when the app name contains -client or -server. (#3983)
  • Projects created with wasp new were missing their .gitignore file. (#3870)

🔧 Small improvements

  • The wasp-config package is now installed from a local copy inside the project (.wasp/wasp-config/) instead of directly from the global Wasp data directory. This makes projects more self-contained and avoids issues with npm resolving paths outside the project. (#3861)
  • REACT_APP_API_URL is now required when building the client for production (it no longer defaults to any value). In development mode, it still defaults to the local server URL. This prevents silently broken production deployments where the client can't reach the server. (#3740)
  • The wasp() Vite plugin now enforces certain Vite config options that Wasp requires (e.g. base, envPrefix, build.outDir) and throws an error if the user tries to override them. (#3771)
  • Upgraded our internal nodemailer dependency to v8.0.1 to address a possible security issue. (#3756)
  • In the Vite config, removing the server.open field will no longer open the browser on wasp start. (3831)
  • Wasp now validates that vite.config.ts (or vite.config.js) exists in your project at compile time, and warns if it's missing the wasp plugin import. (#3863)
  • Wasp now prefixes env validation errors with the name of the field that failed the validation (#3876)
  • Wasp now validates your tsconfig.json before analyzing the rest of the code. If something is off, you'll get a clear error message as soon as possible (#3907)
  • Wasp now properly uses ANSI formatting in env validation errors (#3877)

v0.22.0-rc1

v0.22.0-rc1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 30 Mar 08:13
Merge branch 'main' into release-with-main-30-3

v0.21.1

Choose a tag to compare

@github-actions github-actions released this 16 Feb 07:59
v0.21.1
c3dcfc0

🐞 Bug fixes

  • The new Microsoft auth provider was not exposed in the Wasp TypeScript Config. (#3762)

v0.21.0

Choose a tag to compare

@github-actions github-actions released this 13 Feb 09:03
v0.21.0
c026919

⚠️ Breaking Changes

Remember to check out the migration guide for step-by-step documentation on how to upgrade.

  • Wasp now requires the wasp() plugin in your vite.config.ts file. You can import the plugin from wasp/client/vite and add it as the first plugin in your Vite configuration. (#3652)
  • User projects must now provide their own public/manifest.json file. This file is no longer auto-generated by Wasp. (#3652)
  • Wasp now has Tailwind CSS 4 support, and v3 support has been dropped. (#3571)
  • Wasp now uses Vitest 4 for testing. (#3580)
  • Removed the .wasp/build directory. Wasp now only uses .wasp/out for generated code, both in development and production mode. (#3540)
  • The Wasp SDK is now used as a workspace instead of a dependency. This avoids dependency resolution issues and further improves reliability of Wasp projects. (#3544)
  • Wasp now uses React Router 7. The package has been renamed from react-router-dom to react-router, so you'll need to update your imports. (#3490, #3658)
  • Wasp no longer generates netlify.toml in the .wasp/out/web-app dir. If you're deploying to Netlify, you'll need to add it manually. (#3665)
  • If you are manually deploying the client app, you now build it with npx vite build from the project root instead of running npm run build inside .wasp/out/web-app. The build output is still in .wasp/out/web-app/build. (#3652)
  • The REACT_APP_API_URL environment variable is no longer supported for specifying a custom server URL during deployment. Use the new --custom-server-url CLI option instead. (#3674)

🎉 New Features

  • User-land Vite configuration: Wasp runs Vite in your project root and no longer in .wasp/out/web-app dir. Your vite.config.ts is the source of truth for Vite configuration. (#3652)
  • The wasp() plugin accepts options to customize the underlying @vitejs/plugin-react behavior. (#3652)
  • Wasp apps can now offer login with Microsoft (both consumer and Entra accounts) (by @Pipboyguy). (#3637)
  • Wasp can now be installed through npm. (#3525)
  • Wasp now supports Tailwind CSS v4. (#3571)
  • Wasp now allows you to override built-in dependencies (advanced, best-effort support only). (#3643)

🐞 Bug fixes

  • Fixed an issue where if Wasp was installed from npm, wasp new would not work correctly. (#3585)
  • Fixed an issue where the Link component might not update with the values of search and hash (by @Pipboyguy). (#3633)
  • We now support Railway CLI v4.18.1 and greater on wasp deploy railway. (#3667)
  • Wasp TS spec now validates declaration names. (#3721)
  • Fixed Railway deployment failing when the project name contains special characters (e.g., kitchen-sink-0.20.0). (#3673)

📖 Documentation

  • Upgraded the installation instructions throughout the docs to the new npm installation method. (#3630)
  • The Wasp docs now include a "Guides" section, with step-by-step tutorials on how to use popular libraries and tools with Wasp. Check them out at https://wasp.sh/docs/guides! (#3597)

🔧 Small improvements

  • We've unlinked Wasp from any specific Tailwind CSS version, so in the future you can adopt new Tailwind CSS versions at your own pace, independently of Wasp. (#3571)
  • wasp new now shows a helpful message when the specified template has not been updated to the latest Wasp version. (#3511)
  • Running a Wasp in development or production mode won't modify your package-lock.json file anymore. (#3540)
  • We updated the basic starter template to the latest best practices for React 19 + TypeScript apps. This applies to new projects created with wasp new -t basic, and older projects are unaffected. (#3572)
  • We updated the testing environment to JSDOM 27 for more up-to-date mocking. (#3580)
  • We updated our API mocking to MSW 2 for better performance and reliability. (#3580)
  • wasp info now tells you if the last compilation was done in development or production mode. (#3612)
  • wasp uninstall now supports the npm installation method. (#3620)
  • Added anonymous usage analytics to the npm package installer to help us understand how Wasp is being installed. You can disable this by setting WASP_TELEMETRY_DISABLE=1. (#3619)
  • Improved error messages when using dependencies that are incompatible with internal Wasp dependencies. (#3655)
  • Removed a Rollup version override, since the upstream Rollup issue has been fixed. (#3654)
  • The dev compiler file watcher now ignores .DS_Store files, preventing unnecessary recompilations on macOS. (#3734)
  • Added guardrails to avoid installing Wasp through the installer or npm methods when the other method is already being used. (#3711)

v0.21.0-rc.1

v0.21.0-rc.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Feb 16:16
v0.21.0-rc.1
5c14493
v0.21.0-rc.1