Page 23 - Monthly Archives: December 2025
-
Maxim Mironjuk
-
December 02, 2025
As soon as custom CSS is written outside of utility classes, the same question keeps coming up: how do you reach the values from @theme without maintaining them twice? The theme() function in Tailwind CSS v4 answers exactly that, and it works differently than one might expect from CSS custom properties.
-
Maxim Mironjuk
-
December 02, 2025
Switching between editor and terminal to run Composer or npm costs focus and context. PhpStorm can integrate Composer, Node.js, npm and Yarn directly, with autocompletion for composer.json and package.json, script buttons and a full output view right in the IDE.
-
Maxim Mironjuk
-
December 01, 2025
When PHPStan is green locally but red in the CI pipeline, it comes down to a configuration mismatch. The problem is solvable: align pre-commit hooks, PhpStorm quality gates and the CI pipeline so that what runs locally checks exactly what the pipeline checks, no push that fails right out of the gate.
-
Maxim Mironjuk
-
December 01, 2025
Pagination looks like a trivial detail at first, yet in API Platform it decides response times on large tables, consistency under concurrent writes, and ergonomics for client developers. Anyone who only knows the default offset pagination gives away performance and risks duplicate or missing records on heavily used endpoints.
-
Maxim Mironjuk
-
December 01, 2025
Forms that get generated from configuration instead of being hard-coded save development time and let back-end teams change form structures without a frontend deployment. This article shows how to build a robust form builder in Vue 3, from field definitions through dynamic validation to conditional fields.
-
Maxim Mironjuk
-
December 01, 2025
When several of your own pages compete for the same query, both lose visibility. This guide shows how to detect keyword cannibalization and resolve it with the right strategy.
-
Maxim Mironjuk
-
December 01, 2025
Before Docker officially supported named volumes, the community solved the problem of persistent data with a workaround: a dedicated, never running container that only declared data directories and passed them on to other containers via --volumes-from. This data-only container pattern was standard for years, but is now replaced by named volumes in the vast majority of cases, with only a few remaining niches where the old approach still plays a role.
-
Maxim Mironjuk
-
December 01, 2025
A GraphQL API without a complexity limit is an open door for overloading attacks. Depth limits, field-specific costs and complexity budgets are the three layers that stop a single query from occupying the server for seconds, or for minutes, if the schema has enough expensive fields.
-
Maxim Mironjuk
-
December 01, 2025
Good GraphQL documentation is not a static file, it lives inside the schema itself, complemented by introspection tools, living example queries, deprecation strategies, and a schema registry workflow that makes changes communicable.
-
Maxim Mironjuk
-
December 01, 2025
Anyone who only uses sed line by line with s/old/new/ quickly hits a wall with config blocks, XML fragments and multiline log entries. Hold space and pattern space give sed the ability to look at several lines at once and replace them as one connected block, without ever reaching for Perl or Python.
-