Introduction
The Craft graph, updates-a-go-go, tips, plugins and more.
Have you checked out the Craft usage numbers lately lately? Impressive.
This graph, Craft’s 1,500 stars on Github, plus the increased activity in the Craft Slack jobs channel all suggest a bright future for Craft developers. Want more? Check out the 5,213 sites link in The Craft Advantage section.
In this jam-packed issue, you'll find recent updates for both Craft 3.1.x and Craft 3.0.x. The Craft community has come through once again with more tips, plugins and more. There are also numerous links to the expanding Craft Guides section in the docs.
Did you create a Craft tool, post or plugin? Submit your link suggestion here. ✏️
Thank you to this issue's sponsors. They make this newsletter possible.
fortrabbit is an official Craft hosting partner. When you choose them to host your site, Craft-expertise is part of the package. Check them out.
Solspace Freeform Payments adds the ability to collect payment through Craft using Freeform. It’s now just $59.
Let's hit the links.
-John Morton
Top Stories
devMode.fm // Craft CMS 3.1 + Commerce 2 with Pixel & Tonic
Brandon Kelly & Leah Stephenson from Pixel & Tonic discuss the exciting new features in Craft CMS 3.1 and Commerce 2.
News
Craft 3.1.7
We're now ten releases from 3.1.0, including minor updates.
As the previous issue of Craft Link List was published, Craft 3.1.0 had just been released. Version 3.1 introduced many new features, changes, and improvements, prompting a warning in the changelog to be extra careful with your update process.
If you’ve waited to update, things are looking good now. As always though, database backups are your friend.
Craft 3.0.40 released
Craft 3.1.x is out, but if you're sticking with what you know in the 3.0.x branch, you also have an update which includes the new update
command that you can run from the command line to update your Craft install to 3.1 and higher.
According to Brandon, the primary purpose of the 3.0.x updates are to ease the transition to 3.1.x.
Odds & Ends
This post from the Craft CMS team announces Craft 2 and Commerce 1 have extended "end-of-life" dates. Plus Commerce 2 Gateway Plugins are now free.
Featured Sponsor

Craft CMS Hosting Partner
We've all been there. You push a tiny change to production and it breaks everything. ☝️ Getting help from a Craft hosting partner like fortrabbit makes a big difference.
Get started with a free trial today!
Tools, tips, and fundamentals
Troubleshooting Failed Updates | Craft CMS
Craft Guides, an expanding section of the Craft documentation, has a page dedicated to failed updates. Hopefully, you never need to read this page, but if you do, click the link above.
Project Config | Craft 3 Documentation
Now that 3.1 is official, it's time to review the docs on working with Project Configs.
Inside Soft Deletes in Craft 3.1 | CraftQuest
One new feature of Craft 3.1 is soft deletes, making entry deletion similar to using the trash or recycling bin on a computer.
This video from CraftQuest gives you all the details. You can watch this video for free with a free CraftQuest account.
Environmental Configuration Documentation [Updated]
The differences between environmental variable (i.e. $ROOT_URL
) and an alias (i.e. @rootUrl
) can be confusing. The Craft documentation page for them has been updated to highlight their differences and provides examples of how to use them.
How to Make Changes to php.ini
This Craft CMS guide will help you site fine-tune your server's php.ini
file.
PhpStorm 2019.1 Early Access Program is now open
PhpStorm users rejoice. Twig debugging is coming soon.
Shuttle | A simple SSH shortcut menu for macOS
To use SSH you've got credentials to remember. If you don't use an SSH config file or just like a GUI, check out Shuttle. You can add non-SSH terminal commands as well.
See what files changed on your server in past 24 hours
Recently in Slack, a user reported a denial of service attack on a site. After it was over, one suggestion was to run the following command on the server to see what files changed in the past 24 hours.
find /directory_path -mtime -1 -ls
Still concerned about the safety of your server? If you're on Nginx, check out Andrew's recently updated Nginx config for Craft which has some protections you can add to your basic config. This deep-link highlights customization to stop bots trying to login to a non-existent Wordpress admin panel on your Craft site.
devMode.fm // CSS & CMS Musings with Eric Meyer
In this episode of devMode.fm CSS legend Eric Meyer talks about the early days of CSS, and how it almost died and more. Craft CMS gets a shoutout as well.
Perfecting your technique
Craft CMS on Nanobox: Part 2 – DRY-RUN a.k.a Local Staging
Oto Hlincik continues his series on Nanobox + Craft local development.
Upgrading Craft 2 to Craft 3 with A&M Forms
Sean Smith, aka Caffeine Creations, talks about his Craft 2 to Craft 3 upgrade experience.
A WIP cost calculation for upgrading a site from Craft 2 to Craft 3 ⭐️
If you're trying to price out the cost of upgrading a Craft 2 site to Craft 3, you're not alone. This Tweet, shared by @mijewe, is a first take on calculating those costs.
The Anatomy of Dark Mode (A Craft CMS plugin)
Matt Gray is back with another Craft post, this time he discusses the building of his Dark Mode plugin.
Turn Craft 3 into a headless CMS ⭐️
This post discusses how to "use CraftQL to access content in Craft, and Gatsby to render it into static HTML."
Field Notes: Brand Identity and Ecommerce with Jim Coudal and Noah Bernsohn
The Commerce Minded podcast discusses “why Craft Commerce was the best fit for the Field Notes site.”
Sponsor

Freeform Payments now just $59!
Easily start collecting payments with your Freeform forms in minutes! Accept donations or allow clients to pay invoices, subscribe to a service, pay for memberships and more! The Stripe credit card fields integrate seamlessly into your form and appear like the rest of your fields. When paired with Freeform's many other powerful features, the sky's the limit for what you can do!
Plugged In
Craft Mixins
The Macro Kit plugin provides access to a large number of useful Twig functions that can be easily imported into your front-end templates for use in Craft CMS.
Molecule
Molecule allows you to grab Twig components from outside the template folder. This is useful if you want to keep your Twig partials, CSS, React/Vue files, etc in a single component folder.
Async (Background) Queue
This plugin from Oliver Stark replaces Craft's default queue handler and moves queue execution to a non-blocking background process. The command craft queue/run
gets executed right after you push a job to the queue.
Updating Plugins for Craft 3.1 ⭐️
All the things you should consider as you test your plugins for Craft 3.1 compatibility.
Gonzo — The Pattern Library (Beta)
The Gonzo plugin helps you easily create a pattern library in Craft.
Communicator ⭐️
Will Browar has a new free widget set that replaces 3 widgets that were part of his Guide plugin. It allows you to have a site's Changelog in a widget. A Global widget, that allows communication to all users of a Craft site in the control panel. Lastly, it includes an Email Support widget so your users can reach out for help and automatically include their browser details.
The Craft Advantage
Craftwork: 5,213 Sites Built with Craft CMS
Judd Lyon created an extensive, sortable list of enterprise-level sites that use Craft CMS (as of early Jan 2019), ranked by AHREFS Domain Rating, Majestic Citation Flow, and Mozscape Domain Authority. This data could be very useful when selling your own clients on a Craft CMS solution.
Yii, Twig, PHP & More
Emulating Components in Twig - DEV Community 👩💻👨💻
Jake Dohm takes the idea of DRY JavaScript components and applies that thinking to Twig.
It’s not Craft, but it’s interesting.
Yarn's Future - v2 and beyond
There are Yarn people and there are npm people. This one is for the Yarn folk.
Six Principles for Making New Things
If you work on overlooked problems, you're more likely to discover new things, because you have less competition. If you deliver solutions informally, you (a) save all the effort you would have had to expend to make them look impressive, and (b) avoid the danger of fooling yourself as well as your audience. And if you release a crude version 1 then iterate, your solution can benefit from the imagination of nature, which, as Feynman pointed out, is more powerful than your own.
Taylor Otwell on Testing Laravel Applications
This episode of Full Stack Radio talks about testing. (Passing tests is a good thing. That's about all I know.)
How OneGraph onboards users who are new to GraphQL ⭐️
This is buried at the bottom of the issue, but this looks impressive.