Installing and getting up and running with Flint couldn’t be any easier. Assuming you have Node.js installed, you’ll want to run:

npm install flintcms

Entry Point

Every JavaScript app needs an entry point. You’ll want to create a new JavaScript file, probably index.js, at the root of your project and fill it with something like this:

const Flint = require('flintcms');

const flintServer = new Flint({
  siteName: 'My Amazing Flint Site!'


That’s the basics right there! When you’re ready, you can run the server by running node index.js in your terminal. By default your newly created site will be accessible from https://localhost:4000.


You will also need a separate .env file to store sensitive environment variables, like database connection details. When your server starts, it will generate a .env file for you if you don’t already have one. Here is what it would look like:

# Secret settings

# Debug settings
DEBUG= ...

# Mongo Credentials
DB_HOST= ...
DB_USER= ...
DB_PASS= ...

# Email Credentials

For a Mongo database, mLab is suggested but by no means mandatory. As for emails, Flint uses the Nodemailer package which supports various SMTP services. For SMTP, Mailgun has a free tier, and if you’re having trouble setting it up feel free to email me and I can give you Flint-specific Mailgun credentials.

Accessing Admin UI

Before you can access the FlintCMS admin UI, you need to create a new admin user. Make sure to start the app via node index.js and head to http://localhost:4000/admin/install. Follow the setup instructions to create an new admin user.

Afterwards, you should be able to sign in to the admin panel by going to http://localhost:4000/admin and entering the credentials you previously created.

If you’re having trouble with any of these steps, please open up an issue detailing your experience.

Find a mistake or want to help improve this documentation? Suggest changes on GitHub.