v1.4 • Data • 16kb gzipped • MIT
GeoPin
A marker and clustering layer for maps, rendered on canvas so ten thousand pins stay smooth.

// why geopin
Ten thousand markers
Markers are drawn to canvas rather than created as DOM nodes, which is the difference between smooth and unusable at scale.
// stack
Renderer agnostic
Sits on top of whichever map library you already use, or on a bare canvas with your own projection.
GeoPin started as a single file in a client project and stayed small on purpose. It does one job, it does it in 16kb gzipped, and it has no runtime dependencies.
Getting started
Install it, import it, call it:
npm i geopin-js
Markers are drawn to canvas rather than created as DOM nodes, which is the difference between smooth and unusable at scale.
What it does not do
It does not manage your state, style your components or ship a plugin system. Those are your decisions, and keeping them out is what keeps the bundle honest.
- Distance clustering
- Precise hit testing
- MIT licensed, commercially friendly
Features
Distance clustering
Clusters recompute on zoom with a grid index rather than a full pass.
Precise hit testing
Pointer events resolve to the marker under the cursor, including inside a cluster.
Accessible output
Every visual is paired with a text alternative that reflects the same data.
Export built in
One call produces PNG, SVG or the underlying values as CSV.
Six themes
Token-driven, so bringing your own palette is a single object.
ESM and types
Ships module and CommonJS builds with hand-written type definitions and source maps.
Get GeoPin v1.4
5 files • .min.js 16kb • .zip 94kb • sha384 verified
Changelog
- Grid-indexed clustering
- Hit testing inside clusters
- Retina rendering fixed
- Node 18 is now the minimum supported version
- CommonJS build restored for older bundlers
- Reworked the public API for consistency
- Deprecated helpers removed
// related
Related products
ChartForge
Canvas charts in twelve lines. Responsive, accessible and dark-mode ready, with no D3 learning curve.
View →MotionEase
Physics-based micro-animations with a single call. Spring curves that feel right without a tuning session.
View →FormFlow
Validation and multi-step logic that works the same in React, Vue and vanilla. Your markup stays yours.
View →Ship the dashboard today.
MIT licensed. Commercial friendly. Five-minute setup.