Once you are all set with DatoCMS and your site is successfully pulling content on your local development machine, your next step is to deploy the site and then give your editors some control and visibility over the deploy process.
The job of building and deploying your static website is not performed directly by DatoCMS, but it is delegated to an external Continuous Deployment/Continuous Integration service.
To integrate DatoCMS with these tools you can use what we call build triggers.
Essentially they are a set of webhooks that you can manually trigger to launch your build process on your preferred continuous integration or continuous deployment platform.
We offer out of the box integrations to all the most popular solutions out there (most of them have a free plan available):
If you need to use some other CI tool, we also offer a custom webhook that you can use to connect DatoCMS to your custom deployment solution.
Regardless from the external service that you intend to use, your CI build script needs to perform three steps:
Run the dato dump
command to fetch all the DatoCMS content and transform it into local files. Alternatively you can fetch content using the GraphQL CDA;
Run the build command of your static website generator to produce the actual static website (ie. jekyll build
for Jekyll);
Upload the files of your static website to S3, Surge.sh or any other hosting solution you intend to use.
Once everything is set up, in the top navigation bar of the interface of DatoCMS you will find a Publish changes button: your editors will be able to request a new publication of the static website whenever they like.
If you have multiple build triggers you'll be able to trigger builds indipendently and manage permissions and log per each environment.
Have a look at a quick demo on how things work:
Check the Marketplace for all the Hosting and CI building options.