Skip to content

DesignGoals.md

Martijn van Exel edited this page May 13, 2025 · 13 revisions

MapRoulette 4 Design Goals

Why does MapRoulette exist?

OpenStreetMap, being a crowdsourced map project, requires constant maintenance: map data becomes out of date, mappers make mistakes, mapping conventions are refined over time. While there are tools that allow anyone to inspect the quality of the map data through a variety of lenses, the mapping community also needs a tool that exposes mapping defects as actionable tasks for the crowd to resolve in a organized, systemic manner.

Because no such tool existed at the time, we created MapRoulette in 2012.

Even though other tools with similar purpose exist today, MapRoulette remains unique in offering a "merketplace" of mapping tasks that empowers everyone in OSM to be both a consumer and a producer of tasks.

DRAFT - For discussion

Since its inception, MapRoulette has been a self-contained application with a mission to bring meaningful mapping tasks to the OpenStreetMap volunteer mapping community. We will not stray from this mission, but we will expand on it.

MapRoulette As A Platform

We will define MapRoulette as a platform rather than (just) an application.

What this means

  • Enabling and encouraging two-way integrations between the MapRoulette API and other systems in the OpenStreetMap ecosystem, including the core OpenStreetMap infrastructure, will be central to the MapRoulette platform.
  • MapRoulette will strive to be a central repository for QA signals in all of OSM, to be used across applications

What this does not mean

  • The MapRoulette Application will not disappear or fundamentally change.

An example

A Trusted Project

We aim to be a reliable and trusted participant in the OpenStreetMap community.

What this means

  • A commitment to openness that goes beyond publishing source code
  • We will put the needs of the volunteer community first

What this does not mean

  • "Design by committee"

MapRoulette 4

General Discussion

Clone this wiki locally