Webiny is a serverless platform on AWS. Deploy with yarn webiny deploy, develop locally with yarn webiny watch (API uses Local Lambda Development, Admin runs a local React dev server). Projects support multiple environments (long-lived and short-lived). Always redeploy after stopping watch mode.
Deploy all three applications (Core, API, Admin) at once:
yarn webiny deploy
This deploys to the dev environment by default. First deployment takes 5-15 minutes.
yarn webiny deploy core # Infrastructure only
yarn webiny deploy api # Backend API only
yarn webiny deploy admin # Admin frontend only
yarn webiny deploy --env prod
yarn webiny deploy api --env staging
yarn webiny info # Shows all URLs (Admin, API, CloudFront)
yarn webiny info --env prod # Info for a specific environment
Before developing locally, you must deploy Core and API first:
yarn webiny deploy core api
yarn webiny watch admin
http://localhost:3001
yarn webiny watch api
How it works:
Benefits:
IMPORTANT: Redeploy After Watch
When you stop yarn webiny watch api, your Lambda functions still contain stub code. You must redeploy:
yarn webiny deploy api
The watch command prints a reminder when you stop it.
You can run both watch commands simultaneously in separate terminals:
# Terminal 1
yarn webiny watch api
# Terminal 2
yarn webiny watch admin
Persistent environments maintained over time:
Best practice: manage via CI/CD pipelines.
Temporary environments for specific purposes:
# Create a short-lived environment
yarn webiny deploy --env feature-123
# Destroy when done
yarn webiny destroy --env feature-123
Webiny has two deployment templates:
The mode is determined by whether the environment name is in the ProductionEnvironments list:
// webiny.config.tsx
<Infra.ProductionEnvironments environments={["prod", "staging"]} />
State files are JSON files that track the current state of your deployment:
During yarn webiny watch api:
console.log() for quick debuggingLogger (DI-injected) for production logging to CloudWatchimport { Logger } from "webiny/api";
// In your extension class
this.logger.info("Processing request...");
this.logger.warn("Something unexpected");
this.logger.error("Something failed");
Use browser DevTools:
Deployment errors from Pulumi typically relate to:
Check the deployment output for specific error messages.
| Command | Purpose |
|---|---|
yarn webiny deploy |
Deploy all applications |
yarn webiny deploy [core|api|admin] |
Deploy specific application |
yarn webiny deploy --env <name> |
Deploy to specific environment |
yarn webiny destroy --env <name> |
Destroy an environment |
yarn webiny watch api |
Start local API development |
yarn webiny watch admin |
Start local Admin development |
yarn webiny info |
Show deployment info and URLs |
yarn webiny info --env <name> |
Show info for specific environment |
yarn webiny extension <name> |
Install a pre-built extension |
First deploy: yarn webiny deploy
Dev API: yarn webiny watch api
Dev Admin: yarn webiny watch admin
Get URLs: yarn webiny info
Deploy env: yarn webiny deploy --env staging
After watch: yarn webiny deploy api (MUST redeploy!)
webiny-project-structure -- Project layout and webiny.config.tsx
webiny-infrastructure-extensions -- Customizing AWS infrastructure and environments