Beautiful maps, made simple.
Free & open source map components. Zero config, one command setup.
Built on MapLibre React Native, styled with Nativewind, works seamlessly with React Native Reusables.
- 🎨 Theme-aware — Automatically adapts to light/dark mode
- 🎯 Zero config — Works out of the box with sensible defaults
- 📦 shadcn/ui compatible — Uses the same patterns and styling conventions
- 🗺️ MapLibre GL powered — Full access to MapLibre's powerful mapping capabilities
- 🧩 Composable — Build complex map UIs with simple, declarative components
- 📍 Markers & Popups — Rich marker system with popups, tooltips, and labels
- 🛤️ Routes — Draw routes and paths on your maps
- 🎮 Controls — Zoom, compass, locate, and fullscreen controls
Alternatively use the mapbox version
This project provides two map component options:
Import from @/components/ui/map to use CARTO Basemaps.
- Commercial use: Requires a CARTO Enterprise license. Request a demo for pricing details.
- Non-commercial use: Free for CARTO grantees under their basemap terms.
Import from @/components/ui/map-maptiler to use Maptiler tiles.
Setup:
- Get a free access token at https://cloud.maptiler.com/account/keys/
- Create a
.envfile in the project root:EXPO_PUBLIC_MAPTILER_API_KEY=your_token_here
- Update your imports:
import { Map } from "@/components/ui/map-maptiler";
Pricing:
- Free 100k requests
- Pricing details: https://www.maptiler.com/cloud/pricing/
Both components have identical APIs and props. Choose based on your licensing and budget needs.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Inspired by mapcn
MIT License - see the LICENSE file for details.