Page 219 - Mironsoft Blog
-
Maxim Mironjuk
-
July 12, 2025
Login forms without a well thought out brute-force defense are among the most exploited entry points in Magento stores. This article shows how rate limiting, progressive delay, account lockout, and risk-based CAPTCHA work together, without locking out legitimate customers or hurting conversion, including Magento's built-in protections and concrete configuration examples.
-
Maxim Mironjuk
-
July 12, 2025
Composer itself is extensible through its own plugin system, the same architecture that powers tools such as Symplify MonorepoBuilder or Magento component installers. Anyone building a custom Composer plugin can react to lifecycle events, register their own console commands, and even implement custom package installation logic for user defined package types.
-
Maxim Mironjuk
-
July 12, 2025
Vue Server Components are still an experimental concept describing components that are fully rendered on the server and ship no JavaScript of their own to the client at all, not even for hydration. This article places the concept in context, distinguishes it from classic SSR, covers the current development status, and compares the idea to the already production-used React Server Components.
-
Maxim Mironjuk
-
July 12, 2025
A form with five fields shows almost no difference between reactive() and a field level ref() strategy in practice. A form with fifty or more fields, as seen in accounting or configuration interfaces, tells a different story: a single large reactive object can trigger noticeably more work on every keystroke than the actual change would require.
-
Maxim Mironjuk
-
July 12, 2025
Flaky tests are end-to-end tests that pass sometimes and fail other times without any code change, and they undermine trust in the entire test suite. The causes almost always come down to timing issues, shared test state, network dependencies or fragile selectors. This article shows how to systematically find these root causes, apply robust Cypress and Playwright patterns, and quarantine flaky tests in a controlled way instead of silently ignoring them.
-
Maxim Mironjuk
-
July 12, 2025
When several mirror APIs could return the same answer and only the fastest successful result matters, Promise.any() is the right combinator, clearly distinct from Promise.race() and Promise.allSettled().
-
Maxim Mironjuk
-
July 12, 2025
Swiper.js and Slick arrive with hundreds of kilobytes and their own JavaScript ecosystems. A production ready carousel slider for Hyva needs neither: Alpine.js alone is enough for touch, keyboard, auto-play and ARIA.
-
Maxim Mironjuk
-
July 12, 2025
A cookie consent banner gets set up once in many projects, visually signed off, and then barely treated as its own, test-worthy functional area again, even though this exact area has a direct legal dimension: if a tracking script loads despite an actively declined consent, that's not a cosmetic detail, it's an actual violation of the General Data Protection Regulation with potential fine consequences. An automated E2E test that deliberately simulates different consent states and verifies whether tracking scripts actually load depending on that state makes this legally relevant functionality just as reliably regression-safe as any other critical business process in the store.
-
Maxim Mironjuk
-
July 11, 2025
The max-height trick works, but it never really looks fluid. Alpine.js x-collapse animates the actual content height, reacts to dynamic content and integrates seamlessly into Alpine state, without a single line of custom JavaScript.
-
Maxim Mironjuk
-
July 11, 2025
A convenient remember me feature and secure session handling are not mutually exclusive, once you know the right building blocks. This guide shows persistent remember me tokens instead of insecure signed cookies, protection against session fixation, and a timeout strategy that matches the actual sensitivity of the application.
-