Peermaps is a distributed, offline-friendly alternative to commercial map providers such as google maps. Instead of fetching data from a centralized tile service, your computer fetches map data from other peers across the network.
Peer to peer protocols like bittorrent spread out the work of hosting very large files among all the participants in the network who are interested in a file. Centralized services can be overwhelmed if too many people want to download a file, but p2p services flip scaling on its head: the more people are downloading and sharing, the better the network works for everyone.
With the powerful inverse scaling dynamics of p2p, we can run a mapping platform at a fixed, modest cost, no matter how popular it becomes.
As you download map data from your peers, your computer saves that data locally so that you can share it with other people who ask for it. This means that when you go offline, you'll still be able to view maps you've looked at previously.


We've secured grant funding to improve our initial prototypes and develop new components for a fully p2p web-based map viewer to display OpenStreetMap data with rolling updates.
Our target for this phase of development is the web as a web app and an embeddable map component with an enhanced experience available for beaker browser and for users who install a browser extension using new libdweb features.
We're working closely with the dat project and digital democracy / mapeo to share in the work of designing and implementing common components across our respective projects.
Interactive webgl maps emphasizing direct access to the rendering pipeline.
Multi-dimensional spatial database. Write batches of geographic coordinates to an interval tree with blocks addressed into a p2p prefix-trie. Perform spatial queries on sparse data by fetching blocks of the tree from peers as necessary.
in design
Create a swarm for a geographic topic extending requests with optional spatial query data using a hypercore extension.
Form a cooperative compute cluster under a swarm topic, archiving the collective results into a collection of hypercores.
in design
Process planet.osm and diffs using swarmhead for distributing rolling releases on eyros. The full documents are written to a distributed prefix-trie (for editing as a later supported feature) and a slimmed down version of the geometry required for rendering is written as the data payload to eyros along with the ID for full document lookups.
in development
Rendering layer for mixmap to display map data from eyros. You can use the provided shaders or write your own, including supplying your own custom geospatial projections in the vertex shaders.
in design
Single-page web application for browsing maps and managing the networking layer. Also provides an embedded viewer suitable for including on other web pages. Later, this app will support editing map content.

support us

If you'd like to support our work, we have an account on opencollective where you can help fund development.