Page 20 - Monthly Archives: October 2025
-
Maxim Mironjuk
-
October 05, 2025
Christmas colors still lingering in the code in January, or a Black Friday banner somebody has to manually remove: copy pasted adjustments for seasonal campaigns leave behind permanent cleanup work. A dedicated CSS layer with time driven activation solves the problem structurally and tears itself down automatically once the campaign ends.
-
Maxim Mironjuk
-
October 05, 2025
Magento's sitemap module already covers products, categories and CMS pages, but there is no ready made item provider for custom landing pages or other project specific URL types. This article shows how to register a custom item provider, how to control priority and change frequency per content type, and how to automate multi store sitemap generation together with submission to Google Search Console.
-
Maxim Mironjuk
-
October 05, 2025
Port conflicts between projects, missing HTTPS in development, and confusing hostnames are classic pain points in team Docker networking. With Traefik as a central reverse proxy, mkcert for local HTTPS certificates, and cleanly isolated Docker networks, these problems can be solved once and for all.
-
Maxim Mironjuk
-
October 05, 2025
Bundle products are among the most complex product types in Magento 2: they combine a dedicated table model of options and selections, two fundamentally different pricing logics for Fixed and Dynamic Pricing, a multi-layer stock linkage through Multi Source Inventory, and their own price index. This article explains the data model, price calculation, stock linkage, Hyvä frontend and performance strategies for bundle products using real PHP 8.4 code, Service Contracts and declarative schema.
-
Maxim Mironjuk
-
October 04, 2025
OAuth 2.0 handles authorization, OpenID Connect adds the missing identity layer, and confusing the two leads to insecure logins. This article explains the authorization code flow with PKCE as the current standard, covers common implementation mistakes around redirect URIs, state, and nonce, and shows how to integrate a social login securely into a Magento store.
-
Maxim Mironjuk
-
October 04, 2025
Multiple web workers sharing the same SharedArrayBuffer need a way to wait on each other without constantly polling in a loop. Atomics.wait() provides exactly that, but blocks the entire thread and is therefore forbidden on the main thread. Atomics.waitAsync() solves the same problem non-blockingly, working even where blocking simply isn't an option.
-
Maxim Mironjuk
-
October 04, 2025
JSDOM based tests sometimes lie: they simulate browser behavior but do not test what a real browser actually does with a component. Playwright Component Testing renders every React component in a real Chromium, Firefox or WebKit instance, without spinning up the whole application.
-
Maxim Mironjuk
-
October 04, 2025
APT manages software packages on Debian and Ubuntu servers, yet most admins use only a fraction of its capabilities. This article explains how APT resolves dependencies, why apt, apt-get, and dpkg serve different purposes, how pinning prevents unwanted upgrades, how to safely add third-party repositories, and how to keep the package cache clean.
-
Maxim Mironjuk
-
October 04, 2025
Route splitting is the standard entry point, but the noticeable improvement often sits one level deeper. Component level splits, deliberate vendor chunking and preload hints together decide whether code splitting merely looks good in the bundle report or actually shortens load time for users.
-
Maxim Mironjuk
-
October 04, 2025
Some database problems aren't a matter of missing indexes or poorly written queries, they're rooted deeper in the schema design itself. These structural antipatterns repeat across projects and industries with striking consistency: a generic attribute table that makes any validation impossible, a column per repetition instead of its own row, a foreign key without an accompanying index. Each of these patterns starts out harmless and pragmatic, but turns into a genuine performance and maintenance problem as data volume grows. This collection organizes the most common cases by symptom, cause, and refactoring path.
-