Introduction
Bountiful Crafting to all.
Hello Crafters. Welcome to another issue of Craft Link List. Glad to have you here.
We've got another issue of Craft and web dev goodies. Craft 3 and Craft Commerce 2 Beta both have updates. Craft tips cover a range of skill levels. Also, the Laravel - Craft Guide link below is interesting because it's looking to the community for content.
If you've got a link for a future issue, head over to the link submission page.
Thank you to this issue's sponsors.
- fortrabbit is hosting done just the way you need it. If you don't see a solution on their site that fits your needs, just ask them.
- CraftQuest is the home of loads of great Craft tutorials and more. The full Up and Running with Craft 3 is now included with a free account.
Let’s hit the links.
-John Morton
News
Craft 3.0.30 and 3.0.31 released
Craft 3.0.30 added Duplicate and Duplicate (with children) actions to the Entries and Categories index pages.
Version 3.0.31 added a new seq()
function to your Twig templates for outputting sequential numbers. Here’s a Tweet with some interesting details on the function from Ben Croker.
Craft Commerce 2.0.0-beta.13.1 released
You can now export orders from the Orders index page as a CSV, ODS, XLS, or XLSX file. Plus you can now set custom field values when creating a new subscription. Commerce is still in beta but looking sharp.
Craft CMS 2 and Craft Commerce 1 End of Life Information
In case you were wondering about how long you can keep your Craft 2 site up without upgrading to Craft 3, here are the full details.
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
Global DNS Propagation Checker
Propagating DNS and dealing with the time delay can be tricky. This service helps you check DNS around the world.
A quick and easy local environment for Craft 3
In this post from Raygun Design, you'll learn about "a free app called Local (from WordPress host Flywheel) to install Craft 3 quickly with a minimum of fuss."
A starter Craft project by Andrew Welch and Ryan Irelan
CraftQuest, a sponsor of this issue, recently had a live session on building a Craft boilerplate. This repo is the result of that discussion.
htaccess Tester
Ever have trouble figuring out what your .htaccess file is doing? Bookmark this tool.
Omit zero value decimals in a number format using Twig
For example, you’re looking to turn something like “8.50 x 11.00” into “8.5 x 11”.
Perfecting your technique
Craft Coding Challenge ⭐️
Ben Croker has a challenge (or more than one) for you to improve your Craft skills.
Laravel - Craft Guide ⭐️
This WIP repo is an attempt to help both Craft and Laravel developers learn the difference and similarities between the 2 frameworks. As I write this, it's just a draft of an outline of the topics to cover. If you have experience in these areas, you can help create this resource for both communities.
Override the default sendmail path in Sendmail transport config in Craft 3
Many shared hosting accounts require passing custom flags to sendmail for them to work. This post shows you how to add these flags to the config/app.php
to get your mail sending in these cases.
Templates, Routes, and URL segments
This post will most relevent for devs coming to Craft from ExpressionEngine. EE would automatically pick the most relevant template for a URL based on its segments.
In EE, if there was a template /foo/bar.html, one could access the contents of that template by going to either example.com/foo/bar or example.com/foo/bar/more/segments/here. The additional URL segments didn't prevent EE from loading the most-accurately-matching template.
How about doing that in Craft?
Setting up Laravel Forge and DeployBot with Craft CMS
This post from my blog is about setting up DeployBot with a Laravel Forge server with a Craft site.
Cleaning up your Event code in Craft CMS
Doug St. John has a post on maintaining organized, readable code.
As a Craft CMS project's size or complexity grows, you'll most likely end up adding a lot of custom business logic to either a Module or Plugin. This may require hooking into more and more of Craft's events. This will inevitably lead to your init() function getting very large and hard to maintain.
Add users to Craft with content migrations
Joren Van Hee explains how to add users to Craft with content migrations. This could be helpful if you work in an agency where you need to add the same user accounts in Craft multiple sites.
Sponsor

Learn Craft for free with CraftQuest.io
A 4½ course covering all of the fundamentals of building websites with Craft. Follow along as we build a complete site in Craft CMS 3. Brought to by official training partner of Craft CMS.
Plugged In
Craft Contact Form Tuner
This new free plugin lets you fine-tune Cc, Bcc, Reply-to, and plain-text behavior of the official Contact Form plugin. It also enables you to individually override the templates used to render the HTML/plain-text email bodies.
PerForm for Craft 3
PerForm facilitates form handling for Craft developers. Process, test, store, send email notifications, configure client-side validation, include powerful spam protection, and more.
The Craft Advantage
WordPress, WooCommerce flaws combine to allow website hijacking
This link could have been in the news section but it's in the Craft Advantage section because you're not using Wordpress.
How to Decide if Craft Commerce Should be Your Ecommerce Platform
Is Craft Commerce the right solution for your e-commerce platform? When a feature, integration, or required outcome doesn’t fit into an existing system, chances are, Craft Commerce is the answer.
It’s not Craft, but it’s interesting.
How to organize your git branches | Darío Kondratiuk
This post discusses a number of ways you can use git and suggests that “if you work on a team where you normally check out each other branches, e.g. for local testing, I’d recommend you share the style with your team.”