Skip to content
No description, website, or topics provided.
JavaScript Python HTML CSS PLpgSQL Dockerfile Other
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.


Piecewise is a tool for digesting and aggregating user-volunteered Internet performance test results data from Measurement Lab, and visualizing aggregate data on the web.

Support and Community

Piecewise is considered beta software and is not officially supported by the Open Technology Institute (OTI), New America or M-Lab. "Supported" in this documentation refers only to known working implementations or configurations, and not a level of product or customer support for installations of piecewise.

Questions, comments, contributions, etc. about Piecewise should be addressed via Github comments or issues, or by emailing M-Lab staff at the Open Technology Institute at


Piecewise code can be found on Github:

Get Started Documentation

Copy the .env.example file to your own .env file and change settings as needed.

Piecewise can be deployed locally or via a Docker container.

To deploy via Docker

In a new shell, run:

docker-compose build
docker-compose up

To deploy locally

Install poetry if it does not yet exist on your machine: pip install poetry

If you're running the application for the first time, run: poetry install

Then navigate to the backend directory and run Piecewise: cd backend && poetry run piecewise

In a new tab, navigate to the frontend directory: cd ../frontend

If you're running the application for the first time, run: npm install

To run the front end concurrently with the backend, run: npm run start:dev

Piecewise can be installed and run on any Linux server or virtual machine. The process of setting up a new Piecewise server involves:

You can also learn more about How Piecewise Works and about the statistics Piecewise generates

Project Organization


Contributions from external developers are welcome.

If you are a developer and are interested in contributing upstream to Piecewise, please review our open issues and milestones, and contact us for more information if needed. A more detailed roadmap for Piecewise is forthcoming.

Guidelines for External Contributors

Because Piecewise instances will all be local in nature, the development team requests that external contributors fork the Piecewise master branch and customize your fork for your needs.

New features you develop for Piecewise should be generalizable to any instance of Piecewise. An example of a generalizable feature would be a function that adds support for additional public data sources that a user could choose to configure and enable on their instance, either during initial setup or deployable onto an existing instance using an update script or other means. A feature that is not generalizable, such as location specific changes, would be rejected.

If you have developed new front-end examples in your fork of Piecewise, we encourage you to add a generalized version to /piecewise/piecewise_web/examples and submit a pull requests to add the examples for others to refer to.

Feature Requests and Bug Reports

If you would like to request a new Piecewise feature or report a bug, please file an issue in the Github repository.

Pull Requests

Please create pull requests from your fork to our master branch for review. Pull requests for addressing existing issues will be prioritized over new features not already logged as issues.

You can’t perform that action at this time.