Page 24 - Monthly Archives: March 2026
-
Maxim Mironjuk
-
March 02, 2026
API versioning is usually viewed as a pure compatibility problem, but it carries substantial security implications that often get overlooked in practice: every older API version kept running in parallel enlarges the entire application's attack surface, and a security fix implemented only in the current version leaves all older, still-reachable versions vulnerable. Attackers know this and deliberately search for old API versions that have fallen out of the development team's active maintenance focus but remain technically reachable.
-
Maxim Mironjuk
-
March 02, 2026
useCallback and useMemo are the most frequently misused hooks in React. They always cost something: memory, runtime for the comparison, cognitive complexity, and they only help in specific, measurable situations. Using them everywhere makes an application slower, not faster.
-
Maxim Mironjuk
-
March 02, 2026
RDB and AOF solve the same underlying problem, losing in-memory data on a crash, with completely different tradeoffs between recovery time, data loss window, and resource demand. Anyone who understands both mechanisms and knows when combining RDB and AOF pays off makes a persistence decision that fits the actual use case, instead of relying on default values.
-
Maxim Mironjuk
-
March 02, 2026
Anyone searching logs with docker logs on every host individually loses valuable minutes during an incident. Centralized logging with Loki and Promtail collects every container output in a structured way, indexes only labels instead of the full text, and makes troubleshooting across the entire Docker fleet possible with a single LogQL query.
-
Maxim Mironjuk
-
March 01, 2026
Rewriting an entire grown JavaScript React project to TypeScript sounds like weeks of standstill. Whoever introduces TypeScript gradually enables allowJs, migrates file by file, and eventually reaches strict mode without ever interrupting feature work.
-
Maxim Mironjuk
-
March 01, 2026
A classic many-to-many junction table offers two paths: using both foreign keys themselves as a composite primary key, or assigning a dedicated, independent surrogate ID. Both variants are technically valid, but they differ noticeably in uniqueness guarantees, index behavior, ORM compatibility, and the ability to cleanly reference later extra attributes. This article works out the concrete trade-offs using a typical junction table with extra attributes and shows when each approach is genuinely the better one.
-
Maxim Mironjuk
-
March 01, 2026
Seeing static analysis and code style checks for the first time in the CI pipeline is too late. PHPStan, Psalm and PHP_CodeSniffer can be integrated directly into PhpStorm, as External Tools, Run Configurations and File Watchers, so feedback arrives the moment you save, not only at the pull request.
-
Maxim Mironjuk
-
March 01, 2026
XML sitemaps are the technical foundation that lets Google and Bing find and crawl every product page, category, and CMS page of a Magento store in the first place. This article explains the sitemap standard in detail, shows how Magento automatically splits large catalogs into multiple files, which fields Google actually evaluates today, and how to submit your sitemap correctly to Google Search Console and Bing Webmaster Tools.
-
Maxim Mironjuk
-
March 01, 2026
Nuxt 3 with Nitro offers several caching layers that can be configured independently of each other: server-side Nitro cache, ISR with stale-while-revalidate, CDN cache-control headers and edge deployment. The right combination of these layers makes the difference between an application with an 800 ms TTFB and one with 40 ms.
-
Maxim Mironjuk
-
March 01, 2026
Highlighting search terms, visualizing diff changes, marking voice recognition matches: until now, all of this required wrapping text nodes in span elements, which corrupts the DOM and jeopardizes accessibility. The CSS Custom Highlights API solves this problem elegantly: define ranges, register them, style them with ::highlight(), done.
-