# Content Management Systems
Software used to manage the creation and modification of digital content (Wikipedia def). We are looking into this to see how we can interactively work with databases in the configurator web application.

## List of candidates to compare

We are looking at these various aspects:

Open Source, Headless, Design System, Flexible Data Source (SQL-preferably since we work with MariaDB)

### Top

* Strapi (Joyce)
* Keystone (Maria)
* Directus (Maria)

### Others

* Flextype (Joyce)
* Apostrophe CMS (Maria)
* Enduro.js (Joyce)
* Sonic.js (Maria)
* AdminBro (Joyce)

### Summary table of comparison articles
| CMS | Open Source (License) | Headless | Design System | Flexible Data Source | Website | Notes | GH stars | GH forks |
| ----- |  ------  |---------| -------- | --- | --- | --- | --- | --- |
|**Strapi**| Yes (MIT License) | Yes | Flexible (React/Vue/Angular) | SQL \& NoSQL compatible | https://strapi.io/ | written in JavaScript, free version has 3 roll levels (super admin, editor, creator), pricing model is based around service \& support | 29.3K | 3.7K |
|**Keystone**| Yes (MIT License) | Yes | Flexible (React/Vue/Angular) | PostgreSQL \ MongoDB   | http://keystonejs.com | Written in JavaScript. Was built on Express and MongoDB. | 14.8K | 2.3K |
|**Directus**| Yes (GNU General Public License) | Yes | Vue??? | SQL | http://www.directus.io | Written in PHP | 7.4K | 709 |
|**Flextype**| Yes (MIT License) | Yes (only) | ??? | Seems to be only for SQL-based DB | https://flextype.org/en | Coded in PHP, Relies on donations | 367 | 62 |
|**Enduro.js**| Yes (MIT) | No? | Handlebars, Sass, Gulp, Bootstrap, Angularjs, Browsersync, Express, Jasmine, Git, Npm and Heroku | flat file system? | http://www.endurojs.com/ (super awesome demo here: http://mirror.endurojs.com/)| written in JS, multi-lingual support, BUT does not seem to be maintained regularly-last update Jan \'19  | 675 | 115 |
|**AdminBro**| Yes (MIT) | No | React | Mongoose, Sequelize, TypeORM | https://adminbro.com/ | Written in TypeScript and JS | 2.1K | 182 |
|**Apostrophe CMS**| Yes (MIT License) | Yes | React/Vue/etc | MongoDB | https://apostrophecms.com/ | Written in JavaScript** | 3.3K | 432
|**Sonic.js**| Yes (MIT License) | Yes | Angular, React, Vue, Mobile, IoT | MongoDB, MySQL, SQL Server, Cloudant, DashDB, DB2, Informix, Oracle, PostgreSQL, Redis, SQLite3, Flat File (Json), In-Memory | http://sonicjs.com/ | Node.js, Javascript based | 944 | 488 |-->

#### Recommendations

Based on the research, **Strapi** comes out on top in terms of optimizing all the aspects plus not expanding the langauge/tech stack. **Keystone** is perhaps also not appropriate because it would require us to switch over to PostgresSQL from MariaDB. While Directus is also a nice option, the GPUv3 license requires any project using it to also be open source. The other options do not have strong dev community support in comparision and/or are written in languages other than JS.

### Further CMS Systems
| CMS | Open Source (License) | Headless | Price | Design System | Flexible Data Source | built in API | Website | Notes | GH stars | GH forks |
| ----- |  -----  | --------- | --- | -------- | ----- | --- | --- | --- | -- | -- |
|**Craft**| No | Yes & No | $299/p.P. | Flexible (React/Vue/Angular) or built in Twig | MySQL with InnoDB, MariaDB, PostgreSQL | GraphQL/REST/JSON | https://craftcms.com/ | written in JavaScript | - | - |
|**Ghost**| Yes (MIT License) | Yes & No | free when self hosted. | Flexible (React/Vue/Angular) | SQLite, MySQL, Custom | REST | http://ghost.org | Written in JavaScript. | 37K | 8K |-->
