Page 2 - Monthly Archives: January 2025
-
Maxim Mironjuk
-
January 30, 2025
The container registry built into GitLab saves you from running an external registry service, but it requires a deliberate tag strategy, automatic cleanup policies against runaway storage usage, and clearly defined access rights per project and group.
-
Maxim Mironjuk
-
January 30, 2025
Alpine.directive() lets you build a completely new x-directive such as x-tooltip or x-clickaway, with full access to the DOM element, the expression written in the HTML, and a reactivity toolkit that plugs cleanly into Alpine's own lifecycle.
-
Maxim Mironjuk
-
January 29, 2025
env() is usually known only through the four safe-area-inset variables that keep layouts clear of a notch or Dynamic Island, but it is really a general mechanism for environment variables supplied by the browser or operating system. Here is what else exists, including author-defined variables, viewport segments for foldables, and a clear line between env() and custom properties.
-
Maxim Mironjuk
-
January 29, 2025
An ILM policy does not just describe how long an index should live, it describes exactly which action runs in which phase: rollover in the hot phase, shrink and force merge on the transition to warm, replica reduction in the cold phase, and finally deletion. Anyone who understands these building blocks and wires them together correctly ends up with data management that runs without manual intervention while still matching the real access pattern of the data.
-
Maxim Mironjuk
-
January 29, 2025
Anyone who runs layered navigation on nothing but the default Magento_LayeredNavigation templates gives up performance, accessibility, and conversion potential in the sidebar filter. A dedicated view model per filter type, an Alpine.js price slider, and a mobile filter drawer make layered navigation in the Hyvä theme fast, accessible, and SEO clean at the same time.
-
Maxim Mironjuk
-
January 29, 2025
A health check that only verifies the web server responds reports a store as healthy even when the database is stuck, search is down, or the message queue is backed up. A well designed health check endpoint verifies real dependencies and stops a load balancer from sending more traffic to a broken node.
-
Maxim Mironjuk
-
January 29, 2025
Manually maintained TypeScript interfaces for GraphQL types almost inevitably drift out of sync once the schema changes. GraphQL Code Generator solves this problem by generating server resolver types, client operation types and even ready made React hooks directly and automatically from a single schema file.
-
Maxim Mironjuk
-
January 29, 2025
Running Jest without a clean TypeScript setup gives up the exact safety net you need most, right where errors are most expensive: in tests and mocks. This article shows how ts-jest and babel-jest differ, how to set up a type-safe jest.config.ts, and how to write mock functions, module mocks, and class mocks with real types instead of any.
-
Maxim Mironjuk
-
January 29, 2025
Classic keyword tools show search volume but rarely the exact language customers use to describe their problems. Social listening closes that gap by systematically analyzing comments, forum threads and community questions, turning them into concrete content and keyword ideas that classic tools often miss entirely.
-
Maxim Mironjuk
-
January 28, 2025
Psalm vs. PHPStan is rarely a question of right or wrong, but of priorities: taint analysis and aggressive type narrowing speak for Psalm, a larger plugin ecosystem and mature generics support speak for PHPStan. This article compares both tools technically and provides a practical decision framework for teams.
-