Pixel & Tonic released the first public beta of Craft 3 on January 31st, 2017; it’s the latest iteration of the Craft CMS platform. I’ll briefly talk about some of the features that Craft 3 brings to the table, but the core of this article will address what I think you should be doing with Craft 3, depending on who you are.
Craft 3 is available for your downloading pleasure right now; it’s currently at 3.0.0b3 as of this writing, but I expect relatively frequent releases. Thankfully, due to Craft 3’s adoption of Composer to handle updating & installing both Craft 3 and plugins for Craft 3, updating is pretty easy.
Pixel & Tonic has stated that they expect a General Release in 6-9 months. The first question many people ask is “Can I use it for a project now?” I’ll just crib P&T’s answer to this one:
Technically you could. We wouldn’t recommend it though. That’s what stable releases are for. Craft 3 Beta is a beta. There are many bugs. But it’s feature complete. So this is the point where we stop breaking things and start fixing them.
So What’s New?
The most all-encompassing change in Craft 3 is that it is rewritten on top of Yii2, the high performance, component-based framework that Craft uses. In addition to the speed improvements from Yii2, P&T has also spent a whole lot of time optimizing Craft 3 as well.
So we’re looking at some significant performance improvements in terms of Time To First Byte (TTFB), query speed, but it also has been optimized to use less memory. That means you can spend less on your VPS hosting for Craft sites.
Craft 3 also boasts the new Multi-Site capability, allowing you to run multiple sister-sites from a single Craft CMS install (with full localization capabilities, which have also been enhanced for Craft 3).
There are a host of other new features; check out the Craft 3 beta page for details. My favorite pet feature is the fact that the new Image Editor includes the ability to pick Focal Points for images:
What should frontend developers do?
If you’re a frontend developer, I think you should consider Craft 3 in its current state as something to look into on your downtime.
There will still be plenty of bugs; it certainly isn’t something you’re going to want to rush to start using. Cutting-edge software is one thing; bleeding-edge software is another.
There won’t be a whole lot of frontend changes that you’ll need to make to your websites to upgrade them from Craft 2 to Craft 3. Twig is still there as your frontend templating language, and there have been only a few minor changes you’ll need to keep in mind as frontend developers.
What I would suggest instead is that you take an existing Craft site of yours, and go through the upgrading from Craft 2 process so you can learn what is involved. Then when it’s time to sell your clients on paying you to upgrade their website from Craft 2 to Craft 3, you’ll have a solid understanding of what is involved.
Obviously do the upgrade in local dev or in a staging environment; and start to get yourself familiar with Craft 3. The good news is that from a frontend and UI perspective, not a whole lot has changed. And of course, if you find any issues, report them on the Craft 3 Issues page.
The bad news is that because there are not a whole lot of client-visible new features in Craft 3, you may have your work cut out for you selling your clients on upgrading. However, I think the performance optimizations and other niceties in Craft 3 are compelling enough.
Additionally, the best thing that you can do from a security and maintainability point of view is to keep your software updated. If you don’t have a support contract or retainer, you might consider broaching the discussion.
Not keeping your software up to date is akin to leaving a car to sit and rust in a field. You’ll have much better results if you do regular maintenance.
Pixel & Tonic has mentioned that after the Craft 3 General Release, they plan to support Craft 2 with security updates & bug fixes for 1 year. So that might be something you can use to sell Craft 3 to your clients as well.
The biggest thing you will likely be waiting on (in addition to P&T shaking out all of the bugs) in the next 6-9 months is for plugin developers to migrate your favorite plugins to Craft 3.
What should plugin developers do?
If you’re a plugin developer, the time is now to grab Craft 3, and start chipping away at your tech debt. Craft 3 beta is stable enough for development use, and there is a lot that has changed in how plugins work.
Plugins now can have first-class Yii2 components, and many of the layers of insulation provided by Craft 2 for plugins have been stripped away. This has been done both for performance reasons, and also for API consistency.
As Brandon Kelly has stated, “The training wheels are off”
So march on over to the Plugin Development documentation for Craft 3, and dive in. There is quite a bit to learn if you’re relatively new to Yii or concepts like namespaces in PHP, but it’s really not so bad.
I have also found that the more I learn about Yii2, the smaller and more concise my code gets. It’s quite satisfying.
I would also suggest running over to pluginfactory.io and using it to generate the scaffolding for your plugins. It can generate plugin scaffolding for both Craft CMS 2.5.x and Craft CMS 3.x (compatible with the Craft 3 beta). I use it as the basis for all of my plugins, just filling in the bits that make my plugin unique.
However, if you just want to use it to generate a plugin to “see how things work,” that’s fine too. It really is an extremely useful tool for creating plugins for Craft CMS. I’m horribly biased, but I made it to help save me from the busywork of plugin development. The code it generates conforms to P&T’s Coding Guidelines.
There’s also a master list of Plugins that have been ported to Craft 3 already that can serve as a resource to look at how someone else solved a problem you may be facing.
Get to it!
I’m personally very excited by Craft 3, primarily because it’s offering up an amazing base for the long-term future of Craft CMS.
Hopefully you’ll get a chance to kick the tires, and will share my enthusiasm!