Introducing Croogo CMS

This article is also available in the following languages:
By fahad19
Croogo is a free, open source, content management system powered by CakePHP framework.
A few of you may already know about this project, but I thought it would be better to let everyone in the CakePHP community know about it via The Bakery.

The Beginning


Back in 2008, I started developing applications for clients in CakePHP. And most of the projects required basic CMS features like pages, blog, contact forms, user management, etc. I realized I was spending extra time by coding the same thing for every project. So I decided to develop a CMS of my own that I can use as a starting point for my future projects.

I started developing Croogo in early 2009, but I made it open source in October hoping it would benefit the CakePHP community as well as the project itself.

Why CakePHP?


Once you adopt MVC style of development, it is really very difficult for you to go back and code in PHP the normal way. And considering other major PHP frameworks, I found CakePHP easier to learn.

Inspiration


There are hundreds of CMS out there. But very few are developed utilizing popular MVC frameworks. I made a research on other open source CMS in the market, and ended up with this finding:

  • Wordpress has an easy to use admin interface
  • Drupal gives you more control over content
  • Joomla! is easy for administrators when it comes to extending it

I kept these three things in mind when developing Croogo.

Features


It covers most of the basic features that you would look for in a CMS. You can find the full list here: http://wiki.github.com/croogo/croogo/features.

Here is a summarized list:

  • Content: You can create your own content types. Default types are blog, page and node.
  • Taxonomy: categorization of your content
  • WYSIWYG editor (with integrated file/image uploads)
  • Custom Fields for content
  • Multilingual: content in multiple languages (i18n)
  • Comments
  • Syndication (rss feeds)
  • Menu manager
  • Blocks
  • Contact forms
  • File manager
  • User management (includes ACL management for setting permissions)
  • Themes
  • Extensions manager: manages uploading/activating of Plugins, Themes and Locales
  • Web based installer

Roadmap


I have released version 1.2 today. Now the goal is to set up the website with proper documentation and also prepare for the next release, which includes migrating the project to CakePHP 1.3. Next version may also include a redesign of the admin panel.

Links


Comments

  • Posted 02/04/11 06:24:40 AM
    Very nice,superb work.
  • Posted 11/11/10 10:58:22 PM
    This might just be what I'm looking for! Great job!
  • Posted 06/24/10 10:51:03 PM
    I just checked your CMS and I must say it is awesome for building any basic website..
  • Posted 06/09/10 09:52:55 AM
    I just downloaded the CMS and will continue testing it tomorrow. So sleepy :)

    I'm interested in converting existing template to Croogo layout..
  • Posted 05/05/10 10:17:37 AM
    Support Multilingual menu and menu-items?

    Regards!
  • Posted 04/16/10 10:36:09 AM
    Fahad,
    I came, again (already sent you a PM on github), to yell that you are doing a NICE JOB!

    Keep working, the project can change the way we do CMS. And based in a greate framework that CakePHP is, it will not be so hard as the others think.

    So, if you need any help... from designer issues to programming, do not forget to ask.

    Regards,
    João Pedro Barros from Brazil, with happyness.
  • Posted 04/09/10 07:04:47 AM
    I like it. The way of theming is also a nice and easy way.
    We will give it a try and change your cms from joomla to croogo.

    The one thing i don't realy like is the form desing of admin sites. But this could also solve during small changes on admin-css.
  • Posted 03/17/10 10:12:39 AM
    This is really well done. I haven't really seen much of the back-end code, but so long as (and it appears) everything follows normal CakePHP convention...It's very nice. I hope it continues to be built in a manner that is easy to extend and follows normal CakePHP convention and allows for future version of CakePHP to be slipped in (future versions that are not radically different like Cake3).

    I like how it's modeled after Drupal. Honestly a lot of clients and people ask for Drupal because it has such a buzz...(why???) But I can't use it anymore mainly because it doesn't scale. I'm tired of spending countless hours trying to make it work and then breaking or "hacking" Drupal to do something it wasn't designed to do. It does small sites. That's it. Done. End of story. Anyone who says otherwise, come see me.

    This however. Ah, this is beautiful. It will do large sites and it will be rapid to develop with because CakePHP is. So thank you. I hope that I can eventually contribute in some way and I hope that the CakePHP community really pulls together to support this project. It seems like it's very good and flexible. I hope it doesn't go down a road that puts it into a corner, but rather this "modular" approach is maintained and features are added to a nice simple base. Much like you'd now say for a new CakePHP project, "OH, I need a tag cloud. Let's see what the bakery has to drop in and just work or even modify." That idea. Beautiful.
  • Posted 03/11/10 11:06:07 PM
    Thank you very much! This is my dream CMS! With CakPHP as core and the advantages of the 3 CMS you mentioned. I'm going to try this out.
  • Posted 02/21/10 07:20:42 AM
    Excellent work!!! I am very excited to contribute to this project
  • Posted 02/19/10 11:57:30 AM
    Awesome, can't wait to try it!
  • Posted 12/31/09 08:33:33 AM
    I'm curious what you think about the performance of your CMS. I noticed it has a page timer in the tail of the page source, which on my server (for the Contact page), hits .7s. That's actually pretty high to load a Contact page.

    Do you have any official recommendations for improving performance with your CMS?

    While I wait for your reply, I'm off to test cake's native caching functionality :-D

    EDIT: Changing the core config to use Memcache instead of file caching, resulted in initial page loading in .85s, and subsequent loads at .55s, so that helps. Still seems quite high, as I'm used to .01-.1s load times :-)
    • Posted 01/01/10 08:56:59 AM
      I'm curious what you think about the performance of your CMS. I noticed it has a page timer in the tail of the page source, which on my server (for the Contact page), hits .7s. That's actually pretty high to load a Contact page.

      Do you have any official recommendations for improving performance with your CMS?

      While I wait for your reply, I'm off to test cake's native caching functionality :-D

      EDIT: Changing the core config to use Memcache instead of file caching, resulted in initial page loading in .85s, and subsequent loads at .55s, so that helps. Still seems quite high, as I'm used to .01-.1s load times :-)

      In Cake you should only see a timer if it's set to debug, which then it will be much slower. Also, is OPCODE caching enabled? It's difficult a page will take that long in CakeP unless his CMS is doing a ton of work.
    • Posted 12/31/09 10:50:33 AM
      Glad to know that you liked it.

      Caching will be implemented in the next version which will give this cms a significant performance boost. and also, I believe CakePHP 1.3 is more efficient that 1.2 which will help.

      Use github for submitting issues: http://github.com/fahad19/croogo/issues
      • Posted 02/21/10 11:17:33 AM
        Glad to know that you liked it.

        Caching will be implemented in the next version which will give this cms a significant performance boost. and also, I believe CakePHP 1.3 is more efficient that 1.2 which will help.

        Use github for submitting issues: http://github.com/fahad19/croogo/issues

        Right
  • Posted 12/31/09 08:28:31 AM
    Excellent work, this is a nice looking CMS, has all the basic features you would need in a CMS, and looks like a good platform to expand on :-)

    Great job!

    I assume Google Code Issues is where we report any errors, glitches, etc?
    http://code.google.com/p/croogo/issues/list

Comments are closed for articles over a year old