Guide

"We can make the same software we're making today with dramatically simpler stuff." - Rich Hickey

Stay tuned!

When Jangle is released, this guide will take you through the CMS in more depth.

Here's a preview of how that might look.

Simple and free.

I hope you like clicking buttons- because that's all it takes to start using Jangle:

Deploy to Heroku

Running it locally

You don't need Heroku to try out Jangle, just run it locally!

Run our example (Docker)

  1. Clone the Github repo
git clone https://www.github.com/ryannhg/jangle
  1. Enter the example folder:
cd example
  1. And run everything with Docker
docker-compose up
  1. Jangle should be ready at http://localhost:3000

From scratch (NodeJS + Mongo)

Make sure you have NodeJS v10.15 and MongoDB 4.0.8 installed.

  1. Install Jangle via NPM:
npm install -g @jangle/cms
  1. Roll your own config.yml file:
models:
  Author:
    name: text
    email: email?
  BlogPost:
    title: text
    date: date
    authors: Author[]
    content: richText
  1. And use the jangle command to spin up a thing:
jangle config.yml

Either way you go, Jangle will be running at http://localhost:3000

Stay tuned!

The guide is on its way! 🎉

A quick breakdown

Here's the sample Jangle config.yml from the official example:

models:
  Author:
    name: text
    email: email?
  BlogPost:
    title: text
    date: date
    authors: Author[]
    content: richText

This config file introduces two important concepts for describing content with Jangle:

  1. Models - The types of items you'd like to keep track of.

  2. Fields - The stuff that each of those items store.

Models

When Jangle sees this YAML file, it makes two models:

  1. Author - a List of items that have a name and optional email.

    • name - a required text field.

    • email - an optional email address field.

  2. BlogPost - a List of items that have a title, date, authors, and content.

    • title - a required text field.

    • date - a required date field.

    • authors - a list of relationship fields, that deal with our Author model.

    • content - a richText field, that supports headers, lists, bold, italics etc.

Field Types

Jangle comes with built-in field types, which are covered in the docs section.

In this example, we are using five built-in types:

  1. text - Just a single line of text.
  2. email? - A single email address (The ? is shorthand for "optional")
  3. date - A field for tracking a date value
  4. Author[] - a relationship picker for many Author models (The [] is short for many)

Both the email? and Author[] types use shorthand that we'll see in detail soon.

As you might expect, Jangle can automatically create a backend UI for content-entry, REST API endpoints, and will do all the cool history, user authentication, and publishing stuff that every CMS should support.