The fastest way to develop full-stack web apps with React & Node.js.
Improved how IDE auto-imports symbols from the wasp
package. If you have an existing project, add these lines to your tsconfig.json
to getter better IDE support:
{
"compilerOptions" {
"target": "esnext",
"moduleResolution": "bundler",
// ...
}
// ...
}
Wasp 0.13.0 switches away from using Passport for our OAuth providers in favor of Arctic from the Lucia ecosystem. This change simplifies the codebase and makes it easier to add new OAuth providers in the future.
This however, means that there are breaking changes in the way you define OAuth providers in your Wasp project.
Read the migration guide at https://wasp-lang.dev/docs/migrate-from-0-12-to-0-13 for more details.
WASP_SERVER_URL
environment variable and exposes it as serverUrl
in the server config which can be imported from wasp/server
.wasp/auth/types
no longer fail when building the web app.This is a big update, introducing major changes that span the entirety of Wasp, specifically the new project structure and new Auth.
If your project is using an older version of Wasp, you will want to check out the detailed migration instructions at https://wasp-lang.dev/docs/migrate-from-0-11-to-0-12 .
The output of wasp new myProject
before 0.12.0:
.
├── .gitignore
├── main.wasp
├── src
│ ├── client
│ │ ├── Main.css
│ │ ├── MainPage.jsx
│ │ ├── react-app-env.d.ts
│ │ ├── tsconfig.json
│ │ └── waspLogo.png
│ ├── server
│ │ └── tsconfig.json
│ ├── shared
│ │ └── tsconfig.json
│ └── .waspignore
└── .wasproot
The output of wasp new myProject
with 0.12.0:
.
├── .gitignore
├── main.wasp
├── package.json
├── public
│ └── .gitkeep
├── src
│ ├── Main.css
│ ├── MainPage.jsx
│ ├── queries.ts
│ ├── vite-env.d.ts
│ ├── .waspignore
│ └── waspLogo.png
├── tsconfig.json
├── vite.config.ts
└── .wasproot
The main differences are:
package.json
file.tsconfig.json
, vite.config.ts
, and public/
moved to the top dir.src/
directory.@src
(e.g., import foo from '@src/MainPage.jsx'
). The paths can no longer start with @server
or @client
.Before 0.12.0, authentication in Wasp was based on the User
model which the developer needed to set up properly and take care of the auth fields like email
or password
.
With 0.12.0, authentication is based on the auth models which are automatically set up by Wasp. You don't need to take care of the auth fields anymore, be it by adding them to the User
model or by adding whole new entities like SocialLogin
.
The User
model is now just a business logic model and you use it for storing the data that is relevant for your app.
In the background, Wasp is now using Lucia as the core auth library.
Operation (i.e., Queries and Actions) and Job names in .wasp
files must now begin with a lowercase letter: query getTasks {...}
, job sendReport {...}
.
Entity names in .wasp
files must now begin with an uppercase letter: entity Foo {...}
.
_waspCustomValidations
on the User
entity.
These are both temporary regressions and will be replaced with better mechanisms in the future.So far, Wasp required a specific Node version that is compatible with the latest LTS Node (lately that was 18).
We relaxed that constraint so it now works with any Node version equal to or newer than the oldest LTS version that Wasp supports, meaning that now Wasp works with any Node version >= 18.
wasp new:ai
)While so far it was available only through the https://usemage.ai , Wasp AI is now also available via the wasp
CLI, enabling you to create a new Wasp app from nothing more than a title and a short description.
You can run it by picking AI as an option in the wasp new
wizard, or via wasp new:ai
which allows you to provide all the details via the command line (useful for more programmatic usage).
You need to provide your own OpenAI API token, but that also means you can choose which model to use for the code generation: e.g. you can use GPT-4 all the way, instead of the default GPT-4 + GPT-3 combo that https://usemage.ai uses.
Wasp now comes with a new template for kickstarting your apps, specifically SaaS apps: https://opensaas.sh/ .
This is the richest template for Wasp so far, with features like Stripe integration, admin dashboard, file uploading, blog (Astro), ...
You can choose it from the wasp new
's wizard.