Nesta – a CMS for Ruby Developers

Nesta is a lightweight Content Management System, suitable for running small web sites or blogs. Nesta is written in Ruby using the Sinatra web framework.

It’s easy to keep track of what’s going on:

Features

  1. Gives your site a logical structure, tuned for Search Engine Optimization.
  2. Create your content in a text editor – publish by dropping the file into a folder on your server.
  3. Write your content in plain text (Markdown or Textile) – Nesta automatically converts it into standards compliant HTML.
  4. There’s no need for a database.
  5. It’s been designed to be easy for developers to re-style and extend (just take a look at what topfunky has done with it on the PeepCode Blog).

Quick Start

These instructions assume that you’re using a Unix based operating system (such as a Mac or Linux). It may well work fine on Windows (if you try it please let us know how you get on).

Begin by using git to get a copy of Nesta:

$ git clone git://github.com/gma/nesta.git

To run it you’ll need Ruby (version 1.8 or 1.9), and a few Ruby libraries (which are called “gems”). Once you’ve installed Ruby you just need to install the bundler dependency management system, which takes care of everything else for you:

$ sudo gem install bundler
$ cd nesta
$ bundle install

You’ll need a config file and (optionally) some sample pages to admire:

$ cp config/config.yml.sample config/config.yml
$ rake setup:sample_content
$ shotgun app.rb

Now point your web browser at http://localhost:9393 and explore your new web site!

Note that the ./content directory is the default location for storing your web pages, but you can change it in config.yml if you wish.

The documentation is a work in progress. Read on for what we’ve got so far. Configuration and deployment instructions are coming, though you shouldn’t have too much trouble following my article on deploying Sinatra with Vlad in the meantime.

Support

If you’ve got any questions or feedback please send us a tweet, or get in touch on the mailing list (send a blank message in order to join). If you don’t like mailing lists you can always drop me a message on GitHub.

Documentation

Creating Your Content

How to create a new web page, set the page title and headings, add lists and attachments – it’s all here. We also cover how to convert a page into a blog post, adding it to topic specific categories and including it in your site’s Atom feed.

Continue reading

Frequently Asked Questions

Common (ahem) questions and answers about Nesta (or “stuff that didn’t fit anywhere else”). Got a problem? Check in here…

Read the Nesta FAQ

Markdown Cheat Sheet

Markdown is a wonderfully simple approach to creating web pages, written by John Gruber of Daring Fireball. You get on with the business of writing (without any fancy code) and Markdown takes care of producing clean, web standards compliant HTML.

Find out how to create a web page with Markdown

Metadata reference

A full list of the Nesta metadata, which allows you to organise your site into categories and convert simple web pages into blog posts.

Continue reading

Publishing Articles with Git

This article will show you how to store the contents of your Nesta web site in a local Git repository, and publish changes by running a single git command.

Continue reading

Articles on Nesta – a CMS for Ruby Developers

Merging Nesta's categories and articles

My developer friendly CMS (Nesta) has just undergone some really positive refactoring. Articles and categories are a great way to organise a blog; they’re user friendly and search engines love them. So nothing’s changed there; I still want articles and categories. However, I’ve been using Nesta on e-commerce sites recently and have been finding that Nesta, as a general purpose CMS, didn’t quite cut it.

Read about the improvements