Over a million developers have joined DZone.

Calipso, A CMS Based On Node.js

DZone's Guide to

Calipso, A CMS Based On Node.js

· Web Dev Zone ·
Free Resource

Jumpstart your Angular applications with Indigo.Design, a unified platform for visual design, UX prototyping, code generation, and app development.

We're seeing more by the day what amazing things can be done with Node.js.  Recently Clifton Cunningham created Calipso, a Content Management System based on the Node.js server, somewhat similar to Drupal and Wordpress in terms of its speed and flexibility (and simplicity). It utilizes a modular approach, so all core features, with the exception of bootstrapping, theming and forms, are delivered by modules.

It contains a scheduler and feeds module in the core, so content can be drawn from any source. There's a great deal of flexibility in the scheduler, which can call functions exposed by any module. Any module is able to expose RESTful endpoints, in order to simplify the process of API construction.

Calipso is using MongoDB on the back end, and uses Map Reduce functions for menu and tag cloud generation. Very cutting edge.  Calipso doesn't implement caching at this point, but standard PC running the homepage, the basic CMS can handle loads of up to ~180 hits per second.

It also supports the use of stylus in themes, enabling maximum customization through CSS.  The first level of theming allows any module to render content (unstyled) as blocks, that can then be included by a theme in any section. 

For all the details, then please use the following quick links to the user guide:
    •     Introduction to Calipso
    •     What is a Module?
    •     Core Modules
    •     Community Modules

Pertinent links:
    •     Coding Standards
    •     Translating Calipso
    •     Benchmarking Calipso

Take a look at the Indigo.Design sample applications to learn more about how apps are created with design to code software.


Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}