A long-lived project that still receives updates
Nesta is a lightweight Content Management System, written in Ruby using the Sinatra web framework. Nesta has the simplicity of a static site generator, but (being a fully fledged Rack application) allows you to serve dynamic content on demand. Content is stored on disk in plain text files (there is no database). Edit your content in a text editor and keep it under version control (most people use git, but any version control system will do fine). Implementing your site's design is easy, but Nesta also has a small selection of themes to choose from.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Development

Runtime

>= 3.1, < 6.0
~> 3
~> 2.1
~> 4.2
~> 4.0
~> 2.1
>= 0
 Project Readme

File Based CMS and Static Site Generator

Nesta is a lightweight CMS for building content sites and blogs, written in Ruby using the Sinatra web framework.

  • Write your content in Markdown or Textile, in your text editor (drop into HTML or Haml if you need more control)
  • Files are stored in text files on your hard drive (there is no database)
  • Publish changes by putting these files online (Git recommended, not required)
  • Deploy either as a static site (SSG) or by rendering HTML on the server (SSR)

Installation

Begin by installing Ruby, then the Nesta gem:

$ gem install nesta

Use the nesta command to generate a new site:

$ nesta new mysite.com --git  # a git repo is optional, but recommended

Install a few dependencies, and you're away:

$ cd mysite.com
$ bundle

You'll find 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 the mr-sparkle dev server:

$ bundle exec mr-sparkle config.ru

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

You can either deploy it behind a web server, or build a static version of your site:

$ nesta build  # but see config.yml for build settings

Support

There's plenty of information on https://nestacms.com. If you need some help with anything feel free to file an issue, or contact me on Mastodon (@gma@hachyderm.io).

Tests

Contributing

If you want to add a new feature, consider creating an issue so we can have a chat before you start coding. I might be able to chip in with ideas on how to approach it, or suggest that we implement it as a plugin (to keep Nesta itself lean and simple).

-- Graham