Page 6 - Monthly Archives: April 2025
-
Maxim Mironjuk
-
April 24, 2025
E-E-A-T stands for Experience, Expertise, Authoritativeness, and Trustworthiness, a concept Google uses in its Quality Rater Guidelines to evaluate content. Person schema with sameAs links cannot manufacture these signals, but it can make them far easier for search engines and language models to find and parse. This article walks through what a technically clean implementation looks like for a blog author, including a complete JSON-LD example.
-
Maxim Mironjuk
-
April 24, 2025
Worklets are the foundation of Reanimated: small JavaScript functions transformed by a Babel plugin so they run directly on the UI thread, independent of how busy the JS thread is. Understanding why Reanimated is fast, and where runOnJS and runOnUI actually belong, requires knowing this execution model in detail, not just memorizing the finished hooks.
-
Maxim Mironjuk
-
April 24, 2025
Duplicate content in Magento stores splits ranking signals across multiple URLs, wastes crawl budget, and keeps the right page from showing up in search. Multiple store views, URL parameters, parallel HTTP and HTTPS, and products assigned to several categories create typical duplicates that can be fixed with canonical tags, clean 301 redirects, and the right Magento configuration.
-
Maxim Mironjuk
-
April 23, 2025
A custom GraphQL mutation in Magento 2 is more than a new endpoint: it ties schema declaration, resolver logic, validation, transaction safety and cache invalidation together into one consistent whole. Anyone who separates these building blocks cleanly ends up with a mutation that feels like a native Magento feature and runs reliably in production storefronts.
-
Maxim Mironjuk
-
April 23, 2025
Role-based access control with ROLE_ADMIN and ROLE_USER rarely suffices in practice. When a user may only edit their own resources, only team members should have access, or permissions depend on the state of the object, the Symfony Security Voter is the right answer.
-
Maxim Mironjuk
-
April 23, 2025
When the write side of a system lives in an event store, the read side does not have to use the same data model. GraphQL and event sourcing fit together surprisingly well, because GraphQL queries deliver exactly what CQRS read models need, flexible, projection-based queries without ever touching the event stream itself.
-
Maxim Mironjuk
-
April 23, 2025
Ever since the iPhone X with its notch and the iPhone 14 Pro with its Dynamic Island, web developers have had to make sure content does not disappear behind hardware elements. CSS env() together with the safe-area-inset-* variables is the standardized solution, working the same way across browsers, PWAs and native WebViews.
-
Maxim Mironjuk
-
April 23, 2025
Talking about temporary tables in MySQL often means two entirely different things: tables explicitly created with CREATE TEMPORARY TABLE and bound to a session, and internal optimizer constructs that MySQL itself creates for GROUP BY, ORDER BY, or DISTINCT without anyone asking for them. Then there is the MEMORY storage engine for explicitly created, permanently in-memory lookup tables. Anyone who keeps these three concepts cleanly separated also understands why some queries turn unexpectedly slow and how to fix that in a targeted way.
-
Maxim Mironjuk
-
April 23, 2025
Testing Pinia stores in isolation takes more than instantiating a store and calling an action. Between createPinia and createTestingPinia, real versus mocked actions, and cross-store dependencies lie decisions that determine the meaningfulness and maintainability of an entire test suite.
-
Maxim Mironjuk
-
April 23, 2025
A maintainable dark-light token system does not emerge from a single layer of custom properties, but from three cleanly separated tiers: primitive tokens, semantic tokens and component tokens. Together with the light-dark() function, this architecture can be implemented without a growing media query per component.
-