v0.24.0
RightNow-AI/openfangv0.24.0Jun 11, 2026by github-actions[bot]
AI Summary
This release introduces breaking changes to the Wasp TS configuration and removes AI-related templates, while improving API client performance and adding type-safe navigation components.
Key Highlights
- Renamed Wasp TS config to Wasp Spec and changed import path to `@wasp.sh/spec`
- Switched `wasp/client/api` from Axios to Ky for better performance
- Added a type-safe `NavLink` component mirroring `react-router`'s API
- Removed `wasp new:ai` command and `ai-generated` starter template
Breaking Changes
- Wasp TS config renamed to Wasp Spec (`main.wasp.ts` import `wasp-config` -> `@wasp.sh/spec`)
- Wasp now requires `vitest` to be listed in devDependencies
- Removed `wasp new:ai` and the `ai-generated` starter template
New Features
- `api` export from `wasp/client/api` is now a Ky instance
- Wasp TS spec now properly sets the `NODE_ENV` environment variable
- Type-safe `NavLink` component mirroring `react-router`'s API
- Wasp TS spec 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))