Fasty, an open source app builder using OpenResty and ArangoDB
Tags: cms, arangodb, openresty, fastycms
Published: 2020-11-30 10:10:44

---
title: Fasty, an open source app builder using OpenResty and ArangoDB
published: true
description: A complete toolset to create and manage your applications.
tags: CMS, ArangoDB, OpenResty, FastyCMS
//cover_image: https://resize.ovh/r/62ca5490-c029-11e9-b8b8-7dffa8888a54/112
---



# Why I used this weird stack ?

Here a brief history about why I did create this tool. I was a Ruby on Rails developer. I was concerned about performances, ressources used. Crystal language was looking promising, but I wanted to start something new using a different langage.

Few years ago I was in a meeting in Hong-Kong about [ArangoDB](https://www.arangodb.com/) (which I already knew) and an another project called [OpenResty](https://openresty.org/en/). The developer was so excited about it, and it was also a RoR developer... So I was intrigued. How a tool can be better than Rails ? 

After some times I started digging about [OpenResty](https://openresty.org/en/) and I found the excellent framework [Lapis](https://leafo.net/lapis/)

So here I am : I have chose my tools. [OpenResty](https://openresty.org/en/) (using [Lapis](https://leafo.net/lapis/)) and [ArangoDB](https://www.arangodb.com/) for the backend.

# What does Fasty Cover ? 

Before creating [Fasty](https://fasty.ovh) I wrote foxxy. A tool to generate automatic admin UI based on [ArangoDB](https://www.arangodb.com/). It was useful but I was still using my Ruby CMS.

My daily needs are :
- Manage views (Layouts, partials, components, pages)
- I18n
- Manage my backend APIs

So Fasty cover all my needs and much more.

With [Fasty](https://fasty.ovh) you can : 
- Manage views
- Manage I18n content
- Manage backend API
- Manage NodeJS scripts (think about socketIO scripts)
- Upload assets
- Manage datatypes (create CRUDs in minutes)
- Render views on server side (like ERB for Ruby but using Lua)
- Create SPA (it use [RiotJS](https://riot.js.org/) for web components)
- Multi Tenant (with a workflow (eg. DEV => QA => PROD))

# Looks good, but why Lua / OpenResty / ArangoDB ? 

The main advantage of Lua / [OpenResty](https://openresty.org/en/) is that it's very fast and don't consume  lot of RAM (Fasty use 1,5Mb). [OpenResty](https://openresty.org/en/) is a Nginx + some Lua libraries. It's top solid.

Lua also allow you to write procedural code but it can use coroutines to make them asynchronous. So by example http calls won't block your script. It will use Nginx loop and resume your script when ready.

[ArangoDB](https://www.arangodb.com/) is a multi-document NoSQL database. It allow you to manage complex data with ease and work with Graph documents. It come with [Foxx](https://www.arangodb.com/docs/stable/foxx.html) which allow you to host Rest API in the heart of your database. [Fasty](https://fasty.ovh) allow you to manage them and deploy them automatically. It's very fast and reduce the number of http/tcp calls to your database.

# Requirements

There is a docker-compose file, so starting with [Fasty](https://fasty.ovh) is very easy. It can run on a tiny VM. But beware, database will consume some RAM if you use millions of documents.

# What's next ? 

I'm gonna create some videos about how to start with Fasty and how to manage your content, your data, dynamics views & web components.