Overview

The Firefox Marketplace is a collection of services and repositories that together form the Marketplace.

Our recommended setup for the backend is to use Docker. And our recommended setup for the frontend is to clone the repository as detailed in our Marketplace Frontend documentation. By default, the frontend setup will point to our development server and database. But if you wanted a full environment, you can set up both the backend and frontend, and point your frontend towards the backend set up by Docker.

Setting up the Backend

If you want to work on the backend, the API, or the payments infrastructure, visit our Marketplace Backend documentation. It will explain how to set up Docker as it automates the setup of the Marketplace environment.

Setting up the Frontend

If you want to work on the consumer-facing Marketplace frontend, visit our Marketplace Frontend documentation. It only takes three commands to get things up and running. You don’t even need to setup a backend, although you could if you wanted your own personal playground.

List of Services and Repositories

Backend

  • Zamboni: the main API backend that also serves developer, reviewer, and admin tool pages. Written in Python with Django - source, docs, API docs.
  • Marketplace API Mock: a fake API backend used for frontend testing. Written in Python with Flask - source.
  • Monolith: storage and query server for statistics around the Marketplace. Written in Python - source, aggregator source.
  • Webpay and Solitude: servers for processing payments for the Marketplace. Written in Python with Django - webpay source, webpay docs, solitude source, solitude docs.
  • Trunion: a signing service for app receipts and packaged apps. Written in Python with Pyramid - source.
  • Zippy: a fake backend for payments so to fake out carrier billing. Written in Node - source.
  • APK Factory: generates Android APKs out of web apps. Written in Node and Python - factory source, signer source, signer docs.
  • marketplace-env: automated Marketplace backend setup using Docker. Uses Docker and fig - source
  • Signing server: signs receipts and apps for the Marketplace. Written in Python - signing service, and signing libraries.

Frontend (Javascript)

  • Fireplace: the main frontend for the Firefox Marketplace. Written in Javascript with our Commonplace framework - source.
  • Statistics: dashboard that displays charts and graphs from Monolith. Written in Javascript with our Commonplace framework - source.
  • Transonic: curation and editorial tools for the Marketplace, notably for the Feed. Written in Javascript with our Commonplace framework - source.
  • Operator Dashboard: dashboard for FirefoxOS operators to manage their app collections. Written in Javascript with our Commonplace framework - source.
  • Commbadge: dashboard for communications between app reviewers and app developers. Written in Javascript with our Commonplace framework - source.
  • Spartacus: the frontend for Webpay. Written in Javascript - source.

Frontend Components (Javascript)

  • marketplace-core-modules: core JS modules for Marketplace frontend projects Written in Javascript - source.
  • commonplace: Node module that includes configuration, template optimization, l10n. Written in Node - source.
  • marketplace-gulp: gulpfiles for Marketplace frontend projects for builds. Written in Node - source.
  • marketplace-constants: shared constants between the backend and frontend. Written in Python - source.
  • marketplace-elements: web component UI elements Written in Javascript - source.

Marketplace Servers

Marketplace’s servers are outlined below For specifics of our production configuration, please see the Services documentation (only visible to Mozilla employees).

  • dev: updated each commit.
  • alt dev: updated each commit. Used for testing disruptive development features.
  • stage: updated when tags are made. This is as similar to production as possible. Used for testing features before they go to production. Uses real money for payments.
  • payments alt: updated each commit. Used for testing dispruptive payments features. Uses real money for payments.
  • production: updated as per the push schedule. The production servers are the only ones with any uptime expectations.