You've done real work in real places. A portfolio map shows that — clients browsing by region, clicking through to see what you installed, coming in already half-convinced. The tools to build this range from "working in an afternoon, no code" to "fully designed and coded, looks exactly like your brand." Hosting requirements and subscription costs vary significantly between them, and if your website runs through Shopify that shapes the decision considerably.
If your website is on Shopify
This came through a friend — if it's wrong, skip this section. But if Moonlight Garden Supply runs through Shopify, this is the most important part of the decision.
What Shopify can and can't host: Shopify hosts your store pages, product listings, and custom pages you create in their editor — but it's not a general web host. You can't upload arbitrary HTML files and serve them at a URL. What you can do is paste an iframe embed code into a Shopify page, which is exactly how Datawrapper, Flourish, and Mapme all work. Custom-built maps (MapLibre, SVG) can't live on Shopify itself, but they can live at a free subdomain that links seamlessly from your Shopify site.
✓ Works inside Shopify
- Datawrapper — paste iframe into any Shopify page. Free.
- Flourish — same. Free.
- Mapme — same iframe embed. $30–55/mo subscription.
- Individual installation landing pages can all be standard Shopify pages regardless of which map tool you use.
→ Links from Shopify, lives elsewhere (free)
- Custom MapLibre map — hosted free on Cloudflare Pages at something like map.moonlightgardensupply.com. Invisible to visitors — just looks like part of your site.
- Custom SVG illustrated map — same. Your Shopify pages can link to it or embed it in an iframe.
- Cloudflare Pages hosting is free for this scale, no subscription.
$ Ongoing subscription costs
- Mapme: $30–55/month — the only tool here with a required subscription after setup.
- Datawrapper and Flourish are genuinely free (small attribution footer on embeds). No subscription, no trial expiry.
- Custom builds: $0/month ongoing. One-time effort to build; free hosting forever.
Bottom line for Shopify sites: Datawrapper or Flourish embed directly into a Shopify page at zero cost — lowest friction path. Mapme does the same but costs $30+/month. A custom-built map needs free separate hosting but gives you full design control and no ongoing fees. The installation landing pages themselves can always be Shopify pages no matter what you choose for the map.
Before choosing a tool
The aesthetic spectrum
The tools
Datawrapper
Locator map precision. Journalism-grade legibility.
Used by the New York Times and Reuters for data graphics. Their locator map tool places markers on a base map — each with a popup that includes text, a photo, and a link to an external page. Free tier gives unlimited maps and markers; the attribution is a small footer link.
You update locations by editing a CSV and re-importing. The embed is one line of iframe HTML that drops into any Shopify page.
What you'd learn
- Structure a CSV with lat/lon columns
- Datawrapper's map editor (visual, takes an hour)
- Embed an iframe in a Shopify page
Resources
Flourish
More visual range than Datawrapper. Still template-bound.
Same category as Datawrapper — journalism-grade, free, CSV-driven — with more visual templates and icon options. Marker popups support images and external links. You can get closer to "designed" than Datawrapper allows.
Try both. They're both free. Spend 30 minutes with each and pick the output you prefer.
What you'd learn
- Connect a Google Sheet as a live data source
- Flourish's template editor and icon options
- Same iframe embed as Datawrapper
Resources
Mapme
Built specifically for portfolio maps. The subscription is the trade-off.
Unlike Datawrapper and Flourish (general data viz tools), Mapme is built for "where we've done work" portfolio maps — NGOs, consultancies, project-based businesses. Spreadsheet-driven, rich marker cards with photos and filtering, team collaboration. Looks more like a product than a visualization.
No free tier. After the 14-day trial, it's $30/month minimum. Mapme hosts the map; you embed it in Shopify via iframe, same as the free tools. Verify current pricing before committing — subscription costs change.
What you'd learn
- Mapme's visual editor and CSV format
- Category taxonomy for filtering (system types, regions)
- Same iframe embed in Shopify
Resources
Strategy: Don't start the trial until you have real content for 5+ installations. Evaluate it with actual data, not placeholders.
Custom Build: MapLibre GL JS
Full design control. Geographic tile map. Free hosting.
MapLibre GL JS is the open-source fork of Mapbox GL — GPU-accelerated, vector tiles, smooth at all zoom levels. Free tile providers (Stadia Maps, Maptiler) have generous free tiers. You write JavaScript to initialize the map, load location data from a JSON file, and add styled markers. Everything — marker design, popups, surrounding page layout — is fully custom.
Location data lives in a clients.json file. Add a new installation by editing that file and pushing to GitHub. Cloudflare Pages re-deploys in under a minute.
What you'd need to learn
- HTML, CSS basics
- JavaScript: variables, functions, fetch()
- JSON format for location data
- MapLibre GL JS API (markers, popups, events)
- Git + Cloudflare Pages for deployment
Realistic effort
Starting from zero: 20–40 hours to be comfortable. With Claude Code building it and explaining what it wrote: one weekend to a working v1.
Resources
Custom Build: Illustrated SVG Map
A drawing that thinks it's a map. The highest design ceiling.
Instead of a geographic tile map, this starts with an SVG drawing of Utah — approximate, stylized, illustrated. You design the map as art. Markers are SVG shapes with custom icons. The whole thing can feel like a poster that happens to be interactive. The ceiling scales with your design ability; the platform doesn't constrain the palette, marker shapes, or typography.
Trade-off: location placement is approximate (you're placing dots on an illustration, not at GPS coordinates), and it doesn't zoom like a geographic map. For a portfolio map that's fine — you don't need GPS precision.
What you'd need to learn
- SVG path syntax for the Utah outline
- SVG shapes and coordinate math for marker placement
- JavaScript event listeners (click, hover)
- Inkscape or Illustrator for drawing the map
The design path
Draw the Utah outline in Illustrator → export as SVG → paste into HTML → style with CSS → add marker elements → wire up click interactions. The demo shows this working.
Resources
Before you build
What you need regardless of tool
The tool is only as good as what goes into it. This content is portable — it works in every option above.