Introduction
GraphQL comes to Craft CMS, guides on updating from Craft 2, tips, plugins and more.
Welcome to another issue of Craft Link List. Dot All is almost here and in anticipation of the event, we’ve got a brand new edition of Craft CMS with GraphQL built in. You’ll find a number of links in the issue related to the new release.
If you’re still running Craft 2, there are several links to help you decided on your path forward. Plus there are tips, plugins and other web dev links to check out.
Thank you to Solspace for sponsoring this issue.
Freeform Payments has a critical update existing users can't ignore. Strong Customer Authentication (SCA) is a new rule coming into effect on September 14, 2019, and updating to Freeform 3.3 or greater is required.
Freeform v3 is the form plugin that's both intuitive and powerful. It can do what you expect a form to do and more, like collect payments and create a commenting system for Craft.
(Solspace, congrats on hitting 10,000 Freeform installations!)
Thank you to Jalen Davenport for help with this issue.
Let’s hit the links.
-John Morton
Top Stories
Craft 3.3 Released with GraphQL and Headless Mode
Craft CMS has a major release with version 3.3. GraphQL is the big new feature, but there are some new Twig filters you won't want to miss.
Regarding the release of the new GraphQL API, Jake Dohm summed it up nicely: This first edition of the API is a great replacement for a lot of use-cases of the Element API. It works very similarly on an "access" level.
By that, he means this release doesn’t allow mutations, or the writing of content. Check out the CraftQL link in the plugins section though if you need this feature today.
News
Craft 3.3.0.1 released
As mentioned in the Top Story above, Craft has reached another major release: Craft 3.3 with GraphQL support. The changelog catalogs the full scope of the updates. As I write this, Craft 3.3.0.1 is the current build, but a number of unreleased updates are listed as well.
VuePress is unofficially official for Craft plugin documentation
VuePress is the tech behind the official documentation for Craft CMS. It’s been adopted by an increasing number of popular plugins as Andrew’s link above mentions.
ShopTalk episode 375: Greenfield
This episode's topic is When you're starting a new web project, what tools do you reach for? Dave Rupert mentioned "Craft CMS" a number of times.
h/t Simon Swiss
Featured Sponsor

Important Changes to Freeform Payments!
On September 14, 2019, the new Strong Customer Authentication (SCA) rule comes into effect, and will require changes to how your European customers authenticate online payments. Card payments may require a different user experience in order to meet SCA requirements. Transactions that don’t follow the new authentication guidelines may be declined. Any sites currently using Freeform Payments and based in the EU or accepting payments from EU customers will be affected and need to update to Freeform 3.3+ in order to prevent payments from being declined. Please click here to read more about potential breaking changes for your site.
Tools, tips, and fundamentals
Getting Started with GraphQL API in Craft 3
Check out the new Getting Started section on it in the Craft documentation regarding GraphQL.
Debugging and inspecting Twig templates in Craft CMS ⭐️
On Craft Snippets, Piotr Pogorzelski describes several options on debugging Twig templates in Craft. Good info for all developers.
Use cases for a Craft Multi-Site setup | Good Work
Garrett Winder discusses why you might use Craft’s multi-site feature.
What’s the right way to “empty trash”, and remove all soft deleted items?
You can do this from the terminal. (h/t Jalen.)
./craft gc
There are 13 configuration aliases in Craft 3 out of the box.
Do you know them all? Will there be a quiz at Dot All?
General Config Settings: testToEmailAddress
Need to temporarily make sure you’re not spamming your entire user base? Check out testToEmailAddress
in the docs.
Duplicating a Craft Site | Craft CMS
If you’ve built a Craft site and would like to use it as a starting point for a new Craft site, it’s fairly easy to do that by “duplicating” the original site.
New Functions in Twig and Craft | CraftQuest
Ryan and Andrew demo the new Twig functions map, reduce, and filter, and the new attr function in Craft. Requires a CraftQuest subscription.
Using VueJS + GraphQL to make Practical Magic
This GraphQL post from Andrew Welch has been mentioned previously in the newsletter, but it is worth re-reading in light of Craft 3.3
How to GraphQL - The Fullstack Tutorial for GraphQL
This link was mentioned back in issue 47, but if you didn’t notice it then, it might be worth checking out again now that Craft 3.3 is here.
Perfecting your technique
Responsive and lazy-loaded youtube videos with Craft CMS
Piotr Pogorzelski is back again. This time he’s here to help you perfect your video loading on your site.
Using Push Notifications with CraftCMS ⭐️
How to do push notifications with Craft CMS. Bookmark this one.
Headless Craft CMS | CraftQuest
"A beginners guide to using Craft CMS as a headless CMS. In this course, we look at two different API tools: Element API and CraftQL."
Updates are coming soon to this course now that Craft 3.3 includes support for GraphQL natively.
Sponsor

Build more than contact forms!
Freeform allows you to map submission data to create Craft Entries and even complex User Registration forms! Pair that with Stripe, reCAPTCHA and a mailing service such as MailChimp and you have a very powerful user registration form! The Relations feature also allows Freeform to handle things like Comments, Ratings, Product Reviews, Sign-up forms for Calendar Events and more!
Plugged In
CraftQL
Craft 3.3 includes GraphQL support, but if you want mutations, as in you want to be able to update content via GraphQL, you'll need the CraftQL plugin. The current built-in GraphQL is read-only.
Simple Time Field
Sometimes you need a field in the control panel that allows you to enter time without a selector and store it as a simple text into the database. No time zone conversion, no datetime column, no backend validation. Just a valid time as text for later use.
Isolate
Craft allows you to restrict users to specific content types, but you cannot scope users to only specific entries in those content types. Isolate is a user management tool to manage users on a per-entry basis.
Default Tab
When building sites with Craft CMS, you've probably done this a couple of times: you create a new section, you go to add fields and the first thing you have to do is add a new tab. Every time. This plugin aims to fix that. 🎉
Outpost
Outpost is an observability plugin for Craft CMS. It provides instruments to track and gain insights into requests, exceptions, events and logs.
Untransform
The Untransform plugin replaces image transform URLs with a placeholder image or with a base URL prefix. This can be especially helpful when working in a development environment in which the image assets do not exist.
Translator
Translator is a field type, that provides a UI in the form of a field for static translations from your templates.
Commerce Bundles
Create a bundle containing a combination of different products and quantities with Craft Commerce.
It’s not Craft, but it’s interesting.
devMode.fm // The Honesty Required to Run a Profitable Business
Stephen Callender, the voice behind Commerce Minded, frequently mentioned in the newsletter, joins the devMode podcast to talk about running a profitable business.
Postwoman
Yes, this issue is GraphQL focused, but you may still need to REST. Here's a link for you.
Postwoman is an API request builder. It helps you create your requests faster, saving you precious time on your development.