Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Build Status Dependency Status devDependency Status Coverage Status

Expressive is a beautiful CMS for Express and Node.js. Expressive is awesome, extendable, themeable, testable and growing.

Expressive is in a very unstable alpha state

Getting Started

Expressive is not ready for production use, but here is how you can start contributing to Expressive.

$ npm install

The rest of the installation should be hooked into the postinstall process (bower install, etc), and should complete successfully.

To run Expressive, you have a number of options. My favorite is using Nodemon to watch for changes. Expressive even includes .nodemonignore to make sure Nodemon watches the right files and ignores ones that don't matter (usually). You also need to make sure you have MongoDB available somewhere. The Expressive installer should guide you through connecting the database and setting up your first user.

$ DEBUG=expressive:* node ./bin/www
$ DEBUG=expressive:* npm start
$ DEBUG=expressive:* nodemon

Once Expressive is running, open http://localhost:3000/ and follow the setup guide. You'll need to have a MongoDB instance running. Once you're in, you can sign into the administration pages at http://localhost:3000/admin. Most unfinished areas of Expressive will give you a 404 error.


An example extension is included with Expressive, showing how awesome the extendability of Expressive is. Extensions are usually entirely separate Express apps with access to the parent app for hooking in their features.

Much of Expressive's extendability is unfinished, and continuously changing

TODO: Write better documentation.


Checkout the Expressive GitHub Wiki for more information about the development cycle.

To make contributions to Expressive, follow the steps below to get your changes in the CMS. My mission with Expressive is to build a largely extendable CMS, so try to write code that allows for some awesome extensions around it.

  1. Fork the hnryjms/Expressive repo
  2. Commit changes to your fork
  3. Create a pull request back into the original
  4. Win

Make sure to run & write tests for your cool things.


We use the mocha testing framework. To run tests, first install the module with development dependencies.

$ npm install

You can run tests through npm or through mocha. Both will have the same result.

$ npm test
$ mocha test


Expressive is available under the GNU GPL v3.0 License.

See the LICENSE for the more information about the GNU licence legal terms.


An Expressive CMS built on Express and Node.js







No releases published


No packages published