Introduction
Craft Revue, Releases & Robust Queues
Welcome to another issue of Craft Link List. Craft CMS links, news, and plugins await.
Highlights include revenue numbers for Craft plugin sales, Craft CMS 3 and Craft Commerce have updates, and Andrew Welch is back making us all better developers with 2 new articles + some shared source code. There are also plenty of tips, plugins and more.
This issue has 28 links in total. That's a lot of links for a typical link newsletter, but fewer than average for CLL. Got a link to share? Submit a link to the newsletter.
Next month's Dot All conference should make upcoming issues burst at the virtual seams. Speaking of which...
Thank you to this issue's sponsors.
Dot All is the must-attend Craft CMS event of the year. It's Sept 18-20 in Montreal. Get your ticket now.
Freeform from Solspace is the go-to form-building plugin for Craft CMS. It includes a whopping 17 API integrations.
Thank you to Jalen Davenport for help with this issue.
Let's hit the links.
-John Morton
Top Stories
Plugin revenue in July: $85k
Brandon mentioned an interesting figure on Twitter. Craft’s plugin revenue continues to grow, hitting $85,000 for July 2019. Great news. Being part of a growing ecosystem benefits all Craft developers.
While we're on the subject, be sure to check out the post GitHub stars won’t pay your rent at the end of the newsletter.
News
Craft 3.2.10
Craft 3.2.9 included some Control Panel UI enhancements and stability & security improvements. Craft 3.2.10 added a new javascript function Craft.startsWith()
, which you can read about in the docs. For the full rundown, read the changelog.
Straight Up Craft + Craft Cookbook
As this issue wrapped up, Ben Parizek announced on Discord that Straight Up Craft is adopting the Craft Cookbook site. Plans are afoot for new educational resources for the Craft community.
Featured Sponsor

Level up your skills at Dot All 2019
Experience three days of workshops, talks, and events centered around modern web development and Craft CMS at Dot All 2019. Purchase tickets and view the schedule at dotall.com.
Tools, tips, and fundamentals
What is the best way to exclude an array of entries?
There are several options described in this post, including using the without filter.
Pagination with the Element API
Jake Dohm shares a tip on Twitter on setting elementsPerPage
as a query string parameter, making it easy to paginate your API calls to Craft’s Element API.
Luke Peters on developing Hampton Yachts
Luke Peters has written a post on the development of the multi-site capability of Craft CMS for Hampton Yachts.
From a technical perspective, we decided to build a complex Craft CMS multi-site. One website would be for the factory and one would be for the dealerships, with sub-sections for each specific dealer.
SSL on LocalHost with MAMP Pro for Windows
Sean Smith has a post on how to get MAMP working with an SSL certificate using mkcert.
Perfecting your technique
Robust queue job handling in Craft CMS ⭐️
Andrew wants to help you avoid stalled or failed queue jobs.
Headless Preview in Craft CMS ⭐️
Andrew's back. Craft CMS 3.2 introduced headless content preview. Here’s an exploration of how it works, and how you can implement it.
SKUs Galore: Eric Marthinsen and Tracey Corbitt
Tune in to learn why Craft Commerce was the right choice for Rochester’s site build with Eric Marthinsen of Built and Tracey Corbitt of Rochester Electronic.
They discuss sales and digital marketing from a technical perspective, and what to watch out for when rebuilding, re-platforming, or building a fresh site.
Website for the devMode.fm podcast
Want to see behind the scenes of a Craft CMS / Vue site written by Andrew? You can now check out the source code for devmode.fm.
Sponsor

17 different API integrations built right in!
Freeform Pro is the only Craft form plugin with plug & play API integrations built right in. Within minutes, enable reCAPTCHA for your forms, set up complex webhooks with Zapier, accept payments with Stripe, and choose from a wide variety of popular Mailing List and CRM integrations to map your submission data to! Field mapping is based directly inside the form builder, so virtually any user can setup or adjust an integration’s settings!
Plugged In
AWS serverless image handler
A Craft CMS plugin to generate image URLs from your twig templates via an AWS serverless image handler. Automatically detects client webp support.
{% set settings = {
width: 2600,
height: 450
} %}
{{ craft.awsserverlessimagehandler.getImgUrl(entry.slider.one(), settings) }}
Cart Notices
Show deals, offers, and messages to a user based on what the customer has in their cart or their referrer.
Servd Asset Storage
Use this plugin to make use of Servd's built-in asset storage service and integrate deeply with additional Servd functionality.
Overheard
Praise
Some words of praise for Craft. (You must be a member of the Craft Discord community to view this link. )
It’s not Craft, but it’s interesting.
Do you have a secret?
A recent discussion on Discord surfaced some helpful links. The question was about how to securely send passwords to clients. You have options.
Best Practice Patterns for Tailwind ⭐️
If you’re using Tailwind you’ll want to see this. Adam Wathan, the guy who created Tailwind, shows tips on how he uses it himself.
The Real Dark Web
It's not so much that we need cheers to validate our work; it's merely recognizing that not everything has to be on the bleeding edge of technology. There's something to be said about "simple and boring" projects.
The State of Fluid Web Typography
Fluid typography gives us so many opportunities to better design the reading experiences on the web but, at the same time, it introduces problems of font sizes scaling uncontrollably and potential accessibility issues.
GitHub stars won’t pay your rent
In a previous issue, there was a link to Sizy, the web browser that will display many web views of your pages at once as you work on them. This article from the creator discusses why after several years as an open source project, he took it commercial to keep the project alive.
Conclusion Solve your own problem Show your solution to other people as soon as possible Package it and distribute it as soon as possible (note to self) Don’t be scared, ashamed, or discouraged to make it paid Don’t let anyone tell you how much you should charge for your work