What is Fasty ?

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

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 ⚡️
Page edition (wysiwyg extended) Yes
I18n Yes
Translations module Yes
Images / files upload Yes
Form validation (server side) Yes
Datatypes management Yes
RiotJS widgets Yes
etlua view edition / compilation Yes
Micro caching 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
}

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.

Video

Updates

2019-08-15 : Removed redirection for root path to a quicker page rendering (by Olivier Bonnaure)

2019-08-04 : Fix drag & drop HTML code on editor (by Olivier Bonnaure)

2019-07-18 : Edit server side scripts within Fasty ! Edit / Save / Restart ! (by Olivier Bonnaure)

2019-06-20 : The npm fasty-cli allow you now to lock your files ... No one will overwrite your modifications. (by Olivier Bonnaure)

2019-06-13 : Added a new datatype definition attribute "publishable" to allow some workflow. (by Olivier Bonnaure)