/keyconf

A conference schema for Keystone JS

Primary LanguageTypeScript

Keystone Project Starter

Welcome to Keystone!

Run

yarn dev

To view the config for your new app, look at ./keystone.ts

This project starter is designed to give you a sense of the power Keystone can offer you, and show off some of its main features. It's also a pretty simple setup if you want to build out from it.

We recommend you use this alongside our getting started walkthrough which will walk you through what you get as part of this starter.

If you want an overview of all the features Keystone offers, check out our features page.

Some Quick Notes On Getting Started

Changing the database

We've set you up with an SQLite database for ease-of-use. If you're wanting to use PostgreSQL, you can!

Just change the db property on line 16 of the Keystone file ./keystone.ts to

db: {
    provider: 'postgresql',
    url: process.env.DATABASE_URL || 'DATABASE_URL_TO_REPLACE',
}

And provide your database url from PostgreSQL.

For more on database configuration, check out or DB API Docs

Auth

We've put auth into its own file to make this humble starter easier to navigate. To explore it without auth turned on, comment out the isAccessAllowed on line 21 of the Keystone file ./keystone.ts.

For more on auth, check out our Authentication API Docs

Adding a frontend

As a Headless CMS, Keystone can be used with any frontend that uses GraphQL. It provides a GraphQL endpoint you can write queries against at /api/graphql (by default http://localhost:3000/api/graphql). At Thinkmill, we tend to use Next.js and Apollo GraphQL as our frontend and way to write queries, but if you have your own favourite, feel free to use it.

A walkthrough on how to do this is forthcoming, but in the meantime our todo example shows a Keystone set up with a frontend. For a more full example, you can also look at an example app we built for Prisma Day 2021

Embedding Keystone in a Next.js frontend

While Keystone works as a standalone app, you can embed your Keystone app into a Next.js app. This is quite a different setup to the starter, and we recommend checking out our walkthrough for that here.