A 900-person German publisher. Marketing wanted Shopify. The integrator had already connected Business Central in 15 minutes. Here's what I did instead of reaching for a feature comparison spreadsheet.
The Scene
A German publisher, roughly 900 employees. Multiple magazines, a merchandise business, an existing Magento shop that had fallen a few versions behind. For years the shop lived inside IT. Then one day, ownership moved to Marketing.
Marketing's first word was Shopify.
By the time I walked into the pitch, the Shopify integrator had already hooked their store to Business Central in 15 minutes and pulled every product in. The dashboards looked pristine. AI badges everywhere. The room was already sold.
The Trap
The obvious move was to open a feature comparison spreadsheet. Page builder vs page builder. Reporting vs reporting. Checkout vs checkout. Every agency makes that move. It's also the one that loses this kind of pitch.
If the room is sold on the vibe, a spreadsheet won't unsell them. I wasn't going to win by claiming we had a better page builder.
So I didn't play that game.
The Reframe
Stop comparing today. Start thinking about six months from now.
Twelve months ago, "agentic commerce" wasn't even a term. Today every platform ships AI features, every developer has access to Claude, GPT, Copilot, and every agency can build anything. The cost of producing software is approaching zero.
So the question is simple: if you and your competitor both have access to every AI tool on the planet, what actually makes you different?
Your Data Is Your Moat
Your data. Your customers. Their behavior. Your products. Your content. What they buy together, in what order, at what time of year.
SaaS platforms learn from everyone's data. Your competitor's store trains the same model as yours. Your moat leaks back into the pool.
Self-hosted doesn't have this problem. A private LLM instance on AWS Bedrock in Frankfurt. Your embeddings on your infrastructure. Your context stays yours.
Your unique selling points are not downloaded from an App Store.
Every Shopify store has access to the same ten thousand apps. That's not a competitive advantage. That's a commodity.
What I Actually Showed Them
I put up a Mage-OS install running the Hyva theme, Hyva Checkout, and Hyva Commerce, with Typesense wired in for search. Open source. Self-hosted. Their data stayed theirs.
Then I stopped doing a feature tour and started telling a story about what the next twelve months look like:
- Agentic content. A ChatGPT-style panel inside the admin that knows your components, your catalog, your tone of voice. "Create me an Easter landing page with the new seasonal products." It does eighty percent of the work. A good page builder handles the last twenty.
- AI data enrichment. Paste raw product data once. The system writes the short description, the SEO description, the schema markup. It's not replacing your PIM, it's replacing the tedium of filling attributes your ERP doesn't care about.
- Natural language reporting. A chat bubble in the corner of the admin. "What are the top five products in category X over the last three months?" No exported Excel sheets, no digging through a hundred report tabs.
Those features didn't exist six months ago. They exist now because a model plus your data plus a retrieval layer is a very short recipe.
That retrieval layer is why Typesense is in the stack. It's a vector database by nature. Product embeddings get generated during indexing via ts/all-MiniLM-L12-v2, which means the same engine that powers your storefront search also backs the conversational interface and the product recommendations. No third-party API, no data leaving the building.
Receipts
Story is nice. Numbers close.
With Damian Retzinger I spent ten hours building a proper comparison. Identical AWS EKS infrastructure, four m6i.2xlarge nodes per stack. Same Magento 2.4.7-p9. Same catalog data, dumped from one stack and imported into the other. Full Page Cache disabled on both, so we were measuring raw PHP rendering, not Varnish. 250 concurrent virtual users, 13 minutes of load.
| Metric | Luma | Hyva | Delta |
|---|---|---|---|
| p95 response time | 8,000 ms | 3,680 ms | 2.2x faster |
| Median response time | 1,040 ms | 201 ms | 5.2x faster |
| Throughput | 36 req/s | 51 req/s | +42% |
| Error rate | 0% | 0% | both clean |
Same hardware, same data, same test. Different architecture.
The median gap is the one I keep thinking about. At p50 Hyva was 5.2x faster. Most of your users live at the median, not the tail. That's the number that shows up in how the store feels.
Search was the largest gap of any page type, at 2.3x. Browser queries Typesense directly via a search-only API key, Magento only renders a lightweight Alpine shell, and reindex happens through versioned collections with an atomic alias swap. Zero downtime, no product collection load, no search adapter in the request path. SEO stays unaffected because search result pages should be noindexed anyway.
The full methodology, infrastructure tables, MySQL metrics, and Grafana screenshots are in the benchmark write-up I published alongside the talk. If you want to reproduce it, the Terraform and Helm are all there.
They Chose Us
Not because we had more features. Shopify's feature list is longer, and anyone trying to win on features against the biggest SaaS platform in the world is going to have a rough day.
They chose us because of what only they could own. Their data, on their infrastructure, feeding a model that belongs to them. A stack where a store owner can wire in the AI of their choice and actually understand where the intelligence is coming from. A performance profile that doesn't collapse the moment you remove the cache.
The win wasn't a better spreadsheet. It was a different frame.
Stop competing on features. Start competing on what only you can offer.
This post is a write-up of my talk at Hyva Developer Paradise 2026. Benchmark work done with Damian Retzinger.