GoMap! — Unlimited MAP with Markers | Bubble Map Plugin — No Google Maps, No Mapbox, No API Keys
Looking for a Bubble map plugin that doesn’t charge per request? Tired of configuring Google Maps API keys, hitting Mapbox rate limits, or paying for expensive geocoding?
We built GoMap! — a full-featured interactive map plugin for Bubble that runs entirely on its own infrastructure. No Google Maps. No Mapbox. No third-party API keys. Zero per-request charges.
One flat subscription — unlimited maps, unlimited markers, unlimited geocoding requests.
Install Plugin | $35/month
Open Demo in Bubble Editor — explore the DB structure, marker formatting, and workflows yourself
What You Get — Bubble Map Plugin Features
Beautiful Map Styles — No External Tile Provider
Switch between Standard, Dark, Light, and Bright map themes with a single dropdown. Self-hosted vector tiles — blazing fast, no third-party tile provider.
Bubble Map Markers — Rich Data, Full Customization
Each marker can carry: title, description, address, phone, website, logo, image gallery, video gallery, rating + review count, price, category, color, badge (TOP/NEW/HOT), tags, and a full weekly work schedule with automatic open/closed status calculation.
Pass your markers as a simple formatted text string from any Bubble data source — Do a Search, API call, or backend workflow. No complex JSON, no repeating groups hacks.
Built-in Geocoding & Address Search
Type an address — get instant results with a pin on the map. No separate geocoding plugin needed. Built-in geocode and reverse geocode — both client-side and server-side. Search is powered by our own geocoding engine.
Map Navigation — Driving, Cycling, Walking
Users can get driving, cycling, or walking directions to any marker — right from the marker card. One tap opens route with directions. Perfect for store locator, directory apps, and delivery platforms.
Map Marker Filtering & Clustering
-
Category filters — show/hide markers by category with a built-in filter panel
-
Radius filter — filter markers within a specific distance from the user or map center
-
Clustering — configurable cluster radius and max zoom, handles thousands of markers
Map Centering & User Geolocation
-
Auto-fit all markers — camera automatically adjusts to show every marker
-
Center on user GPS with fallback to IP geolocation
-
Center on a specific marker by ID
-
Radius-based initial fit — show only markers within X km/miles on load
-
Programmatic flyTo via the
center_onaction with lat/lng/zoom
Custom Action Button — Trigger Bubble Workflows
Add a custom button inside the marker card with your own label. Trigger a Bubble workflow when it’s clicked — perfect for “Book Now”, “Add to Favorites”, “View Details”, or anything else. Full Bubble workflow integration with events and exposed states.
Multilingual Map UI — 19 Languages Auto-Detected
UI automatically adapts to the user’s browser language: English, Ukrainian, German, French, Spanish, Italian, Portuguese, Dutch, Polish, Czech, Turkish, Japanese, Chinese, Korean, Arabic, Hindi, Swedish, Norwegian, Danish.
25+ Exposed States for Bubble Workflows
Get real-time data from the map into your Bubble workflows:
-
Selected marker ID, full JSON data, unique ID
-
Map state: center lat/lng, zoom, bounds (NE + SW)
-
Visible markers count
-
User geo: detected lat/lng + reverse-geocoded address
-
Search results: picked address + coordinates
-
Country/region/city from map click
13 Bubble Events to Trigger Workflows
marker_clicked · map_clicked · card_closed · navigate_clicked · custom_marker_button_clicked · map_moved · user_location_detected · map_ready · address_picked · geocode_complete · reverse_geocode_complete · country_picked · and more.
Bubble Workflow Actions Geocode and Reverse Geocode are avaliable with no limits! No need to use external paid api!
-
Geocode — address → lat/lng (returned values, usable in next Bubble workflow steps)
-
Reverse Geocode — lat/lng → address, city, region, country
-
Generate Mock Markers — instantly generate test markers around any location for prototyping
Business Hours & Automatic Open/Closed Status
Set work_days, work_hours, and time_zone on a marker — the plugin computes the status live:
-
Open · closes at 22:00 -
Closing soon · 21:45 -
Closed · opens at 09:00 -
Day off
No backend logic needed. It just works.
Marker Data Format — How to Pass Markers in Bubble
You pass markers as a single text string. Each marker is wrapped in { }, fields separated by ;, key-value pairs by :. Connect multiple markers with ,.
In Bubble: Do a Search for Markers :formatted as text → {param:value;param:[value1,value2,value3];param:value} → Delimiter ,
All parameter names are predefined — just map your DB fields to them.
Minimal marker:
{id:nyc-001;lat:40.748817;lng:-73.985428;title:Empire State Building}
With image gallery + videos:
{id:nyc-004;lat:40.742456;lng:-74.005974;title:Chelsea Market;cat:restaurant;color:#DC2626;logo:https://images.unsplash.com/photo-1414235077428-338989a2e8c0?w=80;imgs:[https://images.unsplash.com/photo-1414235077428-338989a2e8c0?w=600,https://images.unsplash.com/photo-1517248135467-4c7edcad34c4?w=600,https://images.unsplash.com/photo-1424847651672-bf20a4b0982b?w=600];videos:[https://example.com/chelsea-market.mp4];desc:Famous Italian-inspired marketplace with artisan food vendors and cooking classes}
With full weekly schedule (simple hours):
{id:nyc-003;lat:40.752726;lng:-73.977229;title:Grand Central Terminal;cat:landmark;color:#0284C7;work_days:[1,2,3,4,5,6,7];work_hours:05:15-02:00;time_zone:America/New_York}
Per-day schedule (different hours per day):
{id:nyc-002;lat:40.761433;lng:-73.977622;title:Museum of Modern Art (MoMA);cat:landmark;color:#7C3AED;work_days:[1,2,3,4,5,6,7];work_hours:[1=10:30-17:30,2=10:30-17:30,3=10:30-17:30,4=10:30-17:30,5=10:30-21:00,6=10:30-19:00,7=10:30-17:30];time_zone:America/New_York}
FULL marker — every field:
{id:nyc-001;lat:40.748817;lng:-73.985428;title:Empire State Building;cat:landmark;color:#8B5CF6;logo:https://images.unsplash.com/photo-1534430480872-3498386e7856?w=80;imgs:[https://images.unsplash.com/photo-1534430480872-3498386e7856?w=600,https://images.unsplash.com/photo-1555109307-f7d9da25c244?w=600,https://images.unsplash.com/photo-1518235925463-0ba0215e498f?w=600];videos:[https://example.com/esb-tour.mp4];desc:Iconic 102-story Art Deco skyscraper with observation decks offering stunning city views;addr:350 5th Ave, New York, NY 10118;phone:+12127363100;url:https://www.esbnyc.com;rating:4.7;rcount:28450;price:42;tags:[wifi,observation,historic,gift-shop];badge:TOP;work_days:[1,2,3,4,5,6,7];work_hours:[1=10:00-00:00,2=10:00-00:00,3=10:00-00:00,4=10:00-00:00,5=10:00-00:00,6=10:00-00:00,7=10:00-00:00];time_zone:America/New_York}
Multiple markers:
{id:nyc-001;lat:40.748817;lng:-73.985428;title:Empire State Building;cat:landmark;color:#8B5CF6;logo:https://images.unsplash.com/photo-1534430480872-3498386e7856?w=80;imgs:[https://images.unsplash.com/photo-1534430480872-3498386e7856?w=600,https://images.unsplash.com/photo-1555109307-f7d9da25c244?w=600];desc:Iconic 102-story Art Deco skyscraper with observation decks;addr:350 5th Ave, New York, NY 10118;phone:+12127363100;url:https://www.esbnyc.com;rating:4.7;rcount:28450;price:42;tags:[wifi,observation,historic,gift-shop];badge:TOP;work_days:[1,2,3,4,5,6,7];work_hours:[1=10:00-00:00,2=10:00-00:00,3=10:00-00:00,4=10:00-00:00,5=10:00-00:00,6=10:00-00:00,7=10:00-00:00];time_zone:America/New_York},{id:nyc-004;lat:40.742456;lng:-74.005974;title:Chelsea Market;cat:restaurant;color:#DC2626;logo:https://images.unsplash.com/photo-1414235077428-338989a2e8c0?w=80;imgs:[https://images.unsplash.com/photo-1414235077428-338989a2e8c0?w=600,https://images.unsplash.com/photo-1517248135467-4c7edcad34c4?w=600,https://images.unsplash.com/photo-1424847651672-bf20a4b0982b?w=600];videos:[https://example.com/chelsea-market.mp4];desc:Famous Italian-inspired marketplace with artisan food vendors;addr:75 9th Ave, New York, NY 10011;phone:+12129222424;url:https://www.chelseamarket.com;rating:4.5;rcount:14560;price:85;tags:[food,italian,market,dine-in,takeout];badge:HOT;work_days:[1,2,3,4,5,6,7];work_hours:[1=07:00-02:00,2=07:00-02:00,3=07:00-02:00,4=07:00-02:00,5=07:00-03:00,6=07:00-03:00,7=08:00-22:00];time_zone:America/New_York},{id:nyc-007;lat:40.785291;lng:-73.974523;title:Brooklyn Roasting Co.;cat:cafe;color:#92400E;logo:https://images.unsplash.com/photo-1509042239860-f550ce710b93?w=80;imgs:[https://images.unsplash.com/photo-1554118811-1e0d58224f24?w=600,https://images.unsplash.com/photo-1495474472287-4d71bcdd2085?w=600,https://images.unsplash.com/photo-1442512595331-e89e73853f31?w=600];desc:Cozy neighborhood cafe with specialty single-origin coffees;addr:201 W 83rd St, New York, NY 10024;phone:+12125551234;url:https://brooklynroasting.com;rating:4.9;rcount:876;price:12;tags:[wifi,terrace,pet-friendly,breakfast];work_days:[1,2,3,4,5,6,7];work_hours:[1=07:00-20:00,2=07:00-20:00,3=07:00-20:00,4=07:00-20:00,5=07:00-21:00,6=08:00-21:00,7=08:00-19:00];time_zone:America/New_York}
Bubble Dynamic Data — How to Connect Your Database to the Map
Use Do a Search for Markers :formatted as text in Bubble:
Content to show:
{id:This Location's unique id;marker_unique_id:This Location's unique id;lat:This Location's latitude;lng:This Location's longitude;title:This Location's name;cat:This Location's category;color:This Location's color;logo:This Location's logo;imgs:[This Location's images:each item's URL:joined with ,];videos:[This Location's videos:each item's URL:joined with ,];desc:This Location's description;addr:This Location's address;phone:This Location's phone;url:This Location's website;rating:This Location's rating;rcount:This Location's review_count;price:This Location's price;tags:[This Location's tags:each item:joined with ,];badge:This Location's badge;work_days:[This Location's work_days:each item:joined with ,];work_hours:This Location's work_hours;time_zone:This Location's time_zone}
Delimiter: ,
Adjust field names like This Location's ... to match your actual Data Type fields in Bubble.
Marker Data Formatting Rules
-
lat+lngrequired — markers without coordinates are silently ignored -
No quotes —
title:My Cafe, NOTtitle:"My Cafe" -
No
;in values — semicolon is the field delimiter; use commas instead -
:in values is OK — only the first:separates key from value, sowork_hours:08:00-22:00works perfectly -
Arrays —
[item1,item2,item3]with no spaces after commas -
Field order doesn’t matter
-
Unknown fields are silently ignored
-
idmust be unique — auto-generated asm_0,m_1… if missing -
URLs with query params work —
img:https://example.com/photo.jpg?w=600&h=400
Try GoMap! — Bubble Map Plugin Demo
Live Demo — see the Bubble map plugin in action with real markers
Open in Bubble Editor — inspect the DB structure for markers, see how the marker data string is formatted, explore workflows and exposed states. Everything is there — just click around in the editor.
Install GoMap! — $35/month, no API keys, no usage limits
Perfect for: store locators, directory apps, real estate listings, delivery platforms, travel apps, event maps, service marketplaces, restaurant finders — any Bubble app that needs an interactive map with markers.
Questions? Drop them below — happy to help! ![]()








