Monday February 09th 2026
Why we use ExpressionEngine at Orionesque
Why We Choose ExpressionEngine: A CMS Built for Real-World Needs
When it comes to choosing a content management system, the options can feel overwhelming. WordPress, Drupal, custom solutions—each promises to be the answer to your web development needs. But after years of building websites for clients across industries, we've found our perfect match in ExpressionEngine. It's not the flashiest choice, and it's certainly not the most talked-about at web development conferences. But here's the thing: it works brilliantly, and that matters more than hype.
Let's talk about why ExpressionEngine has become our go-to CMS and what that means for the clients we serve.
Security You Can Actually Count On
Here's a reality check: your website is a target. Whether you're a small business or a large enterprise, hackers are constantly probing for vulnerabilities. We've seen too many clients come to us after their WordPress site got compromised for the third time, frustrated and worried about their business reputation.
ExpressionEngine takes security seriously from the ground up. Unlike platforms that rely heavily on third-party plugins—each one a potential security hole—ExpressionEngine's core is lean and battle-tested. The development team at Packet Tide has decades of experience, and they're not chasing trends or rushing features to market. They're focused on building something solid and secure. When a security issue does arise, it's addressed quickly and thoroughly. For our clients, this means fewer panicked phone calls about security breaches and more time focusing on their actual business.
Reliability That Lets You Sleep at Night
We all know that feeling when a website goes down at the worst possible time—during a product launch, a major sale, or when traffic spikes unexpectedly. With ExpressionEngine, we've experienced remarkably few of those heart-stopping moments. The platform is built for stability, with a codebase that's been refined over nearly two decades.
What really sets ExpressionEngine apart is how gracefully it handles growth. We've worked with clients who started small and gradually scaled to handling hundreds of thousands of visitors per month. The platform didn't buckle or require a complete rebuild—it just kept humming along. There's something deeply satisfying about building a website that you know will still be running smoothly years down the line, without constant maintenance headaches or emergency updates that break everything.
![]()
ExpressionEngine... simply works
Content Management That Actually Makes Sense
Let's be honest: many CMSs are built by developers for developers. That's fine if you have a technical team managing your content every day, but most of our clients don't. They need their marketing team, their content writers, and their product managers to easily update the website without needing a computer science degree.
ExpressionEngine's control panel is refreshingly intuitive. It doesn't try to be everything to everyone, which means it doesn't overwhelm users with a million options they'll never use. Want to publish a blog post? The workflow is straightforward. Need to update your product catalog? The interface makes sense. We've watched clients go from nervous about touching their website to confidently managing their content in a matter of hours, not weeks.
The Channel system is particularly elegant. Instead of forcing your content into rigid templates, it gives you the flexibility to structure information in ways that match your actual business needs. Whether you're managing a simple blog, a complex product database, or a membership site with different content tiers, ExpressionEngine adapts to you—not the other way around.
Flexibility Without the Chaos
Every client has unique needs. Some want a straightforward company website, others need sophisticated e-commerce functionality, and still others require custom member portals or complex data integrations. The beauty of ExpressionEngine is that it gives us the flexibility to build exactly what each client needs without fighting the platform.
The template engine is powerful but not overwhelming. We can create pixel-perfect designs that match brand guidelines precisely, integrate with any front-end framework we choose, and build custom functionality without ugly hacks or workarounds. When we need to extend the platform, the add-on ecosystem offers well-built, professional options. And when we need something truly custom, ExpressionEngine's architecture makes it straightforward to build.
This flexibility extends to how content is structured and displayed. We're not locked into predefined page types or forced to shoehorn content into templates that don't quite fit. This means we can evolve a website over time as business needs change, without hitting walls that require expensive rebuilds.
The Bottom Line
Choosing a CMS isn't just a technical decision—it's a business decision. It affects your security posture, your operational costs, your team's productivity, and your ability to adapt as your business grows. ExpressionEngine might not have the market share of WordPress or the enterprise positioning of some other platforms, but it offers something more valuable: a reliable, secure, flexible foundation that just works.
For us, that's worth everything. And for our clients, it means websites that serve their business needs today while being ready for whatever comes tomorrow. In an industry full of hype and constant churn, that kind of dependability is refreshing.
Monday November 24th 2025
PHP 8.5 Released
On November 20th 2025 the latest version of PHP was released.
PHP 8.5 moves the language on with many new features, the few I'm pleased with include:
The Pipe Operator - This allows the chaining of operations for far more readable code you can now do this:
<?php
$content - "This is the content we want to play with" |> strtoupper |> str_replace("to play with", '');
echo $content; // Outputs: THIS IS THE CONTENT WE WANT
![]()
PHP 8.5 brings in a nice handful of useful additions.
Also new is an improved URI handler, something we need to play around with often.
<?php
use Uri\Rfc3986\Uri;
$uri = new Uri('https://orionesque.com/blog');
var_dump($uri->getHost());// string(7) "orionesque.com"
Lastly, something that comes under “didn't we have this already…?” Some simple array helpers
<?php$array = [1, 2, 3, 4, 5];
$first = array_first($array);echo $first; // Output: 1
$last = array_last($array);echo $last; // Output: 5
Monday November 10th 2025
ExpressionEngine Tag Caching
I've recently had an interesting project, that required the checking of a 3rd party site to confirm that a user was allowed access to read certain pages. To do this, I wrote a simple Addon, with a single tag that performed the check, by requesting a specific url (basically exampledomain.tld/check/{magiccode}/{anothercode}). Upon success that page would return either a positive response or a negative one.
With my performance hat on, I started to think “Do I really want this running on every page.. potentially waiting for a 3rd party site to respond?” This sent me down a little rabbit hole of learning, this time about ExpressionEngine “Tag Caching”. What is this thing? Well the current ExpressionEngine docs say :
The Tag Caching system lets you cache the output of individual tags. This enables you to display sections of your pages completely dynamically while leaving others to display statically. By caching individual tags you will reduce the amount of scripting and server resources needed to display any given page while maintaining a fully dynamic presentation for things that require it.
Tag caching is time-based, meaning the cache is used for a user-definable time interval. When the time expires, the cache is automatically refreshed.
![]()
Tag Caching lets you take the strain off a server, this has to be a good thing!
What I wasn't sure about was how specific that cache could be, but a dig into the core code, let me to this part of the file “system/ee/legacy/libraries/Template.php” the key take away was seeing that it does cache with a key of the actual tag, and importantly the parameters as per:
// Check the tag cache file $this->cache_prefix = (isset($this->tag_data[$i]['params']['cache_prefix'])) ? $this->tag_data[$i]['params']['cache_prefix'] : ''; $cache_contents = $this->fetch_cache_file($this->tag_data[$i]['cfile'], 'tag', $this->tag_data[$i]['params']);
This means that if I set up the tag parameters, then they would be cached separately i.e. the following two are treated as two unique things to cache:
{exp:myAddon:myTag magicOne="123" magicTwo="345 cache="yes" refresh="10"} is cached apart from {exp:myAddon:myTag magicOne="987" magicTwo="654" cache="yes" refresh="10"}
Happy days!
Friday October 24th 2025
EEConf 2025 - London Edition
October 2025 saw the ExpressionEngine Conference come to London. This annual conference was held in Islington at the Business Design Centre.
I was fortunate to be chosen to be one of the speakers at the event. Definitely a good experience standing in front of a room of smart people and talking tech. My talk was titled “Supercharge Your ExpressionEngine Site: Performance Tips and Tricks”. The details of the talk will be in another article here in the near future. The last time I was “on stage” was way back before the pandemic, so it was great to get back up there!
Conference site: https://eeconf.com
![]()
It was a great honour and pleasure to speak at this event in front of so many smart and engaged people!
This gathering of the great and the good of the #eecms world was a great excuse to talk nerdy to a whole bunch of folks from the community. The quality and range of the talks was high, with subject ranging from running successful teams/agencies, the use of AI in coding (with some humorous and mixed results!) as well as plenty of ExpressionEngine specific content.
I left the conference feeling energised and positive for how the #eecms community is going from strength to strength.
What really makes a good conference alongside the talks and presentations is of course the people and conversations. Huge thanks to those involved in organising the event and the generous companies and people that sponsored the social side of things (yes Beer! 🍻 🍻 🍻)
