Chugging Along

Content creation is now ready to go.  Includes WYSIWYG, and all that ruckus.  Bwahahahaha.


Now using Express, Hogan, others, et al. Should remove the dependency on a headless browser, and expedite development time. More to come!

Life Happened

Sometimes life happens, and you need a break for "real-world" things. Yeah I know. Craziness. Then something gets under your skin, and before you know it, you're back in the thick of it. And don't it feel good?

Bug Fixes and Formatting

You can see the repo. I ain't gonna 'splain it here.


This update saw an admin control panel and the ability to change user passwords. Wut. Yoo need dat stuff.

Wrench On It

A whole slew of updates and tweaks under the hood, culminating toward the ability to support HTML snapshots for SEO and bots. Dern robots. ;-)

First *real* release

After some long nights and obsessive days, nooline reached its first real, deployable, editable release.

Deployed to Nodejitsu Beta

The kind folks over at Nodejitsu let nooline into their private beta.

nooline is born!

From a crazy idea, a desire for something new, and a little inspiration from the node.js community, nooline was begat upon the world.

What's It All About?

Nooline is a platform built for making content management utterly, starkly simple.  It supports multiple users and multiple sites right out of the box.

It's scalable, fast, extensible, and written entirely in JavaScript.

It is currently in a "stable alpha" development phase.

Content Management is Dead, Long Live Content Management

The era of page redirects, mandatory admin dashboards, and content "previews" is over.  Today's content demands that we be able to edit content where it exists on a page, as it looks when it's live, without barriers.  It demands that we shouldn't sacrifice SEO concerns for rich, asyncronous web interactions.  It demands that the framework shouldn't require a learning curve.

An efficient framework doesn't need to sacrifice good architecture for extensibility or user experience, and vice-versa.

Our time is too important to be mucking around with a framework's specific details.  We should be creating new things instead.

The Principles

There is a core set of principles which guide how Nooline is built:

  1. There should be a near-zero amount of training time required to let a content editor use the platform. All controls should be blatantly self-evident in use, and naming conventions should be painstakingly easy to understand.
  2. Don't refresh the page or go to a new one unless it's 100% unavoidable.  Maintain the user's context if at all possible.
  3. Modifying the system should require minimal amounts of work.  Store data in simple structures.
  4. Share code between client and server where possible.  This will keep the codebase smaller and lead to better technical design.
  5. Push as much work to the client as is reasonably possible. This must not impact user experience.
  6. Build components with "Offline-First" in mind.  Follow that with "Mobile-First".  Finally, address wider screens.

For a related and simple set of informing guidelines, see The Unix Philosophy.

How It Works

Nooline is built Isomorphically – that is to say, much of its code can execute both on in the browser and on the server.  It follows patterns found in many MV* frameworks, and relies upon a core set of components with wide-spread community use.

Under the hood, Nooline uses a simple, extensible stack: Express, Backbone, and RequireJS.

Want to contribute?

The following things are officially on the list of things which need doing, in no particular order:

  • Abstract the Timeline into a plugin
  • Create a plugin-management panel
  • Add behavior for editing and creating sites
  • Enable content creation on a page which has none currently
  • Finer grain edited controls (added vs. edited, preview, etc.)
  • Wire up widgets for user creation and management
  • User roles & permissions
  • Published/Unpublished for snippets
  • Better timeout & security checks
  • Broadcast events when content is loading at various points
  • Content editing incrementing bug

Head on over to the github repo and submit a pull request!

By admin on Tuesday, May 5th, 2014 at 12:35:51 pm

In A Little Bit More Detail

Nooline is built on top of NodeJS, using modern web technologies.  Each component it uses is focused on doing one thing only, and doing it well.  It should require a minimal amount of time to create content or extend the platform.

Nooline is built with two key driving factors in mind:

  1. Creating and editing content on a website should be simple enough that my mother could do it (and she ain't techy).
  2. User Experience, Extensibility, and Scalability are not orthogonal.  We can have them in parallel.

This first factor is key; most Content Management Systems nowadays require a mixture of a developer and designer skills, often times with in-depth knowledge of specific framework idiosyncracies.  One language should be enough for the entire system, and it should follow widespread conventions such as adhering to some manner of MV* framework.

The Web today consists of a myriad of device types, many of which have intermittent or often slow connectivity, and tiny screens.  In order to scale a user experience for all of these devices, the framework running it must be able to be easily extended, and capable of scaling with minimal effort.  We need all three.