# Decentraland Marketplace: a React storefront with a separate indexer behind it

> The Decentraland Marketplace repository holds two distinct pieces, a React static site under `webapp/` and a backend under `indexer/`, and its README is mostly a contribution guide. It is a good reference for how a marketplace frontend is split from the service that feeds it, and a poor reference for anything the documentation does not cover.

**decentraland/marketplace** — 🏛️ Decentraland's NFT Marketplace

- Repository: https://github.com/decentraland/marketplace
- Website: https://market.decentraland.org
- Stars: 1,199 · Forks: 685
- Language: TypeScript
- License: NOASSERTION
- Published: 2026-10-19 · Updated: 2026-10-19 · Language: en
- Canonical page: https://hysenlabs.com/projects/decentraland-marketplace

## Two deployables in one repository, and a stub root manifest

The Marketplace repository is organised around two directories that the README points at separately. The frontend is described as a React static site whose code lives under `webapp/`, and the backend is under `indexer/`. That split is the most transferable thing in the repository. A static site frontend means the catalogue pages can be rendered ahead of time, while the indexer is the piece that has to stay live, talk to whatever the platform's data sources are, and serve the freshness that a pre-rendered page cannot. Nothing in the README describes how the two are wired together, whether by build time, by a shared API client, or by both, so a reader cannot conclude from the documentation that the frontend queries the indexer directly. The root of the repository is a minimal package.json named `marketplace`, with version 2.7.0, a repository field pointing at the GitHub URL, a main of `index.js` and an empty dependencies object. In other words the root manifest is a placeholder rather than the build manifest of the application, which is a small trap for anyone who clones the repository and runs an install at the top level expecting something to happen.

## The README is a contribution manual, and that is what it is good for

Everything the README documents is about process, and the process is unusually specific. It opens by telling you to look for issues in the Issues tab or create one with the proposed changes, and it says the team classifies issues with Enhancement, Bug or Good first issue tags and suggests checking one of those first. Step two is to contact team members through the issue itself or through the Code Contribution Discord channel, and the README says it is important to at least check the issue status before starting. Step three is technical rather than editorial: set up your GPG key and sign all commits in your branch. Step four asks you to read the testing standards and the coding standards, both of which live in Notion documents, so that the code fits the project conventions. Step five is to open a pull request that links to the created issue, and to attach images if the change is visual. Read as a whole, this is a project that has decided to keep its public surface small and its changes reviewed, which is a reasonable posture for a codebase that touches a marketplace where users hold assets.

## Signed commits and a security file are the visible signals of intent

Two details in the repository root tell you how the project treats trust. There is a `SECURITY.md` at the top level, alongside `.github/`, the `LICENSE` file, the `README.md` and the two source directories, and a security policy file at the root of a public repository is a deliberate signal to researchers about where to report problems. The other signal is the GPG requirement in the contribution steps, which is not something most open source projects ask of ordinary contributors, and which means the commit history is meant to be attributable in a way that an unsigned history is not. Neither of these is a technical feature and neither will help you build a marketplace, but together they describe the project's posture towards the assets its users trade, and they are the sort of thing that determines how comfortable an organisation is letting its engineers work in the repository. The `SECURITY.md` file itself is not reproduced in the README, so the reporting channel it names is something you have to open the file to find.

## Licensing, version numbers and what the tags actually mean

There is a small inconsistency here that a careful reader will notice. The README's Copyright and License section says the repository is protected with a standard Apache 2 licence and points to the LICENSE file, while GitHub's own classification of the licence for this repository is a custom one that it cannot categorise, which usually means the LICENSE file has text the classifier does not recognise as standard. Either way, the operative document is the LICENSE file, and the README's own framing of it as standard Apache 2 is the claim to verify before you reuse anything. The version numbering is a second loose end. The root package.json says 2.7.0, while the tagged releases are 8.40.1, 8.40.0 and 8.39.0, all published within the first two weeks of October 2026, so the two numbers are tracking different things, most likely the release tags of the deployables rather than the placeholder root manifest. For anyone pinning a dependency on this repository, that means the tag is the only reliable reference, and you should check inside `webapp/` and `indexer/` for the manifests that actually describe the build.

## What a static site frontend means for a marketplace

The word static in the README's description of the frontend is doing real work and is worth reasoning about, because it constrains the design of a marketplace interface. A React static site generates pages ahead of time, which is efficient for catalogue browsing and for search engine visibility, and it means the buyer facing surface can be served from a CDN without a running application server. The cost is that anything which depends on the state of the moment, a live price, a wallet balance, an availability check at the moment of purchase, cannot be baked into the page and has to be resolved in the browser or through the backend. That is exactly the split the `indexer/` directory implies: the pre-rendered layer is the shop window, and the indexer is the part that can answer a question that changes between one visitor and the next. The README does not describe the interface between them, and it says nothing about how on-chain ownership is reconciled with an indexed catalogue, so the interesting part of the system is exactly the part that is undocumented. The hosted instance at market.decentraland.org is the only place those answers are observable.

## Who this repository is for

The honest reading is that this is an application repository rather than a reusable library, and the two roles it can play are different in value. For a developer, it is a worked example of a marketplace frontend and indexer living in the same project with a single release train, plus a contribution workflow that a team can copy wholesale, including the signed commits, the issue taxonomy and the request to read shared standards before writing code. For an engineer evaluating whether to build on it, what the README documents here supports very little: there is no API documentation, no schema, no deployment guide and no test documentation beyond a link to a Notion page, so the repository cannot be evaluated as a foundation without reading the code. The releases tell you something useful about the project's health. Tags 8.39.0, 8.40.0 and 8.40.1 within days of each other in October 2026, and a push on 2026-10-13, indicate an actively shipped application rather than a dormant codebase, which is the opposite of what the sparse README might lead you to expect.

## Conclusion

Adopt this repository as a reference for how a marketplace frontend and its indexer are separated inside one project, and read it as a process document if you want to contribute to a Decentraland dApp. Do not adopt it as a base for your own marketplace, because the README documents the contribution workflow rather than the system, and nothing describes the data model, the API surface or the on-chain contract handling. Before you build on anything here, check the licences yourself, since the README states Apache 2 while GitHub classifies the licence as custom, and check which version you are actually looking at, since the root package.json declares version 2.7.0 with no dependencies while the tagged releases are numbered 8.40.x. The last push was on 2026-10-13 and the release tags show daily to weekly shipping.

## FAQ

### What is in the Decentraland Marketplace repository?

Two main pieces, a React static site whose code is under the `webapp/` directory and a backend under the `indexer/` directory, plus the root LICENSE file, README, SECURITY.md and a placeholder package.json.

### What licence does the Decentraland Marketplace use?

The README's Copyright and License section says the repository is protected with a standard Apache 2 licence and points to the LICENSE file in the root, while GitHub classifies the licence as a custom one it cannot categorise. Read the LICENSE file itself before reusing anything.

### How do I contribute to the Decentraland Marketplace?

Find or create an issue and check its status with a team member or in the Code Contribution Discord channel, set up a GPG key and sign all commits in your branch, read the testing standards and coding standards, then open a pull request linked to the issue and attach images for visual changes.

### Is the Decentraland Marketplace actively maintained?

The release history suggests active shipping, with tags 8.39.0, 8.40.0 and 8.40.1 published within days of each other in October 2026 and a push on 2026-10-13. The repository publishes no separate documentation beyond the README, and the root package.json version of 2.7.0 does not match the release tags.

## Sources

- [decentraland/marketplace on GitHub](https://github.com/decentraland/marketplace)
- [Issues](https://github.com/decentraland/marketplace/issues)
- [Project website](https://market.decentraland.org)
- [README](https://github.com/decentraland/marketplace/blob/master/README.md)
- [Releases](https://github.com/decentraland/marketplace/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/decentraland-marketplace
