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:

If you’ve got any questions or feedback please send us a tweet, or a message on GitHub.

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) – Nesta automatically converts it into standards compliant HTML.
  4. There’s no need for a database.
  5. It’s easy for developers to re-style and modify.

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).

You’ll need Ruby, and a few Ruby libraries (known as “gems”). Once you’ve installed Ruby, download and install the rubygems packaging system. Then use the gem command to install a few gems:

$ sudo gem install builder haml maruku rspec shotgun sinatra vlad

If you’d also like to be able to run the software tests you’ll need these gems (optional):

$ sudo gem install rack-test hpricot rspec_hpricot_matchers

Use git to retrieve the code, then configure and launch the server:

$ git clone git://github.com/gma/nesta.git
$ cd nesta
$ cp config/config.yml.sample config/config.yml
$ rake setup:sample_content
$ shotgun app.rb

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.

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