Apostrophe: An outstanding Symfony CMS with no backend
Update: November 30, 2012 a.KindEndeavor.com is a growing directory of Apostrophe CMS professionals like developers, designers, Testers, & Strategy folks.
Update: January 7 2012 – @dandyMedia did a companion post reviewing the Diem CMS.
Update: December 16 2011 – The demo links no longer work for this post it was pretty old anyway.
Update: this review refers to the 1.0 version, as of Jan 2010 the new 1.5 version is available: http://window.punkave.com/2011/01/18/apostrophe-1-5-released/
Why do I care and where is the demo:
* login info is prepopulated in the login form so you can just press the login button
** The database and media are reset at the top each hour.
Why you care
- The Apostrophe CMS is easier to use, and easier to write templates for than WordPress, Drupal, or Joomla.
- It’s well integrated into the enterprise ready Symfony framework.
- Apostrophe still allows developers to use almost all the features built into Symfony as well as the Zend Framework.
- Expensive features are baked in like:
- It’s open source and easy to customize so it’s ROI is outstanding
How is this going to make me money?
Apostrophe is the easiest to use content management system (CMS) available to the open source community. An easy CMS means that content managers are more likely to use it, which means consumers will get better information and be more likely to follow the sites profit funnel.
For web solutions providers Apostrophe is a CMS solution that bypasses the commodity hell of WordPress, Drupal, and Joomla by providing a unique value differentiation. Apostrophe also has the advantage of being built on an enterprise grade web framework used by sites like Delicious, Dailymotion, Yahoo! Answers, and Yahoo! Bookmarks. Symfony provides a consistent structure that encourages collaboration, and the large community of developers already familiar with Symfony mean help is available.
So what makes Apostrophe so special?
Contextual content management is what. Traditional content management systems have a backend admin interface that users log into to maintain the site. The editing interface has nothing to do with the interface the content will be viewed on. Admin interfaces are also full of features that don’t make a lot of sense to someone not working with web technology every day. Contextual content management mitigates these issues by allowing content to be edited in the same place the content is consumed. To manage menus content editors simply drag and drop menu items where they need to go. Content editors can add and edit content in multiple formats: rich text with a WYSIWYG, plain text, RSS feed, image, slideshow, button, video, pdf, or raw html. These content formats are called slots and are highly configurable in the templates during development. Apostrophe allows developers to control where slots are available as well as modify there behavior. Developers can add options for users to choose from, for example the dev team can specify image sizes of small, medium, and large that content editors can choose from when they add an image slot. Media files are managed through a built in media repository with categories, tagging, filtering by type, and text search. A unique feature of all the Apostrophe admin interfaces is that they use the same stylesheet as the rest of the site so they are visually integrated with the rest of the site.
What if someone makes a mistake?
Apostrophe comes with content version control baked into contextual editing interface. At the top of each content area, Area is Apostrophe jargon, is a History button. Click that and a dialog comes up showing who did what, and when, as well as allowing content editors to click on a revision to quickly review it. To revert to that version simply click the new “Save As Current Revision”. I’ve build content version control, and the user interface has been a problem for me, I never had the budget to do one right, but Apostrophe nails it for free.
How are multiple languages supported?
Apostrophe uses Symfony’s Multi-Lingual architecture. To add or edit a translation a developer needs to add a language switcher to tell Symfony what language is being requested. Then the content editor can switch languages and make the translation just like if the site were a single language. A key benefit of contextual content management is that the translator can see how the size of the translation is effecting the page’s layout.
What about user management?
The very popular sfDoctrineGuardPlugin is utilized to provide user management features like: login, logout, a user CRUD, groups, and permissions. The sfDoctrineGuardPlugin is well tested, widely used and actively maintained. Apostrophe does a very nice job of integrating the plugin into the CMS and it automaticly adopts the design of the rest of the site.
What kind of problems can I expect?
Installation is a little complicated, an experienced Symfony developer will come in handy here. Apostrophe suggests using svnforeigncopy to clone their sandbox project, but I could never get it to work. I suspect that Git might be a better version control system for this application.
I had trouble with the server requirements, specifically missing Netpbm for image manipulation caused the media repository to hang in my WAMP setup. This could have been handled better, but Netpbm just had to be turned off. At the suggestion of the Apostrophe authors I got a $20/mo VPS from ServerGrove and all my (server) problems went away.
Having the admin interface integrated into the frontend means that it’s sometimes in the way. This is easily solved by adjusting the CSS to position the admin buttons.
Another issue with having the admin interfaces embedded in the page is the requirement for additional wrapping <div> tags. This will look like divitis, and make your CSS rules more complicated.
I ran into a couple bugs that I attribute to the CMS being fairly new. I’ve noticed the that the project is updated fairly frequently so I expect the stability to increase quickly.
Lastly, I’m a little concerned that my clients are going to ask me for ways to edit meta tags, like title, description, & keywords. I’ve seen no easy way of accomplishing this, however it seems like a easy feature so I suspect it to be added in the near future. If a client needs it I’m sure I could make this happen without too much effort.
So what do I do when I run into a problem?
The PunkAve crew that authored Apostrophe are very helpful on the Google Group. I usually got responses in under an hour. Before asking for help make sure to go through the Manual, Wiki, Trac bug list, and search the existing Google Group messages.
Apostrophe is my new favorite CMS, well actually it’s the only CMS I would choose to use. I really do not enjoy working with WordPress & Drupal, and Apostrophe is an outstanding alternative. I’m very excited about the new Apostrophe plugins for a blog and a form builder. I’m actually looking for excuses to use them, maybe robertspeer.com is due for a rebuild. A little bird told me about some exciting developments in the Apostrophe world, follow @apostrophenow to be the first to know.
About the author:
Hello, I’m Robert Speer a web professional experienced in leading the development of large web applications. Currently I’m working on a property marketing web application that I plan on integrating Apostrophe into. I’m also accepting project work to fund my bootstrapping efforts, contact me for more information.