This application requires JavaScript.
Features

Six capabilities.
One API key.

Describe a style in plain language and the AI builds it. Serve vector tiles from 300+ Cloudflare edge locations. Fine-tune every layer visually, then ship with a single embed snippet.

See pricing

Capabilities

Everything you need for beautiful basemaps.

Self-host nothing, configure nothing. Each capability below works from the same API key you get at signup — no separate products, no per-feature pricing.

01

Natural language styling

Describe your perfect map style in plain English, like "make the water navy blue with a vintage paper texture", and the AI rewrites the MapLibre style JSON for you. Free tier uses fast open models; paid tiers get Claude for complex multi-layer edits.

POST /api/v1/ai/chat · style-aware prompts

02

Global vector tiles

MVT vector tiles served as PMTiles archives from Cloudflare R2, cached at 300+ edge locations. Sub-100ms cache-HIT latency from Mumbai, São Paulo, or Lagos, with a 99.9% uptime SLA on the Pro tier.

GET /v1/{source}/{z}/{x}/{y}.pbf · ~70ms cache HIT

03

Visual style editor

Fine-tune every layer without touching JSON: colors, fonts, visibility, zoom ranges. Changes preview live on a real map, and the editor round-trips cleanly with hand-edited styles.

MapLibre Style Spec · layer-level control

04

Beautiful presets

Start from Light, Dark, Vintage, Minimal, or High Contrast. Clone any preset, restyle it to match your brand, and keep both versions: presets are plain MapLibre style JSON underneath.

5 presets · fork-and-own model

05

Drop-in integration

Works with MapLibre GL JS, Leaflet, OpenLayers, and every framework wrapper: React, Vue, Flutter, React Native. Copy a style URL with your key embedded, or paste the two-line embed snippet.

style.json?key=mapx_… · any MapLibre host

06

Version control

Every style change is versioned automatically. Compare any two versions, preview before publishing, and restore a previous state instantly when a change goes wrong.

full history · one-click restore

By the numbers

A free tier you can actually ship on.

Most map platforms hand you a trial that expires or a quota that breaks the moment you get traffic. maps.guru's free tier has hard monthly quotas — when you hit them, tiles pause until next month or you upgrade. No surprise invoice, ever.

50,000

Monthly tile requests on the Free tier, no credit card required.

Source: maps.guru Pricing, Free tier — maps.guru

10,000

Free geocoding requests per month, on the same API key.

Source: maps.guru Pricing, Free tier — maps.guru

300+

Cloudflare edge locations serving tiles from the nearest PoP.

Source: Cloudflare Network Map — Cloudflare

~70ms

Typical tile latency on a CDN cache HIT at the nearest edge.

Source: maps.guru tile caching performance — maps.guru

Easy Integration

Embed anywhere in
minutes, not days

Drop-in integration for any platform. Copy the code and you're done.

Vue / Nuxt

Use the MapLibre GL JS library with Vue 3 composition API.

<script setup>
import { onMounted, ref } from 'vue'
import maplibregl from 'maplibre-gl'
import 'maplibre-gl/dist/maplibre-gl.css'

const mapContainer = ref(null)

onMounted(() => {
  new maplibregl.Map({
    container: mapContainer.value,
    style: 'https://maps.guru/api/v1/styles/your-style.json',
    center: [78.9629, 20.5937],
    zoom: 4
  })
})
</script>

<template>
  <div ref="mapContainer" class="w-full h-96" />
</template>
Replace your-style.json with your actual style URL from the dashboard.

Ready to build with
beautiful basemaps?

Join developers worldwide who trust maps.guru for their mapping needs. Start free, no credit card required.

Contact us
Free forever plan
5-minute setup
No credit card