Skip to content
Case Study3 weeks5 min read

Custom e-commerce instead of Shopify — 80% lower operating costs

MessyPlay.cz sells art supplies and runs creative courses for children. Their off-the-shelf Shopify setup was costly and full of compromises. We built a fully custom platform and reduced operating costs from ~240 EUR to just 48 EUR per month.

48 EURmonthly operating costsserver only
−80%reduction in operating costsvs. Shopify setup
3 weekstime to productionfrom zero to live
€0transaction feesno hidden costs
01 — Starting point

Shopify: expensive compromises instead of a tailored solution

The client ran their shop on Shopify with a stack of paid plugins. Every additional feature meant another monthly fee — yet the system still didn't fully cover their business needs. Managing courses, reservations, and membership passes required manual workarounds and constant friction.

Shopify plan (e-shop)~96 EUR/mo
Zásilkovna plugin29 EUR/mo
Fakturoid plugin16 EUR/mo
Payment gateway module29 EUR/mo
Course & reservation module69 EUR/mo
Transaction feesvariable
Total operating costs
~240 EUR/mo+ transaction fees and the constraints of a boxed solution
02 — Solution

A tailor-made system: two frontends, one powerful backend

We designed and built the entire platform from scratch. A .NET backend handles all business logic, while two separate frontend applications serve customers and administrators.

01

.NET Backend API

A robust REST API covering the entire e-commerce operation — orders, products, courses, reservations, membership passes, and invoices. Deployed in Docker on Azure.

02

Customer-facing web

A performant frontend for customers: product and digital content purchases, course sign-ups, reservation and membership management, full checkout with shipping and payment selection.

03

Admin application

An internal tool to manage all operations: orders, inventory, courses, participants, membership passes, exports — all in one place without any third-party dependency.

04

iOS app

A native iOS mobile app enabling customers to conveniently shop, manage courses, and handle reservations directly from their phone.

App Store ↗
05

COMGATE payment gateway

Direct integration with the COMGATE payment gateway — no monthly plugin fee. Card payments, bank transfers, and more.

06

Zásilkovna + PPL with label printing

Full integration of both carriers — pickup point search, shipping cost calculation, and automatic shipping label printing directly from the admin.

07

Money S3 accounting integration

Automated data exports for the Money S3 accounting system and custom invoice generation eliminate all manual data entry.

03 — Architecture

Solution Architecture

The entire solution runs in the Azure cloud, protected by Cloudflare. Both the backend and frontend applications are containerized with Docker. PostgreSQL provides reliable and scalable data storage. A CI/CD pipeline automates deployments from the Git repository.

Solution architecture
  1. Users: Customers (shop · courses · bookings); MessyPlay team (back office)
  2. Edge: Cloudflare (CDN · protection · cache)
  3. Apps: Customer web (Docker); iOS app (native); Admin app (Docker)
  4. Core: .NET API (orders · courses · passes · invoices)
  5. Data: PostgreSQL
  6. Integrations: Payments (COMGATE); Shipping (Zásilkovna, PPL); Accounting (Money S3)
  7. Deployment: Azure DevOps → CI/CD pipeline → Docker · Azure
04 — Results

Results

What changed
What changed
  1. Before: Shopify (SaaS), ~240 EUR/mo, paid plugins, transaction fees, off-the-shelf compromises
  2. After: Custom e-shop · .NET, PostgreSQL, Docker · Azure (48 EUR/mo · server only)
  3. −80% operating costs; €0 transaction fees; 3 weeks to production; 4 integrations

Physical & digital product sales

A full e-shop with support for physical goods and digital content.

Course & reservation management

Course sign-ups, capacity management, participant overview, and automated notifications.

Sample lessons & membership passes

Purchase of sample lessons and a membership pass system with balance tracking and expiry.

Email notifications

Automated emails on order, reservation, payment confirmation, and course reminders.

Invoice generation

A custom invoicing engine — no dependency on an external invoicing system or plugin.

Money S3 exports

Automated accounting exports eliminate all manual data transcription.

Technologies

  • .NET
  • PostgreSQL
  • Docker
  • Azure
  • Azure DevOps
  • CI/CD Pipelines
  • Cloudflare
  • COMGATE
  • Zásilkovna API
  • PPL API
  • Money S3

More case studies

All case studies

ClinicDent

Multitenant SaaS for dental clinics — from booking to insurance billing

HealthcareSaaSMultitenant
Read more

Magistra a.s.

Data warehouse on Microsoft Fabric for a 200+ pharmacy chain

DataEnterpriseMicrosoft Fabric
Read more

JUST CS spol. s r. o.

Full replacement of an MLM sales network management system in 3 months

EnterpriseSystem replacementAzure
Read more

Related reading

Deeper technical notes on the topics from this case study.

Architecture & Consulting · 7 min read

Shopify vs. custom e-commerce: five signals that the platform is holding you back

For MessyPlay we replaced Shopify with a custom build and cut running costs by 80%. Not because Shopify is bad — because that specific shop had outgrown it. Five signals that it is time to go.

Read article
Architecture & Consulting · 6 min read

Custom e-commerce for the price of a Shopify subscription: TCO over 24 months

Build-vs-buy is usually won or lost on the calculator, not on principle. A concrete TCO for 2 years on Shopify vs. a custom Azure build — with real numbers from MessyPlay.

Read article
Migration & SEO · 7 min read

Migrating off Shopify without losing orders or SEO: a playbook

The biggest barrier to leaving Shopify isn't building the new system — it's the fear of losing SEO rankings and breaking checkout during cutover. Lessons from MessyPlay: URL mapping, redirects, parallel runs, and what can't be skipped.

Read article
A senior architect on every project · About us →

Want a similar solution?

Send us a message — we respond within one business day and schedule an intro call.