Powered by OpenStreetMap

Branded maps for the web —
in minutes, not sprints.

Drag the handle: that grey default map becomes on-brand in one click. Flat pricing, no bill shock.

Default embed
Tinted · Ember
Try a style:
WebflowWordPressFramerShopifySquarespaceNext.js
The problem

Almost every site ships an ugly default map.

Teams paste the stock grey iframe because branding a map means a tile provider, an SDK, style JSON, API keys and attribution. Too much for a contact page — so the ugly default ships and stays.

The default-embed trap
Looks like every other map on the internet.
The custom-map cliff
Branding one map is a whole engineering ticket.
The pricing anxiety
Incumbents meter every load — bills spike without warning.
Eiffel Tower
Champ de Mars, 5 Av. Anatole France · Paris
3 min · 1 line of HTML
The same map, on brand.
The gallery is the product

Curated themes, tunable by one color.

Minimal Light
Clean · neutral
Midnight
Dark navy · dashboards
Blueprint
Cyan on ink
Pastel
Soft · lifestyle
Terrain & Outdoors
Green · outdoors
Vintage
Warm · print
Mono
Black & white · day
Noir
Black & white · night
Sand
Desert · warm
Slate
Cool grey-blue · dark
Mint
Cool · fresh
Candy
Playful · bright
Neon
Vivid · night
Ember
Coffee · gold
Forest
Deep green · night
Plum
Aubergine · night
High-Contrast
WCAG-conscious
one hex
Brand-Match
From one hex color
Two front doors, one core

No-code embed for the long tail. A clean SDK for developers.

Both run on the same theming engine and the same self-hosted tiles. Author a theme once; it works identically in an iframe and in code. Add an interactive pinned map in under ten lines.

Pins, clustering, routes & popups
Skeleton placeholders so maps never pop in
React components + a framework-agnostic Web Component
<!-- Paste anywhere you can paste HTML -->
<div data-tint="abc123" style="height:420px"></div>
<script src="https://embed.tintmap.dev/v1/embed.js" async></script>
AI-native

Point your AI agent at one URL.
It ships an on-brand map.

Every theme, palette and the brand-match engine are public and machine-readable. Your coding agent reads /llms.txt, matches your site's colors, creates the map and writes the embed — no key, no grey default.

Public /v1/themes — 17 themes + brand-match, one curl away
Reads a site’s brand and picks the matching theme automatically
Returns a ready embed snippet — works in any framework or no-code tool
public · no key
$ curl tintmap.dev/llms.txt
# Tint — branded maps, agent-readable
# Match a map to a site, then embed it.
GET /v1/themes list themes + palettes
POST /v1/maps create { theme | brand }
embed: <div data-tint="m_…"></div>
Why this works

The cost arbitrage is the whole business.

OpenStreetMap data is free. Planet-scale vector tiles self-host on object storage for a few dollars a month. Incumbents meter every single map load — we don't.

~$7
What rivals charge
Per 1,000 map loads, after a small free tier.
cents
Our marginal cost
Static tiles behind a CDN — egress only.
85%+
Gross margin
Lets us price flat where rivals bill per load.
Pricing

Flat, transparent, generous.

Soft caps replace surprise overage invoices. Annual billing is ~2 months free.

Free
$0forever
10k loads / mo
All light & dark themes
iframe + script embed
Tint attribution badge
Community support
Starter
$15per month
100k loads / mo
Brand-color theming
Custom markers & popups
Remove Tint badge
Basic JS SDK
Email support
Most popular
Pro
$49per month
500k loads / mo
Full SDK + React + Web Component
REST API + static images
Geocoding
Usage analytics
3 team seats
Business
$149per month
2M loads / mo
Agency white-label sub-accounts
Priority support + SSO
Higher rate limits
10 team seats

Your map should look like
your brand. Not Google's.