v0.24.0

siteboon/claudecodeuiv0.24.0Jun 11, 2026by github-actions[bot]

AI Summary

This major release introduces breaking changes including renaming the Wasp TS config to Wasp Spec, switching the API client from Axios to Ky, and adding a new NavLink component, alongside various bug fixes and validation improvements.

Key Highlights

  • Renamed Wasp TS config to Wasp Spec
  • Switched API client from Axios to Ky
  • Added type-safe NavLink component
  • Added vitest as a required dependency
  • Improved TS config validation

Breaking Changes

  • Renamed Wasp TS config (`main.wasp.ts`) to Wasp Spec and changed import path from `wasp-config` to `@wasp.sh/spec`
  • Added `vitest` to project's `devDependencies`
  • Removed `wasp new:ai` command and `ai-generated` starter template

New Features

  • `api` export from `wasp/client/api` is now a Ky instance
  • Wasp TS spec now sets `NODE_ENV` environment variable based on command
  • Added type-safe `NavLink` component
  • Wasp TS spec now supports real JS imports

Full Release Notes

### ⚠️ Breaking Changes

Remember to check out the [migration guide](https://wasp.sh/docs/migration-guides/migrate-from-0-23-to-0-24) 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](https://github.com/wasp-lang/wasp/pull/4153))
- Wasp now requires `vitest` to be listed in your project's `devDependencies`. ([#4182](https://github.com/wasp-lang/wasp/pull/4182))
- Removed `wasp new:ai` and the `ai-generated` starter template. ([#4280](https://github.com/wasp-lang/wasp/pull/4280))

### 🎉 New Features

- The `api` export from `wasp/client/api` is now a [Ky](https://github.com/sindresorhus/ky) instance instead of Axios for improved performance and smaller final size. ([#3998](https://github.com/wasp-lang/wasp/pull/3998))
- Wasp TS spec now properly sets the `NODE_ENV` environment variable depending on which command you use to run Wasp. ([#4087](https://github.com/wasp-lang/wasp/pull/4087))
- Added a type-safe `NavLink` component, mirroring `react-router`'s `NavLink` API (with `isActive`, `isPending`, `isTransitioning` render-prop helpers). ([#4104](https://github.com/wasp-lang/wasp/pull/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](https://github.com/wasp-lang/wasp/pull/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](https://github.com/wasp-lang/wasp/issues/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](https://github.com/wasp-lang/wasp/pull/4291))
- Fixed a bug where `wasp deploy railway launch` wouldn't correctly build the Wasp app client if the `/` route was not prerendered. ([#4293](https://github.com/wasp-lang/wasp/pull/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](https://github.com/wasp-lang/wasp/pull/3911))
- The npm package now shows a clear error when installed on an unsupported Node.js version. ([#4268](https://github.com/wasp-lang/wasp/pull/4268))

### 📖 Documentation

- We now have a [SEO & GEO optimization guide](https://wasp.sh/docs/guides/optimization/seo). ([#4264](https://github.com/wasp-lang/wasp/pull/4264))