rsnext/examples/cms-keystonejs-embedded
JTaylor0196 f7baa56792
update example Deploy button URLs (#48842)
### What?
Updates Deploy button URLs for all listed examples here:
https://github.com/vercel/next.js/tree/canary/examples

### Why?
The Deploy URLs are currently broken and result in a failed clone
attempt on Vercel.

### How?
The URLs have been changed from https://vercel.com/new/git/external?… to
-> https://vercel.com/new/clone?…
(Last updated
[here](8eaabe2fb0)
in 2021)
2023-04-26 13:31:44 -04:00
..
pages Run next/link codemod for Next.js 13 on examples (#41913) 2022-10-30 21:00:45 +01:00
public Add Embedded KeystoneJS example (#25351) 2022-09-30 00:45:36 +00:00
styles Add Embedded KeystoneJS example (#25351) 2022-09-30 00:45:36 +00:00
.gitignore Remove incorrect entries for pnpm debug log (#47241) 2023-03-26 22:26:05 -07:00
keystone.ts Add Embedded KeystoneJS example (#25351) 2022-09-30 00:45:36 +00:00
next.config.js Add Embedded KeystoneJS example (#25351) 2022-09-30 00:45:36 +00:00
package.json BREAKING CHANGE: Remove React 17 (#41629) 2022-10-21 22:20:36 +00:00
README.md update example Deploy button URLs (#48842) 2023-04-26 13:31:44 -04:00

Embedded KeystoneJS Example

A Static Blog starter project powered by KeystoneJS:

  • Powerful Admin UI for creating & editing content in dev mode
  • Statically built pages for fast production sites
  • Client-side access to data via auto-generated GraphQL API

Deploy on Vercel

Deploy the example using Vercel:

Deploy with Vercel

How to use

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

npx create-next-app --example cms-keystonejs-embedded cms-keystonejs-embedded
# or
yarn create next-app --example cms-keystonejs-embedded cms-keystonejs-embedded

Next, run the development server:

npm run dev
# or
yarn dev

Open http://localhost:3000 with your browser to see the Next.js site, and http://localhost:8000 to see the KeystoneJS Admin UI.

Make changes in the KeystoneJS Admin UI, then reload the Next.js site to see what it looks like!

Deploy it to the cloud with Vercel (Documentation).

KeystoneJS

KeystoneJS is the best headless content management system around, especially when you're using a component-based front-end like React and Vue. In addition to auto-generating a GraphQL API and providing a powerful Admin UI, KeystoneJS is backed by Prisma, so can work with a range of different databases.

This example uses a local SQLite database (a .db file) to store data. In development mode, the KeystoneJS Admin UI will save data to the local SQLite database file, and in production the KeystoneJS GraphQL & node APIs will read data from it.

NOTE: The local SQLite database must be deployed along with the rest of the code in this example. Usually this means committing it to source control. Due to this reason, it is not recommended to store any private data using this example repo.

For more details, see How to embed Keystone + SQLite in a Next.js app

The code

The key files for this project

.
├─ app.db             # The SQLite database. Commit this with your changes
├─ keystone.ts        # Configure Keystone's data model & other options
└─ pages
   ├─ api
   │  └─ graphql.tsx  # Access your data via a GraphQL API
   └─ post
      └─ [slug].tsx   # Statically generate pages based on your data

Learn More

To learn more about KeystoneJS, take a look at the following resources:

You can check out the KeystoneJS GitHub repository - your feedback and contributions are welcome!