General concepts > How to deploy

    How to deploy

    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 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 with all the most popular solutions out there (most of them have a free plan available):

    If you need to use another CI tool, we also offer a custom webhook that you can use to connect DatoCMS to your custom deployment solution.

    Regardless of 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 (e.g., jekyll build for Jekyll);

    • Upload the files of your static website to S3, or any other hosting solution you want to use.

    Once everything is set up, in the top navigation bar of the DatoCMS interface, 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 independently and manage permissions and logs for each environment.

    Have a look at this quick demo to see how things work:

    Check the Marketplace for all the available Hosting and CI building options.