# allows

Published articles for allows.

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

## 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

## An Annotated Docker Config for Frontend Web Development

DevFeed: [An Annotated Docker Config for Frontend Web Development](<https://devfeed.tech/articles/an-annotated-docker-config-for-frontend-web-development-31239.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/an-annotated-docker-config-for-frontend-web-development>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2020-03-22T16:12: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>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [DevOps](<https://devfeed.tech/topics/devops.md>), [Development](<https://devfeed.tech/topics/development.md>), [Docker Compose](<https://devfeed.tech/topics/docker-compose.md>), [Dockerfile](<https://devfeed.tech/topics/dockerfile.md>)

Tags: [allows](<https://devfeed.tech/tags/allows.md>), [apple-silicon](<https://devfeed.tech/tags/apple-silicon.md>), [config](<https://devfeed.tech/tags/config.md>), [development](<https://devfeed.tech/tags/development.md>), [devops](<https://devfeed.tech/tags/devops.md>), [docker](<https://devfeed.tech/tags/docker.md>), [docker-compose](<https://devfeed.tech/tags/docker-compose.md>), [environment](<https://devfeed.tech/tags/environment.md>), [frictionless](<https://devfeed.tech/tags/frictionless.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [insights](<https://devfeed.tech/tags/insights.md>), [local](<https://devfeed.tech/tags/local.md>), [making](<https://devfeed.tech/tags/making.md>), [multi-arch](<https://devfeed.tech/tags/multi-arch.md>), [needs](<https://devfeed.tech/tags/needs.md>), [onboarding](<https://devfeed.tech/tags/onboarding.md>), [project](<https://devfeed.tech/tags/project.md>), [shrink-wrap](<https://devfeed.tech/tags/shrink-wrap.md>), [web-development](<https://devfeed.tech/tags/web-development.md>)

### AI overview

This tutorial explains how to use Docker as a local development environment for frontend web projects. It presents a reusable configuration approach that packages each application with the environment and service versions it needs, making environments reproducible, disposable, and easier to share. Examples reference Craft CMS, Laravel, NodeJS, and Rails, with multi-architecture base images available for Apple Silicon.

### Source excerpt

A local development environment with Docker allows you to shrink-wrap the devops your project needs as config, making onboarding frictionless

## Writing Craft Plugins with Extensible Components

DevFeed: [Writing Craft Plugins with Extensible Components](<https://devfeed.tech/articles/writing-craft-plugins-with-extensible-components-31322.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/writing-craft-plugins-with-extensible-components>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2018-12-26T22:19: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>), [interfaces](<https://devfeed.tech/topics/interfaces.md>), [API](<https://devfeed.tech/topics/api.md>), [Code](<https://devfeed.tech/topics/code.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [allows](<https://devfeed.tech/tags/allows.md>), [article](<https://devfeed.tech/tags/article.md>), [cms](<https://devfeed.tech/tags/cms.md>), [code](<https://devfeed.tech/tags/code.md>), [component-ized](<https://devfeed.tech/tags/component-ized.md>), [craft](<https://devfeed.tech/tags/craft.md>), [extend](<https://devfeed.tech/tags/extend.md>), [flexible](<https://devfeed.tech/tags/flexible.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [insights](<https://devfeed.tech/tags/insights.md>), [interfaces](<https://devfeed.tech/tags/interfaces.md>), [modular](<https://devfeed.tech/tags/modular.md>), [php](<https://devfeed.tech/tags/php.md>), [plugin](<https://devfeed.tech/tags/plugin.md>), [plugin-development](<https://devfeed.tech/tags/plugin-development.md>), [write](<https://devfeed.tech/tags/write.md>)

### AI overview

A tutorial on designing Craft CMS plugins with extensible components. It uses the ImageOptimize plugin as a practical example and explains how PHP interfaces can define an API that allows image transformation functionality to be replaced or extended by other services.

### Source excerpt

How to write a plugin for Craft CMS that allows others to extend it in a flexible, component-ized way

## Speed up your Craft CMS Templates with Eager Loading

DevFeed: [Speed up your Craft CMS Templates with Eager Loading](<https://devfeed.tech/articles/speed-up-your-craft-cms-templates-with-eager-loading-31300.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/speed-up-your-craft-cms-templates-with-eager-loading>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2017-09-30T04: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>), [Database](<https://devfeed.tech/topics/database.md>), [Code](<https://devfeed.tech/topics/code.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [Front end](<https://devfeed.tech/topics/frontend.md>)

Tags: [allows](<https://devfeed.tech/tags/allows.md>), [backend](<https://devfeed.tech/tags/backend.md>), [cms](<https://devfeed.tech/tags/cms.md>), [craft](<https://devfeed.tech/tags/craft.md>), [database](<https://devfeed.tech/tags/database.md>), [eager-loading](<https://devfeed.tech/tags/eager-loading.md>), [efficiently](<https://devfeed.tech/tags/efficiently.md>), [elements](<https://devfeed.tech/tags/elements.md>), [entries](<https://devfeed.tech/tags/entries.md>), [fetching](<https://devfeed.tech/tags/fetching.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [insights](<https://devfeed.tech/tags/insights.md>), [loading](<https://devfeed.tech/tags/loading.md>), [speed](<https://devfeed.tech/tags/speed.md>), [templates](<https://devfeed.tech/tags/templates.md>)

### AI overview

This tutorial explains how Craft CMS stores content as related Elements and how lazy loading can create an n+1 database access pattern. It introduces eager loading as a way to fetch related entries and assets more efficiently in templates.

### Source excerpt

Eager-Loading Elements allows you to speed up your Craft CMS templates by fetching entries from the database more efficiently.

## Simple Static Asset Versioning in Craft CMS

DevFeed: [Simple Static Asset Versioning in Craft CMS](<https://devfeed.tech/articles/simple-static-asset-versioning-in-craft-cms-31298.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/simple-static-asset-versioning>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2017-05-05T20:58: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>), [Caching](<https://devfeed.tech/topics/caching.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [Website](<https://devfeed.tech/topics/website.md>)

Tags: [allows](<https://devfeed.tech/tags/allows.md>), [asset](<https://devfeed.tech/tags/asset.md>), [caching](<https://devfeed.tech/tags/caching.md>), [cms](<https://devfeed.tech/tags/cms.md>), [css](<https://devfeed.tech/tags/css.md>), [delivered](<https://devfeed.tech/tags/delivered.md>), [ensuring](<https://devfeed.tech/tags/ensuring.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [insights](<https://devfeed.tech/tags/insights.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [latest](<https://devfeed.tech/tags/latest.md>), [performance](<https://devfeed.tech/tags/performance.md>), [performant](<https://devfeed.tech/tags/performant.md>), [static](<https://devfeed.tech/tags/static.md>), [versioning](<https://devfeed.tech/tags/versioning.md>), [website](<https://devfeed.tech/tags/website.md>)

### AI overview

This tutorial explains static asset versioning in Craft CMS. It describes browser caching for CSS, JavaScript, and image assets, compares query-string and filename-based cache busting, and presents a simple approach to delivering updated assets while keeping the build system manageable.

### Source excerpt

Static asset versioning allows you to have a performant website, while also ensuring the latest CSS and JavaScript are delivered

## Local Development with Vagrant / Homestead

DevFeed: [Local Development with Vagrant / Homestead](<https://devfeed.tech/articles/local-development-with-vagrant-homestead-31278.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/local-development-with-vagrant-homestead>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2017-03-31T07:59: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: [Vagrant](<https://devfeed.tech/topics/vagrant.md>), [Provisioning](<https://devfeed.tech/topics/provisioning.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>)

Tags: [allows](<https://devfeed.tech/tags/allows.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [debugging-tools](<https://devfeed.tech/tags/debugging-tools.md>), [development](<https://devfeed.tech/tags/development.md>), [effectively](<https://devfeed.tech/tags/effectively.md>), [environment](<https://devfeed.tech/tags/environment.md>), [homestead](<https://devfeed.tech/tags/homestead.md>), [insights](<https://devfeed.tech/tags/insights.md>), [linux](<https://devfeed.tech/tags/linux.md>), [local](<https://devfeed.tech/tags/local.md>), [modern-web-development](<https://devfeed.tech/tags/modern-web-development.md>), [projects](<https://devfeed.tech/tags/projects.md>), [provisioning](<https://devfeed.tech/tags/provisioning.md>), [safely](<https://devfeed.tech/tags/safely.md>), [vagrant](<https://devfeed.tech/tags/vagrant.md>), [vagrant-homestead](<https://devfeed.tech/tags/vagrant-homestead.md>), [work](<https://devfeed.tech/tags/work.md>)

### AI overview

This tutorial explains how Vagrant/Homestead provides a separate virtual machine for local web development. It discusses safer project workflows, isolated environments, production-like Linux systems, and pre-installed development and debugging tools.

### Source excerpt

A local development environment with Vagrant/Homestead allows you to work on projects more safely and effectively

## ActiveObjects streaming API

DevFeed: [ActiveObjects streaming API](<https://devfeed.tech/articles/activeobjects-streaming-api-35657.md>)

Original publisher: [Read original article](<http://blogs.atlassian.com/developer/2011/09/activeobjects_streaming_api.html>)

Author: Alex Hennecke

Published: 2011-09-30T03:28:25Z

Content type: release

Language: en

Sources: [Atlassian Developer Blog](<https://devfeed.tech/sources/atlassian-developer-blog.md>)

Topics: [API](<https://devfeed.tech/topics/api.md>)

Tags: [allows](<https://devfeed.tech/tags/allows.md>), [api](<https://devfeed.tech/tags/api.md>), [greenhopper](<https://devfeed.tech/tags/greenhopper.md>), [jira](<https://devfeed.tech/tags/jira.md>), [performant](<https://devfeed.tech/tags/performant.md>), [plugins](<https://devfeed.tech/tags/plugins.md>), [reading](<https://devfeed.tech/tags/reading.md>), [tables](<https://devfeed.tech/tags/tables.md>)

### AI overview

The article announces a new ActiveObjects API for performant reading of large tables.

### Source excerpt

New API for ActiveObjects allows performant reading of large tables