From OpenStreetMap Wiki
(Redirected from Developer)
Jump to: navigation, search
Available languages — Develop
Afrikaans Alemannisch aragonés asturianu azərbaycanca Bahasa Indonesia Bahasa Melayu Bân-lâm-gú Basa Jawa Baso Minangkabau bosanski brezhoneg català čeština dansk Deutsch eesti English español Esperanto estremeñu euskara français Frysk Gaeilge Gàidhlig galego Hausa hrvatski Igbo interlingua Interlingue isiXhosa isiZulu íslenska italiano Kiswahili Kreyòl ayisyen kréyòl gwadloupéyen kurdî latviešu Lëtzebuergesch lietuvių magyar Malagasy Malti Nederlands Nedersaksies norsk norsk nynorsk occitan Oromoo oʻzbekcha/ўзбекча Plattdüütsch polski português română shqip slovenčina slovenščina Soomaaliga suomi svenska Tiếng Việt Türkçe Vahcuengh vèneto Wolof Yorùbá Zazaki српски / srpski беларуская български қазақша македонски монгол русский тоҷикӣ українська Ελληνικά Հայերեն ქართული नेपाली मराठी हिन्दी অসমীয়া বাংলা ਪੰਜਾਬੀ ગુજરાતી ଓଡ଼ିଆ தமிழ் తెలుగు ಕನ್ನಡ മലയാളം සිංහල ไทย မြန်မာဘာသာ ລາວ ភាសាខ្មែរ ⵜⴰⵎⴰⵣⵉⵖⵜ አማርኛ 한국어 日本語 中文(简体)‎ 吴语 粵語 中文(繁體)‎ ייִדיש עברית اردو العربية پښتو سنڌي فارسی ދިވެހިބަސް

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:

Using OpenStreetMap for Development

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.

How the pieces fit together

The code that runs is composed of independent components that work together to provide an API, Slippy Map, and other bits of functionality.

The Rails port is the Ruby on Rails application that powers; 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.

Internally, osm2pgsql and osmosis are essential infrastructure for converting OSM XML to PostGIS. They work with Planet.osm and other extracts, which let other sites use and distribute OSM data.

Users can add and modify OpenStreetMap data thanks to open-source editors like iD, Potlatch 2, and JOSM.

Deploy OpenStreetMap stack automatically using VM

Tile serving

Stubs and untested ideas


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

Many of OpenStreetMap's projects use Git (mirror at GitHub), and so you can simply fork a repo and contribute changes.

For larger changes, you may want to get an account on a development server to do serious testing.

Main projects

The OSM website Rails Port (Ruby)

This does the UI and API for the site. 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.

Online map data editor iD (Javascript)

iD is the newest editor for OpenStreetMap. Users can help by testing & reporting bugs, or tackling issues tagged good-first-issue.

Default style at

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.

Online map data editor Potlatch 2 (Actionscript)

Potlatch 2 was the default editor for new OpenStreetMap users. You can also help by contributing translations.

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)

osm2pgsql a powertool for importing OSM XML files into PostGIS databases. Documentation and testing are especially welcome here.

Slippy map library Leaflet (Javascript)

Provides the general slippy map interface. Javascript whizzes can help us make the home page's maps even faster.

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)

See also Tirex/Development and Tirex/Internals