mariusandra/pigeon-maps

ReactJS Maps without external dependencies

TypeScript

3,522

575 commits

updated Jun 4, 2025

See the code

README

Pigeon Maps - ReactJS maps without external dependencies

npm version minified minified + gzipped

Demo: https://pigeon-maps.js.org/ (using maps from MapTiler, OSM and Stamen)

What is it?

Are you tired of waiting 3 seconds to parse 200kb of Google Maps JavaScript just to display a few tiles and a marker? 140kb of minified Leaflet too much?

Welcome to the club!

This project aims to provide a performance-first React-centric extendable map engine.

We're currently at:

  • minified
  • minified + gzipped

Implemented:

  • Show tiles
  • Arbitrary overlays (markers, etc)
  • Move the map by dragging
  • Move the map by touch on mobile
  • Zooming with the scroll wheel
  • Zooming by touch
  • Fractional zooming (e.g. to level 12.2)
  • Zoom without flickering (keep old tiles until new ones load)
  • Smooth animated zooming
  • Slide when dragging and letting go
  • Event handling (clicks, etc)
  • Double click and double tap zooming
  • Option to block dragging with one finger and mouse wheel scrolling without holding meta key
  • Enable/disable touch and mouse events as needed - you could make a 100% static server rendered react map
  • Support for 100% width/height containers
  • Markers
  • Overlays
  • Draggable Overlays
  • Zoom Controls

Missing:

  • Double tap and then swipe touch zooming
  • Many other components

Install

Read the docs here!

Yeah, but why "pigeon"??

Pigeons are experts in magnetoreception. Good pigeons can find their way home from anywhere.

Magnets were essential in making the first maps. With a good map you can find your way home from anywhere.

Thus, pigeon.

Source: https://en.wikipedia.org/wiki/Homing_pigeon

hacktoberfest
inferno
inferno-component
map
pigeon
pigeon-maps
react
react-component

mariusandra/pigeon-maps

ReactJS Maps without external dependencies

TypeScript

3,522

575 commits

updated Jun 4, 2025

See the code

README

Pigeon Maps - ReactJS maps without external dependencies

npm version minified minified + gzipped

Demo: https://pigeon-maps.js.org/ (using maps from MapTiler, OSM and Stamen)

What is it?

Are you tired of waiting 3 seconds to parse 200kb of Google Maps JavaScript just to display a few tiles and a marker? 140kb of minified Leaflet too much?

Welcome to the club!

This project aims to provide a performance-first React-centric extendable map engine.

We're currently at:

  • minified
  • minified + gzipped

Implemented:

  • Show tiles
  • Arbitrary overlays (markers, etc)
  • Move the map by dragging
  • Move the map by touch on mobile
  • Zooming with the scroll wheel
  • Zooming by touch
  • Fractional zooming (e.g. to level 12.2)
  • Zoom without flickering (keep old tiles until new ones load)
  • Smooth animated zooming
  • Slide when dragging and letting go
  • Event handling (clicks, etc)
  • Double click and double tap zooming
  • Option to block dragging with one finger and mouse wheel scrolling without holding meta key
  • Enable/disable touch and mouse events as needed - you could make a 100% static server rendered react map
  • Support for 100% width/height containers
  • Markers
  • Overlays
  • Draggable Overlays
  • Zoom Controls

Missing:

  • Double tap and then swipe touch zooming
  • Many other components

Install

Read the docs here!

Yeah, but why "pigeon"??

Pigeons are experts in magnetoreception. Good pigeons can find their way home from anywhere.

Magnets were essential in making the first maps. With a good map you can find your way home from anywhere.

Thus, pigeon.

Source: https://en.wikipedia.org/wiki/Homing_pigeon

hacktoberfest
inferno
inferno-component
map
pigeon
pigeon-maps
react
react-component

Project health

Overall

2.3/10

Maintained

0/10

Code review

2/10
OpenSSF Scorecard

Latest release

0.22.1 · Dec 26, 2024

Releases this year

0

Significant stargazers

(top 24 of 34)

Feross Aboukhadijeh

14,909 followers · starred Sep 2018

Pascal Borreli

426 followers · starred Sep 2018

David Baumgold

503 followers · starred Sep 2018

Simon Legner

270 followers · starred Aug 2021