Looking for a powerful and very fast CMS ?

Fasty is a multi-tenant CMS / APP Builder built on top of OpenResty, lapis, Lua & arangoDB. It's blazing fast ! No need to use flat file CMS ... Enjoy the power of a true database within the fastest CMS.

GitHub 111 stargazers

Fork me on https://github.com/solisoft/fasty and let's talk about it. If you want to buy me a beer :)

It comes with :

Blazing Fast ⚡️
Multi-tenant Yes
I18n Yes
Page edition (wysiwyg extended) Yes
Translations module Yes
Images / files upload Yes
Form validation (server side) Yes
Datatypes management Yes
RiotJS widgets Yes
Micro caching Yes
etlua view edition / compilation Yes


Todo : Write a nice documentation xD

Build complex websites with ease. Load data from arangoDB using AQL language. Edit your layouts, partials, pages, AQL requests directly from the backoffice. No need to deploy your change.

You want to use bulma.io ? No problem ! Bootstrap ? Be our guest ! Fasty is CSS framework agnostic !

You can also use your favorite JS framework.


This website is running on a tiny VM with a 10s micro caching. It perform at 8000req/s

Datatypes definition

{
  "model": [
    { "r": true, "c": "1-1", "n": "title", "t": "string", "j": "joi.string().required()", "l": "Title", "tr": true },
    { "r": true, "c": "1-1", "n": "barcode", "t": "string", "j": "joi.string().required()", "l": "BarCode", "tr": true },
    { "r": true, "c": "1-1", "n": "desc", "t": "text", "j": "joi.string().required()", "l": "Description" },
    { "r": true, "c": "1-2", "n": "price", "t": "float", "j": "joi.number().required()", "l": "Price" },
    { "r": false, "c": "1-2", "n": "online", "t": "boolean", "j": "joi.number().integer()", "l": "Online?" },
    {
      "r": true, "c": "1-1", "n": "author_key", "t": "list", "j": "joi.string()", "l": "User",
      "d": "FOR doc IN datasets FILTER doc.type == 'authors' RETURN [doc._key, CONCAT(doc.ln, ' ', doc.fn)]"
    },
    { "r": true, "c": "1-1", "n": "image", "t": "image", "j": "joi.string()", "l": "Pictures" },
    { "r": true, "c": "1-1", "n": "content", "t": "html", "j": "joi.any()", "l": "Content Editor" }
  ],
  "columns": [
    { "name": "title" }, { "name": "barcode" }
  ],
  "act_as_tree": true,
  "revisions": 10,
  "publishable": true,
  "sortable": true,
  "slug": ["title"],
  "sort": "SORT doc.order ASC",
  "search": ["title", "barcode"],
  "timestamps": true
}
Fasty! A very fast CMS for developpers & designers

Define your datatype and a UI will be created automatically. You can create as many datatypes you want. It comes with a lot of widgets : text, wysiwyg, html, code, images, files, list, tags ... 

Once created, you can then create a partial to display your data.

You can also create a helper with a partial and a specific AQL request. You are free to create any kind of dynamic content you want. Generated within frontend Single Page application or component, or via the backend.

Enjoy editing your requests and create kinda store procedures

FOR page IN pages
  LIMIT 10
  RETURN page

Define your partial using etlua language. etlua is like erb for Ruby but for Lua lang.

From developer to designer to editor workflow

Define a datatype
Define a data type via a simple JSON file. You have a lot of widgets available ! Text, wysiwyg, images, files, tags, select, etc...

Editors can easily use the generated form to feed data. No need any particular skill to use it.

Designer define the HTML and developers create partials (views) which are .etlua. Dataset will come from an AQL request.

Video

Updates