Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation.

For the best experience please use the latest Chrome, Safari or Firefox browser.

Make maps better, together.

Collaborative mapping and the Open Source Way

Traditional software development

ye olde computer

* Go to the store and get a floppy disk * Released every N years * Very specialized, high cost to reproduce * Writing software was really, really hard * Low-level languages, complex problems

…and then the Internet happened

the internet

* Updates are immediate (and often automatic) * Cost to transmit is negligible * 20 years -> solves all the hard problems * High level languages, standardized stacks, design patterns

A brief history of the internet

  • Everything → HTTP
  • XML → JSON
  • Adobe PDF, Microsoft Word → Markdown
  • ESRI Shapefile, Google KML →
    GeoJSON, TopoJSON

What we learned

* desktop ≠ internet * open > closed * Simple > Complex * Pragmatic > Perfect * Dumb format, smart tools * Easier to upgrade a tool than a standard * Experimentation is key

Open source isn’t just
hipster nonsense

hipster nonsense

* WordPress - ~1/4 sites * Apache - ~40%, + nginx - ~20% * Android - ~80% of sales * Linux server - ~40-60% * Chrome - ~%40

What’s open source?

Open > Closed

* open collaboration * shared tools, shared data * demo of whiteouse/petitions * {"key vocab"=>"repo, user, organization, commits, issues, pull requests, forks, branches"}

But first, a story

:beers: screenshot

When I first opened a Shapefile

Shapefile screenshot

When I first opened a KML file

KML screenshot

Down the :rabbit: Hole…

KMZ Screenshot

When I First Opened a GeoJSON file

GeoJSON Screenshot

GeoJSON on GitHub

View, edit, collaborate

* `.geojson`, `.topojson`, `.json` files * Points, lines, and polygons, oh my!
(the entire GeoJSON spec) * Clustering over ~1000 markers * Custom markers * Identify popups * Stupid simple embeds * Gists

Why GeoJSON?

  • No API to learn
  • No SDK to install
  • No license to :moneybag:
  • Open & Interoperable
  • It’s the Internet

The Process

  1. Commit a .geojson file to GitHub
  2. ??? 

So easy this adorable kitten can do it


(oh and also treating data as code)

What about our License Map?


* embeds * API






Edit GeoJSON


Import via Drag and drop


Save to Gist and GitHub




Pull Request

Pull Request

Who made what change, when?

Revision History


DC Bars sans TV

Bars sans TV

Diffing Forrest Fires


Flu Shot Open Standard

Philadelphia flu shot open spec


* Philly * Chicago * SF


Under The Hood



* Mapping for ~9 months, diffs for ~3 * Hosts hundreds of thousands of GeoJSON files * Served millions of maps (Hockey stick: > 1/4 Mil / month ) * Diffed tens of thousands of changes both proposed and realized

Why GitHub?

  • Liberating data
  • Democratizing mapping
  • Treat data as code

GitHub for software collaboration

* 5M users * 10k+ government users * 10M projects * Bulk of the technology you touch on a daily basis


git command line

* also project open data

Software documentation




Contributor modifies

Pull request

Community discusses

community reviews

Maintainer reviews


If even the NGA can do it…


How to get started

  • Open source some already-published data
  • Open source some tools in your data-processing pipeline
  • Contribute to an open source project you use
  • Non-code: Feedback repos, recipes, where to get lunch near the office

Make maps better, together.

Collaborative mapping and the Open Source Way