Rethinking the Admin Interface

Mar 19, 2007

Over the past few weeks I’ve been doing a major overhaul of the Simplist code base, the CMS I built to run this site. The biggest change is that I’ve been rethinking the way I approach an admin interface.

(Much of my motivation and inspiration for this was drawn from Scott Raymond’s refactoring to REST article.)

Much of what I removed ended up being mostly admin interface code. Using Rails’ before_filter methods to protect dangerous actions (new, edit, delete) is pretty sufficient for a website that is mostly content.

I also found that this allowed me to shorten my workflow when making changes to the site. I could edit a page without having to go through a special interface that duplicated all the information I already had right on the site.

I’ll go over this in much more detail once I make the big upgrade to the site official (probably over the course of a weekend), but the lesson I’ve learned is to give your applications one coherent interface. Sure, hide and restrict functionality as needed, but making one big monolithic wall between users and administrators is almost always overkill and not very DRY.