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:
- Follow @nestacms on Twitter.
- Watch gma/nesta on GitHub (click here to toggle watching on/off).
Features
- Gives your site a logical structure, tuned for Search Engine Optimization.
- Create your content in a text editor – publish by dropping the file into a folder on your server.
- Write your content in plain text (Markdown or Textile) – Nesta automatically converts it into standards compliant HTML.
- There’s no need for a database.
- 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.
Frequently Asked Questions
Common (ahem) questions and answers about Nesta (or “stuff that didn’t fit anywhere else”). Got a problem? Check in hereā¦
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.
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.
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.
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.