GMI Software
Services

Start with the outcome you need to achieve.

Explore all services
Core areas
01AI & AutomationFrom workflow and business case to production02Mobile AppsiOS, Android, React Native03Headless & B2B commerceStores, sales platforms, ERP/PIM integrations
Complementary services
AI-gen developmentAgents, RAG and LLM integrationsE-commerce mobile analyticsFunnel measurement and data-led decisionsProduct Discovery & DesignScope, prototype and delivery planBackend, API & IntegrationsSystems connected to business operationsMaintenance & AuditsStability, performance and continued growthWorkshops & estimationRisks, decisions and fixed-price scope
Not sure where to start?Book a short consultation
Our projects
Case studies and references
App Ideas Library
Use case examples
Technologies

We choose the stack around the product, scale and risk.

Explore the full technology stack
MobileReact NativeExplore
CommerceMedusaJS + headlessExplore
Frontend & QA
Next.jsReactTypeScriptPlaywrightMaestro
Backend, DB & cloud
Node.jsNestJSPostgreSQLDockerAWS
AI, 3D & automation
3D configuratorsAI agents & automationRAG & knowledge basesAI-native products
Explore the full technology stack
Before you commit

Estimate costs and organise assumptions before a call.

App cost calculatorEstimate scope and budgetE-commerce AI adviserMap decisions, risks and optionsE-commerce TCO calculatorCompare SaaS and custom over 5 years
About us
Our history and values
Careers
Join our team
Contact
Get in touch
Get in touch
AI Opportunity Sprint
Services
Mobile AppsHeadless & B2B commerceAll services
Projects and results
Technologies
Next.jsNode.jsAWSFull technology stack
Tools
App cost calculatorEstimate scope and budgetE-commerce AI adviserMap decisions, risks and optionsE-commerce TCO calculatorCompare SaaS and custom over 5 years
Meet GMIGet in touch
Back to blog
Commerce architecture
Published: July 29, 2026
8 min read

MedusaJS vs custom Node.js commerce engine

When to build on MedusaJS and when to write a custom commerce engine: commerce domain, core module cost, integrations, maintenance and ownership of business logic.

Mikołaj Lehman, CEO & Founder, GMI Software
Mikołaj Lehman
CEO & Founder, GMI Software

In brief

MedusaJS is a better starting point when a company needs flexible commerce but does not want to write cart, products, orders, customers, promotions and payments from scratch. A custom Node.js engine makes sense only when the sales domain is so unusual that an existing core gets in the way more than it helps.

MedusaJS is a better starting point when a company needs flexible commerce but does not want to write cart, products, orders, customers, promotions and payments from scratch. A custom Node.js engine makes sense only when the sales domain is so unusual that an existing core gets in the way more than it helps.

The short answer: business context wins, not the tool name

Writing a custom commerce engine sounds attractive because it gives full control. In practice, it also means owning dozens of boring but critical behaviors: cart, orders, discounts, taxes, returns, payments, customer, inventory, audit and integrations.

MedusaJS lets the team start with a commerce core and focus custom code where the company truly has an unusual process. A custom engine makes sense when that core would need so many workarounds that it becomes friction.

When the first option is the better choice

MedusaJS fits when the company wants code ownership and flexibility but still sells products, variants, carts, orders and payments in a recognizable commerce model.

It creates the most value as a core for headless, B2B, mobile app, sales rep portal and ERP/PIM/WMS integrations.

  • You need standard commerce objects that can be extended.
  • You want to reach the first production version faster.
  • The uniqueness is in rules and integrations, not the entire nature of selling.

When the second option makes more sense

A custom engine makes sense when selling looks more like contract configuration, an exchange, a marketplace with unusual settlements, a booking system or a production workflow than a classic store.

This is a serious architecture decision. You need to calculate the cost of building foundations that an existing engine already has and maintaining them for years.

  • The order model does not fit typical commerce.
  • Pricing, settlement or configuration rules are core to the advantage.
  • The team has budget and capability to maintain its own domain.

Risks hidden by a simple comparison

The MedusaJS risk is poor fit for a very unusual domain and too many workarounds. The custom-engine risk is underestimating commerce foundations that do not look impressive in a presentation but must work perfectly.

The expensive details are partial returns, corrections, taxes, payment idempotency, change history, permissions, migrations and data consistency with ERP.

  • Building from scratch without a list of standard behaviors.
  • No owner for order and payment domain.
  • Believing a simple MVP cart is enough for production B2B.

How to decide without burning budget

First check how much of your process is typical commerce and how much is truly custom domain.

  1. List objects: product, variant, price, cart, order, payment, return, invoice.
  2. Mark which behaviors MedusaJS supports by default and which need extensions.
  3. Calculate the cost of writing and maintaining missing foundations from scratch.
  4. Choose a custom engine only when an existing core constrains more than it accelerates.

How GMI helps

GMI uses MedusaJS where an open commerce core shortens the path to production. We build custom backends when the client domain truly requires it.

In DDT, we compare MedusaJS, custom engine and hybrid options across orders, payments, integrations and maintenance.

Next step

Explore MedusaJS developmentSee delivery proof: SFD commerce

An example of GMI commerce delivery; it does not claim that SFD uses the technologies compared in this article.

Frequently asked questions

Does MedusaJS limit custom logic?
It can if the domain is extremely unusual. In many projects, it provides foundations and lets the team extend areas that actually differentiate the business.
When should you not write a custom commerce engine?
When you sell standard products, variants and orders, while custom parts are mainly pricing, integrations or frontend. Then an existing core usually saves time.
What should be calculated before deciding?
The cost of cart, orders, payments, returns, permissions, integrations, tests, migrations and maintenance over 24-36 months.

Content updated: July 29, 2026

Mikołaj Lehman, CEO & Founder, GMI Software
Mikołaj Lehman
CEO & Founder, GMI Software

Mikołaj Lehman is the CEO and founder of GMI Software. On the blog, he covers decisions around mobile apps, ecommerce and digital product delivery.

  • Mobile apps and React Native
  • Headless and B2B ecommerce
  • MedusaJS
  • Digital product delivery

Google Preferred Sources

See GMI more often in Google

Add gmi.software as a preferred source. Google may highlight our new articles more often in Top Stories and supported AI experiences.

Share article:

Related articles

E-commerce

MedusaJS + Next.js for B2B storefronts: architecture, cost and risks

A practical guide to B2B storefronts: MedusaJS v2 as commerce core, Next.js as the buying portal, customer groups, price lists, sales channels, ERP/PIM and implementation cost.

→
Mobile commerce analytics

Mobile commerce analytics tracking plan — events and example

A practical event model from app open to purchase: names, parameters, ownership, server-side purchase and pre-launch validation.

→
Contact

Let's talk
about the project.

Have an app idea or need technological support? Write to us — we'll prepare a preliminary analysis and estimate within 48h. Projects that go through our DDT process (Discovery, Design & Technology) come with a price guarantee and a fixed-price agreement — a key differentiator for us.

Write to us[email protected]
Visit us
GD
gmi.software Sp. z o.o.ul. Jana Heweliusza 11 / 819
80-890 Gdansk, PolandNearshore product delivery across EU, UK and US time zones.
NIP: 5252816287KRS: 0000830003
gmi.
ServicesOur projectsBlogBrief assistantContact
LIFAINGI
Mobile Trends Awards 2025 nomination - SFD app
© 2026 gmi.software Sp. z o.o.
Privacy PolicyTerms