Monthly Archives: August 2025
-
Maxim Mironjuk
-
August 31, 2025
x-intersect is the Alpine.js directive that turns the browser's IntersectionObserver API into a declarative HTML directive. It turns scroll animations, image lazy loading, one-time triggers and observed sections into a pure HTML task, without a single line of manual JavaScript observer code.
-
Maxim Mironjuk
-
August 31, 2025
A big-bang rewrite fails more often than it succeeds. The better strategy: introduce Vue step by step into existing PHP monoliths, Twig templates, and jQuery applications, island by island, without interrupting ongoing operations.
-
Maxim Mironjuk
-
August 31, 2025
A single application server does not scale indefinitely and goes offline instantly on failure. HAProxy distributes requests across multiple backend servers, automatically detects failed instances through health checks, and turns several individual servers into a resilient, horizontally scalable unit.
-
Maxim Mironjuk
-
August 31, 2025
Measuring Web Vitals in a single page application is not trivial, because classic metrics were designed for server rendered multi page websites. With the web-vitals library, correct timing and true real user monitoring, LCP, INP and CLS can be reliably captured in Vue apps as well.
-
Maxim Mironjuk
-
August 31, 2025
Classic CSS custom properties are plain strings with no type, which is why the browser can't animate them even when the value looks like a number or an angle. The @property rule lets you register custom properties with a genuine syntax type, an inheritance behavior, and an initial value instead, which suddenly makes them animatable. This article covers how to combine @property meaningfully with Tailwind CSS, including a practical example animating a gradient angle rotation.
-
Maxim Mironjuk
-
August 31, 2025
Since May 2022, you must state the lowest price of the last 30 days whenever you advertise a discount.
This rule was introduced to stop the old trick of raising a price shortly before a sale just to make the discount look bigger.
We explain what this means for your shop and how to stay on the safe side.
-
Maxim Mironjuk
-
August 30, 2025
Not every scheduled task has to be recurring. For one-off actions at a specific point in time, or dependent on system load, at and batch are the leaner tools compared to cron and systemd timers. This guide explains syntax, time expressions, job management with atq and atrm, and permission control through at.allow and at.deny.
-
Maxim Mironjuk
-
August 30, 2025
IdeaVim brings familiar Vim keybindings to PhpStorm without replacing the IDE's intelligence. Get the base configuration right, and Rename, Extract Method, and Organize Imports stay reachable via their usual shortcuts, keeping every real strength of the IDE intact.
-
Maxim Mironjuk
-
August 30, 2025
Selectors Level 4 has fundamentally expanded the CSS toolbox. CSS Selectors Level 4 brings :has as a long-awaited parent selector, :is and :where for compact selector lists, an extended :not and a new :nth-child of syntax. These selectors replace many JavaScript workarounds and significantly reduce CSS redundancy.
-
Maxim Mironjuk
-
August 30, 2025
A PHPUnit suite that runs for twenty minutes gets ignored by the team. Tests stop being run locally, feedback loops get longer, and quality assurance ends up living exclusively in the CI pipeline, too late. This article shows where time in PHPUnit suites is actually lost and how to achieve measurable gains through bootstrap optimization, pcov, lean fixtures and test splitting.
-