OpenStreetMap isn't just open data - it's also open source, and you can help!
There are two major ways you can get involved in OpenStreetMap:
- By developing the OpenStreetMap Platform itself. This includes the OpenStreetMap.org website and related components and services.
- By Using OpenStreetMap. You can "use" OpenStreetMap data and services together with software and services from our community to build anything you want.
Get in touch
If you have questions, ideas or just want to meet fellow developers, you can contact the OpenStreetMap development community by using channels listed below.
- #osm-dev channel on the OFTC network
- Mailing Lists
- Other contact channels including official forums
How the pieces fit together
The Rails port is the Ruby on Rails application that powers openstreetmap.org; it's where OSM's pages and basic API originate. OpenStreetMap's data, "the planet", are stored in PostgreSQL with PostGIS, and rendered into pretty map tiles with Mapnik. The Slippy Map interface for those tiles — what lets you pan and zoom the map — is powered by Leaflet.
There are many independent projects - for example iD editor is a separate project, its tagging schema is a separate repository. And iD tagging schema is used also for example by StreetComplete (via osmfeatures which is a dedicated project to make easier to use this data) and Go Map!!.
Note that different projects may be run by different people. For example MapComplete, RapiD and osm2pgsql is maintained by different teams, with own plans, development style and resources. Though some contributors may overlap.
There's plenty to know about OpenStreetMap's style of storing & modifying geodata that will help you get how things work. Review the XML schema, Data Primitives, and Downloading data if you want to work on data-related tasks.
Also, OpenStreetMap runs on a relatively small server deployment for its size - see our notes on server hardware for details. There are also API v0.6 mirrors and Dev and Test APIs which help with testing code that interacts with the OSM API.
How to get involved
For larger changes, you may want to get an account on a development server to do serious testing.
The OSM website Rails Port (Ruby)
Powers https://www.openstreetmap.org/ website and editing API. The Rails port page has plenty of useful information for getting started. Design help is needed here: read Rails_port/UI for a quickstart guide for designers. New users can also review pull requests as practice for getting the Rails Port set up. You can also help by contributing translations.
Search, geocoding Nominatim
Desktop map data editor JOSM (Java)
JOSM is one of the most popular and powerful OpenStreetMap editors.
Default style at OSM.org
- Main article: Standard tile layer
Other map styles are separate, please see on their wiki pages or look at contact/license footers in a map display.
Desktop map data editor Potlatch 3 (ActionScript)
Its predecessor Potlatch 2 was the default editor for new OpenStreetMap users. You can also help by contributing translations (Note that new translations are currently not added to the editor).
OSM data processing Swiss Army knife Osmium (C++)
Osmium (also known as Libosmium) is a Swiss Army knife for processing OpenStreetMap data. It is a library to read and write OpenStreetMap data and serves as a base for other projects such as Osm2pgsql.
Osmium Tool is a command line programme to convert OSM data between file formats, inspect files, apply updates to files and generate spatial or thematic extracts.
Pyosmium provides the Python bindings of Osmium and offers an easy method to keep a local OSM planet dumps up to date.
OSM data processing swiss army knife Osmosis (Java)
Osmosis is our swiss army knife for processing OpenStreetMap data. Documentation and testing are especially welcome here.
OSM data importer for rendering or geocoding osm2pgsql (C++)
OSM data importer for analytics openstreetmap_h3 (Java)
Map rendering with Mapnik (C++)
The main backend for the rendering of the maps that are produced from OSM data.
Tile rendering system with Tirex (C++ and Perl)
There are many many many projects powering OpenStreetMap ecosystem, many of them open source and welcoming contributions. Not all are listed on this specific page, see Software for more thorough listings. Look also at "About" page of your favourite OSM software - maybe it mentions its repository where you can contribute?