# brocode by Benjamin Rosenberger

> An engineer shipping in the open: production-grade modules, performance studies, architecture decisions.

Author: Benjamin Rosenberger — senior software engineer at MSTAGE GmbH (previously Connex Marketing, Catalysts/Cloudflight). Focus areas: performance, architecture, platform engineering. Currently shipping the most code on Magento 2. GitHub: https://github.com/brosenberger.

## Modules

- [WordPress MCP Server for Claude Code & Cursor](https://brocode.at/modules/brocode-content-mcp/): WordPress MCP server for Claude Code and Cursor. Publish articles, convert markdown to Gutenberg blocks, set SEO meta, and flush cache via tool calls.
- [Magento 2 Adminhtml Cache Eviction Module](https://brocode.at/modules/module-adminhtml-cache-eviction/): Magento 2 cache invalidation links added inline to the admin notification bar — Refresh Invalidated and Flush Cache in one click. ACL-gated, CSP-safe.
- [Magento 2 Log Tracing Module](https://brocode.at/modules/module-log-tracing/): Magento log tracing: stamp every log line with a per-request trace ID. One grep finds the full request. Echoes X-Request-Id on responses. Monolog 2 and 3.
- [Magento 2 AMQP Monitor Module](https://brocode.at/modules/module-amqp-monitor/): RabbitMQ Magento monitoring inside the admin: connection config, live queue stats, and notifications for harmful queue states — no separate UI needed.
- [Magento 2 Scoped CSP Module: Per-Module CSP Whitelists](https://brocode.at/modules/module-scoped-csp/): Per-module CSP whitelists for Magento 2, scoped to website or store view — one integration's source change never forces a global policy relaxation.
- [Magento 2 Store Overview Module](https://brocode.at/modules/module-store-overview/): Magento store overview widget: all websites and store views as dashboard cards. Live search, hide-inactive toggle, logo support, and REST API for CI pipelines.
- [BroCode Image Optimizer — WebP & AVIF for Magento 2](https://brocode.at/modules/module-image-optimizer/): Magento image optimizer: scan pub/media, convert to WebP/AVIF sidecars, serve via nginx content negotiation — zero template changes required.

## Topics

- [AI](https://brocode.at/topic/ai/): 6 entries
- [Analytics](https://brocode.at/topic/analytics/): 1 entries
- [Image Optimization](https://brocode.at/topic/image-optimization/): 6 entries
- [Integrations](https://brocode.at/topic/integrations/): 6 entries
- [Magento](https://brocode.at/topic/magento/): 14 entries
- [MCP](https://brocode.at/topic/mcp/): 7 entries
- [Operations](https://brocode.at/topic/operations/): 7 entries
- [Security & CSP](https://brocode.at/topic/security-csp/): 2 entries

## Blog

- [MCP Security for Ecommerce: Prompt Injection and Guardrails](https://brocode.at/blog/mcp-security-ecommerce/): If you run a Magento 2 MCP server, you have given a language model structured access to your store’s REST API. That model can read orders, update prices, 
- [Magento 2 REST API Gaps — What’s Missing and How to Fill It](https://brocode.at/blog/magento2-rest-api-gaps/): Magento 2’s REST API is genuinely good for a monolithic ecommerce platform — clean service contracts, consistent searchCriteria, a well-defined ACL surfac
- [Magento 2 searchCriteria: Complete REST Reference](https://brocode.at/blog/magento2-rest-searchcriteria-guide/): Every Magento REST integration eventually hits the bracket-syntax wall. You try GET /rest/V1/products?field=status&value=1, get back the full catalogue, che
- [Magento CSP header size: scope it, don’t just split it](https://brocode.at/blog/magento-csp-header-size/): A multi-website Magento 2 store can blow past the nginx header limit. Here is how to cut CSP header size at the root by scoping entries per store view.
- [Magento 2 and MCP: Run Your Store by Conversation](https://brocode.at/blog/magento2-mcp-admin-supercharge/): Magento MCP: a thin wrapper over the REST API that lets you drive products, content, and promotions by conversation — with honest limits on what it can do.
- [Magento 2 MCP, Part 3: A Storefront Chatbot](https://brocode.at/blog/magento2-mcp-customer-chatbot/): A Magento MCP chatbot for shoppers: customer token, GraphQL surface, same wrapper pattern. The hard part is IDOR — keeping each shopper bound to their own data.
- [Magento 2 and MCP, Part 2: The Store That Answers Back](https://brocode.at/blog/magento2-mcp-business-impact/): The Magento MCP server is built. Here is what content managers, marketing managers, and merchandisers get — role by role, task by task, with honest limits.
- [Magento 2 Request Tracing: One ID, Every Log Line](https://brocode.at/blog/magento-request-log-tracing/): Magento request tracing via a shared trace ID: one grep reconstructs the full request across all log files — zero new infrastructure, five small classes.
- [Magento image optimizer: brocode vs Yireo vs JaJuMa](https://brocode.at/blog/magento-image-optimizer-comparison/): An honest Magento image optimizer comparison: brocode vs Yireo Webp2 vs JaJuMa. Pick by architecture: content negotiation vs picture-tag vs paid all-in-one.
- [AVIF vs WebP for Magento: measure your own catalog](https://brocode.at/blog/magento-avif-vs-webp/): Magento AVIF vs WebP: everyone quotes headline numbers, but savings depend on your image mix. Here's how to measure your catalog and decide.
- [Converting a large catalog without melting the server](https://brocode.at/blog/magento-image-optimization-queue/): Magento image optimization queue: converting 200,000 catalog images inline melts your server — turn conversion into async background work at a pace you control.
- [Rolling out AVIF without breaking your CDN](https://brocode.at/blog/magento-avif-cdn-rollout/): AVIF CDN rollout done safely: one misconfigured Vary header corrupts the URL for every visitor. Vary first, convert a subset, then scale.
- [No template changes: serving WebP and AVIF with nginx](https://brocode.at/blog/magento-webp-avif-nginx/): Magento WebP AVIF nginx: content negotiation serves modern formats with zero template edits. Apache dropped from 2.4.9 — nginx is now the only supported server.
- [Ecommerce dataLayer: One Source, Many Destinations](https://brocode.at/blog/enhanced-ecommerce-datalayer-ga4-pixels/): Build one ecommerce dataLayer GA4-compatible and transform it per destination — Meta Pixel, TikTok — instead of maintaining three diverging tracking objects.
- [AI and This Blog: Who Writes Here, and Why I’m Telling You](https://brocode.at/blog/ai-and-this-blog/): 73% of developers skip AI writing disclosure entirely. Full breakdown: how AI is involved on this blog, the division of labour, and what it means for accuracy.
- [Magento Core Contribution: What Really Happens](https://brocode.at/blog/magento-core-contribution/): The full journey of one small, merged Magento 2 core contribution: the CLA, the bot, the QA gate, the ENGCOM ticket, and the months-long wait.
- [Honor your inner monk: simpler adminhtml UIs for complex Magento 2 work](https://brocode.at/blog/magento-2-admin-menu-placement/): Magento admin menu placement: move vendor entries into the core navigation — Catalog, Sales, Marketing — not a vendor node. Concrete menu.xml examples.

## About

- [About](https://brocode.at/about/): I am a senior software engineer who ships production code in the open. Magento 2 is where most of the recent modules originate, but the underlying engineering &
- [Contact](https://brocode.at/contact/): Tell me what you are trying to ship or fix on Magento 2, and I will respond with the most direct way to help, including pointing you to the right module, articl
- [Topics](https://brocode.at/topics/): Explore the topical hubs that group modules and articles by focus area.

## Optional

- [Full content corpus](https://brocode.at/llms-full.txt): every module and article distilled to Markdown for LLM ingestion.
- [Sitemap](https://brocode.at/sitemap_index.xml): full XML sitemap.
- [GitHub](https://github.com/brosenberger): source for all modules referenced above.
