# nystudio107 | Articles on modern web development.

We do technology-based consulting, branding, design, and development. Making the web better one site at a time, with a focus on performance, usability & SEO

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Going Global with Twig Globals in Craft CMS

DevFeed: [Going Global with Twig Globals in Craft CMS](<https://devfeed.tech/articles/going-global-with-twig-globals-in-craft-cms-31265.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/going-global-with-twig-globals-in-craft-cms>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2024-09-02T18:25:00Z

Content type: tutorial

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [Content Management System](<https://devfeed.tech/topics/cms.md>), [Web](<https://devfeed.tech/topics/web.md>), [coding](<https://devfeed.tech/topics/coding.md>)

Tags: [added](<https://devfeed.tech/tags/added.md>), [article](<https://devfeed.tech/tags/article.md>), [challenges](<https://devfeed.tech/tags/challenges.md>), [cms](<https://devfeed.tech/tags/cms.md>), [collection](<https://devfeed.tech/tags/collection.md>), [craft](<https://devfeed.tech/tags/craft.md>), [global](<https://devfeed.tech/tags/global.md>), [globals](<https://devfeed.tech/tags/globals.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [insights](<https://devfeed.tech/tags/insights.md>), [learn](<https://devfeed.tech/tags/learn.md>), [leveraging](<https://devfeed.tech/tags/leveraging.md>), [simplify](<https://devfeed.tech/tags/simplify.md>), [templating](<https://devfeed.tech/tags/templating.md>), [twig](<https://devfeed.tech/tags/twig.md>), [variables](<https://devfeed.tech/tags/variables.md>)

### AI overview

This tutorial explains how variable scope works in Twig templates used by Craft CMS, including the challenges of making variables globally available. It discusses the trade-offs of global variables and how they can reduce component reusability and modularity, while noting that they can be appropriate in simpler websites.

### Source excerpt

Learn how to simplify some Twig templating challenges by leveraging the global variables & the _globals Collection added in Craft CMS 4.5

## Connecting to an External Database in Craft CMS

DevFeed: [Connecting to an External Database in Craft CMS](<https://devfeed.tech/articles/connecting-to-an-external-database-in-craft-cms-31247.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/connecting-to-an-external-database-in-craft-cms>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2024-08-06T14:03:00Z

Content type: tutorial

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [Databases](<https://devfeed.tech/topics/databases.md>), [Content Management System](<https://devfeed.tech/topics/cms.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [MySQL](<https://devfeed.tech/topics/mysql.md>), [MariaDB](<https://devfeed.tech/topics/mariadb.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [SQLite](<https://devfeed.tech/topics/sqlite.md>), [legacy](<https://devfeed.tech/topics/legacy.md>)

Tags: [application](<https://devfeed.tech/tags/application.md>), [built-in](<https://devfeed.tech/tags/built-in.md>), [cms](<https://devfeed.tech/tags/cms.md>), [components](<https://devfeed.tech/tags/components.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [connect](<https://devfeed.tech/tags/connect.md>), [craft](<https://devfeed.tech/tags/craft.md>), [database](<https://devfeed.tech/tags/database.md>), [external](<https://devfeed.tech/tags/external.md>), [flexibility](<https://devfeed.tech/tags/flexibility.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [insights](<https://devfeed.tech/tags/insights.md>), [learn](<https://devfeed.tech/tags/learn.md>), [legacy](<https://devfeed.tech/tags/legacy.md>), [leveraging](<https://devfeed.tech/tags/leveraging.md>), [mariadb](<https://devfeed.tech/tags/mariadb.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [sqlite](<https://devfeed.tech/tags/sqlite.md>), [using](<https://devfeed.tech/tags/using.md>)

### AI overview

A tutorial explaining how to connect Craft CMS to an external database using Twig and configuration in config/app.php, without requiring the deprecated Connect plugin. It covers Craft application components and database types supported through Yii2.

### Source excerpt

Learn how to connect to an external database using Craft CMS by leveraging the built-in flexibility of application components

## Adding Content with Content Migrations in Craft CMS

DevFeed: [Adding Content with Content Migrations in Craft CMS](<https://devfeed.tech/articles/adding-content-with-content-migrations-in-craft-cms-31238.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/adding-content-with-content-migrations-in-craft-cms>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2024-05-13T14:27:00Z

Content type: tutorial

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [Content Management System](<https://devfeed.tech/topics/cms.md>), [migration](<https://devfeed.tech/topics/migration.md>), [PHP](<https://devfeed.tech/topics/php.md>), [Database](<https://devfeed.tech/topics/database.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Performance Testing](<https://devfeed.tech/topics/performance-testing.md>), [Development](<https://devfeed.tech/topics/development.md>), [Git](<https://devfeed.tech/topics/git.md>)

Tags: [cli](<https://devfeed.tech/tags/cli.md>), [cms](<https://devfeed.tech/tags/cms.md>), [content](<https://devfeed.tech/tags/content.md>), [craft](<https://devfeed.tech/tags/craft.md>), [create](<https://devfeed.tech/tags/create.md>), [database](<https://devfeed.tech/tags/database.md>), [development](<https://devfeed.tech/tags/development.md>), [environments](<https://devfeed.tech/tags/environments.md>), [git](<https://devfeed.tech/tags/git.md>), [insights](<https://devfeed.tech/tags/insights.md>), [learn](<https://devfeed.tech/tags/learn.md>), [migrations](<https://devfeed.tech/tags/migrations.md>), [performance-testing](<https://devfeed.tech/tags/performance-testing.md>), [php](<https://devfeed.tech/tags/php.md>), [syncs](<https://devfeed.tech/tags/syncs.md>)

### AI overview

A tutorial on using content migrations in Craft CMS 5 to create and seed Entries, Fields, Entry Types, and Sections across environments. It explains how migrations can be version-controlled, run through Craft CLI commands, and rolled back after performance testing or other automated content tasks.

### Source excerpt

Learn how to create content migrations in Craft CMS 5 to add content that syncs across environments

## Advanced String Manipulation in Twig with Craft CMS

DevFeed: [Advanced String Manipulation in Twig with Craft CMS](<https://devfeed.tech/articles/advanced-string-manipulation-in-twig-with-craft-cms-31304.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/string-manipulation-in-twig-with-craft-cms>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2024-05-01T17:39:00Z

Content type: tutorial

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [Content Management System](<https://devfeed.tech/topics/cms.md>), [PHP](<https://devfeed.tech/topics/php.md>), [Library](<https://devfeed.tech/topics/library.md>), [Code](<https://devfeed.tech/topics/code.md>), [phpstorm](<https://devfeed.tech/topics/phpstorm.md>)

Tags: [advanced](<https://devfeed.tech/tags/advanced.md>), [craft](<https://devfeed.tech/tags/craft.md>), [hidden](<https://devfeed.tech/tags/hidden.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [insights](<https://devfeed.tech/tags/insights.md>), [learn](<https://devfeed.tech/tags/learn.md>), [manipulation](<https://devfeed.tech/tags/manipulation.md>), [plugins](<https://devfeed.tech/tags/plugins.md>), [powers](<https://devfeed.tech/tags/powers.md>), [required](<https://devfeed.tech/tags/required.md>), [string](<https://devfeed.tech/tags/string.md>), [twig](<https://devfeed.tech/tags/twig.md>), [unleash](<https://devfeed.tech/tags/unleash.md>)

### AI overview

This tutorial explains how to perform advanced string manipulation in Twig with Craft CMS without additional plugins. It shows how to access the bundled Stringy PHP library through Twig's create() function and demonstrates several Stringy functions.

### Source excerpt

Learn how to unleash hidden string manipulation powers in Twig with Craft CMS 5, no plugins required!

## SEO Myths: Top 5 Sitemap Myths Demystified

DevFeed: [SEO Myths: Top 5 Sitemap Myths Demystified](<https://devfeed.tech/articles/seo-myths-top-5-sitemap-myths-demystified-31294.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/seo-myths-top-5-sitemap-myths-demystified>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2023-10-30T20:03:00Z

Content type: article

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [Search engine optimization (SEO)](<https://devfeed.tech/topics/seo.md>), [Google Search](<https://devfeed.tech/topics/google-search.md>), [Crawler](<https://devfeed.tech/topics/crawler.md>)

Tags: [2005](<https://devfeed.tech/tags/2005.md>), [article](<https://devfeed.tech/tags/article.md>), [demystify](<https://devfeed.tech/tags/demystify.md>), [google-search](<https://devfeed.tech/tags/google-search.md>), [insights](<https://devfeed.tech/tags/insights.md>), [misconceptions](<https://devfeed.tech/tags/misconceptions.md>), [myths](<https://devfeed.tech/tags/myths.md>), [seo](<https://devfeed.tech/tags/seo.md>), [sitemaps](<https://devfeed.tech/tags/sitemaps.md>), [surrounding](<https://devfeed.tech/tags/surrounding.md>), [we-ll](<https://devfeed.tech/tags/we-ll.md>)

### AI overview

This article examines five common myths about sitemaps and explains that they are optional signals search engines may use, not directives. It also describes situations where a sitemap may help, such as large or new sites and sites with rich media.

### Source excerpt

Sitemaps have been around since 2005, but there are still many myths and misconceptions surrounding them. We'll demystify five SEO myths in this article.

## Making Twig Macros Work Like Functions

DevFeed: [Making Twig Macros Work Like Functions](<https://devfeed.tech/articles/making-twig-macros-work-like-functions-31280.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/making-twig-macros-work-like-functions>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2023-07-14T18:38:00Z

Content type: tutorial

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [Programming](<https://devfeed.tech/topics/programming.md>), [Development](<https://devfeed.tech/topics/development.md>), [reusable code](<https://devfeed.tech/topics/reusable-code.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [functions](<https://devfeed.tech/tags/functions.md>), [insights](<https://devfeed.tech/tags/insights.md>), [just](<https://devfeed.tech/tags/just.md>), [languages](<https://devfeed.tech/tags/languages.md>), [learn](<https://devfeed.tech/tags/learn.md>), [like](<https://devfeed.tech/tags/like.md>), [macros](<https://devfeed.tech/tags/macros.md>), [make](<https://devfeed.tech/tags/make.md>), [manipulate](<https://devfeed.tech/tags/manipulate.md>), [programming](<https://devfeed.tech/tags/programming.md>), [programming-languages](<https://devfeed.tech/tags/programming-languages.md>), [return](<https://devfeed.tech/tags/return.md>), [returning](<https://devfeed.tech/tags/returning.md>), [reusable-code](<https://devfeed.tech/tags/reusable-code.md>), [twig](<https://devfeed.tech/tags/twig.md>), [value](<https://devfeed.tech/tags/value.md>), [values](<https://devfeed.tech/tags/values.md>)

### AI overview

A tutorial on making Twig macros return values that can be manipulated like function results. It demonstrates a sales-calculation macro, whitespace control, and returning a value for further computations such as sales tax.

### Source excerpt

Learn how to make Twig macros return values you can manipulate, just like functions in other programming languages

## Indexing by Custom Field in Craft CMS

DevFeed: [Indexing by Custom Field in Craft CMS](<https://devfeed.tech/articles/indexing-by-custom-field-in-craft-cms-31273.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/indexing-by-custom-field-in-craft-cms>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2023-06-28T17:13:00Z

Content type: tutorial

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [Content Management System](<https://devfeed.tech/topics/cms.md>), [Database](<https://devfeed.tech/topics/database.md>), [migration](<https://devfeed.tech/topics/migration.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [cms](<https://devfeed.tech/tags/cms.md>), [content](<https://devfeed.tech/tags/content.md>), [craft](<https://devfeed.tech/tags/craft.md>), [custom](<https://devfeed.tech/tags/custom.md>), [custom-fields](<https://devfeed.tech/tags/custom-fields.md>), [database](<https://devfeed.tech/tags/database.md>), [fields](<https://devfeed.tech/tags/fields.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [indexes](<https://devfeed.tech/tags/indexes.md>), [indexing](<https://devfeed.tech/tags/indexing.md>), [insights](<https://devfeed.tech/tags/insights.md>), [learn](<https://devfeed.tech/tags/learn.md>), [make](<https://devfeed.tech/tags/make.md>), [migration](<https://devfeed.tech/tags/migration.md>), [performance](<https://devfeed.tech/tags/performance.md>)

### AI overview

A tutorial on adding database indexes for custom fields in Craft CMS through a content migration. It explains that Craft CMS does not automatically index custom fields, so queries filtering on those fields may not scale well as datasets grow.

### Source excerpt

Learn how to make a content migration to add database indexes for custom fields in Craft CMS

## Logging to a File with Craft CMS 4

DevFeed: [Logging to a File with Craft CMS 4](<https://devfeed.tech/articles/logging-to-a-file-with-craft-cms-4-31279.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/logging-to-a-file-with-craft-cms-4>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2022-12-21T19:35:00Z

Content type: tutorial

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [Content Management System](<https://devfeed.tech/topics/cms.md>), [Logging](<https://devfeed.tech/topics/logging.md>), [log management](<https://devfeed.tech/topics/log-management.md>), [PHP](<https://devfeed.tech/topics/php.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [cms](<https://devfeed.tech/tags/cms.md>), [craft](<https://devfeed.tech/tags/craft.md>), [custom](<https://devfeed.tech/tags/custom.md>), [easily](<https://devfeed.tech/tags/easily.md>), [file](<https://devfeed.tech/tags/file.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [insights](<https://devfeed.tech/tags/insights.md>), [learn](<https://devfeed.tech/tags/learn.md>), [logging](<https://devfeed.tech/tags/logging.md>), [logs](<https://devfeed.tech/tags/logs.md>), [module](<https://devfeed.tech/tags/module.md>), [php](<https://devfeed.tech/tags/php.md>), [plugin](<https://devfeed.tech/tags/plugin.md>), [send](<https://devfeed.tech/tags/send.md>), [separate](<https://devfeed.tech/tags/separate.md>)

### AI overview

A tutorial showing how to configure Craft CMS 4 plugins or modules to send their logs to separate files using Monolog and a FileLog helper class. It explains log levels, category matching, namespaces, and storage/logs output.

### Source excerpt

Learn how to easily send logs from your custom module or plugin to a separate file in Craft CMS 4

## Autocomplete for Behaviors in PhpStorm with Mixins & Veneers

DevFeed: [Autocomplete for Behaviors in PhpStorm with Mixins & Veneers](<https://devfeed.tech/articles/autocomplete-for-behaviors-in-phpstorm-with-mixins-veneers-31244.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/autocomplete-for-behaviors-in-phpstorm-with-mixins-veneers>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2022-12-20T15:42:00Z

Content type: tutorial

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [phpstorm](<https://devfeed.tech/topics/phpstorm.md>), [code-completion](<https://devfeed.tech/topics/code-completion.md>), [Content Management System](<https://devfeed.tech/topics/cms.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [added](<https://devfeed.tech/tags/added.md>), [autocomplete](<https://devfeed.tech/tags/autocomplete.md>), [behaviors](<https://devfeed.tech/tags/behaviors.md>), [cms](<https://devfeed.tech/tags/cms.md>), [code](<https://devfeed.tech/tags/code.md>), [code-analysis](<https://devfeed.tech/tags/code-analysis.md>), [code-completion](<https://devfeed.tech/tags/code-completion.md>), [completion](<https://devfeed.tech/tags/completion.md>), [craft](<https://devfeed.tech/tags/craft.md>), [insights](<https://devfeed.tech/tags/insights.md>), [intellisense](<https://devfeed.tech/tags/intellisense.md>), [learn](<https://devfeed.tech/tags/learn.md>), [mixins](<https://devfeed.tech/tags/mixins.md>), [phpstorm](<https://devfeed.tech/tags/phpstorm.md>), [project](<https://devfeed.tech/tags/project.md>), [using](<https://devfeed.tech/tags/using.md>), [veneers](<https://devfeed.tech/tags/veneers.md>)

### AI overview

A tutorial on restoring PhpStorm IntelliSense code completion for behaviors added to Craft CMS projects. It explains how to use mixins and veneer classes so PhpStorm can recognize dynamically added properties and methods through static code analysis.

### Source excerpt

Learn how to get PhpStorm IntelliSense code completion for Behaviors added to your Craft CMS project using Mixins & Veneers

## Composer for the Rest of Us

DevFeed: [Composer for the Rest of Us](<https://devfeed.tech/articles/composer-for-the-rest-of-us-31246.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/composer-for-the-rest-of-us>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2022-08-14T20:04:00Z

Content type: tutorial

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [Composer](<https://devfeed.tech/topics/composer.md>), [Dependency management](<https://devfeed.tech/topics/dependency-management.md>), [PHP](<https://devfeed.tech/topics/php.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [JSON](<https://devfeed.tech/topics/json.md>)

Tags: [cli](<https://devfeed.tech/tags/cli.md>), [composer](<https://devfeed.tech/tags/composer.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [dependency-management](<https://devfeed.tech/tags/dependency-management.md>), [insights](<https://devfeed.tech/tags/insights.md>), [install](<https://devfeed.tech/tags/install.md>), [json](<https://devfeed.tech/tags/json.md>), [learn](<https://devfeed.tech/tags/learn.md>), [leverage](<https://devfeed.tech/tags/leverage.md>), [like](<https://devfeed.tech/tags/like.md>), [manage](<https://devfeed.tech/tags/manage.md>), [php](<https://devfeed.tech/tags/php.md>), [php-based](<https://devfeed.tech/tags/php-based.md>), [projects](<https://devfeed.tech/tags/projects.md>)

### AI overview

A tutorial on Composer, the PHP dependency-management tool. It explains how Composer declares, installs, updates, and autoloads project dependencies, then introduces composer.json, composer.lock, Packagist, and useful Composer commands.

### Source excerpt

Learn about how you can leverage Composer like a pro to manage & install your dependencies in PHP-based projects

## Fluent Multi-Environment Config for Craft CMS 4

DevFeed: [Fluent Multi-Environment Config for Craft CMS 4](<https://devfeed.tech/articles/fluent-multi-environment-config-for-craft-cms-4-31263.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/fluent-multi-environment-config-for-craft-cms-4>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2022-07-26T04:00:00Z

Content type: tutorial

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [Content Management System](<https://devfeed.tech/topics/cms.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [allows](<https://devfeed.tech/tags/allows.md>), [autocomplete](<https://devfeed.tech/tags/autocomplete.md>), [better](<https://devfeed.tech/tags/better.md>), [cms](<https://devfeed.tech/tags/cms.md>), [config](<https://devfeed.tech/tags/config.md>), [craft](<https://devfeed.tech/tags/craft.md>), [create](<https://devfeed.tech/tags/create.md>), [editor](<https://devfeed.tech/tags/editor.md>), [environment](<https://devfeed.tech/tags/environment.md>), [errors](<https://devfeed.tech/tags/errors.md>), [fewer](<https://devfeed.tech/tags/fewer.md>), [files](<https://devfeed.tech/tags/files.md>), [fluent](<https://devfeed.tech/tags/fluent.md>), [insights](<https://devfeed.tech/tags/insights.md>), [less](<https://devfeed.tech/tags/less.md>), [model](<https://devfeed.tech/tags/model.md>), [multi-environment](<https://devfeed.tech/tags/multi-environment.md>), [settings](<https://devfeed.tech/tags/settings.md>), [using](<https://devfeed.tech/tags/using.md>), [work](<https://devfeed.tech/tags/work.md>)

### AI overview

This tutorial explains how Craft CMS 4.2's optional fluent configuration interface improves multi-environment config files. It highlights autocomplete, inline documentation, and type-checking as ways to reduce lookup work and configuration errors.

### Source excerpt

Using the new fluent model config settings in Craft CMS 4.2 allows you to create better config files, with less work and fewer errors

## Creating a Reverse Proxy for Partytown with AWS Cloudfront

DevFeed: [Creating a Reverse Proxy for Partytown with AWS Cloudfront](<https://devfeed.tech/articles/creating-a-reverse-proxy-for-partytown-with-aws-cloudfront-31253.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/creating-a-reverse-proxy-for-partytown-with-aws-cloudfront>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2022-02-18T15:49:00Z

Content type: tutorial

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [Amazon Web Services](<https://devfeed.tech/topics/aws.md>), [proxy](<https://devfeed.tech/topics/proxy.md>), [Cross-origin resource sharing (CORS)](<https://devfeed.tech/topics/cors.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Library](<https://devfeed.tech/topics/library.md>)

Tags: [aws](<https://devfeed.tech/tags/aws.md>), [cloudfront](<https://devfeed.tech/tags/cloudfront.md>), [cors](<https://devfeed.tech/tags/cors.md>), [create](<https://devfeed.tech/tags/create.md>), [easily](<https://devfeed.tech/tags/easily.md>), [insights](<https://devfeed.tech/tags/insights.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [learn](<https://devfeed.tech/tags/learn.md>), [library](<https://devfeed.tech/tags/library.md>), [party](<https://devfeed.tech/tags/party.md>), [partytown](<https://devfeed.tech/tags/partytown.md>), [performance](<https://devfeed.tech/tags/performance.md>), [performantly](<https://devfeed.tech/tags/performantly.md>), [proxy](<https://devfeed.tech/tags/proxy.md>), [quickly](<https://devfeed.tech/tags/quickly.md>), [reverse](<https://devfeed.tech/tags/reverse.md>), [reverse-proxy](<https://devfeed.tech/tags/reverse-proxy.md>), [scripts](<https://devfeed.tech/tags/scripts.md>), [third-party](<https://devfeed.tech/tags/third-party.md>), [tracking](<https://devfeed.tech/tags/tracking.md>), [worker](<https://devfeed.tech/tags/worker.md>)

### AI overview

A tutorial on creating an AWS CloudFront reverse proxy for Partytown so third-party tracking scripts can run in a web worker. It explains that some scripts require a reverse proxy because their origins do not provide permissive CORS headers.

### Source excerpt

Learn how to quickly & easily create a reverse proxy with AWS Cloudfront for Partytown, so your third party tracking scripts can run performantly in a web worker

## Searching Craft CMS Matrix Blocks

DevFeed: [Searching Craft CMS Matrix Blocks](<https://devfeed.tech/articles/searching-craft-cms-matrix-blocks-31293.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/searching-craft-cms-matrix-blocks>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2021-11-26T05:00:00Z

Content type: tutorial

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [Query (disambiguation)](<https://devfeed.tech/topics/query.md>), [Content Management System](<https://devfeed.tech/topics/cms.md>)

Tags: [based](<https://devfeed.tech/tags/based.md>), [behavior](<https://devfeed.tech/tags/behavior.md>), [blocks](<https://devfeed.tech/tags/blocks.md>), [cms](<https://devfeed.tech/tags/cms.md>), [contain](<https://devfeed.tech/tags/contain.md>), [contents](<https://devfeed.tech/tags/contents.md>), [craft](<https://devfeed.tech/tags/craft.md>), [custom](<https://devfeed.tech/tags/custom.md>), [easily](<https://devfeed.tech/tags/easily.md>), [elements](<https://devfeed.tech/tags/elements.md>), [entries](<https://devfeed.tech/tags/entries.md>), [insights](<https://devfeed.tech/tags/insights.md>), [little](<https://devfeed.tech/tags/little.md>), [matrix](<https://devfeed.tech/tags/matrix.md>), [php](<https://devfeed.tech/tags/php.md>), [query](<https://devfeed.tech/tags/query.md>), [twig](<https://devfeed.tech/tags/twig.md>)

### AI overview

A tutorial on querying Craft CMS Entries by the content of their Matrix blocks. It explains how to find matching Matrix blocks, collect their owner IDs, and use those IDs to filter an Element query, including a generalized approach usable in Twig.

### Source excerpt

With a little custom Behavior, we can easily query for Elements such as Entries in Craft CMS based on the contents of the Matrix Blocks they contain

## Using Docker Containers to Run Development Tools Without Local Installation

DevFeed: [Using Docker Containers to Run Development Tools Without Local Installation](<https://devfeed.tech/articles/dock-life-using-docker-for-all-the-things-31258.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/dock-life-using-docker-for-all-the-things>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2021-11-02T15:42:00Z

Content type: tutorial

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [Docker](<https://devfeed.tech/topics/docker.md>), [Containers](<https://devfeed.tech/topics/containers.md>), [Docker Image](<https://devfeed.tech/topics/docker-image.md>), [Docker Hub](<https://devfeed.tech/topics/docker-hub.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Shell](<https://devfeed.tech/topics/shell.md>)

Tags: [command-line](<https://devfeed.tech/tags/command-line.md>), [computer](<https://devfeed.tech/tags/computer.md>), [containerization](<https://devfeed.tech/tags/containerization.md>), [devops](<https://devfeed.tech/tags/devops.md>), [docker](<https://devfeed.tech/tags/docker.md>), [docker-hub](<https://devfeed.tech/tags/docker-hub.md>), [embracing](<https://devfeed.tech/tags/embracing.md>), [flexible](<https://devfeed.tech/tags/flexible.md>), [gives](<https://devfeed.tech/tags/gives.md>), [messy](<https://devfeed.tech/tags/messy.md>), [robust](<https://devfeed.tech/tags/robust.md>), [setup](<https://devfeed.tech/tags/setup.md>), [things](<https://devfeed.tech/tags/things.md>), [tools](<https://devfeed.tech/tags/tools.md>), [transportable](<https://devfeed.tech/tags/transportable.md>)

### AI overview

This tutorial explains how to use Docker containers to run development tools without installing them directly on a computer. It describes the benefits of disposable, version-specific, self-contained images and introduces Docker Hub and shell aliases.

### Source excerpt

Embracing Docker for All The Things gives you a more flexible, robust, and transportable way to use tools on your computer without messy setup

## Petite-Vue: A 5.8 KB JavaScript Library for Adding Small Interactions to Server-Rendered Pages

DevFeed: [Petite-Vue: A 5.8 KB JavaScript Library for Adding Small Interactions to Server-Rendered Pages](<https://devfeed.tech/articles/a-little-taste-of-petite-vue-31234.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/a-little-taste-of-petite-vue>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2021-08-20T06:41:00Z

Content type: article

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [Vue.js](<https://devfeed.tech/topics/vue.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Library](<https://devfeed.tech/topics/library.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [Front end](<https://devfeed.tech/topics/frontend.md>), [interactive website](<https://devfeed.tech/topics/interactive-website.md>)

Tags: [5-8kb](<https://devfeed.tech/tags/5-8kb.md>), [bits](<https://devfeed.tech/tags/bits.md>), [gives](<https://devfeed.tech/tags/gives.md>), [insights](<https://devfeed.tech/tags/insights.md>), [interaction](<https://devfeed.tech/tags/interaction.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [library](<https://devfeed.tech/tags/library.md>), [optimized](<https://devfeed.tech/tags/optimized.md>), [pages](<https://devfeed.tech/tags/pages.md>), [petite-vue](<https://devfeed.tech/tags/petite-vue.md>), [power](<https://devfeed.tech/tags/power.md>), [slimmed](<https://devfeed.tech/tags/slimmed.md>), [small](<https://devfeed.tech/tags/small.md>), [sprinkling](<https://devfeed.tech/tags/sprinkling.md>), [tiny](<https://devfeed.tech/tags/tiny.md>), [vue](<https://devfeed.tech/tags/vue.md>), [vue-js](<https://devfeed.tech/tags/vue-js.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

This article introduces Petite-Vue, a 5.8 KB JavaScript micro-framework for progressively enhancing server-rendered HTML with small interactive features. It compares Petite-Vue with Alpine.js and highlights its Vue-compatible API, migration path to Vue.js, existing Vue ecosystem, and TypeScript support.

### Source excerpt

Petite-Vue is a tiny 5.8kb JavaScript library that gives you the power of Vue.js, but slimmed down & optimized for sprinkling small bits of interaction on your web pages

## Custom Matrix Block Peer Validation Rules

DevFeed: [Custom Matrix Block Peer Validation Rules](<https://devfeed.tech/articles/custom-matrix-block-peer-validation-rules-31255.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/custom-matrix-block-validation-rules>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2021-05-24T04:00:00Z

Content type: tutorial

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [Content Management System](<https://devfeed.tech/topics/cms.md>), [Website](<https://devfeed.tech/topics/website.md>)

Tags: [authoring](<https://devfeed.tech/tags/authoring.md>), [better](<https://devfeed.tech/tags/better.md>), [blocks](<https://devfeed.tech/tags/blocks.md>), [builder](<https://devfeed.tech/tags/builder.md>), [cms](<https://devfeed.tech/tags/cms.md>), [content](<https://devfeed.tech/tags/content.md>), [craft](<https://devfeed.tech/tags/craft.md>), [custom](<https://devfeed.tech/tags/custom.md>), [errors](<https://devfeed.tech/tags/errors.md>), [experience](<https://devfeed.tech/tags/experience.md>), [insights](<https://devfeed.tech/tags/insights.md>), [leverage](<https://devfeed.tech/tags/leverage.md>), [matrix](<https://devfeed.tech/tags/matrix.md>), [module](<https://devfeed.tech/tags/module.md>), [peer](<https://devfeed.tech/tags/peer.md>), [rules](<https://devfeed.tech/tags/rules.md>), [validation](<https://devfeed.tech/tags/validation.md>)

### AI overview

A tutorial on extending Craft CMS Matrix block content builders with custom peer validation rules. The example validates sundae blocks by limiting scoop and topping counts, requiring at least one scoop, and rejecting a specific flavor combination.

### Source excerpt

Leverage a Craft CMS module to add custom peer validation rules to your content builder Matrix blocks for a better content authoring experience

## A Vite Buildchain for Craft CMS Plugins & Modules

DevFeed: [A Vite Buildchain for Craft CMS Plugins & Modules](<https://devfeed.tech/articles/a-vite-buildchain-for-craft-cms-plugins-modules-31237.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/a-vite-buildchain-for-craft-cms-plugins>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2021-05-17T04:00:00Z

Content type: tutorial

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [Vite](<https://devfeed.tech/topics/vite.md>), [Content Management System](<https://devfeed.tech/topics/cms.md>), [Tailwind CSS](<https://devfeed.tech/topics/tailwind.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [CSS](<https://devfeed.tech/topics/css.md>), [modules](<https://devfeed.tech/topics/modules.md>), [PostCSS](<https://devfeed.tech/topics/postcss.md>)

Tags: [buildchain](<https://devfeed.tech/tags/buildchain.md>), [builds](<https://devfeed.tech/tags/builds.md>), [cms](<https://devfeed.tech/tags/cms.md>), [composer](<https://devfeed.tech/tags/composer.md>), [craft](<https://devfeed.tech/tags/craft.md>), [css](<https://devfeed.tech/tags/css.md>), [developer-experience](<https://devfeed.tech/tags/developer-experience.md>), [drop-in](<https://devfeed.tech/tags/drop-in.md>), [giving](<https://devfeed.tech/tags/giving.md>), [insights](<https://devfeed.tech/tags/insights.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [module](<https://devfeed.tech/tags/module.md>), [modules](<https://devfeed.tech/tags/modules.md>), [optimized](<https://devfeed.tech/tags/optimized.md>), [plugin](<https://devfeed.tech/tags/plugin.md>), [plugins](<https://devfeed.tech/tags/plugins.md>), [postcss](<https://devfeed.tech/tags/postcss.md>), [production](<https://devfeed.tech/tags/production.md>), [replacement](<https://devfeed.tech/tags/replacement.md>), [tailwind](<https://devfeed.tech/tags/tailwind.md>), [tailwind-css](<https://devfeed.tech/tags/tailwind-css.md>), [vite](<https://devfeed.tech/tags/vite.md>)

### AI overview

This tutorial explains how to add a Vite buildchain to Craft CMS plugins and modules. It covers TypeScript, Hot Module Replacement for CSS, JavaScript, and Twig templates, Vue.js 3, Tailwind CSS with JIT, PostCSS, and optimized production builds with Rollup and content-hash versioning.

### Source excerpt

A drop-in buildchain you can use in your Craft CMS plugins and modules, giving you Hot Module Replacement for JavaScript, Tailwind CSS, and optimized production builds.

## Vite.js Next Generation Frontend Tooling + Craft CMS

DevFeed: [Vite.js Next Generation Frontend Tooling + Craft CMS](<https://devfeed.tech/articles/vite-js-next-generation-frontend-tooling-craft-cms-31318.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/using-vite-js-next-generation-frontend-tooling-with-craft-cms>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2021-05-05T00:51:00Z

Content type: tutorial

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [Vite](<https://devfeed.tech/topics/vite.md>), [Front end](<https://devfeed.tech/topics/frontend.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>), [Content Management System](<https://devfeed.tech/topics/cms.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [cms](<https://devfeed.tech/tags/cms.md>), [combines](<https://devfeed.tech/tags/combines.md>), [craft](<https://devfeed.tech/tags/craft.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [generation](<https://devfeed.tech/tags/generation.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [integrate](<https://devfeed.tech/tags/integrate.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [modern](<https://devfeed.tech/tags/modern.md>), [shows](<https://devfeed.tech/tags/shows.md>), [simplicity](<https://devfeed.tech/tags/simplicity.md>), [speed](<https://devfeed.tech/tags/speed.md>), [tooling](<https://devfeed.tech/tags/tooling.md>), [vite](<https://devfeed.tech/tags/vite.md>), [vite-js](<https://devfeed.tech/tags/vite-js.md>)

### AI overview

A tutorial on integrating Vite.js frontend tooling with Craft CMS. It explains Vite.js's speed and simplicity, compares its build workflow with webpack, and describes plugin installation and configuration for a server-rendered Craft CMS project.

### Source excerpt

Vite.js is next generation frontend tooling for modern JavaScript that combines speed with simplicity. This article shows you how to integrate Vite.js with Craft CMS

## A Craft CMS Plugin Local Development Environment

DevFeed: [A Craft CMS Plugin Local Development Environment](<https://devfeed.tech/articles/a-craft-cms-plugin-local-development-environment-31232.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/a-craft-cms-plugin-local-development-environment>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2021-04-21T04:00:00Z

Content type: tutorial

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [Content Management System](<https://devfeed.tech/topics/cms.md>), [Docker](<https://devfeed.tech/topics/docker.md>), [PHP](<https://devfeed.tech/topics/php.md>), [Development](<https://devfeed.tech/topics/development.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [phpstorm](<https://devfeed.tech/topics/phpstorm.md>), [MySQL](<https://devfeed.tech/topics/mysql.md>), [Database](<https://devfeed.tech/topics/database.md>), [Front end](<https://devfeed.tech/topics/frontend.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [cms](<https://devfeed.tech/tags/cms.md>), [composer](<https://devfeed.tech/tags/composer.md>), [containerized](<https://devfeed.tech/tags/containerized.md>), [craft](<https://devfeed.tech/tags/craft.md>), [debug](<https://devfeed.tech/tags/debug.md>), [details](<https://devfeed.tech/tags/details.md>), [develop](<https://devfeed.tech/tags/develop.md>), [development](<https://devfeed.tech/tags/development.md>), [docker](<https://devfeed.tech/tags/docker.md>), [ease](<https://devfeed.tech/tags/ease.md>), [environment](<https://devfeed.tech/tags/environment.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [insights](<https://devfeed.tech/tags/insights.md>), [local](<https://devfeed.tech/tags/local.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [php](<https://devfeed.tech/tags/php.md>), [phpstorm](<https://devfeed.tech/tags/phpstorm.md>), [plugin](<https://devfeed.tech/tags/plugin.md>), [plugin-development](<https://devfeed.tech/tags/plugin-development.md>), [plugins](<https://devfeed.tech/tags/plugins.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [test](<https://devfeed.tech/tags/test.md>)

### AI overview

This tutorial presents a portable, cross-platform Docker development environment for building, debugging, and testing Craft CMS plugins. It covers preconfigured PHP and database environments, testing content, PhpStorm and XDebug support, and plugin development setup.

### Source excerpt

This article details a containerized local development environment that you can use to develop, debug, and test Craft CMS plugins with ease

## Using Make & Makefiles to Automate your Frontend Workflow

DevFeed: [Using Make & Makefiles to Automate your Frontend Workflow](<https://devfeed.tech/articles/using-make-makefiles-to-automate-your-frontend-workflow-31313.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/using-make-makefiles-to-automate-your-frontend-workflow>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2021-04-11T20:13:00Z

Content type: tutorial

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [make](<https://devfeed.tech/topics/make.md>), [Front end](<https://devfeed.tech/topics/frontend.md>), [Automation](<https://devfeed.tech/topics/automation.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>)

Tags: [automate](<https://devfeed.tech/tags/automate.md>), [automation](<https://devfeed.tech/tags/automation.md>), [build](<https://devfeed.tech/tags/build.md>), [cli](<https://devfeed.tech/tags/cli.md>), [decades](<https://devfeed.tech/tags/decades.md>), [development](<https://devfeed.tech/tags/development.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [insights](<https://devfeed.tech/tags/insights.md>), [learn](<https://devfeed.tech/tags/learn.md>), [leverage](<https://devfeed.tech/tags/leverage.md>), [make](<https://devfeed.tech/tags/make.md>), [software](<https://devfeed.tech/tags/software.md>), [that-s](<https://devfeed.tech/tags/that-s.md>), [tool](<https://devfeed.tech/tags/tool.md>), [used](<https://devfeed.tech/tags/used.md>), [workflow](<https://devfeed.tech/tags/workflow.md>)

### AI overview

A tutorial on using GNU Make and Makefiles to automate frontend web development. It explains how Make can provide a consistent project-specific CLI, hide underlying tooling, and simplify commands for development, builds, cleanup, and documentation.

### Source excerpt

Make is a build automation tool that's been used for decades to build software. Learn how you can leverage make to automate frontend web development

## Updating Craft CMS Without Headaches

DevFeed: [Updating Craft CMS Without Headaches](<https://devfeed.tech/articles/updating-craft-cms-without-headaches-31311.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/updating-craft-cms-without-headaches>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2020-11-30T05:00:00Z

Content type: tutorial

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [Composer](<https://devfeed.tech/topics/composer.md>), [Content Management System](<https://devfeed.tech/topics/cms.md>), [Package manager](<https://devfeed.tech/topics/package-manager.md>), [PHP](<https://devfeed.tech/topics/php.md>), [Website](<https://devfeed.tech/topics/website.md>)

Tags: [cause](<https://devfeed.tech/tags/cause.md>), [cms](<https://devfeed.tech/tags/cms.md>), [composer](<https://devfeed.tech/tags/composer.md>), [craft](<https://devfeed.tech/tags/craft.md>), [dependency](<https://devfeed.tech/tags/dependency.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [doesn-t](<https://devfeed.tech/tags/doesn-t.md>), [headaches](<https://devfeed.tech/tags/headaches.md>), [here-s](<https://devfeed.tech/tags/here-s.md>), [insights](<https://devfeed.tech/tags/insights.md>), [latest](<https://devfeed.tech/tags/latest.md>), [maintenance](<https://devfeed.tech/tags/maintenance.md>), [pain](<https://devfeed.tech/tags/pain.md>), [php](<https://devfeed.tech/tags/php.md>), [prescription](<https://devfeed.tech/tags/prescription.md>), [update](<https://devfeed.tech/tags/update.md>), [updating](<https://devfeed.tech/tags/updating.md>), [version](<https://devfeed.tech/tags/version.md>)

### AI overview

A tutorial on updating Craft CMS after version 3 moved the platform and its plugins to Composer-managed PHP packages. It recommends frequent updates, ideally about once per month, to reduce dependency complexity and make problems easier to roll back.

### Source excerpt

Updating Craft CMS to the latest version doesn't have to cause headaches. Here's our prescription for how to update Craft CMS without pain

## Speeding Up Tailwind CSS Builds

DevFeed: [Speeding Up Tailwind CSS Builds](<https://devfeed.tech/articles/speeding-up-tailwind-css-builds-31301.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/speeding-up-tailwind-css-builds>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2020-10-13T12:29:00Z

Content type: tutorial

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [Tailwind CSS](<https://devfeed.tech/topics/tailwind.md>), [build times](<https://devfeed.tech/topics/build-times.md>), [PostCSS](<https://devfeed.tech/topics/postcss.md>), [Development](<https://devfeed.tech/topics/development.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [build](<https://devfeed.tech/tags/build.md>), [build-times](<https://devfeed.tech/tags/build-times.md>), [builds](<https://devfeed.tech/tags/builds.md>), [css](<https://devfeed.tech/tags/css.md>), [development](<https://devfeed.tech/tags/development.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [insights](<https://devfeed.tech/tags/insights.md>), [learn](<https://devfeed.tech/tags/learn.md>), [live](<https://devfeed.tech/tags/live.md>), [local](<https://devfeed.tech/tags/local.md>), [magnitude](<https://devfeed.tech/tags/magnitude.md>), [make](<https://devfeed.tech/tags/make.md>), [module](<https://devfeed.tech/tags/module.md>), [optimize](<https://devfeed.tech/tags/optimize.md>), [orders](<https://devfeed.tech/tags/orders.md>), [performance](<https://devfeed.tech/tags/performance.md>), [postcss](<https://devfeed.tech/tags/postcss.md>), [reload](<https://devfeed.tech/tags/reload.md>), [replacement](<https://devfeed.tech/tags/replacement.md>), [tailwind](<https://devfeed.tech/tags/tailwind.md>), [times](<https://devfeed.tech/tags/times.md>)

### AI overview

A tutorial on optimizing Tailwind CSS builds in local development. It explains how splitting CSS imports can avoid reprocessing the full Tailwind utilities stylesheet during ordinary CSS changes, improving Hot Module Replacement and Live Reload responsiveness.

### Source excerpt

Learn how to optimize your Tailwind CSS PostCSS build times to make local development with Hot Module Replacement or Live Reload orders of magnitude faster!

## Running Node.js in Docker for local development

DevFeed: [Running Node.js in Docker for local development](<https://devfeed.tech/articles/running-node-js-in-docker-for-local-development-31292.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/run-your-node-js-apps-buildchains-via-docker>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2020-09-14T04:00:00Z

Content type: tutorial

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [Docker](<https://devfeed.tech/topics/docker.md>), [Node.js](<https://devfeed.tech/topics/node-js.md>), [Containers](<https://devfeed.tech/topics/containers.md>), [Development](<https://devfeed.tech/topics/development.md>), [Front end](<https://devfeed.tech/topics/frontend.md>)

Tags: [apps](<https://devfeed.tech/tags/apps.md>), [benefit](<https://devfeed.tech/tags/benefit.md>), [buildchains](<https://devfeed.tech/tags/buildchains.md>), [containers](<https://devfeed.tech/tags/containers.md>), [dependency](<https://devfeed.tech/tags/dependency.md>), [development](<https://devfeed.tech/tags/development.md>), [docker](<https://devfeed.tech/tags/docker.md>), [don-t](<https://devfeed.tech/tags/don-t.md>), [easy](<https://devfeed.tech/tags/easy.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [hassle](<https://devfeed.tech/tags/hassle.md>), [inside](<https://devfeed.tech/tags/inside.md>), [insights](<https://devfeed.tech/tags/insights.md>), [know](<https://devfeed.tech/tags/know.md>), [local](<https://devfeed.tech/tags/local.md>), [need](<https://devfeed.tech/tags/need.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [onboarding](<https://devfeed.tech/tags/onboarding.md>), [running](<https://devfeed.tech/tags/running.md>)

### AI overview

This tutorial explains how to run Node.js buildchains and applications in Docker containers during local development. It presents containerization as a way to isolate application dependencies, simplify onboarding, and reduce conflicts between projects.

### Source excerpt

You don't need to know Docker to benefit from running local dev Node.js buildchains & apps inside of Docker containers. You get easy onboarding, and less hassle.

## Creating a custom field in Craft CMS

DevFeed: [Creating a custom field in Craft CMS](<https://devfeed.tech/articles/creating-a-custom-field-in-craft-cms-31251.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/creating-a-custom-field-in-craft-cms>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2020-08-27T04:00:00Z

Content type: tutorial

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [Content Management System](<https://devfeed.tech/topics/cms.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [cms](<https://devfeed.tech/tags/cms.md>), [code](<https://devfeed.tech/tags/code.md>), [craft](<https://devfeed.tech/tags/craft.md>), [create](<https://devfeed.tech/tags/create.md>), [custom](<https://devfeed.tech/tags/custom.md>), [field](<https://devfeed.tech/tags/field.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [insights](<https://devfeed.tech/tags/insights.md>), [learn](<https://devfeed.tech/tags/learn.md>), [leveraging](<https://devfeed.tech/tags/leveraging.md>), [little](<https://devfeed.tech/tags/little.md>), [platform](<https://devfeed.tech/tags/platform.md>), [possible](<https://devfeed.tech/tags/possible.md>), [writing](<https://devfeed.tech/tags/writing.md>)

### AI overview

A tutorial on creating a custom field in Craft CMS whose dropdown options come from Craft Commerce country data. It recommends subclassing the built-in Craft Dropdown field and changing only the required behavior to reduce code and maintenance.

### Source excerpt

Learn how to create a custom field in Craft CMS, writing as little code as possible by leveraging the platform.

[Next page](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md?cursor=WyIyMDIwLTA4LTI3VDA0OjAwOjAwKzAwOjAwIiwgIjU1NjZkYjliLTZmOWEtNDgzOS04NDU5LWI5MTlmMDVkMTcxNCJd>)