Why no API key is the whole pitch
When I tell people what Modern Maps is, the first thing I say is “no API key.” And every time I say it, half the listeners nod knowingly and the other half look confused. The nodders have set up a Google Maps API key before. The confused ones haven’t, and so the absence does not register as a feature.
This post is for the second group. It’s also for me, because writing it forces me to be precise about what I think the API key really is.
What an API key actually costs you
The literal cost of a Google Maps API key is zero. Up to a certain volume each month, you’re under the free tier. The map renders. The geocoder responds. You spend nothing.
The literal cost is not what I’m talking about.
The cost is everything that has to happen before the map renders. To get the key, you sign in to the Google Cloud Console. You create a project (or reuse one, if you happen to have one). You enable the Maps JavaScript API. You enable the Places API if you want search. You enable the Geocoding API if you want addresses. You create an API key and give it a name. You restrict the key to your domain, so it can’t be lifted from your page and run up your bill elsewhere. You set up a billing alert at $5, or $10, or $50, depending on how nervous you are. You paste the key into a plugin’s settings page. You save. You reload.
I’m describing about thirty minutes of work for a person who has done this before. For a person who hasn’t, it’s an afternoon. The Cloud Console is one of the largest software products ever built. It does not announce itself gently. You go in to enable an API for a WordPress map and you exit with a sense that you’ve signed up for something larger than you intended.
That is the cost. Not the dollar value. The cognitive cost of a thirty-minute detour through someone else’s enterprise software, on your way to putting a small map on a contact page.
Two paths to a working map
One asks for thirty minutes. The other asks for one.
- 01Sign in to the Google Cloud Console
- 02Create or pick a project
- 03Enable the Maps JavaScript API
- 04Enable the Places API
- 05Enable the Geocoding API
- 06Generate an API key
- 07Restrict the key to your domain
- 08Set up a billing alert
- 09Paste the key into the plugin settings
- 10Save and reload the page
- 01Install Modern Maps
- 02Add a map block
- 03Search a location
Whose problem the API key actually solves
Google did not invent the API key as a hostility toward you. It exists for sensible reasons. It lets Google meter usage, attribute requests to the right customer, throttle abuse, and bill at scale. From inside Google, it is a small, well-designed mechanism for keeping a massive product economically viable.
But from outside Google, where you are, what the API key actually does is hand you the bill. If your map gets popular, you pay. If a bot crawls your contact page a hundred thousand times, you pay. The plugin you installed has, with one settings field, transferred a category of risk from itself to you.
Most plugins phrase this as a feature. “Just bring your own API key” sounds permissive. It sounds like flexibility. It is also the exact mechanism by which the plugin author makes the billing problem someone else’s.
I want to be careful here. There is nothing wrong with that arrangement when it is the right one. If you need real-time traffic, Street View, or the Google places database, you need Google. You should bring an API key. You should pay Google for what Google’s data is genuinely worth. The arrangement is fine.
It just is not the only arrangement available.
The version that doesn’t ask
Modern Maps doesn’t have an API key field because Modern Maps doesn’t go to Google. I host the tiles myself, on Cloudflare. Search runs through a free third-party geocoder. None of that is something you have to wire up.
The point of building it this way is to take the mental overhead out of “putting a map on a site.” From install to first render, you should not have to open another product, read another doc page, or think about another bill.
The economics work because the stack is lean by design. I built it small enough that I can afford to give the basic version away: three style presets, unlimited markers, the full block-editor experience, no key. The hope is that some of you find enough value in the free version to upgrade to Pro for theme color sync, advanced color controls, and multi-site licensing. That is the whole business model.
The trade I did not want to make was the one where the first thing a customer does after installing a plugin is open a Google product they didn’t intend to open. People give up on map plugins at the Cloud Console step not because the work is hard, but because the work has nothing to do with putting a map on their site, and they know it.
What the absence is supposed to feel like
The pitch line “no API key” is a stand-in for a longer claim. The longer claim is: most people who want a map on their WordPress site are not running a logistics product or a real-estate platform. They are running a small business, a portfolio, a contact page, a travel blog. They want a marker on a city. They want the visitor to see where the thing is. They do not want a Cloud Console journey.
So I removed the journey. That is the entire pitch.
If you want to feel what “no API key” feels like, the fastest way is to install Modern Maps and drop a block. There is a one-minute walkthrough at Your first map: a 60-second walkthrough. The setup wizard you would normally expect does not fire. The map renders.
I notice the absence every time I install it, because I built it. I imagine, if you have ever set up an API key before, you’ll notice it too.