Community World Map Bot
Built Iteratively Over 4 Requests
A 6,000-member global community wanted a way for members to see each other on a map. The first version shipped in 72 hours. Then three follow-up requests refined the theme, added clustering, and introduced privacy controls — all included in the same subscription.
Request 1 — The initial concept
The client described what they wanted: a way for members to pin their location on a shared world map, with privacy as a core concern.
Community World Map Bot
We have a global community (~6k members across 40+ countries) and we'd love a way for members to see where everyone is on a map. Something that builds community and helps people find others nearby.
Here's what I'm picturing:
- A /setlocation command that gives the user a private link to a web page where they can drop a pin on a map to set their location. Needs to be ephemeral so only they see the link (privacy).
- A /showmap command that posts a static image preview of the world map into Discord showing all the pins, plus a link to a full interactive version they can pan/zoom around.
- A /removelocation command so users can delete their data anytime.
Privacy is important to us — users should control their own data and be able to remove themselves whenever they want.
For the interactive map, something like Leaflet or Google Maps embedded in a simple web page would be perfect. The static image just needs to be a decent looking snapshot we can post in Discord.
Please host and manage for us. We'll want the web map accessible at a URL we can share with our community.
What we delivered
Delivered commands
Interactive web map
Full-screen Leaflet map hosted at a shareable URL. Pan, zoom, and click pins to see member usernames. Mobile-responsive.
Static map previews
Server-side Canvas rendering generates a clean PNG snapshot of all pins on a world map, posted directly to Discord.
Privacy-first design
Ephemeral links, user-controlled data deletion, and no location sharing without explicit opt-in. Built around consent.
Request 2 — Dark theme & branded pins
The initial version worked great. But the default Leaflet tiles didn't match their server's aesthetic. The client queued a follow-up request:
Hey, the map is working great! One thing though — the default Leaflet tiles look a bit generic and don't match our server's branding at all. Our Discord has a dark theme with purple/blue accent colors.
Could you swap the map tiles to a dark-themed style? Something like CartoDB Dark Matter or Mapbox Dark. And if possible, make the user pins a bright purple (#7C3AFF) so they pop against the dark background.
The static image preview posted in Discord should match the same dark theme so it all looks cohesive. Thanks!
Delivered in ~24 hours. We swapped to CartoDB Dark Matter tiles, updated pin colors to #7C3AFF, and regenerated the static map renderer to match. Both the web map and Discord previews now look cohesive with the server's branding.
Request 3 — Pin clustering & web page polish
As more members pinned their locations, the map got crowded. The client queued another request:
Love the dark theme — looks way better now. Two more visual tweaks:
1. Pin Clustering: When zoomed out the pins overlap into a mess in places like Europe and the US east coast. Can you add marker clustering so nearby pins group into a circle with a count, and then expand when you zoom in?
2. Web Page Header: The interactive map page is just a bare map with no context. Could you add a small header bar at the top with our server name, member count on the map (e.g. "142 members pinned"), and our server icon? Keep it minimal — just enough so if someone shares the link it looks intentional and branded, not like a raw dev tool.
Delivered in ~36 hours. Integrated Leaflet.markercluster for dynamic pin grouping. Added a branded header bar with the server icon, name, and live "X members pinned" counter. The map now looks polished enough to share publicly.
Request 4 — Location specificity options
Member feedback revealed that some people wanted to participate but didn't feel comfortable pinning their exact neighborhood. The client asked for flexibility:
So we've had some feedback from members. A lot of people want to participate but don't want to pin an exact location — they feel weird dropping a pin on their neighborhood. Totally fair.
Can you update /setlocation so users can choose how specific they want to be? Something like:
- City level (e.g. "London, UK")
- Region/State level (e.g. "California, US")
- Country level (e.g. "Brazil")
If someone picks city, the pin goes on the city center. Region puts it roughly in the middle of the state/province. Country centers it on the country.
They should still be able to drop an exact pin on the map if they want to — just make it an optional choice alongside typing in a place name at varying specificity.
This would help a lot with adoption. Right now some members are skipping it entirely because exact pin is the only option.
Delivered in ~48 hours. The /setlocation web page now offers four options: exact pin drop, city, region/state, or country. A geocoding service converts place names to coordinates at the appropriate precision level. Adoption increased significantly after this update.
Key takeaway: this is how unlimited requests work
- 4 requests, zero extra cost. The initial build plus three follow-up refinements — all covered by the same $699/mo subscription. No "change order" invoices, no scope negotiations.
- Products evolve with real feedback. The client didn't need to predict every requirement upfront. They launched, gathered member feedback, and iterated. Each improvement made the bot more valuable.
- Complexity grew naturally. What started as 3 slash commands became a full-stack product: Discord bot + interactive web map + server-side image rendering + geocoding service + branded UI. All through natural iteration.
- User feedback drives development. The privacy options in Request 4 came directly from member feedback. With DiscordGenius, acting on that feedback is as easy as submitting another card.