15cc88909c
<!-- 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>
101 lines
3.8 KiB
Markdown
101 lines
3.8 KiB
Markdown
# A statically generated blog example using Next.js and Builder.io
|
|
|
|
This example showcases Next.js's [Static Generation](https://nextjs.org/docs/basic-features/pages) feature using [Builder.io](https://builder.io/) as the data source.
|
|
|
|
## Demo
|
|
|
|
[https://cms-builder-io.vercel.app/](https://cms-builder-io.vercel.app/)
|
|
|
|
## How to use
|
|
|
|
Execute [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) with [npm](https://docs.npmjs.com/cli/init), [Yarn](https://yarnpkg.com/lang/en/docs/cli/create/), or [pnpm](https://pnpm.io) to bootstrap the example:
|
|
|
|
```bash
|
|
npx create-next-app --example cms-builder-io cms-builder-io-app
|
|
```
|
|
|
|
```bash
|
|
yarn create next-app --example cms-builder-io cms-builder-io-app
|
|
```
|
|
|
|
```bash
|
|
pnpm create next-app --example cms-builder-io cms-builder-io-app
|
|
```
|
|
|
|
## Configuration
|
|
|
|
### Step 1 Install the Builder.io cli
|
|
|
|
```
|
|
npm install @builder.io/cli -g
|
|
```
|
|
|
|
### Step 2 Generate a space
|
|
|
|
[Signup for Builder.io](https://builder.io/signup), then go to your [organization settings page](https://builder.io/account/organization?root=true), create a private key and copy it and supply it for `[private-key]` below. For `[space-name]` create a name for your space, such as "Blog"
|
|
|
|
```
|
|
cd cms-builder-io-app
|
|
builder create -k [private-key] -n [space-name] -d
|
|
```
|
|
|
|
This command when done it'll print your new space's public api key, copy it and add as the value for `NEXT_PUBLIC_BUILDER_API_KEY` into the .env files (`.env.production` and `.env.development`)
|
|
|
|
```
|
|
BUILDER_PUBLIC_KEY=...
|
|
```
|
|
|
|
### Step 3 Run Next.js in development mode
|
|
|
|
```bash
|
|
npm install
|
|
npm run dev
|
|
|
|
# or
|
|
|
|
yarn install
|
|
yarn dev
|
|
```
|
|
|
|
Your blog should be up and running on [http://localhost:3000](http://localhost:3000)! If it doesn't work, you can post on [GitHub discussions](https://github.com/vercel/next.js/discussions).
|
|
|
|
### Step 4 Try preview mode
|
|
|
|
To try preview mode at any time while editing in Builder.io press `view current draft`, if you changed the secret defined in [constants.js](./lib/constants.js) you'll need to also change it in your `Post` [model settings](https://builder.io/models).
|
|
|
|
To exit the preview mode, you can click **Click here to exit preview mode** at the top.
|
|
|
|
### Step 5 Deploy on Vercel
|
|
|
|
You can deploy this app to the cloud with [Vercel](https://vercel.com?utm_source=github&utm_medium=readme&utm_campaign=next-example) ([Documentation](https://nextjs.org/docs/deployment)).
|
|
|
|
#### Deploy Your Local Project
|
|
|
|
To deploy your local project to Vercel, push it to GitHub/GitLab/Bitbucket and [import to Vercel](https://vercel.com/new?utm_source=github&utm_medium=readme&utm_campaign=next-example).
|
|
|
|
**Important**: When you import your project on Vercel, make sure to click on **Environment Variables** and set them to match your `.env.local` file.
|
|
|
|
#### Deploy from Our Template
|
|
|
|
Alternatively, you can deploy using our template by clicking on the Deploy button below.
|
|
|
|
[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/git/external?repository-url=https://github.com/vercel/next.js/tree/canary/examples/cms-builder-io&project-name=cms-builder-io&repository-name=cms-builder-io&env=BUILDER_PUBLIC_KEY&envDescription=Required%20to%20connect%20the%20app%20with%20Builder.io&envLink=https://www.builder.io/c/docs/custom-react-components#api-key)
|
|
|
|
### Related examples
|
|
|
|
- [WordPress](/examples/cms-wordpress)
|
|
- [DatoCMS](/examples/cms-datocms)
|
|
- [Sanity](/examples/cms-sanity)
|
|
- [TakeShape](/examples/cms-takeshape)
|
|
- [Prismic](/examples/cms-prismic)
|
|
- [Contentful](/examples/cms-contentful)
|
|
- [Agility CMS](/examples/cms-agilitycms)
|
|
- [Cosmic](/examples/cms-cosmic)
|
|
- [Strapi](/examples/cms-strapi)
|
|
- [ButterCMS](/examples/cms-buttercms)
|
|
- [GraphCMS](/examples/cms-graphcms)
|
|
- [Kontent](/examples/cms-kontent)
|
|
- [Ghost](/examples/cms-ghost)
|
|
- [Blog Starter](/examples/blog-starter)
|
|
- [DotCMS](/examples/cms-dotcms)
|
|
- [Enterspeed](/examples/cms-enterspeed)
|