<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>ddtcorex blog</title><description>Notes on e-commerce, dev tooling, and open source.</description><link>https://www.ddtcorex.com/</link><item><title>Capacity and load testing for Magento 2</title><link>https://www.ddtcorex.com/blog/magento2-capacity-load-testing/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-capacity-load-testing/</guid><description>How to find the real ceiling of a Magento store with load testing, read the saturation signals, and size capacity before a campaign breaks it</description><pubDate>Sat, 19 Sep 2026 01:00:00 GMT</pubDate></item><item><title>Edge, CDN, and advanced caching strategy</title><link>https://www.ddtcorex.com/blog/magento2-edge-cdn-caching/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-edge-cdn-caching/</guid><description>How to keep the Magento origin quiet under load: full-page cache at the edge, cache tags, and the invalidation rules that prevent stale content</description><pubDate>Fri, 18 Sep 2026 01:00:00 GMT</pubDate></item><item><title>Resilience: backups, rollback, and incident response</title><link>https://www.ddtcorex.com/blog/magento2-devops-resilience/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-devops-resilience/</guid><description>How to keep a Magento store recoverable: tested backups, a fast rollback path, and an incident runbook the team actually uses</description><pubDate>Fri, 18 Sep 2026 01:00:00 GMT</pubDate></item><item><title>CI quality gates for Magento 2</title><link>https://www.ddtcorex.com/blog/magento2-devops-ci-quality-gates/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-devops-ci-quality-gates/</guid><description>Blocking merges with static analysis, tests, and dependency audits so regressions never reach production</description><pubDate>Thu, 17 Sep 2026 01:00:00 GMT</pubDate></item><item><title>Profiling Magento 2: finding the real bottleneck</title><link>https://www.ddtcorex.com/blog/magento2-performance-profiling/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-performance-profiling/</guid><description>How to profile a Magento store with Blackfire or New Relic and read flamegraphs to target the actual slow code</description><pubDate>Wed, 16 Sep 2026 01:00:00 GMT</pubDate></item><item><title>Pre-merge testing with Govard in CI</title><link>https://www.ddtcorex.com/blog/govard-ci-premerge/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/govard-ci-premerge/</guid><description>Using Govard environments inside the pipeline to run real integration tests before a branch merges</description><pubDate>Wed, 16 Sep 2026 01:00:00 GMT</pubDate></item><item><title>Debugging inside Govard: Xdebug, logs, and introspection</title><link>https://www.ddtcorex.com/blog/govard-debugging-tooling/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/govard-debugging-tooling/</guid><description>Wiring Xdebug, reading container logs, and introspecting the database from a Govard environment</description><pubDate>Tue, 15 Sep 2026 01:00:00 GMT</pubDate></item><item><title>Customizing Govard: adding services and overrides</title><link>https://www.ddtcorex.com/blog/govard-customizing/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/govard-customizing/</guid><description>How to extend a Govard environment with your own services, config overrides, and tooling without forking the core</description><pubDate>Tue, 15 Sep 2026 01:00:00 GMT</pubDate></item><item><title>Parallel Govard environments for every branch</title><link>https://www.ddtcorex.com/blog/govard-parallel-environments/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/govard-parallel-environments/</guid><description>Running isolated Govard environments per feature branch so reviewers test real code, not descriptions</description><pubDate>Mon, 14 Sep 2026 01:00:00 GMT</pubDate></item><item><title>How Govard provisions a Magento environment</title><link>https://www.ddtcorex.com/blog/govard-architecture/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/govard-architecture/</guid><description>What happens under the hood when you run govard env up, and why a reproducible local stack beats a hand-built one</description><pubDate>Mon, 14 Sep 2026 01:00:00 GMT</pubDate></item><item><title>Checkout fraud, payment abuse, and bot defenses in Magento 2</title><link>https://www.ddtcorex.com/blog/magento2-security-checkout-fraud/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-security-checkout-fraud/</guid><description>How to defend the revenue path: card-testing bots, stolen-card orders, scraping, and layering Magento&apos;s built-in tools with edge defenses so fraud costs stay predictable.</description><pubDate>Sun, 13 Sep 2026 01:00:00 GMT</pubDate></item><item><title>API and integration hardening in Magento 2</title><link>https://www.ddtcorex.com/blog/magento2-security-api/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-security-api/</guid><description>How to lock down Magento&apos;s REST/GraphQL and SOAP surfaces, scope integration tokens, rate-limit abusive callers, and stop the leaks that expose customer and order data.</description><pubDate>Sat, 12 Sep 2026 01:00:00 GMT</pubDate></item><item><title>Dependency supply-chain and CVE patching in Magento 2</title><link>https://www.ddtcorex.com/blog/magento2-security-dependencies/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-security-dependencies/</guid><description>How a Magento store&apos;s real attack surface is its dependency tree, how to track CVEs, patch safely, and avoid the two failures that leave stores exposed for months.</description><pubDate>Fri, 11 Sep 2026 01:00:00 GMT</pubDate></item><item><title>Two-factor auth and admin access hardening in Magento 2</title><link>https://www.ddtcorex.com/blog/magento2-security-2fa/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-security-2fa/</guid><description>How to enforce 2FA on every admin account, lock down access by IP and role, rotate provider keys, and the admin-hardening steps that stop the most common breach path.</description><pubDate>Thu, 10 Sep 2026 01:00:00 GMT</pubDate></item><item><title>Content Security Policy and subresource integrity in Magento 2</title><link>https://www.ddtcorex.com/blog/magento2-security-csp/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-security-csp/</guid><description>How to roll out a Content Security Policy in Magento 2 without breaking the storefront, wire subresource integrity for third-party scripts, and the mistakes that make CSP cosmetic.</description><pubDate>Wed, 09 Sep 2026 01:00:00 GMT</pubDate></item><item><title>StyleSmuggler: the Magento 2 / Adobe Commerce 0-day RCE (CVE-2026-75650)</title><link>https://www.ddtcorex.com/blog/magento2-stylesmuggler-0day/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-stylesmuggler-0day/</guid><description>A detailed breakdown of StyleSmuggler — an unauthenticated CVSS 10.0 RCE affecting every Magento Open Source and Adobe Commerce 2.4.4–2.4.9 — how it reaches live stores, and a step-by-step hardening and incident-response plan.</description><pubDate>Tue, 08 Sep 2026 01:00:00 GMT</pubDate></item><item><title>Hyva performance hardening: CSP, FPC, and measurement</title><link>https://www.ddtcorex.com/blog/magento2-hyva-performance/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-hyva-performance/</guid><description>The performance work that follows a Hyva migration — consolidating CSP, using Hyva base-layout resets, keeping full-page cache correct, and measuring the before/after so the gains are provable.</description><pubDate>Tue, 08 Sep 2026 01:00:00 GMT</pubDate></item><item><title>Hyva React components and the GraphQL storefront</title><link>https://www.ddtcorex.com/blog/magento2-hyva-react-graphql/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-hyva-react-graphql/</guid><description>How to build custom React components on top of Hyva using the Magento GraphQL API — when it helps, how it differs from Alpine/Tailwind, and how to keep it inside the Hyva theme.</description><pubDate>Mon, 07 Sep 2026 01:00:00 GMT</pubDate></item><item><title>Hyva Checkout: the React-based checkout</title><link>https://www.ddtcorex.com/blog/magento2-hyva-checkout/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-hyva-checkout/</guid><description>What Hyva Checkout changes from the Luma one-page checkout, the React/Magewire architecture, and the real failure modes teams hit — navigator resets, guest rules, and FPC vs JS dependencies.</description><pubDate>Sun, 06 Sep 2026 01:00:00 GMT</pubDate></item><item><title>Case study: full-page cache broke the category page&apos;s JavaScript</title><link>https://www.ddtcorex.com/blog/case-fpc-hyva-js-dependencies/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/case-fpc-hyva-js-dependencies/</guid><description>A production Hyva storefront loaded fine on the first hit and broke on the second. The culprit was FPC caching a fragment without the JS blocks it depended on.</description><pubDate>Sun, 06 Sep 2026 01:00:00 GMT</pubDate></item><item><title>The Luma to Hyva migration checklist</title><link>https://www.ddtcorex.com/blog/magento2-hyva-migration-checklist/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-hyva-migration-checklist/</guid><description>A step-by-step Luma to Hyva migration plan from real storefront cutovers: inventory, theme rebuild, compatibility modules, checkout, CSP, and a go-live checklist that de-risks the cutover.</description><pubDate>Sat, 05 Sep 2026 01:00:00 GMT</pubDate></item><item><title>Hyva compatibility modules for third-party extensions</title><link>https://www.ddtcorex.com/blog/magento2-hyva-compatibility-modules/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-hyva-compatibility-modules/</guid><description>A real-world look at the Hyva compatibility layer: which kinds of Luma-only extensions need a Hyva template, how to structure a compat module, and the extension categories that generate the most migration work.</description><pubDate>Fri, 04 Sep 2026 01:00:00 GMT</pubDate></item><item><title>Case study: a social-login widget that ignored its own config</title><link>https://www.ddtcorex.com/blog/case-csp-alpine-social-login/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/case-csp-alpine-social-login/</guid><description>A Hyva + Alpine social-login module rendered the wrong buttons, dropped hidden ones, and tripped CSP. The fix was Alpine reactivity, not security policy.</description><pubDate>Fri, 04 Sep 2026 01:00:00 GMT</pubDate></item><item><title>Hyva view models: moving logic to PHP</title><link>https://www.ddtcorex.com/blog/magento2-hyva-view-models/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-hyva-view-models/</guid><description>How Hyva view models keep display logic in testable PHP instead of the browser — what they replace from Knockout, how to write one, and when to reach for them.</description><pubDate>Thu, 03 Sep 2026 01:00:00 GMT</pubDate></item><item><title>Alpine.js patterns that replace Knockout in Hyva</title><link>https://www.ddtcorex.com/blog/magento2-hyva-alpine-patterns/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-hyva-alpine-patterns/</guid><description>How to express the interactive widgets Luma built with Knockout and RequireJS using Alpine.js in Hyva — x-data components, events, and fetching without a global binding engine.</description><pubDate>Wed, 02 Sep 2026 01:00:00 GMT</pubDate></item><item><title>Case study: Apple Pay placed the order twice</title><link>https://www.ddtcorex.com/blog/case-apple-pay-double-submit/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/case-apple-pay-double-submit/</guid><description>A Hyva Checkout payment method bound its activation listener once and on the wrong step, so Apple Pay disabled the real button and double-fired the order.</description><pubDate>Wed, 02 Sep 2026 01:00:00 GMT</pubDate></item><item><title>Layout XML and PHTML overrides in Hyva</title><link>https://www.ddtcorex.com/blog/magento2-layout-hyva/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-layout-hyva/</guid><description>How Magento 2 assembles pages from layout XML, and how Hyva overrides differ from Luma — same composition model, Tailwind markup instead of Knockout, and a smaller template surface.</description><pubDate>Tue, 01 Sep 2026 01:00:00 GMT</pubDate></item><item><title>Setting up a Hyva child theme and Tailwind pipeline</title><link>https://www.ddtcorex.com/blog/magento2-hyva-theme-setup-tailwind/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-hyva-theme-setup-tailwind/</guid><description>How to scaffold a Hyva child theme, configure Tailwind, wire the build pipeline, and define design tokens so your storefront compiles to one small CSS file.</description><pubDate>Mon, 31 Aug 2026 01:00:00 GMT</pubDate></item><item><title>Case study: the hero banner was never the largest contentful paint</title><link>https://www.ddtcorex.com/blog/case-lcp-hero-banner/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/case-lcp-hero-banner/</guid><description>Wrapping the hero image in an Alpine x-if meant it wasn&apos;t the LCP node, and fetchpriority landed on the wrong element. A small template change moved the metric.</description><pubDate>Mon, 31 Aug 2026 01:00:00 GMT</pubDate></item><item><title>Hyva architecture: the three pillars in practice</title><link>https://www.ddtcorex.com/blog/magento2-hyva-deep-dive/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-hyva-deep-dive/</guid><description>Inside a Hyva theme — Tailwind CSS, Alpine.js, and PHP view models — and how the three pillars replace Knockout, RequireJS, and client-side view models without touching your backend.</description><pubDate>Sun, 30 Aug 2026 01:00:00 GMT</pubDate></item><item><title>When not to choose Hyva</title><link>https://www.ddtcorex.com/blog/magento2-hyva-when-not-to/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-hyva-when-not-to/</guid><description>Hyva is the right call for most Luma stores, but not all. The cases where a slim Tailwind theme is the wrong tool — module gaps, headless mandates, complex B2B, and license math that does not close.</description><pubDate>Sat, 29 Aug 2026 01:00:00 GMT</pubDate></item><item><title>Case study: the search page overwrote its own title</title><link>https://www.ddtcorex.com/blog/case-search-no-results-title/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/case-search-no-results-title/</guid><description>A no-results handler ran on every search, so pages with results still showed the &apos;no results&apos; title, meta, and breadcrumb.</description><pubDate>Sat, 29 Aug 2026 01:00:00 GMT</pubDate></item><item><title>Luma vs PWA vs Hyva: a Magento frontend decision matrix</title><link>https://www.ddtcorex.com/blog/magento2-hyva-vs-luma-vs-pwa/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-hyva-vs-luma-vs-pwa/</guid><description>A side-by-side decision matrix for the three common Magento 2 storefront paths — default Luma, a headless PWA, and Hyva — across cost, effort, performance, and team fit.</description><pubDate>Fri, 28 Aug 2026 01:00:00 GMT</pubDate></item><item><title>Hyva in 2026: a fast Magento frontend without a rewrite</title><link>https://www.ddtcorex.com/blog/magento2-hyva-landscape/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-hyva-landscape/</guid><description>What Hyva Theme is in 2026, why it ships dramatically less JavaScript than Luma, and the licensing model you should understand before committing to a migration.</description><pubDate>Thu, 27 Aug 2026 01:00:00 GMT</pubDate></item><item><title>A team workflow with Govard</title><link>https://www.ddtcorex.com/blog/govard-team-workflow/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/govard-team-workflow/</guid><description>Onboard a team, lock environments, and run audits with Govard — plus the Desktop app for non-CLI teammates.</description><pubDate>Tue, 25 Aug 2026 01:00:00 GMT</pubDate></item><item><title>Headless &amp; classic WordPress with Govard</title><link>https://www.ddtcorex.com/blog/govard-wordpress/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/govard-wordpress/</guid><description>How Govard spins up a consistent local WordPress stack and pulls a live site down safely — classic or headless.</description><pubDate>Sun, 23 Aug 2026 01:00:00 GMT</pubDate></item><item><title>Symfony specifics on Govard</title><link>https://www.ddtcorex.com/blog/govard-symfony/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/govard-symfony/</guid><description>How Govard provisions a Symfony dev environment—php-fpm, Mercure, Redis, in-container tests, and multi-app monorepos.</description><pubDate>Fri, 21 Aug 2026 01:00:00 GMT</pubDate></item><item><title>Magento 2 observability: logs, metrics, and traces that catch fires early</title><link>https://www.ddtcorex.com/blog/magento2-observability/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-observability/</guid><description>How to see a Magento 2 store like an operator — centralize logs, track slow queries and cache hit rate, and trace requests so the audit checklist has real signals.</description><pubDate>Wed, 19 Aug 2026 01:00:00 GMT</pubDate></item><item><title>Laravel, Symfony &amp; WordPress on Govard</title><link>https://www.ddtcorex.com/blog/govard-laravel/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/govard-laravel/</guid><description>Three PHP frameworks, three sets of conventions, one orchestrator — how Govard detects and wires Laravel, Symfony, and WordPress without a bespoke stack per project.</description><pubDate>Wed, 19 Aug 2026 01:00:00 GMT</pubDate></item><item><title>Running Magento 2 with Govard: one command, production-shaped</title><link>https://www.ddtcorex.com/blog/magento2-govard-case-study/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-govard-case-study/</guid><description>A practical walkthrough of running a real Magento 2 store on Govard — Nginx, PHP, MariaDB, Redis, Varnish, OpenSearch wired once, so local matches production.</description><pubDate>Mon, 17 Aug 2026 01:00:00 GMT</pubDate></item><item><title>Running Magento 2 locally with Govard</title><link>https://www.ddtcorex.com/blog/govard-magento2/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/govard-magento2/</guid><description>How Govard turns a multi-service Magento 2 stack, upgrades, and MFTF QA into a handful of reproducible commands.</description><pubDate>Mon, 17 Aug 2026 01:00:00 GMT</pubDate></item><item><title>Magento 2 B2B APIs: companies, quotes, and shared catalogs programmatically</title><link>https://www.ddtcorex.com/blog/magento2-b2b-apis/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-b2b-apis/</guid><description>Drive Magento 2 B2B from code — the company, quote, and shared-catalog APIs — and how to test the flows on a production-shaped local stack.</description><pubDate>Sat, 15 Aug 2026 01:00:00 GMT</pubDate></item><item><title>Sync &amp; deploy safely with Govard remotes</title><link>https://www.ddtcorex.com/blog/govard-remote-sync/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/govard-remote-sync/</guid><description>Connect Govard to staging and production servers, classify their capabilities, and sync files, media, and database with a guarded, plan-first workflow.</description><pubDate>Sat, 15 Aug 2026 01:00:00 GMT</pubDate></item><item><title>Debugging &amp; QA with Govard</title><link>https://www.ddtcorex.com/blog/govard-debugging-qa/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/govard-debugging-qa/</guid><description>Stop fighting Xdebug and scattered test tools — Govard gives you one toggle, one log stream, and one test runner.</description><pubDate>Thu, 13 Aug 2026 01:00:00 GMT</pubDate></item><item><title>Magento Open Source vs Commerce: when to step up</title><link>https://www.ddtcorex.com/blog/magento2-opensource-vs-commerce/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-opensource-vs-commerce/</guid><description>Magento Open Source vs Adobe Commerce — B2B, staging, RMA, and search licensing — and how to decide when the upgrade is worth the cost.</description><pubDate>Tue, 11 Aug 2026 01:00:00 GMT</pubDate></item><item><title>Framework intelligence &amp; discovery in Govard</title><link>https://www.ddtcorex.com/blog/govard-framework-discovery/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/govard-framework-discovery/</guid><description>How Govard detects your PHP and JS stack from filesystem signatures and boots the right services without a hardcoded framework switch.</description><pubDate>Tue, 11 Aug 2026 01:00:00 GMT</pubDate></item><item><title>Build a real Magento 2 module end-to-end</title><link>https://www.ddtcorex.com/blog/magento2-custom-module/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-custom-module/</guid><description>Scaffold a Magento 2 module the right way — registration, di.xml, a model + resource, a controller, and a CLI command on a real local stack.</description><pubDate>Sun, 09 Aug 2026 01:00:00 GMT</pubDate></item><item><title>Under the hood of `govard env up`</title><link>https://www.ddtcorex.com/blog/govard-env-up-pipeline/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/govard-env-up-pipeline/</guid><description>A close look at the five-phase pipeline that brings a Govard environment online — from blueprint rendering and networking to resilient image pulls and global services.</description><pubDate>Sun, 09 Aug 2026 01:00:00 GMT</pubDate></item><item><title>Magento 2 cron and the message queue: async done right</title><link>https://www.ddtcorex.com/blog/magento2-cron-queue/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-cron-queue/</guid><description>How Magento 2 scheduling and async processing work — the cron groups, the message queue (RabbitMQ/MySQL), and why indexers belong there, not in the request.</description><pubDate>Fri, 07 Aug 2026 01:00:00 GMT</pubDate></item><item><title>Introducing Govard — a Go-native local development orchestrator</title><link>https://www.ddtcorex.com/blog/introducing-govard/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/introducing-govard/</guid><description>Govard is a Go-native local dev orchestrator that spins up PHP and web stacks with one command — no hand-written Dockerfiles, no manual wiring.</description><pubDate>Fri, 07 Aug 2026 01:00:00 GMT</pubDate></item><item><title>Magento 2 B2B: quotes, negotiation, and company accounts</title><link>https://www.ddtcorex.com/blog/magento2-b2b-quotes/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-b2b-quotes/</guid><description>How Magento 2 B2B actually works — company accounts, shared catalogs, and the quote/negotiation flow on a production-shaped local stack.</description><pubDate>Wed, 05 Aug 2026 01:00:00 GMT</pubDate></item><item><title>Magento 2 GraphQL: building a real storefront query</title><link>https://www.ddtcorex.com/blog/magento2-graphql-storefront/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-graphql-storefront/</guid><description>A practical Magento 2 GraphQL tour — products, cart, and customer queries — plus how to run a production-shaped stack locally to test each request honestly.</description><pubDate>Mon, 03 Aug 2026 01:00:00 GMT</pubDate></item><item><title>Magento 2 deployment &amp; CI/CD: safe releases without downtime</title><link>https://www.ddtcorex.com/blog/magento2-deployment-cicd/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-deployment-cicd/</guid><description>A safe Magento 2 release flow — build once, config-in-code, zero-downtime deploy, and a tested rollback — plus where CI fits so audits and tests actually run.</description><pubDate>Sat, 01 Aug 2026 01:00:00 GMT</pubDate></item><item><title>A pragmatic Magento 2 testing strategy that isn&apos;t brittle</title><link>https://www.ddtcorex.com/blog/magento2-testing/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-testing/</guid><description>How to test Magento 2 without a brittle suite — unit tests for logic, integration tests for plugin/observer wiring, and MFTF for critical customer journeys.</description><pubDate>Thu, 30 Jul 2026 01:00:00 GMT</pubDate></item><item><title>Magento 2 security essentials for a self-hosted store</title><link>https://www.ddtcorex.com/blog/magento2-security/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-security/</guid><description>Lock down a self-hosted Magento 2 store — isolate the admin, enforce 2FA, keep patches current, set correct permissions, and watch the usual attack surface.</description><pubDate>Tue, 28 Jul 2026 01:00:00 GMT</pubDate></item><item><title>The Magento 2 debugging toolkit: profiler, logs, and a real environment</title><link>https://www.ddtcorex.com/blog/magento2-debugging/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-debugging/</guid><description>How to debug Magento 2 without guessing — the stock profiler (CSV capture), log channels, developer mode, and a production-shaped local stack for repro.</description><pubDate>Sun, 26 Jul 2026 01:00:00 GMT</pubDate></item><item><title>The Magento 2 audit checklist: a repeatable health review</title><link>https://www.ddtcorex.com/blog/magento2-audit-checklist/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-audit-checklist/</guid><description>A repeatable Magento 2 audit you can run on any store — code, config, cache, search, security, and performance — with the questions that actually surface risk.</description><pubDate>Fri, 24 Jul 2026 01:00:00 GMT</pubDate></item><item><title>Magento 2 code best practices: write code that survives upgrades</title><link>https://www.ddtcorex.com/blog/magento2-code-best-practices/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-code-best-practices/</guid><description>How to write Magento 2 code that stays maintainable and upgrade-safe — prefer events over plugins, keep di.xml lean, never rewrite core, and use view models.</description><pubDate>Wed, 22 Jul 2026 01:00:00 GMT</pubDate></item><item><title>Magento 2 performance best practices that actually move the needle</title><link>https://www.ddtcorex.com/blog/magento2-performance-best-practices/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-performance-best-practices/</guid><description>A practical Magento 2 performance checklist — full-page cache, Varnish, Redis, indexing, and profiling — ranked by the impact each change delivers.</description><pubDate>Mon, 20 Jul 2026 01:00:00 GMT</pubDate></item><item><title>10 Magento 2 development mistakes that hurt performance</title><link>https://www.ddtcorex.com/blog/magento2-perf-mistakes/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-perf-mistakes/</guid><description>The recurring developer mistakes that quietly tank Magento 2 performance — from N+1 loads to plugin abuse and misconfigured caches — and how to avoid each.</description><pubDate>Sat, 18 Jul 2026 01:00:00 GMT</pubDate></item><item><title>PWA Studio &amp; headless Magento 2: the road ahead</title><link>https://www.ddtcorex.com/blog/magento2-pwa-headless/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-pwa-headless/</guid><description>Decouple the storefront from Magento&apos;s Luma stack with PWA Studio or a custom headless front end over GraphQL — and where each approach pays off.</description><pubDate>Thu, 16 Jul 2026 01:00:00 GMT</pubDate></item><item><title>Upgrading Magento 2 safely — and profiling what changed</title><link>https://www.ddtcorex.com/blog/magento2-upgrade-profiling/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-upgrade-profiling/</guid><description>Major Magento 2 upgrades are a project, not a click. We cover a safe upgrade pipeline and how to profile before/after to prove the work paid off.</description><pubDate>Tue, 14 Jul 2026 01:00:00 GMT</pubDate></item><item><title>Magento 2 search with OpenSearch / Elasticsearch</title><link>https://www.ddtcorex.com/blog/magento2-search-opensearch/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-search-opensearch/</guid><description>Magento&apos;s catalog search runs on a dedicated engine — OpenSearch or Elasticsearch. We cover the index and the reindex pipeline for fast search at scale.</description><pubDate>Sun, 12 Jul 2026 01:00:00 GMT</pubDate></item><item><title>Magento 2 cache architecture: Varnish, Redis &amp; full-page cache</title><link>https://www.ddtcorex.com/blog/magento2-cache-varnish-redis/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-cache-varnish-redis/</guid><description>A production Magento 2 stack caches at several layers — Varnish in front, Redis for sessions and data, and the app full-page cache. Here is how they fit.</description><pubDate>Fri, 10 Jul 2026 01:00:00 GMT</pubDate></item><item><title>Magento 2 multi-store, scopes &amp; B2B basics</title><link>https://www.ddtcorex.com/blog/magento2-multistore-b2b/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-multistore-b2b/</guid><description>Magento&apos;s scope system lets one codebase serve many stores, currencies, and languages — and its B2B module models companies, shared catalogs, and quotes.</description><pubDate>Wed, 08 Jul 2026 01:00:00 GMT</pubDate></item><item><title>Magento 2 EAV &amp; database: table prefix and schema</title><link>https://www.ddtcorex.com/blog/magento2-eav-database/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-eav-database/</guid><description>Magento&apos;s EAV model lets products carry arbitrary attributes without schema changes. We cover table prefixes and how they keep multi-tenant installs safe.</description><pubDate>Mon, 06 Jul 2026 01:00:00 GMT</pubDate></item><item><title>Magento 2 events vs plugins: when to use which</title><link>https://www.ddtcorex.com/blog/magento2-events-vs-plugins/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-events-vs-plugins/</guid><description>Two ways to change Magento 2 behavior without touching core — plugins and event observers. Here is the decision framework the core team actually uses.</description><pubDate>Thu, 02 Jul 2026 01:00:00 GMT</pubDate></item><item><title>Magento 2 modules, Dependency Injection &amp; Plugin/Interceptor</title><link>https://www.ddtcorex.com/blog/magento2-di-plugins/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-di-plugins/</guid><description>How Magento 2 modules compose, how the Dependency Injection container wires them, and how the plugin system lets you change behavior without patching core.</description><pubDate>Tue, 30 Jun 2026 01:00:00 GMT</pubDate></item><item><title>Anatomy of Magento 2: boot, bin/magento, pub/ web root &amp; env.php</title><link>https://www.ddtcorex.com/blog/magento2-anatomy/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-anatomy/</guid><description>Walk the Magento 2 request lifecycle and meet the files that matter most — the CLI entry point, the pub/ web root, and the auto-generated env.php.</description><pubDate>Sun, 28 Jun 2026 01:00:00 GMT</pubDate></item><item><title>Standing up a local Magento 2 stack in 5 minutes with Govard</title><link>https://www.ddtcorex.com/blog/magento2-env-up-govard/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-env-up-govard/</guid><description>Spin up a complete Magento 2 environment — Nginx, PHP, MariaDB, Redis, Varnish, OpenSearch — with one command, and understand what each piece is for.</description><pubDate>Fri, 26 Jun 2026 01:00:00 GMT</pubDate></item><item><title>Why Magento 2 still powers serious commerce in 2026</title><link>https://www.ddtcorex.com/blog/magento2-why-still-2026/</link><guid isPermaLink="true">https://www.ddtcorex.com/blog/magento2-why-still-2026/</guid><description>Magento 2 still powers serious B2B and high-SKU B2C stores in 2026. Here is why it remains a pragmatic scale choice — and where it shows its age.</description><pubDate>Wed, 24 Jun 2026 01:00:00 GMT</pubDate></item></channel></rss>