6 Reasons Why I love ExpressionEngine
Seems like there’s a lot of negativity about ExpressionEngine these days. Or at least, some worrying.
I’ve seen more than a few claims over the years about how this company or that technology was months away from death. More than a few prognosticators have predicted the death of Apple, e-commerce, Google, even the Internet itself.
While EllisLab (EL) is not Apple, I have every reason to believe that ExpressionEngine will be around for a long time. Here are the reasons why I love ExpressionEngine and why it will continue to be a core component for my business.
1. ExpressionEngine continues to improve.
It’s true! In roughly the past year EllisLab has released some significant features including:
- Template Routing
- Layouts
- Math operators in conditionals
- Memcache & Redis support
- Better conditional parsing (no more “advanced” conditionals)
- String operators in conditionals
- Updated Markdown support
- A whole crap-ton of bug fixes, especially around security
EllisLab has listened to the feedback from the community in a big way and has really stepped up to push out frequent and significant updates. Bug fixes may not be sexy, but when it comes to protecting my client’s data, I’ll take a SQL injection fix over a change in the color used in the control panel or a new field type any day.
EllisLab also seems to get crap for not making big announcements or promises when it comes to future versions of the product. That’s fine, I’d rather they stay focused and release the actual software. Code talks, bullshit walks.
2. The product is mature and stable, the template parser is perfect for EE’s core user base.
The Internet rumor mill says that ExpressionEngine 3 will have a new parser (Twig is usually thrown out as a possibility. I’m loath to make predictions, but I’m going to go out on a limb here and say that’s false. What’s more, I think it would be the worse thing EL could possibly do.
Twig is a fantastic template engine, it’s a developer’s dream and a joy to use in Craft. But it’s the wrong engine for EE.
EE has had it’s own engine with a certain consistent syntax since EE 1 (or even p-Machine, not that familiar with it). Thousands of sites have been coded using EE’s unique template parser and syntax. If a new version of EE comes out with a new template engine EL will have to make one of two (terrible) choices:
– Maintain separate codebases, documentation, and support for both engines
– End support for the old engine and force sites that upgrade to recode their sits to the new engine
Either choice would kill EllisLab and ExpressionEngine. EL couldn’t handle the support in the first case without significantly raising their prices and in the second case they’d lose 80% of their core customer base. Customers will bolt for something else (after waiting 5 years as their installed version of EE falls behind on updates) rather than learn a new way to write templates.
I don’t have numbers on this, but I’m willing to bet that a good majority of EE’s core user base are not professional developers. By which I mean development is not their primary duty at their company.
Their job is to keep The Website running and populated with content. They may know HTML and CSS, they may even be able to hack together a jquery plugin or two, but they don’t code full-time. They may not do any technical work beyond The Website.
They know the EE template tags because they’ve spent two years learning it for their job. They have no idea what Twig is; they’d take one look at Twig and *maybe* they’d know enough to guess it’s PHP. They’re not dumb, they’re smart office professionals and they 100% don’t care about anything more than setting up the CEO’s blog by the end of the week.
EE’s template parser is more than up for task and it’s familiar enough at this point the person in charge of running the company’s website can use it. It’s also been worked on and maintained for years and has seen numerous bugs and situations in the field from users. EllisLab knows this and that’s why they continue to invest in improving the existing parser rather than replacing it.
3. The support, official and unofficial are top notch
ExpressionEngine has fantastic support. There’s an official bug tracker (that doesn’t even need an EL account anymore, good!), official paid support (more on that), and a wealth of community support on ExpressionEngine Answers.
EE folks are friendly, warm, really freaking smart, and are nearly fanatical about providing quick, prompt help to other ExpressionEngine users. If can’t figure out a solution, post it on EE Answers or file a support request with EL.
Yeah, if you file a support request with EllisLab you’ll have to pay a monthly subscription (you can cancel at anytime there’s not required minimum term, so really you only pay for it when you need it). I can understand that might rub some people the wrong way, after all EE is a commercial product and for a long time EL ate the support costs.
But support for a complex piece of software is expensive, at some point scale catches up with you and you’ll incur more costs supporting the product (in addition to pushing out new features) than the cost of new licenses will cover.
Considering most issues can be resolved by reading the docs, extra for EE training, reading blogs and asking the very large EE community for help, EL decided to charge directly for support requests. This reduces the number of support request from users who are not serious about putting in the work to resolve their issue. Also the extra revenue helped them staff more support people and it’s directly lead to the improvements in the core product for the last two years.
Also the paid support when you need it is fantastic, I’ve used it once and I’d gladly pay the $49 again if it saves me and my client a day of my time. Most of the time though I’ve been able to find out what I need on my own or through the community.
4. Add-ons, Add-ons, Add-ons
ExpressionEngine’s true power lies in it’s rich and diverse add-on environment, on Devot:ee you can search over 2000 ways to extend ExpressionEngine to do some incredible things.
Some of the most dedicated, professional, smart, fantastic developers I have ever met are commercial ExpressionEngine add-on developers. They make some money, sure, but they put nearly every dollar back into their products through support (for free) and additional features. They write some of the best code I’ve ever seen and more than a few of my clients depend on their work for their business. As a freelancer it’s easy to take the add-ons and the developers in ExpressionEngine for granted, but ExpressionEngine’s add-on community is extremely rare and unique. Don’t take my word for it:
Its pretty bad when a WordPress Security plugin does not function and neither does the developer's support channels.
— Greg (@pcguy8088) February 7, 2015
Luckily, I'm not affected. It's the plugin developer's duty to resolve this free of charge to eliminate risk #badcode http://t.co/uBCnSOu3Z0
— Dan Hanly (@danhanly) December 17, 2014
Not only is Revolution Slider bloated and hard-to-use, its developer also chose not disclose a major security flaw.
http://t.co/BoHrTm4eCh
— James Steinbach (@jdsteinbach) September 3, 2014
I HATE replying to tech support this late on a Friday when the developer can’t answer my question the first time on a PAID #WordPress plugin
— Paulo Elias (@pauloelias) February 9, 2013
Add-on developers make us all look like rockstars to our clients. ExpressionEngine allows us to build some amazing web tools and that brings me to my fifth reason.
5. ExpressionEngine makes me money
I started in ExpressionEngine nearly four years ago thanks to Dennis and Julie Field. My first year as a freelancer I tried taking projects in what I knew at the time, .NET (I had over 8 years experience in ASP/C#/.NET). Unfortunately while .NET is a fantastic framework and I hold it near and dear, it doesn’t suit the freelancer way of life. The projects were awful, hacked together, out-dated monsters that were in desperate need of dragging out to the back of the shed to be put down. Unfortunately as bad as the projects were, the clients where worse. Cheap, completely uninterested in serious investing in the technology running their business, and incredibly demanding.
Working on my first ExpressionEngine product was a dream. It was a CMS to build CMS’s. I loved that it was built on a framework, it separated presentation logic from business logic, it was clean and neatly organized and backed by a real company (remember, I was a born and bred Microsoft dev). What’s more, I was stunned that I was able to build a fully functional site, test it, get paid in a quarter of the time it took my .NET work. Plus the clients were amazing and awesome people. EE is fantastic for helping me deliver a client project on time and in budget and gives me a marketplace to try out my ideas.
6. You guys
My first tech convention was the EE ’12 convention in Austin. I can’t describe the feeling. I’m awkward and shy, I feel out of place in large groups (even tech groups). But the EE crowd was different, I felt like I belonged, I felt like a peer. There were people of vastly different backgrounds and skills all doing what I was doing, trying to figure out a way to live by piloting their own ship.
I just realized something, I don’t love ExpressionEngine. It’s a piece of software, a tool. Saying I love ExpressionEngine is like a carpenter saying she loves her hammer. We work in Craft, WordPress, Laravel, Rails, whatever tool we want to use and whatever tool fits the job.
What I love are you guys, people in the EE community (including EllisLab). I love each and every one of you because you give so much and ask for so little.
Thank you.