rsnext/examples/cms-prismic
Freddy Montes 15cc88909c
chore(examples): Add dotCMS example (#38214)
<!--
Thanks for opening a PR! Your contribution is much appreciated.
In order to make sure your PR is handled as smoothly as possible we
request that you follow the checklist sections below.
Choose the right checklist for the change that you're making:
-->

This adds a new example under cms-dotcms/. Is a general-purpose example
that should allow developers to undestand how to use next.js with dotCMS
apis.

## Bug

- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Errors have helpful link attached, see `contributing.md`

## Feature

- [ ] Implements an existing feature request or RFC. Make sure the
feature request has been accepted for implementation before opening a
PR.
- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [x] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [ ] Errors have helpful link attached, see `contributing.md`

## Documentation / Examples

- [x] Make sure the linting passes by running `pnpm lint`
- [x] The examples guidelines are followed from [our contributing
doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples)

Co-authored-by: Daniel Esteves <estevesd8@gmail.com>
Co-authored-by: Will Ezell <will@dotcms.com>
Co-authored-by: Arcadio Quintero A <oidacra@gmail.com>
Co-authored-by: Rafael <rjvelazco21@gmail.com>
2022-10-01 15:26:13 +02:00
..
.slicemachine chore(examples): refresh cms-prismic example (#40121) 2022-10-01 06:06:49 +02:00
components chore(examples): refresh cms-prismic example (#40121) 2022-10-01 06:06:49 +02:00
customtypes chore(examples): refresh cms-prismic example (#40121) 2022-10-01 06:06:49 +02:00
documents chore(examples): refresh cms-prismic example (#40121) 2022-10-01 06:06:49 +02:00
lib chore(examples): refresh cms-prismic example (#40121) 2022-10-01 06:06:49 +02:00
pages chore(examples): refresh cms-prismic example (#40121) 2022-10-01 06:06:49 +02:00
public/favicon Add Prismic Example (#10897) 2020-04-10 12:41:09 +02:00
slices chore(examples): refresh cms-prismic example (#40121) 2022-10-01 06:06:49 +02:00
styles Add Prismic Example (#10897) 2020-04-10 12:41:09 +02:00
.gitignore Update default gitignore templates (#39051) 2022-07-26 20:08:40 -05:00
next.config.js [Docs] Add config types to all examples (#40083) 2022-08-31 16:41:22 -05:00
package.json chore(examples): refresh cms-prismic example (#40121) 2022-10-01 06:06:49 +02:00
postcss.config.js Update dependencies of all CMS examples. (#27001) 2021-07-09 14:43:56 +02:00
prismicCodegen.config.ts chore(examples): refresh cms-prismic example (#40121) 2022-10-01 06:06:49 +02:00
README.md chore(examples): Add dotCMS example (#38214) 2022-10-01 15:26:13 +02:00
sm.json chore(examples): refresh cms-prismic example (#40121) 2022-10-01 06:06:49 +02:00
tailwind.config.js chore(examples): refresh cms-prismic example (#40121) 2022-10-01 06:06:49 +02:00
tsconfig.json chore(examples): refresh cms-prismic example (#40121) 2022-10-01 06:06:49 +02:00
types.generated.ts chore(examples): refresh cms-prismic example (#40121) 2022-10-01 06:06:49 +02:00

A statically generated blog example using Next.js and Prismic

This example showcases Next.js's Static Generation feature using Prismic as the data source.

Demo

https://next-blog-prismic.vercel.app/

Deploy your own

Once you have access to the environment variables you'll need, deploy the example using Vercel:

Deploy with Vercel

How to use

Execute create-next-app with npm, Yarn, or pnpm to bootstrap the example:

npx create-next-app --example cms-prismic cms-prismic-app
yarn create next-app --example cms-prismic cms-prismic-app
pnpm create next-app --example cms-prismic cms-prismic-app

Configuration

Step 1. Create an account and repository on Prismic

First, create a Prismic account and repository with the following command:

npx @slicemachine/init

This command will:

  1. Ask you to log in to Prismic or create an account.
  2. Create a new Prismic repository with premade Author and Post content models.
  3. Connect the Prismic repository to your app.

Optional: To see the premade content models, start the Slice Machine app.

npm run slicemachine

Slice Machine should be available on http://localhost:9999 once started.

Step 2. Populate Content

Go to the Prismic dashboard and select your Prismic repository.

Once in, click on Create new and select the Author type:

  • You just need 1 author document.
  • Use dummy data for the text.
  • For the image, you can download one from Unsplash.

Save and publish the document.

Next, go back to the documents list, click on Create new and select the Post type:

  • We recommend creating at least 2 Post documents.
  • Use dummy data for the text.
  • You can use the Text and Image Slices to create content.
  • For images, you can download them from Unsplash.
  • Pick the author you created earlier.

Important: For each document, you need to click Publish after saving. If not, the document will be in the draft state.

Step 3. Run Next.js in development mode

npm run dev

# or

yarn dev

Your blog should be up and running on http://localhost:3000! If it doesn't work, post on GitHub discussions.

Step 4. Try preview mode

On your repository page, go to Settings, click on Previews, and then Create a New Preview. Fill the form like so for development previews:

  • Site Name: may be anything, like "Development"
  • Domain of Your Application: http://localhost:3000
  • Link Resolver: /api/preview

Once saved, go to one of the posts you created and:

  • Update the title. For example, you can add [Draft] in front of the title.
  • Click Save, but DO NOT click Publish. By doing this, the post will be in draft state.
  • Right next to the Publish button, you should see the Preview button, displayed with an eye icon. Click on it!

You should now be able to see the updated title. To exit preview mode, click on the "x" icon in the purple Prismic toolbar in the bottom left corner of the page.

Step 5. Deploy on Vercel

You can deploy this app to the cloud with Vercel (Documentation).

Deploy Your Local Project

To deploy your local project to Vercel, push it to GitHub/GitLab/Bitbucket and import to Vercel.

Deploy from Our Template

Alternatively, you can deploy using our template by clicking on the Deploy button below.

Deploy with Vercel