This is a quick start guide that should help you setup Webiny as fast as possible.
At the end of this guide, you'll have a simple website, that already comes with a couple of default pages to get you started, and a complete admin interface that will enable you to manage it. All of this will be deployed to the AWS Cloud.
For detailed explanations of concepts and processes, see the Deep Dive section of the docs.
If you prefer the Video version of the Webiny Quick Start, check out our YouTube videos below:
The following things are mandatory for both local development and production deployments:
✅ node.js >= 12.0.0
- earlier node versions may also work but we don't test them regularly
- we recommend this tool to manage your node.js versions
yarn < 2.0
- or you can just run
npm install yarn -g
✅ AWS account with an IAM user for programmatic usage
- you can follow this guide
✅ MongoDB database in the cloud
NOTE: if you're unsure your AWS credentials are configured correctly, you can verify them by running the following command using AWS CLI:
aws sts get-caller-identity. If you don't see the user info, take a look at this tutorial to create an IAM user for programmatic usage.
1. Create a new project
To create a Webiny project:
2. Setup database connection
.env.json file in the root of the project and set the
MONGODB_SERVER value. The values in this file are unique for your project, you do NOT need to change any other values.
In case you need any help creating a MongoDB cluster on MongoDB Atlas, please follow this guide.
IMPORTANT: It's important to give the outside world access to your database because the database will be accessed from your cloud functions, thus you'll never have a fixed IP address. See the Whitelist Your Connection IP Address. Make sure you add a
.env.json file should look something like this after updating your
AWS_PROFILEas well as
AWS_REGIONcan be defined by other methods following this guide. As long as AWS SDK can figure out your identity, Webiny will be happy no matter how you configure your credentials.
3. Project runtime
1. Deploy API
We need to deploy a
local API environment to use for local development:
In the command above,
api references the folder containing deployment configuration, which is located in
api/resources.js. As a result, you can create additional folders like
api-public, etc... as long as they have a
resources.js file inside.
The deployment will take around 5 to 15 minutes depending on your internet connection and the AWS region.
NOTE: If you run into an error:
CredentialsError: Missing credentials in config, it means you have to configure your provider credentials here. If you use multiple AWS profiles, edit
.env.jsonin your project root, to point to the correct profile via
Admin app is the administration system for your project; it contains everything you need to manage your content, users, settings, etc... :
admin app will run an installation wizard to setup the system.
IMPORTANT: Do NOT go onto the next step until you complete the installation wizard.
Site app is an actual website you're creating. It is a single page app, but in production it renders via server-side rendering.
This is it! You have deployed your own API environment, and can begin developing your React apps on your local machine. For deployments to production and other environments, please see the next page.