Introduction
Focusing on Craft CMS
Hello Craft friends. Welcome to another issue of Craft Link List. I hope this finds you doing well.
Since the previous issue, extendsConf has happened; The videos from the event are a highlight of this issue. Hours of learning waits. Plus, there are several links about the new Composer 2.0 and accessibility. As always, there are Craft tips, plugins, and more.
Thank you to the sponsors of this issue.
Fortrabbit is a preferred hosting provider for Craft CMS, offering a modern PHP application platform tailored for Craft, with Git deployments and Composer support. Try fortrabbit today.
Freeform is the feature-filled form plugin for Craft CMS that includes ready-to-use templates to get you up and running quickly. Learn about the power of Freeform.
Let’s hit the links.
-John Morton
News
Craft 3.5.14 released
- 🍡 ul() + ol() Twig functions
- 👉 project-config/touch command
- ⌨️ Improved keyboard control for Tags fields
- 🔒 setPasswordRequestPath config setting
- 🐛 Bug fixes
Composer 2.0 is now released with performance improvements - Laravel News
Composer 2 is out. Using Composer 2 with Craft came up in Discord last week; this link will take you to the point where Andrew mentions that he's already using it. You can dig around from that point as the discussion gets going.
If you want to explore Composer 2.0 more, also check out Upgrading To Composer 2.0 from the Laravel Blog.
Regarding plugins that stop being supported by the developer
Abandoned plugins came up in Discord last week. As part of that discussion, Brandon said...
We remove plugins that have been reported to no longer work (if the developer is unable to work with us on a fix). With 4.0 we are switching to a new ~6-12 month release cycle, which will force plugin developers to start testing & releasing compatibility updates on a more regular basis. If they don't, then the plugin never shows up for the newer Craft version. At that point (or maybe earlier) we'll also introduce the ability for plugins to be marked as abandoned and optionally recommend a replacement.
Featured Sponsor

Craft CMS Hosting Partner
We like to automate ALL THE THINGS — except customer support.
Get started with a free trial today! And ask whenever you have any questions.
Tools, tips, and fundamentals
extendsConf videos 👀⭐️
I hope you could join in on the extendsConf event last month, Oct 21 and 22. It was amazing. Thank you to Michael and Jalen for organizing it. If you weren't able to join in, fear not. You can still watch the videos from every session on the extendsConf video page linked above.
Usability Testing with People with Disabilities — Knowbility
Use the AccessWorks database to recruit from hundreds of people with disabilities for your usability testing needs. Great usability is only possible after implementing accessibility best practices.
How Craft License Enforcement Works | Craft CMS
How licensing works is an evergreen question in Craft Discord. It came up again last week. If you’ve got questions about how license enforcement works in Craft, the Knowledge Base article above will help out.
Craft CMS has an interactive CLI shell / REPL similar to Laravel's Tinker
In the tweet linked above, Andrew shines a light on the Interactive Shell Extension for Yii 2. As he mentions, "In Craft 3.5 or later, you just need to:"
composer require --dev "yiisoft/yii2-shell"
Then you can open the shell with this command:
php craft shell
Need to see what commands are available in the shell environment? Check out the features section on the psysh site.
Craft Copy: Deployment tools for Craft on fortrabbit v1 released
This command-line tool helps to speed up common tasks around Craft CMS deployment on fortrabbit. (The tool was mentioned back in Issue 65, when it was in beta.) Craft Copy syncs your local development environment with your fortrabbit App — up and down. It conveniently deploys code changes and synchronizes the latest images and database entries. This Craft CMS plugin will be installed locally and on the fortrabbit App.
5 Command Line Tips to Save You Time | CraftQuest
Ryan covers five helpful tips to work more quickly in the command line.
Perfecting your technique
Videos · yatil.net
Eric Eggert has produced a series of videos on accessibility. You can view them on his homepage above or go directly to the YouTube page and subscribe to them.
How to limit uploads to a specific file type.
The link above is to a Discord message where Daryl Knight shares how to limit uploads not to just an “image” but an image type, in this case an SVG.
He shared the code on this Notion page.
A Gentle Introduction to TypeScript | CraftQuest ⭐️
Ryan and Andrew dive into Typescript for about an hour. Well worth your time.
Speeding up PHP in Docker
In this quick video from Andrew, he demonstrates how to set up separate Docker containers for PHP so normal requests go to a container with no xdebug enabled, and are much faster.
(After posting this in the newsletter, I found out this video is referenced in Andrew's An Annotated Docker Config for Frontend Web Development which you can read for all the details in about 5 minutes.)
Meet the Baconator — ProPublica
This article, although not mentioning the name of the CMS in question, is about a Craft CMS site, as Matt mentioned in the Tweet where he shared it.
How to make a dynamically generated news site work like a statically generated one and sleep better at night.
Before / after moving a Craft CMS site
The tweet above offers anecdotal evidence of a server upgrade improving the performance of a Craft site. In this case, Ubuntu 18.04 / PHP 7.0 / MySQL 5.7 -> Ubuntu 20.04 / PHP 7.4 / MySQL 8 more than halved CPU useage.
Front-End User Accounts | Craft CMS
If your site needs front-end user accounts, follow these steps in this Craft CMS Knowledge Base post.
Compare what has changed on an entry while it's being saved
Element::getDirtyAttributes()
and Element::getDirtyFields()
sound useful but a little "judgy."
Control Panel Templates | Craft CMS Documentation | 3.x
The docs have recently been updated to explain how to create a full-page form in the control panel.
Sponsor

Features and design mean nothing when they don't work reliably.
Don't let any of your valuable form submissions fall through the cracks! Freeform has been meticulously designed and developed to be the most robust form solution for Craft.
Plugged In
devMode.fm // Craft CMS Plugin Developer Roundtable #2 ⭐️
In this episode of devMode, Craft CMS plugin developers discuss the state of plugin development 2 ½ years after the Craft CMS plugin store went live.
Pitch
Pitch is a plugin that allows for on-the-go SCSS compiling, basic CSS/JS minifying, merging, and caching. It can be used for both front-end and CMS development.
CP Filters
The CP Filters plugin allows advanced filtering for entries, assets, categories, users, and tags in the Craft control panel. You can even export your results as a CSV.
OTP SimplePay for Craft Commerce
This plugin integrates Craft Commerce with the Hungarian payment gateway, SimplePay.
Siteimprove CMS Plugin
Put your Siteimprove results to use where they are most valuable, in the control panel during the content creation and editing process.
GraphQL Authentication
GraphQL Authentication for Craft adds an authentication layer to your GraphQL endpoint.
The Craft Advantage
It’s not Craft, but it’s interesting.
Native CSS Masonry Layout In CSS Grid — Smashing Magazine
Can you imagine a nice masonry layout without Javascript? That’s not yet a reality, but Rachel Andrew, the CSS ninja, has a great article on what that future might look like. You can even test some of the examples in the post in Firefox Nightly builds.
"SurviveJS - Webpack" - Further webpack 5 updates
The Survive JS book on webpack has been updated for webpack 5. You can read it free online or buy a copy of it on leanpub.
Efficient Image Resizing With ImageMagick
Many tools out there automate image resizing, but too often, they create large files that cancel out the performance benefits that responsive images are supposed to deliver. In this article, we’ll see how we can use ImageMagick — an open-source command-line graphics editor — to quickly resize your images while maintaining great visual quality and really tiny file sizes.