Releases: wasp-lang/wasp
Releases · wasp-lang/wasp
Release list
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/specinstead ofwasp-config. (#4153) - Wasp now requires
vitestto be listed in your project'sdevDependencies. (#4182) - Removed
wasp new:aiand theai-generatedstarter template. (#4280)
🎉 New Features
- The
apiexport fromwasp/client/apiis now a Ky instance instead of Axios for improved performance and smaller final size. (#3998) - Wasp TS spec now properly sets the
NODE_ENVenvironment variable depending on which command you use to run Wasp. (#4087) - Added a type-safe
NavLinkcomponent, mirroringreact-router'sNavLinkAPI (withisActive,isPending,isTransitioningrender-prop helpers). (#4104) - Wasp TS spec now supports real JS imports, letting you import values in
main.wasp.tsand 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 launchsometimes producing a crashed server with an emptyDATABASE_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 launchwouldn't correctly build the Wasp app client if the/route was not prerendered. (#4293)
🔧 Small improvements
- Wasp now also validates
tsconfig.wasp.jsonand the roottsconfig.jsonin TS spec projects, and tsconfig validation errors now mention whichtsconfig.*.jsonfile caused them. (#3911) - The npm package now shows a clear error when installed on an unsupported Node.js version. (#4268)
📖 Documentation
- We now have a SEO & GEO optimization guide. (#4264)
v0.24.0-rc.3
v0.24.0-rc.3
v0.24.0-rc.2
v0.24.0-rc.2
v0.23.0
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.htmlto200.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 railwayto work with the Railpack builder. (#3981)
🔧 Small improvements
- Updated our
wasp deploytool to support the new200.htmlSPA fallback. (#3981) - New Wasp projects now include an
.npmrcwithmin-release-age=7for supply chain protection. (#4016)
📖 Documentation
v0.23.0-rc.1
v0.23.0-rc.1
v0.22.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 >=v22.22.2 (previously >=v22.12.0) due to the March 2026 Node.js security releases. (#3989)
- In the
wasp buildoutput, 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.headmust now be valid React JSX. (#3855) - Page routes are now loaded lazily by default. You can set
lazy: falseper-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.versionfield 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
lazyproperty, greatly reducing the initial download size for apps with many routes. (#3891)
🐞 Bug fixes
wasp deploy flynow correctly computes Fly app basenames when the app name contains-clientor-server. (#3983)- Projects created with
wasp newwere missing their.gitignorefile. (#3870)
🔧 Small improvements
- The
wasp-configpackage 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_URLis 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
nodemailerdependency to v8.0.1 to address a possible security issue. (#3756) - In the Vite config, removing the
server.openfield will no longer open the browser onwasp start. (3831) - Wasp now validates that
vite.config.ts(orvite.config.js) exists in your project at compile time, and warns if it's missing thewaspplugin import. (#3863) - Wasp now prefixes env validation errors with the name of the field that failed the validation (#3876)
- Wasp now validates your
tsconfig.jsonbefore 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
Merge branch 'main' into release-with-main-30-3
v0.21.1
🐞 Bug fixes
- The new Microsoft auth provider was not exposed in the Wasp TypeScript Config. (#3762)
v0.21.0
⚠️ 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 yourvite.config.tsfile. You can import the plugin fromwasp/client/viteand add it as the first plugin in your Vite configuration. (#3652) - User projects must now provide their own
public/manifest.jsonfile. 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/builddirectory. Wasp now only uses.wasp/outfor 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-domtoreact-router, so you'll need to update your imports. (#3490, #3658) - Wasp no longer generates
netlify.tomlin the.wasp/out/web-appdir. 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 buildfrom the project root instead of runningnpm run buildinside.wasp/out/web-app. The build output is still in.wasp/out/web-app/build. (#3652) - The
REACT_APP_API_URLenvironment variable is no longer supported for specifying a custom server URL during deployment. Use the new--custom-server-urlCLI option instead. (#3674)
🎉 New Features
- User-land Vite configuration: Wasp runs Vite in your project root and no longer in
.wasp/out/web-appdir. Yourvite.config.tsis the source of truth for Vite configuration. (#3652) - The
wasp()plugin accepts options to customize the underlying@vitejs/plugin-reactbehavior. (#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 newwould not work correctly. (#3585) - Fixed an issue where the
Linkcomponent might not update with the values ofsearchandhash(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 newnow 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.jsonfile anymore. (#3540) - We updated the
basicstarter template to the latest best practices for React 19 + TypeScript apps. This applies to new projects created withwasp 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 infonow tells you if the last compilation was done in development or production mode. (#3612)wasp uninstallnow 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_Storefiles, 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