Nick: Nearly Headless CMS

Introduction

Nick is a (nearly) headless CMS written in Node.js which provides a RESTful hypermedia API. The API is compatible with the REST API of the Plone CMS and can be used together with the web frontend Volto.

Documentation

https://docs.nickcms.org

Getting started

A live demo of Nick with the latest release is available at:

https://demo.nickcms.org

Example GET request on the portal root

curl -i https://demo.nickcms.org -H "Accept: application/json"

Installation

Prerequisites

Create Database

$ CREATE DATABASE nick;
$ CREATE USER nick WITH ENCRYPTED PASSWORD 'nick';
$ GRANT ALL PRIVILEGES ON DATABASE nick TO nick;

Bootstrap Installation

$ yarn bootstrap

Development

Run backend

$ yarn start

Testing

$ yarn test

Yeoman Generator

If you want to create your own project and use Nick as a dependency you can use the Yeoman generator package for that. This way you are able to customize your project without making changes to the core of Nick.

Installation

First, install Yeoman and @robgietema/generator-nick using npm (we assume you have pre-installed node.js).

$ npm install -g yo
$ npm install -g @robgietema/generator-nick

Creating a new project

$ yo @robgietema/nick my-nick-project

This will bootstrap a new Nick project inside the current folder.

Boostrap the project

Create a database and a user with the correct permissions for your project (see above for details) and then bootstrap Nick with:

$ cd my-nick-project
$ yarn bootstrap
$ yarn start

Contribute

Support

If you are having issues, please let us know via the issue tracker.

License

The project is licensed under the MIT License.