Introduction
Craft 3.5 arrives
Hello Craft friends. I hope this finds you doing well.
The top story is the release of Craft 3.5. You'll also find links to a free CraftQuest video course on what's new in 3.5. You'll also find some Twig, PHP, and Yii tips. I don't have individual links to share with you to Ben Parizek's Craft newsletter, but I agree with Ben Croker that if you're not reading it, you're missing some great Craft content.
Do you have a link for an upcoming issue? Visit the link submission page.
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
Top Stories
Craft 3.5 Released
It's official. Craft 3.5 has arrived. It has loads of improvement. Accessibility improvement in the control panel, GraphQL mutations, and more.
News
W3C CMS platform selection status update
The W3C is in the process of redesigning w3.org. Part of that process is choosing a CMS for the site to run on. Three CMS options were up for consideration, including Craft CMS, Statamic, and WordPress. Accessibility is a key requirement, but, “it turns out very few, if any, CMSes are compliant with the authoring tools accessibility guidelines,” according to this status update. (Note the accessibility updates in Craft 3.5.) The entire post above is good reading.
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
What's New in Craft 3.5 | CraftQuest
This free series on CraftQuest will get you up to speed in no time on what’s new in Craft 3.5, including GraphQL mutations and control panel accessibility settings.
How can you send a Craft entry as an HTML email?
Piotr explained how to use the EVENT_AFTER_SAVE
event to solve this problem from StackExchange.

Three Twig Tag Types in Craft CMS | CraftQuest
You're playing a round of Craft trivia. Your spinner lands on the Twig. Name the three types of Twig tags.
More trivia: Craft CMS has a built-in i18n formatter
As Andrew mentioned on Twitter, the i18n formatter lets you "do things like relative times ("3 months ago")" and you can easily create your own customizations just using Twig, as you can see in the tweet.
Perfecting your technique
Intelligent Load Balancing | Servd
We've recently been looking into a strange phenomenon that we've seen repeated over several projects, but primarily those using Craft CMS as a GraphQL server. Under heavy load a project with multiple instances could often be seen with unevenly distributed CPU usage.
Matt investigates and shares his findings and the solution.
devMode.fm // Development & the Philosophy of Stoicism
On this episode, we have Sam Hernandez from Precocity LLC on to talk to us about how the centuries old philosophy of Stocism applies to development, and to our lives.
Uploads in Craft CMS on Laravel Forge can fail in 3 places
This Twitter thread will might help more than Laravel Forge users get over error when uploading large files.
Sponsor

Effortlessly build beautiful forms in minutes with Freeform!
Freeform is by far the most intuitive and reliable form building plugin for Craft! The elegant form builder has been expertly designed to minimize mileage on your mouse. Effortlessly create simple or complex multi-page forms, choose from 27 field types, and connect your forms to over 22 popular API integrations. Templating is easy and highly customizable. No other form plugin even comes close to comparing!
Plugged In
Two-Factor Authentication
Craft 3 plugin for two-factor or two-step login using Time-Based OTP (TOTP, like Google Authenticator). Every user can set up TOTP themselves; the plugin does not force users. Admins can list usage in user tables.
Yii, Twig, PHP & More
Odd and even in a Twig loop.
Recently in the Craft Discord, someone asked the best way to alternate rows generated in a Twig loop. Twig is versatile when it comes to solving puzzles like this.
The loop index and the is
operator is one solution as seen here.
{% for i in 1..10 %}
<div>
{{ i }} is {{ loop.index is even ? 'even' : 'odd' }}
</div>
{% endfor %}
Maybe you don't need Twig at all, depending on the problem you're solving, the CSS rule :nth-child(even)
could be enough, as demonstrated here.
JsonQ: A PHP query builder for JSON
JsonQ is a simple, elegant PHP package to Query over any type of JSON Data. It'll make your life easier by giving the flavor of an ORM-like query on your JSON.
Sashimi: Eloquent's missing "array" driver.
This is a fork of Sushi, “Eloquent's missing array driver.” It allows you to run Sushi without having a full Laravel installation, allowing you to pull it into other frameworks, it's 90% Celeb Porzio’s code, with additional workarounds to avoid several core Laravel features.
It’s not Craft, but it’s interesting.
Optimizing keyboard navigation using tabindex and ARIA
A micro-case study on implementing keyboard-friendlier article listings for an online publication.
pgloader
pgloader lets you migrate to PostgreSQL in a single command. It is a data loading tool for PostgreSQL, using the COPY command.
Typography for Tailwind CSS
Tailwind CSS plugin to generate typography utilities and text style components.
Capsize
Capsize makes the sizing and layout of text as predictable as every other element on the screen. Using font metadata, text can now be sized according to the height of its capital letters while trimming the space above capital letters and below the baseline.
Methods for Contrasting Text Against Backgrounds
mix-blend-mode
and filter
and clip-path
and pointer-events
and my head spins.
What’s new in Puppeteer
If you use PurgeCSS, you've used Puppeteer. This short video goes over what's been updated and what's to come.
Ploi Server Management
Ploi is the ultimate server management tool. This was mentioned as an alternative to tools like Buddy and Laravel Forge. You can see more on their YouTube channel here: https://www.youtube.com/channel/UC6ZVsduGzVnGwThjnHlhL0g
Why is Docker on macOS So Much Worse Than Linux?
With Mutagen being packaged as part of Docker for Mac in the future, there is hope for macOS developers that the "jet engine" problem starts to diminish.