This example showcases a Next.js Blog using DatoCMS as the data source. It fully supports Preview Mode with DatoCMS real-time updates.
The purpose of this repo is to have a quick start reference that can be set up with the "one-click" button below.
Have a look at the end result live:
Make sure that you have set up the Github integration on Vercel.
Let DatoCMS set everything up for you clicking this button:
Once the setup of the project and repo is done, clone the repo locally.
In your DatoCMS' project, go to the Settings menu at the top and click API tokens.
Then click Read-only API token and copy the token.
Next, copy the
.env.example file in this directory to
.env (which will be ignored by Git):
cp .env.example .env
Then set each variable on
NEXT_EXAMPLE_CMS_DATOCMS_API_TOKENshould be the API token you just copied.
NEXT_EXAMPLE_CMS_DATOCMS_PREVIEW_SECRETcan be any random string (but avoid spaces), like
MY_SECRET- this is used for the Preview Mode](https://www.datocms.com/docs/next-js/setting-up-next-js-preview-mode).
.env file should look like this:
npm installnpm run dev
Your blog should be up and running on http://localhost:3000!
On DatoCMS, go to one of the posts you've created and:
[Draft]in front of the title.
(If it doesn't become draft, you need to go to the model settings for
Post, go to Additional Settings, and turn on Enable draft/published system.)
Now, if you go to the post page on localhost, you won't see the updated title. However, if you use the Preview Mode, you'll be able to see the change (Documentation).
To enable the Preview Mode, go to this URL:
<secret>should be the string you entered for
<slug>should be the post's
slugattribute (you can check on DatoCMS).
You should now be able to see the updated title. To exit the preview mode, you can click Click here to exit preview mode at the top.