Introduction
Learn what MedusaGo is, who it's for, and how this documentation is organised.
What is MedusaGo#
MedusaGo is a Go implementation of the Medusa commerce backend. You write your commerce features in Go, and you keep everything else that makes Medusa what it is: the same HTTP API, the same database, the same Medusa Admin dashboard, and the same storefronts.
MedusaGo ships with three main tools:
- A suite of Commerce Modules with core commerce functionalities, such as tracking inventory, calculating cart totals, accepting payments, managing orders, and much more.
- A Framework for building custom functionalities specific to your business, product, or industry. This includes tools for introducing custom API routes, business logic, and data models, and for building workflows and integrating with third-party services. All of it is written in Go.
- The Medusa Admin, a customisable dashboard for merchants to configure and operate their store.
A MedusaGo application compiles to a single binary that serves the API and the Medusa Admin. It needs a PostgreSQL database, and optionally Redis in production.
Compatible with Medusa#
MedusaGo is a drop-in replacement for Medusa's backend. Its baseline is Medusa v2.22.6, and every route of the Admin, Store, Auth, and webhook APIs behaves like its Medusa counterpart. This means that:
- The original Medusa Admin dashboard works unchanged. MedusaGo embeds it in the binary and serves it at
/app. @medusajs/js-sdk, the Next.js Starter Storefront, and any other storefront built for Medusa work unchanged.- The Admin and Store API references apply to MedusaGo as they are.
- MedusaGo reads and writes the database of a Medusa
v2.22.6application as is, and Medusa can take over a database that MedusaGo has used. Stop one server before you start the other on the same database, as workflow executions that are in progress are not carried over.
Who should use MedusaGo#
MedusaGo is for teams that want Medusa's commerce capabilities and want to build and run their customisations in Go. For example:
- Teams that prefer to deploy one self-contained binary instead of managing a runtime and its dependencies.
- Teams that already have Medusa storefronts or an Admin and want a lighter backend behind them.
- Developers who know Go and want to build custom modules, workflows, and API routes with a language and tooling they already use.
What's Not Included#
A few things of the Medusa ecosystem are not part of MedusaGo:
- Enterprise-edition features of the upstream project aren't included.
- Backend customisations and plugins written in TypeScript can't be loaded. Plugins are Go packages that you import into your application.
- Parts of Medusa's CLI that only make sense for Node projects are not available. Refer to the Medusa CLI reference for the list.
Admin customisations (widgets and UI routes) and storefronts are still JavaScript and TypeScript, since they run in the browser.
How to Learn MedusaGo#
This documentation introduces you to MedusaGo's concepts and how they help you build your business use case. The chapters gradually introduce each concept, with examples along the way.
Start with the Installation chapter to run a MedusaGo application locally. Then, follow the customization tutorial to build your first custom feature, and read the Framework chapters to understand each concept in depth.
How to Use the Documentation#
This documentation is split into the following sections:
Section | Description |
|---|---|
The documentation you're currently reading. Follow the chapters to understand MedusaGo's core concepts before you jump into the other sections. | |
References for the Commerce Modules, the MedusaGo CLI, and create-medusago-app, along with storefront development and tooling guides. | |
API Reference | References of the Store and Admin API routes. They also include instructions related to authentication, parameter types in requests, and more. |
Guides that introduce merchants and store managers to the Medusa Admin dashboard and help them understand how to use it to manage their store. |
Next Steps#
To get started, check out the Installation chapter.