DerekAllard.com

Are you a CodeIgniter using Wordpress?

So the gist of this post boils down to me asking “why”.  Presumably you’re using Wordpress to blog.  If you are using it as a pseudo-cms, then you already feel the pain.  What if there was a blogging platform that was superior to Wordpress in security and functionality, and also would give you expertise in a framework that could double as a full-fledged Content-Management-System that you could use commercially with your clients/customers, and was tightly integrated with CodeIgniter… would you be interested?

Then why aren’t you using ExpressionEngine?

Rick Ellis (The “Ellis” in Ellislab and all around grand pu-ba) recently announced what has been widely speculated in the community for a long time, that ExpressionEngine is getting integrated very tightly with CodeIgniter.  This leaves me with the aching question: As a CodeIgniter programmer, what does Wordpress offer you?  Many of us (CI programmers I mean) keep a personal blog where we discuss CodeIgniter and related developments.  When deciding on a blogging platform, there are several good options, but it seems that there are 2 common choices; (1) roll it yourself (this is how I started) or (2) use Wordpress.  I’d like to argue right now for a third, and better, option - use ExpressionEngine.

Wordpress, is obviously blogging software, and frankly, it does a really good job of that if you’re willing to overlook a few critical problems.  It is arguably the most popular stand-alone blogging platform in the world, probably due to its simplicity.  I like Wordpress.  I like that it is opensource, and I like that it is built on PHP and MySQL.  I think it is a good choice for many situations… but not if you’re a CodeIgniter programmer. 

If you are a CodeIgniter programmer, then it means that you are technical.  It means that you understand and value not repeating yourself, and that you want to be productive, and invest your time in a framework that enables that.  You probably manage customers or clients, either freelance or as part of a larger organization.  Um… you’re probably also darn good looking, but that’s neither here nor there. ;)

You probably want to build on your existing knowledge of CI, and stay engaged in concepts that will help that.  Since CI was born from EE, the coding similarities are evident from the first config.php file.  But the real point in my mind, is that ExpressionEngine will grow with you.  Use it as a simple blog now, and leverage it for a enterprise-level CMS later.  Use it as a hobby now, and watch it grow with CodeIgniter later.  In short, why invest your time into staying on top of Wordpress and CodeIgniter, when ExpressionEngine re-uses much of the same concepts and codebase, and can be repurposed for you professionally?

Cost? ExpressionEngine is free for personal use.  Features?  Have you seen this?  Already have legacy data in Wordpress?  No problem, migrating is easy and generally painless.  Simplicity?  If all you are replacing is a blog, you’ll be up and running in 5 minutes.  Best of all, EE is like CI in one really important way.  It knows who the boss is.  It knows who the expert is.  It stays out of your way and lets you do what you do best.

Personally, since getting familiar with EE, I’ve become more productive, and a a better webmaster, more quickly able to deliver what my customers want.

Comments

Lewis wrote on

I guess I’m now a CodeIgniter developer. I did use it for a few weeks, but then built my own to make it fit my needs more. But now at work we played with it a bit more, and I’m so impressed with it now. All the things I originally didn’t like seem to have gone, plus it pretty much handles all the horrible bits for me.

I did try EE but I found one bit of it confusing as hell, I think it was the template bit.

I would try switching again, but I abandoned my blog long a go.

Yannick wrote on

Is this Derek or the diabolical robots trying to make me feel bad for not using EE? lol I’m only kidding.

I’ve been really impressed with EE. I’ve been fiddling around with it locally and it’s quite a nice CMS. While I don’t use it for my personal blog, I am certainly considering it for other projects. And yes, since I love CI so much the better integration is definitely welcome. It’ll be great to use EE as the CMS and then extend it for endless possibilities with CI.

Ed Finkler wrote on

No argument needed for me—I just switched from WP to EE. 8)  However, I’ll say that I think only offering the MetaWebLog API in the pay-for versions is kinda iffy, and might limit folks who switch.  I’m taking the plunge, but it kinda sucks that I can’t use MarsEdit or other apps that use the API.

(Admittedly, I haven’t yet messed with the Blogger API that is offered in Core, but my experience with stuff that only supported the Blogger API has been bad so far.)

aran wrote on

I am using Wordpress and learning CI… The reason for me using Wordpress over EE is that its totally free, and I dont need to pay extra to get modules that interest me like gallery, membership, and mailing lists… This features i expect free when downloading such CMS tools like Wordpress or even EE free…

Eric wrote on

Very good question.  For me I knew of wordpress first and later came across EE and CI. 

I personally wouldn’t mind switching because I do like EE better but some things that I do fear is finding a great template and doing the actual convert, since ee doesn’t seem to support upgrading unless you use a third-party script.

Edward Finkler wrote on

@Eric: In my case, upgrading was really pretty smooth.  The use of the third-party script was quite painless.

@aran: Are you *sure* Wordpress provides those tools?  last I checked, a stock wordpress install didn’t have any kind of gallery support, nor mailing lists, nor anything but *very* minimal “membership” that required significant customization to turn into anything close to a “community” type thing.  I ran a large site of that sort for 3 years on Wordpress, and it required a ton of custom coding and 3rd-party plugins.

Wordpress does benefit from having a much larger community.  On the other hand, the Wordpress codebase is terrible, and tends to make plugin writing and customization much more of a chore than it need be.  But in the end, Wordpress needs to integrate with external systems or have custom plugins written for it to accomplish what you describe—which is exactly what you have to do with EE.  EE happens to be significantly easier to extend nad have a cleaner code base, which is a HUGE win in my mind.

aran wrote on

@Edward Finkler: Forgetting that stuff I mentioned, do I have to pay for Wordpress?

That is the biggest thing that annoys me on the internet, why do people charge for stuff when there is usually a great alternative for free?

Wordpress is a powerful tool, I don’t need to mess with any code, theres a massive library of plugins and themes available, with minimal editing on the themes page…

I will probably have a look at EE… The feature list on EE is nice, but I think the themes and plugins side may let it down…

Also am not to sure about the interface it self and the way it feels using it…

Ed Finkler wrote on

@aran: Do you have to pay for EE?  No.  The core version is free for non-commercial use.

You may find WP suits your needs.  Coming from 4 solid years of WP use, though, I can tell you this:

- EE is far more flexible and powerful than WP
- EE is much easier to cleanly extend
- EE is *more secure* than WP.  WP’s codebase makes it, in my opinion, inherently problematic security-wise.

And anyway, WP and EE are not your only options.  Give Textpattern, Joomla and Drupal a look—they’re all solid projects.

richard wrote on

What if you are using Wordpress MU? Can EE replace that.

aran wrote on

I have tried using Drupal before, used it for a site, but found the lack of templates a let down…

Joomla only really looked at once or twice.

I also tried MoveableType but found the setup too complex to run a basic blog, Wordpress was the easiest to setup and use, plus the amount of plugins and themes just sealed the deal for it.

Ed Finkler wrote on

@richard: no, EE isn’t a good replacement for Wordpress MU.  In fact, the EE license prohibits users—even paying customers—from setting up “weblog sites” along the lines of wordpress.com or livejournal.com, even if it is not a commercial operation.  Even so, EE is not a great option out-of-the-box for that kind of user-maintained, multi-blog site where each blog is essentially a separate site.  You conceivably could get close to it with EE, but the licensing puts the kibosh on it.

I personally don’t like some aspects of the EE license, and I wish EllisLabs would revisit some of the more draconian usage terms of the license.  I’ve come up with a handful of ways I could use EE commercially, only to find them forbidden by the licensing.  None of these things would compete with existing offerings from Ellislabs, so it’s hard to understand why they don’t at least offer a more expensive “unlimited” license.

Derek wrote on

Great discussion!  I’m not familiar with Wordpress MU, but ExpressionEngine can very capably run multi-user sites, and now with 1.6, even multiple sites.

What EE forbids (and maybe this is what Wordpress MU does?), is allow you to set up a custom hosted blogging service, in the vein of Blogger, or Myspace.  The logic for that can be found in our KnowledgeBase, but boils down to “ExpressionEngine does not currently have a management system in place that permits a user to sign up and receive a totally configured weblog.  You’d have to manually set-up each weblog and assign it to a user.”

In short, while it could be made to work, it was not what ExpressionEngine was built for.

Ed Finkler wrote on

@Derek: Wordpress MU is, afaik, what runs wordpress.com (not .org).  It’s a big multiuser blogging service app, like Blogger.

I can see that EE isn’t intended for such a thing, but it seems like a motivated party (like myself) could adapt EE to serve as the foundation for a social networking system.  The KB article talks about why EE isn’t a good out of the box solution, but it doesn’t address why a license holder can’t choose to take their EE install in this direction.  I could understand offering a more expensive “unlimited use” license, but forbidding it outright is confusing and frustrating, especially for folks used to the licenses offered by much EE’s competition in the CMS space.

Elliot Haughin wrote on

Well, I’m a CI programmer, and I’m currently using Wordpress for http://www.haughin.com/

I guess I just haven’t really looked into EE very much. And, I like that WP ha so many templates pre-made for lazy developers who don’t like designing!

I guess I’ll have a look at it tonight after I’ve recorded another screencast.

Elliot

Brian James wrote on

Honestly I think the licensing is part do to the extra support costs needed to commercially support someone running a “blogging service”, and the fact that EE really is more of a full CMS solution rather than a blogging platform.  So it seems their focus currently is more on the needs of commercial/corporate clients running large/busy, business web sites, rather than people building a huge blogging community.

At least that is what I have read into the posts by Rick, and the types of releases like the multiple domain management system.

Jay wrote on

Here’s a few from me, since I’m a long time Wordpress user and guru, but I develop sites with Code Igniter (and my team does too as a standard). Expression engine is something we also offer but we generally get ten times the amount of requests for Expression engine. So here are my rants about the script:

1. The admin control panel is like someone decided to go as far away from easily useable as possible. In Wordpress things are easy to explain, create a page, write, write page. In EE - publish, then click the page tab. It’s not immediately obvious to a client who has never been on the web before. I can’t say to a client ‘here’s a link to publish a page’, I have to say ‘go here, click page’.

Why are you guys refusing to use a sub-menu below the tabs with real links instead of JavaScript switching, or a sidebar for supportive functions to the main function of the page?

2) {exp:weblog:info weblog=”{master_weblog_name}”}{blog_title}{/exp:weblog:info}

Why not just {blog_title} and have it enabled if you want more than one weblog? It clogs up a brilliant template system and it’s templating like this in EE that puts me off.

3) The user guide - http://expressionengine.com/docs/ , is it really as useable, quick and fantastic to navigate as the Code Igniter documentation? Absolutely not.

4) http://expressionengine.com/professionals/ - I should start an expression engine company by the name of ‘11Aaaaa - Expression Engine Development’ and I’d have all the customers. This section is useless if the only thing it is sorted by is Alphabetical order.

5) What happened to comment editing? It looks like an after thought.

6) URL’s aren’t a simple case of editing one or two text inputs, it’s a case of going into the routes files/templates/whatever.

7) Can you get rid of the ‘Expression engine’ mark in the top left? It should be the name of the site, not the name of the script - I don’t want to know it’s a script, I want to know it’s my site’s CMS.

In closing:
I’ve not touched EE myself as I’ve always found Wordpress something I can put onto the internet in less than an hour with a ready made xhtml/css layout, and rarely ever have to teach the client anything once they are into the CMS side of things. Feel free to educate me, but I really see Wordpress as a better system.

As soon as I watched through the Code Igniter screencasts I thought ‘woah great, I have to use that’. When I see the Expression Engine screencasts I don’t get that same impression.

Jay wrote on

For Wordpress* not for EE… ten times more for Wordpress.

Derek wrote on

Thanks for your thoughts Jay.  You raise some good points.  For what its worth, EE 2 is having a sizable overhaul of the UI, and some of the points you bring up are addressed.

Others, like the pro-network, is an evolving system, but I agree with your fundamental criticism.

Thanks for contributing.