Since I started playing with it I’ve been a big fan of Sinatra. I’ve built a couple of small applications with it - mostly just prototypes or tools to solve internal problems and been throughly impressed by how easy it is to produce simple apps and to extend those apps with helpers and templates. The only downside is the reminder of the fact that I am lousy with designing HTML/CSS. :) One of the recent prototypes I’ve built is a very simple Puppet status panel. It uses a Puppet report processor to post the time, name of the host and status of Puppet runs to a Sinatra app with a Redis back-end. I’ve called it Bunraku (the word refers to a form of traditional Japanese puppetry). You can query successful (changed), unchanged and failed reports. It refreshes every 5 seconds and displays a maximum of 100 previous runs (all other data is stored in Redis but not displayed).
I hope it proves a useful example for someone and improvements and patches most welcome to it. I have some ideas on how to extend it beyond the very MVP v0.0.1 prototype it is now.