flamingo-commerce is a free, open source e-commerce platforms project written in Go and released under MIT. It has 598 GitHub stars, 96 forks and 31 open issues, and was last pushed yesterday. On this registry it ranks #43 of 46 tracked projects in E-commerce Platforms, with 5 head-to-head comparisons available. It gained 3 stars over the last 30 tracked days.

What is flamingo-commerce?

Flamingo Commerce is an open-source, MIT-licensed e-commerce framework written in Go and built on top of the Flamingo web framework, intended for teams that build headless commerce portals and connect them to external services through their own adapters.

What it is

Flamingo Commerce is a toolkit for building fast and flexible commerce experience applications in Go. It lives in the Flamingo ecosystem and is distributed as a set of e-commerce modules, each of which is a separate bounded context containing its own domain, application, and interface logic. The major modules are product, cart, category, price, search, and checkout. The framework applies domain-driven design together with a ports and adapters architecture, which means the domain logic does not depend on the technical details of any particular backend service. Each module also provides GraphQL support that applications can expose directly.

The concrete problem it solves is monolithic e-commerce architecture. The project is explicitly positioned as a way to break a monolith apart so that commerce can scale and remain maintainable, and as a foundation for headless commerce solutions. Because the domain is separated from the technical implementation by ports and adapters, an application can be wired to any API or microservice through a custom adapter rather than being locked to one commerce backend. It also targets real-time commerce: the stated design goal is to avoid relying on frontend caching, so showing every customer an individual, personalized experience is not a problem.

Key capabilities

  • Commerce modules for typical e-commerce domains: price, product, category, cart, search, and checkout, each a separated bounded context with domain, application, and interface logic.
  • price module provides value objects for prices and charges, supporting calculations, rounding, and splitting, plus multiple prices including loyalty prices.
  • cart module provides a cart domain model that supports multi delivery and multiple payment transactions.
  • product module provides domain models and interface logic for handling different product types.
  • GraphQL support in each module, demonstrated through the GraphQL console on the online demoshop.
  • Ports and adapters architecture so every module can be connected to your own adapter for any API or microservice.
  • Fake adapters that supply test data, allowing application and domain tests to run without external dependencies.

Who uses it and how

  • Teams breaking a monolithic e-commerce architecture into services, using adapters to reach each service while keeping the domain logic intact.
  • Teams building headless commerce, where frontend development is decoupled from the backend for frontend and any frontend technology can be used.
  • Teams running microservice architectures, where the adapter concept and the framework's resilience concepts are used to connect to other services safely.
  • Teams that need personalized, real-time commerce experiences without caching rendered pages per customer.
  • Teams that want to test commerce logic in CI without standing up external systems, by substituting fake adapters for real ones.

Getting started

The README points to the Flamingo documentation getting-started guide at docs.flamingo.me as the entry point, and a running demoshop using the standalone adapters is available at https://demoshop.flamingo.me, including its GraphQL console. No package install command or Docker image is named in the provided README excerpt.

How it compares

No list of paid products that this project replaces is provided in the facts, and no comparable tools are named either. It sits on top of the Flamingo framework itself, so it is best understood as a commerce layer for Flamingo applications rather than a standalone product; on that basis it stands alone in this registry.

When to use it — and when not to

A self-hoster must operate a Go service built on the Flamingo framework and write or maintain adapters to the backend systems the domain connects to; the facts do not name a required database, object storage, or SMTP dependency, so those remain the adopter's choice. It is a poor fit for teams that want a turnkey hosted shop, since the project supplies framework modules rather than a finished application. The README excerpt is largely a pointer to external documentation and does not include install commands, so setup effort should be assessed against the Flamingo docs before committing.

project readme (upstream, from github) — read inline

Flamingo Commerce

Go Report Card Tests Release

With "Flamingo Commerce" you get your toolkit for building fast and flexible commerce experience applications.

A demoshop using the standalone adapters is online here https://demoshop.flamingo.me - you can also try the GraphQL support

What problems does Flamingo Commerce solve?

  • Modern Architecture: Break monolithic e-commerce architecture to allow scaling and maintainability.
  • Modern Architecture: Use it to build commerce for headless commerce solutions
  • Real time commerce: Build personalized experiences - without the need to cache rendered pages

What are the main design goals of Flamingo Commerce?

  • Performance: We do not want to rely on any frontend caching. Instead it is no problem to show every customer an individual experience.
  • Clean architecture: We use "domain driven design" and "ports and adapters" to build a maintainable and clean application.
  • Suiteable for Microservice architectures: Adapters concept and various resilience concepts makes it easy to connect to other (micro) services.
  • Decoupled and flexible frontend development: Frontend development is decoupled from the "Backend for Frontend" - so that it is possible to use "any" frontend technology.
  • Testability: By providing "Fake Adapters" that provide test data, it is possible to test your application without external dependencies.
  • Great Developer Experience: :-)
  • Open Source: Flamingo Commerce and Flamingo is Open Source and will remain so.

Whats does Flamingo Commerce provide?

  • Different e-commerce Flamingo Modules for typical e-commerce domains: Each providing a separated bounded context with its domain, application and interface logic.

  • Using ports and adapters to separate domain from technical details, all these modules can be used with your own adapters to interact with any API or microservice you want.

  • Some of the major Flamingo Commerce modules (bounded contexts) are:

    • product: Offering domain models for different product types. Supporting multiple prices (including loyalty prices) etc..
    • cart: Powerful cart domain model. Supporting multi delivery, multiple payment transactions, and a lot more.
    • search: Generic search service and features
    • checkout: Offering logic and interfaces for an example (default) checkout.
  • Each of the modules provide graphql support that you can use.

Flamingo Commerce is build on top of the Flamingo Framework so it makes sense that you read through the Flamingo docs also

Read more under docs.flamingo.me

Commerce Modules:

  • price:

    • Offers value objects for prices and charges - supporting calculations, rounding and splitting
    • GoDoc
    • Readme
  • product:

    • Offers domain models and interface logic for handling different product types
    • GoDoc
    • Readme
  • category:

    • Offers domain models and interface logic for category tree and category views
    • GoDoc
    • Readme
  • cart:

    • The cart module is one of the main modules in Flamingo Commerce. It offers domain models and logic for multi delivery, multi payment carts.
    • GoDoc
    • Readme
  • payment:

    • Offers a generic payment value objects as well as a generic web payment interface and comes with the "offlinepayment" gateway.
    • GoDoc
    • Readme
  • search:

    • Offers domain models and interface logic for generic search and search filters.
    • GoDoc
    • Readme
  • checkout:

    • Offers a default checkout implementation that can be used.
    • GoDoc
    • Readme
  • customer:

    • Offers domain models for customer
    • GoDoc
    • Readme
  • order:

    • Offers domain models for orders. For example to use it on a "My Orders" page.
    • GoDoc
    • Readme
  • w3cdatalayer:

    • Offers interface logic to render a Datalayer that can be used for e-commerce tracking
    • Readme

Flamingo Commerce Release Status

Flamingo Commerce API is Beta because we will still change the API (models and methods). You are encourages to use it but if you update you might need to adjust your code to the latest changes.

Setup

We recommend to use Go modules, so you just need to add Flamingo Commerce to your main go file as import:

e.g. to use the product module add

import (
  "flamingo.me/flamingo-commerce/v3/product"
)

And then load the module in your application bootstrap:


// main is our entry point
func main() {

	flamingo.App([]dingo.Module{
	    ...
		//flamingo-commerce modules
		new(product.Module),
		
	}, nil)
}

To update the dependency in go.mod run

go get flamingo.me/flamingo-commerce/v3

Demo

There is a demo: https://demoshop.flamingo.me

And the code is also published: https://github.com/i-love-flamingo/commerce-demo-carotene

Frequently asked questions

Is flamingo-commerce free to use?

flamingo-commerce is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does flamingo-commerce do?

Flexible E-Commerce Framework on top of Flamingo. Used to build E-Commerce "Portals" and connect it with the help of individual Adapters to other services.

What is flamingo-commerce written in?

flamingo-commerce is primarily written in Go. Its source is publicly available at https://github.com/i-love-flamingo/flamingo-commerce, and it has 598 GitHub stars.