We had big plans for this year. We were going to launch Craft Cloud, Craft 4, and Commerce 4. We were going to celebrate in Amsterdam at Dot All.
2020 had different ideas.
The year started off normal enough. We launched Craft 3.4 and Commerce 3.0 in late January, and then headed to Melbourne for our Dot One conference. Just a few weeks later we were making the call to postpone Dot All, and pause upcoming hiring decisions, while we waited to see how well our business was fit to weather a pandemic.
We consider ourselves very blessed to say that the year was kind to us, business-wise. It turns out that the web industry is a pretty good place to be at a time when the web is becoming increasingly critical to everyday life. Our revenue grew 25% over last year, which enabled us to bring on four new people, as well as donate to several causes we care deeply about, from voter rights to social justice groups.
Our plans for the year changed significantly as we considered how we could best serve our community (and each other) through these times, which meant delaying the big releases and focusing on smaller improvements, plus an extension of our Craft 2 and Commerce 1 support windows.
Here’s a look at some of the more notable things that happened.
People
Our team grew from 10 to 14 people this year.
- Matt joined in January from Texas, to focus on improving documentation and creating other educational resources for the community.
- Matsuko joined in September from British Columbia, to lead our effort to improve the accessibility of Craft’s control panel.
- Dale joined in October from the Philippines, focusing on Commerce maintenance and support.
- Tommy joined in November from Melbourne, bringing a friendly new face to our support team, as well as a new language—Japanese!
On a personal note, y’all are an absolute joy. I couldn’t imagine working with a more talented, friendly, and hilarious group of people. You’re the best!
Craft CMS
Craft had two big updates this year. 3.4 introduced an improved look and feel to the control panel, asset edit pages, the Queue Manager, and more. 3.5 introduced the new Field Layout Designer, new accessibility preferences, GraphQL mutations and other improvements.
We’re just about done with Craft 3.6, which will introduce improved entry creation and user management workflows, new CLI commands, Twig templating and GraphQL features, and PHP 8 support.
Craft 3.6 should be released in January, at which point we’ll be ready to really focus on Craft 4, which is going to feature some big workflow, content modeling, and accessibility improvements.
Craft Commerce
This was an important year for ecommerce, and Craft Commerce brought it with a slew of exciting releases:
- 3.0 was released in January, adding back-end order editing and creation, GraphQL support, customer management, and more.
- 3.1 was released in April with order editing improvements and discount condition formulas.
- We released a new TaxJar integration in April, and a Paystack integration in June.
- 3.2 was released in August with PDF improvements, email previewing, and more.
With Dale on board, the Commerce team is up to three people now, and they’re full steam ahead on Commerce 4.
Over the past few months, Matt has been rewriting the entire Commerce documentation, and we’re thrilled to announce that it’s now live! Perhaps for the first time, we’re super proud of where the Commerce documentation stands.
Ben and Nathaniel have also been working on a new Commerce demo site, which will be launching early next year. It’s for a fictitious bike shop called “Spoke & Chain”, featuring Marin Bikes.
Release Versioning
Since 3.0, we have avoided making any breaking changes to documented APIs, which has been our interpretation of “semantic versioning”. But there’s a ton of plugins and modules out there that are pushing the needle, often in ways we didn’t anticipate. So whenever we make a big change, it ends up having unintended consequences.
That in and of itself isn’t bad as far as we’re concerned; as a plugin/module developer, it should be understood that if you’re going to go off the beaten path, your code is going to be at greater risk of breaking by a future update.
The problem is that customers don’t know what risks the plugins they’ve installed are taking. And sometimes any unexpected breaks aren’t discovered until after they’ve gone through the effort of updating Craft, which can put them in a bind.
So starting with Craft 4 and Commerce 4, we’re introducing a change to how we version our “big” updates. We’ll keep releasing them about twice a year, but we’re going to start versioning them as major releases rather than minor releases. So the next big update after Craft 4.0 is going to be 5.0, not 4.1, for example.
That means:
- Plugin developers are going to need to start releasing updates that explicitly say they are compatible with the new version.
- Site developers won’t be able to update to the new version until all the plugins they’ve installed have released compatibility updates, saving them from unexpected breaks.
- It’s going to be a lot easier to identify plugins that have become abandonware, because they won’t get updated.
There will still be minor Craft releases, but they will actually be…minor. So at a high level, here’s our versioning strategy from 4.0 onward:
Release Type | Description |
---|---|
X.0.0 (major) | Big, sweeping changes on the scale of Craft 3.4 and 3.5. Released about twice a year. |
X.Y.0 (minor) | Minor behavioral changes, but totally safe to update to without worrying about anything breaking. Released every couple weeks. |
X.Y.Z (patch) | Bug fixes only. Released as needed. |
We realize this will likely result in more sites being unable to run the latest version of Craft, as they wait for plugins to release compatibility updates (or find replacements), so our support policy will be changing as well. Each major version is going to come with at least a year of support after the next major version has been released.
Craft Cloud
We gave an update on Craft Cloud in March. That sparked several conversations with customers, leading us to realize that what we were building—a way to run headless Craft as a service without any DevOps—didn’t really align with what our customers actually wanted.
So we’ve course corrected, focusing on the actual needs of our customers. This time we’re going to keep quiet about it until it’s ready, so we don’t risk further confusion. And that’s all I have to say about that.
Plugins
139 plugins were added to the Craft Plugin Store this year. Here’s a few of our favorites:
- Sprig by Put Your Lights On has taken the Craft community by storm this year, introducing a new way to create reactive Twig templates, powered by htmx. Check out Ben Croker’s extendsConf video for a great overview.
- Formie by Verbb joined Freeform and Sprout Forms as a beautiful new form creation plugin.
- Imager X by SpaceCatNinja adds advanced image transformation and optimization features.
- Reasons by Mats Mikkel Rummelhoff of Værsågod finally made its way to Craft 3 this year, making it possible to create conditional fields in your field layouts.
- CP Filters by Masuga Design gives authors a way to filter entries, categories, users, and tags in the control panel.
Other Cool Stuff
- We donated 33 Craft Pro licenses to COVID-19-related projects this year.
- The W3C announced that they will be using Craft CMS to power an upcoming w3c.org redesign, being designed and developed by Studio 24.
- There are 59 new agencies in the Craft Partner Network.
- There’s a new documentation site for Craft, Commerce, and Nitro documentation, as well as a new Intro to Craft CMS tutorial.
- We launched Craft Nitro 1.0 in August, and we’re close to launching Nitro 2.0.
- We launched an official Gatsby source plugin in November.
- You can now subscribe to plugin RSS feeds from your favorite RSS app.
We know this hasn’t been an easy year, but we’re extremely grateful for the Craft community for all the support you’ve given us. It’s thanks to all of you that we get to keep building these tools and services. We wish you all a healthy, happy, and prosperous 2021.