Introduction
Craft 3.5 RC1, exploit mitigation guides, tips, and more.
Hello, Craft friends. Welcome to another issue of Craft Link List.
The big news of this issue is that we’ve reached the Craft 3.5 release candidate stage.
What else do we have? Two more takes on the SEOmatic exploit from trusted hosting providers. The first info came from Arcustech, an official Craft CMS hosting partner shared in Discord and then compiled into a guide. This issue includes links to information from both fortrabbit and Servd. We've also got 3.4.29, the latest production release, several Craft tips, plugins, and lots of miscellaneous cool dev stuff.
Thanks to the sponsors of this issue.
Retour from nystudio107 helps you maintain the SEO of your links even when the URL changes.
Freeform from Solspace makes form-building easy, from basic to complex.
Let's hit the links.
-John Morton
Top Stories
Craft 3.5 release candidate
The 3.5 release candidate has arrived! Highlights include control panel updates like easy access to handle names and enhanced field layout options. There are form submission error tweaks for catching errors, helpful rules added to date fields, and control panel visual tweaks.
Be sure to read the 3.5 update guide.
Install it. Kick those 3.5 tires. Be sure to report issues to help squash bugs before the official launch.
News
Craft 3.4.29 released
We’ve had four releases since the previous issue. They mainly look like bug fixes. Read the changelog for full details.
Craft CMS SEOmatic exploit info | fortrabbit blog
Fortrabbit, a frequent sponsor of this newsletter, unsurprisingly hosts many Craft CMS sites. They’ve written a post on the recent SEOmatic exploit and how to deal with a possibly exploited server. The post includes a handy URL that you can use to test if your site is vulnerable.
VuePress theme for Craft CMS documentation
VuePress is used for the Craft documentation. The repo linked above is the theme used by the Craft team for the VuePress. There was a bug (a feature???) of VuePress that prevented the anchor links from deep-linking to the expected content.
This update fixes that problem. Now links in the Craft documentation can link to an anchor tag within the docs. For example, this link will now successfully jump your browser down to Step 4.
This fix might seem like a small thing, but if you write a Craft newsletter that links to specific items in the docs, it’s a really big deal. 🚀😄
devMode.fm // From Primary School Teacher to React Dev to Tailwind Labs
Simon Vrachliotis visits the devMode team and talks Tailwind.
Featured Sponsor

Retour - Intelligent 404 redirect handling
Retour allows you to intelligently redirect legacy URLs, so that you don’t lose SEO value when rebuilding & restructuring a website
Tools, tips, and fundamentals
Lookup tables in Twig
Andrew shares a tip on making a lookup table and how it can result in more readable code.
Why set the Craft entry limit to null?
Craft defaults to having loops limited to 100, and setting the limit to null
will override the default.
Update: After this issue was published, Ben Croker pointed out that the limit of 100 only applied to Craft 2. As of Craft 3, that limit was removed. Thanks, Ben!
Creating attributes table from entry fields in Craft CMS | Craft Snippets
Piotr shows how to group fields in a matrix block and loop through them to automatically create a table containing their values.
Getting Prettier to work with Twig in Visual Studio Code | CodeKnight
Daryl Knight demonstrates how to get Twig files formatted properly with VSCode. He includes a way to format and entire directory of files all at once using npx
.
Macros or Partials? When to use both for keeping Craft CMS templates clean.
Shawna O’Neal shares strategies on keeping your template code DRY with macros and partials.
Check for multiple values when using switch
Piotr points out a recent addition to the Craft docs on using multiple values for your case
statements inside a switch
tag.
Perfecting your technique
Security Through Ephemerallity | Servd
Servd discusses how the replacement of the entire file system on deployment, an ephemeral file system, helps against site exploits.
Craft CMS User Guide 🔥
Daryl Knight has created a guide in Notion for Craft CMS. He uses the Control Panel Nav plugin to add the Notion link to the sidebar of Craft Installs. It means clients can get to the guide from the control panel when they're looking for help, and Daryl can keep the guide universally updated without having to do it on each website.
Getting Tinkerwell to work with Craft CMS
If you’ve tried Tinkerwell, the “magical code editor that runs your code within local and remote PHP applications,” check out this GitHub post from John Baxter on getting Tinkerwell to work nicely with Craft.
I ❤️ This, an animation by David Kerns
David Kerns shared this animated "like" heart in Discord. He's using it on a Craft site with Sprig to allow the favoriting of entries.
David mentioned that the Craft/Sprig update process was so fast that it could interfere with the animation. Ben Croker suggested checking the docs for hx-swap and looking at the swap and settle modifiers which can "modify the amount of time that htmx will wait after receiving a response to swap the content."
Sponsor

Effortlessly build beautiful forms in minutes with Freeform!
Freeform is the most reliable, intuitive and powerful form building plugin for Craft. Everything is at your fingertips in our elegant form builder. It gives you full control to create simple or complex multi-page forms, as well as connect your forms to many popular API integrations. Templating is easy and highly customizable. Our ready-to-go templates and features like built-in AJAX and Conditional Rules Logic will have you ready in minutes! No other form plugin even comes close to comparing! You can trust Freeform (and the team behind it) to deliver the quality and support you expect and deserve.
Plugged In
Allow Twig Filter
This Craft 3.x Twig filter will render
in rich text fields to allow content editors to insert their own non-breaking spaces to prevent text widows on rendered pages. You'd use it like this:
{{ entry.description | allowNbsp }}
Range Field with Unit of Measurement
This field allows you to enter two values as a range and to select a predefined unit of measurement. Perfect for storing measurement values, dimensions, or other ranges of values.
SimpleSheet
SimpleSheet brings basic spreadsheet functionality with a familiar interface to Craft CMS.
Lightkeeper
Lightkeeper adds a Lighthouse testing widget to every Entry or Category with a public URL allowing developers and content editors to audit any page without leaving the control panel.
Gridsome Nogn
Gridsome Nogn ('noggin') for Craft CMS makes working with Headless Craft CMS and Gridsome feel seamless.
Formie
Formie is a Craft CMS plugin for creating user-friendly forms that your content editors will love. See the blog post for details.
Messenger Customer Chat
Let people start a conversation on your website and continue in Messenger. Allows your customers to interact with your business anytime with the same personalized, rich-media experience they get in Messenger.
Yii, Twig, PHP & More
Comparing Blade and Twig templates in Laravel
If you’ve not used Laravel, this post might not be for you, but for devs who have used both Craft and Laravel, this Twig vs. Blade post might be of interest.
It’s not Craft, but it’s interesting.
Can the browser display hover? ⭐️
@media (any-hover: none)
https://developer.mozilla.org/en-US/docs/Web/CSS/@media/any-hover
a11y.css
This CSS file intends to warn developers about possible risks and mistakes that exist in HTML code. It can also be used to roughly evaluate a site's quality by simply including it as an external stylesheet.
Hybrid positioning with CSS variables and max()
Lea Verou shares some CSS Jedi skills as she explains her use of min()
, max()
, clamp()
, and @supports
to get her ideal sidebar.
How To Create A GitHub Profile README
This article lists some creative examples taking advantage of GitHub’s new profile options.
To grid or not to grid
Sarah Higley on the differences between a table and a grid and when you should choose one over the other.
HELO
HELO is a desktop application that will change the way you test your emails. No more broken links, missing images, and customer complaints.
As mentioned in Discord, you could compare HELO to MailHog, which is included in Nitro by default.
What's New In DevTools (Chrome 64) | Web | Google Developers
You can now monitor CPU performance in Chrome Dev Tools.
Archiving the A Cappella Blog with Nuxt Content | Will Browar
...we decided that the CMS was no longer needed and a good way to keep the site alive would be to transition the articles on the site into an archive using a static site generator. While there are a lot of options out there, a new setup came along that fit the needs of the site in a way that was quick to get up and running.
Sequel Ace: MySQL/MariaDB database management for macOS
Sequel Ace is the "sequel" to longtime macOS tool Sequel Pro. Sequel Ace is a fast, easy-to-use Mac database management application for working with MySQL & MariaDB databases.
Laws of UX
Laws of UX is a collection of maxims and principles designers can consider when building user interfaces, created by Jon Yablonski.
Bracket Pair Colorizer 2 - Visual Studio Marketplace
VSCode tweak #1: This extension allows matching brackets to be identified with colors.
Better Comments - Visual Studio Marketplace
VSCode tweak #2: The Better Comments extension will help you create more human-friendly comments in your code.
TODO Highlight - Visual Studio Marketplace
VSCode tweak #3: Highlight TODO
, FIXME
, and other annotations within your code.
Indent Rainbow - Visual Studio Marketplace
VSCode tweak #4: A simple extension to make indentation more readable.