Introduction
Craft 3.2 release candidate, new Twig filters, tips, plugins, and more.
Welcome to another issue packed with Craft CMS goodies. Thanks for reading and writing so many great posts. Do you have a link for a future issue of the newsletter? Visit the link submission page.
In this issue, you'll find news on Craft 3.2 and a few new Twig filters that can make your templates more flexible. Plus there are tips new Craft plugins and webdev posts.
Thank you to the sponsors of this issue.
CraftQuest is the premier site for Craft CMS skills. Your subscription includes 3 courses on becoming a plugin pro plus a regular stream of fresh videos every Tuesday and Thursday.
Freeform 3 is form-building for Craft CMS with polish and power. Got a form to build? Check out Freeform 3.
Let's hit the links.
-John Morton
Top Stories
Craft 3.2 has a release candidate
At the time of this issue publishing, we're at RC2. Need a refresher on what to expect in 3.2? CraftQuest has demoed three things, followed by two other things to whet your appetite for 3.2. Expect excitement.
News
Craft 2.7.9 released
Still running Craft 2? It's gotten a small update which contains a bug fix for user groups and a security fix.
Featured Sponsor

Write your first Craft plugin with CraftQuest
Dive into Craft plugin development with developer Ben Croker in our Plugin Development learning pathway. Extend Craft to meet the needs of your clients and customers. Write your first plugin today!
Tools, tips, and fundamentals
Tip: Paginate Arrays in Craft Templates 🔥🔥🔥
This tip has reached the Hernandez Platinum Level. Most impressive. The full code example is contained in this Gist.
Filename cache busting for Craft using Valet
Do you use Valet for local development and use filenames to bust your cache? (i.e., Have the request for jquery.1476809927.js fetch the file jquery.js.) Check out Andrew's Valet driver file which includes this feature, starting at line 36.
Read time macro for Craft CMS
This macro from Craft Snippets, aka Piotr Pogorzelski, will return read time in a human-readable format, adjusted to your site locale.
Ellipsis pagination component for Craft CMS (updated for Craft 3.1.31)
If you're using Piotr's pagination component, mentioned in Issue 88, there's been an update that takes advantage of Craft 3.1.31's pagination parameters.
Agency webpack-mix-config ⭐️
Ben Rogerson has shared a website 🔧config template with "a top-class developer experience and simple filing system for your project assets, this config provides a solid platform for your next website (or web app)."
It looks feature rich and includes instructions on using in a Craft CMS project.
SVG Sprite Macro for Craft
Sean Smith shared the macro at the link above that "will work with SVG sprites to output the desired icon with settings," i.e., the class name, height, and width.
Craft Helper Collection
A collection of useful Craft CMS macros and components. After visiting the link above, click into the "macros" folder to see the full list of available macros.
Tip: See what needs updating with "composer outdated"
Andrew explains the composer outdated --direct
command.
Dark Docs CraftCMS
A dark theme for docs.craftcms.com for Stylish users.
What’s Stylish? According to the FAQ page, Stylish ”offers customization and personalization for the appearance of virtually any webpage.”
Perfecting your technique
Config Settings and Extensibility - Craft Plugin Development In-Depth ⭐️
If you’ve been following along the excellent Craft Plugin Development In-Depth on CraftQuest (subscription required), you’ve got one last episode to watch. If you’re not caught up, it’s ready for a binge watch.
How to query entries based on a Matrix Block Type using the Element API
This Stack Exchange post suggests 3 approaches.
Rename an Asset when it is uploaded
This Stack Exchange post includes a couple of code samples you could work into a module or a plugin to achieve renaming a file upon uploading to Craft.
How to remove "Link to entry" from Redactor dropdown
The Redactor field in Craft automatically adds the ability for a user to “link to entry” or “link to category.” If you don’t want users to have that option, it’s not apparent how to remove those options. This issue demonstrates how to customize your Redactor with a module.
How do I enable redactor rich text editor in a front-end form?
Although it’s technically possible to include Craft’s copy of Redactor on the front end, it's not recommended. Here's how to do it. ⚠️
Populating Content in Craft CMS from Google Sheets ⭐️
Ryan connects Craft and Google Sheets together using FeedMe to populate a 1000 row spreadsheet of employee data into a Craft CMS section. (Requires CraftQuest subscription.)
Turn Craft 3 into a headless CMS
The post shows how to use Craft as a headless CMS. It uses CraftQL to access content in Craft, and Gatsby to render it into static HTML.
Running Background Tasks With Craft CMS in Docker
Matt Gray has been documenting his adventure of using Docker for Craft CMS. After a short break, he's back to address a problem where multiple visits to your control panel could potentially trigger so many background tasks that it impacts your actual site visitors.
It would be much better if the tasks were executed using a completely separate PHP master process, isolating them from the process which is handling normal user requests.
A Craft CMS Development Workflow With Docker: Part 7 ⭐️
Matt Gray is back to "round out this series" on Docker and Craft with a less technical post "about working on teams with multiple developers, how we can structure our processes and tools to accommodate them and how that fits in with the previous articles."
Craft Module Field Type
This library provides an easy way of defining matrix blocks for matrix fields that are used for content modules.
Craft Deploy: A bash script to deploy Craft CMS on production servers
A bash script to run on staging and production servers, inspired by the Capistrano routine. This script is still beta. ⚠️
Sponsor

Freeform 3 is now available!
Solspace is pleased to announce the release of Freeform 3! It's filled with a large number of exciting new features and improvements, as well as being available at a lower price now too! Please check out our announcement to learn more about Freeform 3, and what this means for existing Freeform 2 customers.
Plugged In
Scraper
The Scraper plugin exposes a full-featured DOM crawler object to your Twig templates, allowing you to fetch, parse, filter, and display content from remote HTML/XML documents.
Field and Tab Permissions
This plugin by Josh Smith allows you to restrict the visibility of fields and tabs to particular user groups per site. Any element that has a field layout designer can have permissions set on each field and/or tab.
Expanded Matrix
Josh Smith is back with Expanded Matrix which lets you expand matrix blocks into a full screen modal for quick and easy content authoring. You can switch between blocks using the arrow keys, swipe gestures or the navigation arrows.
Title to Sidebar
Shift the entry title from the tabbed area to the sidebar, above the slug input with this plugin by Josh Smith. 🏒
Web Payments
Use the Web Payments API and Apply & Google Pay to vastly improve your checkout process.
Yii, Twig, PHP & More
Twig Adds Filter, Map and Reduce Features (Symfony Blog)
The "filter, map and reduce" pattern is getting more and more popular in other programming languages and paradigms (e.g., functional programming) to transform collections and sequences of elements. You can now use them in Twig thanks to the new filter, map and reduce filters in combination with the new arrow function.
Jake Dohm tweeted an example of using "map" in action with a Craft Twig template. These new filters will make things easier, according to Tom Davies.
It’s not Craft, but it’s interesting.
Node.js Crash Course
In this crash course, we will explore Node.js fundamentals including modules such as path, url, fs, events, and we will create an HTTP server from scratch without Express and deploy to Heroku.
Mary Meeker’s most important trends on the internet
There are 333 slides in the full presentation deck, but the article "has pulled out some of the significant and most interesting trends."
Micromodal.js - Tiny javascript library for creating accessible modal dialogs
Micromodal.js is a lightweight, configurable, and a11y-enabled modal library written in pure JavaScript.
Modaal is a WCAG 2.0 Level AA accessible modal plugin
An accessible dialog window plugin for all humans.
Ecommerce Marketing and Tech with Lee Goldberg of Happy Cog
Stephen Callender is joined by Lee Goldberg who "shares some golden nuggets about conversion rate optimization" and more.
Lazy Gocker: The lazier way to manage everything docker
A simple terminal UI for docker and docker-compose, written in Go with the gocui library.