Invalid Article.

Introducing Croogo CMS

By Fahad Ibnay Heylaal (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/fahad19/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 1370

CakePHP Team Comments Author Comments
 

Comment

1 Awesome

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
Posted Dec 31, 2009 by Jon Langevin
 

Question

2 Performance?

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 Dec 31, 2009 by Jon Langevin
 

Comment

3 Caching in next version

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 Dec 31, 2009 by Fahad Ibnay Heylaal
 

Comment

4 Performance

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 Jan 1, 2010 by Giuliano Barberi
 

Comment

5 woo!

Awesome, can't wait to try it!
Posted Feb 19, 2010 by Matthew
 

Comment

6 Gratz

Excellent work!!! I am very excited to contribute to this project
Posted Feb 21, 2010 by Pedro Lopez
 

Comment

7 Re:

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 Feb 21, 2010 by Pedro Lopez
 

Comment

8 Re

?
Posted Feb 21, 2010 by Pedro Lopez
 

Comment

9 Great Work!!

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 Mar 11, 2010 by KoPanda
 

Comment

10 New issue tracker and repository address

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

There has been a few changes in the development process. Lighthouse is the new issue tracker for this project: http://croogo.lighthouseapp.com, and also the repository has been moved to http://github.com/croogo/croogo. I have updated the links in the article.
Posted Mar 12, 2010 by Fahad Ibnay Heylaal
 

Comment

11 Well Done

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 Mar 17, 2010 by Tom Maiaroto