Skip to content


Subversion checkout URL

You can clone with
Download ZIP
A lightweight CMS, implemented in Sinatra.
Ruby HTML CSS Shell
Latest commit 482892c @gma Simplify attachments route handler
I've been unable to reproduce the big fixed in issue 69 [1] with the
current version of Sinatra (1.4.5).

While removing the conditional that checks for '..' within the path of a
requested file, I also noticed that we didn't need a regex to define the

Nesta - a CMS for Ruby Developers

A CMS for small web sites and blogs, written in Sinatra.

Content can be written in Markdown or Textile and stored in text files (though you can also use Haml if you need to add some HTML to your pages). There's no database; write your content in your editor. Publish by pushing to a git repository.


Begin by installing the gem:

$ gem install nesta

Then use the nesta command to generate a new site:

$ nesta new --git

Install a few dependencies, and you're away:

$ cd
$ bundle

You'll find basic configuration options for your site in config/config.yml. The defaults will work, but you'll want to tweak it before you go very far.

That's it - you can launch a local web server in development mode using mr-sparkle...

$ bundle exec mr-sparkle

...then point your web browser at http://localhost:8080. Start editing the files in content/pages (see the docs on writing content for full instructions).


There's plenty of information on If you need some help with anything just jump on the mailing list and ask.

If you like Nesta you can keep up with developments by following @nestacms on Twitter, and on the blog.


If you want to add a new feature, I recommend that you post a quick message to the mailing list before you start coding. I'm likely to suggest that we implement it as a plugin (to keep Nesta itself lean and simple), so you might save yourself some time if we chat about a good approach before you start.

If you think you've found a bug, please bring that up on the mailing list too, rather than creating an issue on GitHub straight away. You'll probably get a faster response on the mailing list, as I'm the only person who'll see your new issue.

-- Graham (@grahamashton on Twitter).

Something went wrong with that request. Please try again.