This is the code for my personal blog where I publish posts and experiement with new technology. Over time it has gone through many different iterations with this being the latest (Late 2021). It's build using KeystoneJS as the CMS and NextJS with Incremental Server Side Rendering.
Here are the different commands that are avaialable in the root package.json
file. As a rule each app's commands can be run individually by appending :keystone
or :frontend
. For example, yarn dev
runs the two apps concurrently but yarn dev:frontend
only runs the frontend in dev mode. The same is true for all the other commands:
yarn dev
yarn build
yarn start
The notable exception to these are the application specific commands which still follow the same pattern but only work on one of the apps. For example, yarn generate:frontend
generates types and graphql-request
arguments based on the keystone schema.graphql
file. yarn migrate:keystone
runs the migrations that are generated during development.
The frontend is build using NextJS' ISR data fetching which fetches data from the keystone graphql endpoint using graphql-request
and the types generated by graphql-codegen
.
The UI of the app is built using Chakra-UI React components.
The CMS is build using KeystoneJS which is an extremely versatile NodeJS based CMS.