🐇 Directus

Directus is best-of-breed F/OSS Content Management Software. Take your database to no-code nirvana instantly, build CMS-powered websites and API-powered applications faster than ever before.

Directus: The Modern Data Stack, Democratized
Directus is an open-source data platform that instantly gives any new or existing SQL database an API (REST+GraphQL) and a no-code data collaboration app. It enables developers and non-technical users alike with tools to easily access, manage, and visualize database content.

There are a lot of Content Management Systems out there. Directus (code) is best in breed, and trusted by large and small companies alike.

Directus CMS screen (source: https://directus.io/studio)

Directus is a very polished and very useful. It's also licensed with GPL3 and has an extension system built in, so you can fork or extend it.

Using Directus is as easy as any other CMS you'll run into:

import { Directus } from '@directus/sdk';

const directus = new Directus('https://example.com');

await directus.items('articles').readByQuery({
  search: 'introducing',
  sort: ['date_published'],
  limit: 1
});

And you get back some well formatted JSON:

{
  "id": 430,
  "title": "Introducing the All New Directus 9",
  "date_published": "2020-11-12T17:56:41Z",
  "author": {
    "id": 43,
    "name": "Benjamin Haynes"
  },
  "summary": "Lorem ipsum dolor sit amet..."
}

If you want to poke around the API more, there's reference documentation for you to peruse.

Running Directus

Directus is docker friendly – you can get started running Directus quickly with the official directus/directus docker image (or you can get started even quicker with Directus Cloud).

To start an ephemeral instance that wont save any data and will clean itself up later:

docker run --rm \
  -p 8055:8055 \
  -e KEY=enter-a-random-key-here \
  -e SECRET=enter-a-more-random-seret here \
  directus/directus:9.21.2

And that's it! you're off to the races. Of course, in production you'll want to do more configuration, but this is enough to get you started (see the full docker-compose configuration and the rest of the docs).