Start by removing the old template folders:
rm -rf app e2e-tests blogThen recreate the template file structure from the latest template version:
wasp new saas-app -t saas && \
cp -r saas-app/{app,e2e-tests,blog} . && \
cp saas-app/.gitignore . && \
rm -rf saas-appChange the email sender to Mailgun.
Make sure app/.env.server.example has the Mailgun env vars:
# See our guide for setting up mailgun emailing: https://wasp.sh/docs/advanced/email#mailgun
MAILGUN_API_KEY=your-mailgun-key
MAILGUN_DOMAIN=your-mailgun-domainStart the database in a separate terminal window:
cd app/
wasp db startRun the migrations to generate the package-lock.json and migrations dir:
cd app/
cp .env.server.example .env.server
wasp db migrate-dev --name "init"Start the app:
# Make sure the database is still running from the previous step.
cd app/
wasp startBump the Wasp CLI version in both render.yaml build commands:
-npm install -g --prefix "$HOME/.local" @wasp.sh/wasp-cli@old
+npm install -g --prefix "$HOME/.local" @wasp.sh/wasp-cli@newCheck the latest Render deployment guide and update render.yaml if the recommended commands changed.
- Push a branch containing the updated
render.yaml. - Open the Render dashboard and log in with the Wasp account.
- Click
New > Blueprintand select the branch. - Apply the Blueprint and wait until the database, server, and client services are created.
- Set
WASP_SERVER_URLandWASP_WEB_CLIENT_URLon the server service. - Set
REACT_APP_API_URLon the client service. - Save and rebuild both services.
- Verify the client URL loads and the server returns
200from/up. - Do not expect login or email flows to work during this smoke test unless real provider env vars are configured.
If a service fails, inspect its build and deploy logs. Common causes are missing variables, stale Wasp build commands, or changes in Wasp's generated output layout.