# ensemble **Repository Path**: mirrors_mozilla/ensemble ## Basic Information - **Project Name**: ensemble - **Description**: The platform that powers the Firefox Public Data Report :violin: :trumpet: :musical_keyboard: - **Primary Language**: Unknown - **License**: MPL-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-22 - **Last Updated**: 2026-10-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README Ensemble is the platform that powers the [Firefox Public Data Report](https://data.firefox.com), a weekly public report on the activity, behavior, and hardware configuration of Firefox Desktop users. Ensemble fetches data from [ensemble-transposer](https://github.com/mozilla/ensemble-transposer), a JSON server that adds metadata to the raw data hosted by Mozilla data engineers. See [`docs/architecture/data-pipeline.md`](docs/architecture/data-pipeline.md) for how that data is generated upstream, where it lives, and which repositories are involved. Ensemble is written in React, built with [Vite](https://vite.dev/). ## Run ### For development Run `npm start`. See `CONTRIBUTING.md` for the full command reference. Any of the environment variables in *.env* can be overridden. For example: `VITE_SITE_TITLE='Firefox Public Lore Report' npm start` ### In production Run `npm run build:app` to produce a static build in `build/` (see `CONTRIBUTING.md` for the full command reference). How that build is deployed is not documented in this repository. Any of the environment variables in *.env* can be overridden. ## Development See `CONTRIBUTING.md` for build, lint, and test commands, coding conventions, and the current status of this repository's test suites. ### Analyzing To analyze the size of the JavaScript bundle that will be served, run `npm run size`. ### Notes #### Versioning We maintain a version number for this project. We try to update it when we deploy new code. The version number is specified in package.json. The number looks like a semantic version number, but [semver isn't suitable for applications](https://softwareengineering.stackexchange.com/a/255201). We instead follow this basic guideline: the first number is incremented for major changes, the second number is incremented for medium changes, and the third number is incremented for small changes.