node package manager

caipi

Caipi - wip

npm version Deps Gitter

What's Caïpi ?

Caipi is an isomorphic, extensible (almost magic) JS stack & CMS.

Very beta minimal demo : caipi-demo.wisewildweb.com ( source )

What's the stack ?

Bundled, configured & among others :

  • ReactJS
  • Webpack
  • MongoDB
  • Babel / ES6
  • Bootstrap
  • SASS
  • ...

What's in ?

Out of the box Caipi provide :

  • Server side rendering,
  • Data preloading
  • Basic back office with WYSYWYG text editor, Media upload, Entity references & collections
  • Easy rendering of contextual & nested data queries
  • REST API
  • True project scalability / inheriting / overriding ( thx webpack & ES6 we can require('$super') :) )
  • CLI to deploy & run in 1 or 2 shell command (yes you need to checkout :) )
  • Automatic project's Dockerfile generation
  • Alias management
  • Basic (but extensible) auth
  • Basic rights levels (anonymous, logged, publisher & admin)
  • Webpack pre-configured build profiles for dev, prod, cordova, server & client
  • Reduced sources size & deps ( Caipi initial projects start with no deps, they inherits them from the global Caipi npm )
  • Simple method to add webServices,
  • Distinct Admin build
  • Image upload & dynamic resize (GM)
  • ...

How it work ?

Using webpack, and mostly the same JS code Caipi package the server and the client side, making most of the datas loading process disappear.

Using a flexible entities definitions system it automatically provide :

  • the back office,
  • the REST back-end,
  • the browser route to list/show the records
  • and simple jsx tags

Ex: You can render records anywhere in the jsx using db query :

import 'Each' from 'ui/Each';
// ...
<Each etty="article" query={query} viewMode="preview"/>

Or using his entity type & id :

import 'View' from 'ui/View';
// ...
 
 <View.article id={id_from_somewhere}/>
 <View.article.preview id={id_from_somewhere}/>
 <View.article id={id_from_somewhere} viewMode="preview"/>

First draft doc : here

Give a try ?

  • Using Docker

To start the Caipi Docker Image (using the last caipi npm).

docker pull caipi/current
docker run -it -p 80:80 caipi/current

or from the Caipi root dir

docker build -t caipi/current .
docker run -it -p 80:80 caipi/current

or from the caipi mini demo project https://github.com/MrNice42/caipi-demo-website


- Using [npm install](./doc/Setup.md)

What's next ?

Will focus on perf, flexibility and scalability.

License ?

Caipi is free under the AGPL terms.

"Early dragon" / partners Commercial licences are available with updates until v2.0.0

Like it ?

paypal

Todo ( come and play ! :) )

Todo for v1.0.0 :

  • User management/panels
  • Query editor
  • Server side hot reload
  • Metas management
  • Better admin
  • Live data update
  • Server Multi-process basic management
  • Animation management
  • Customisable webpacks configs
  • https
  • sitemap & favicons
  • Backup, pull & rebuild services
  • Advanced demos & docs
  • Tests & code clean
  • Bug fixes & optims
  • Minors api & rationalisations updates...

Options for v2.0.0 :

  • elastic search
  • add alloy editor, file drop, etc..
  • Others db bindings / plugins
  • sexy projects templates
  • i18n
  • Better record management
  • lot of stuff...