Happy National Bagel Day!
I was so excited when I saw this on the calendar. Back in 1999, I spent a weekend studying bagel diffusion as cultural and economic phenomenon for a field techniques class at the University of Minnesota – Duluth. I wandered rural Brown County, Minnesota, in search of bakeries and cafes selling bagels, interviewing the staff about whether bagels were also displacing the hegemonic English Muffin as preferred morning bread in even rural areas. (News flash: they were!)
Today, it turns out there are nearly 3000 bakeries and restaurants that have “Bagel” in their name or advertise that bagels are on the menu in the United States. (Note: I had to limit the dataset somehow, and the national day is in the US alone, so sorry to my friends around the world who won’t be able to use the map to swing by a bagel shop tomorrow.)
Einstein Bagels remains the largest chain, with Bruegger’s falling quite far behind. I added an interactive… wait for it… Donut Chart that filters the restaurants by major chain or shows you independent sellers if you want to support true Bagel renegades.
This is not authoritative, because – gasp – there is no single, authoritative bagel shop dataset available for free yet. Instead, this includes all restaurants that include the word “Bagel” in their name or are classified as “bagel” in some way or have “bagel” listed as a menu item in Open Street Map.
Look for bagel stores in your town today, as they may have special deals in honor of this great day! And finally, if you’re really craving carbs, in each pop-up window there is a link to load the address in Google or Apple Maps so you can go celebrate Bagel Day without delay!

View Bagel Nation here.
Tools used
Original Web Mapper GPT prompt
I would like to make a map for National Bagel Day. I have a dataset of every bagel shop in the US. I also have SVG icons premade for Leaflet. I’ve attached both here.
Before we begin, though, I’m wondering if you can produce a YAML schema for me to fill in to help you design the map how I envision, including guardrails. Does this make sense to you? I think it’s a good idea. Please ask all design-related questions you can think of.
I will do my best to answer them.
Before we begin, I can tell you a little about what I would like so you can fill in some of the schema straightaway.
—
# Basic design requirements
This should be MOBILE use first. Desktop experience can be different, but imperative it looks good and behaves as expected on mobile, including:
– info windows pop up from bottom of screen and disappear when the user clicks outside of them.
– hamburger menu in the upper-right of the screen with any interactive filters appearing on a splash screen. User can close splash screen by clicking anywhere outside of it or on a subtle but large enough to click with a thumb “x” symbol.
– filters: search for bagel shops by name and zoom to maximum extent
– search for bagel shops by city and state: (auto fill and list options as user types, and zoom to maximum filtered dataset extent once selected)
– interactive chart: a donut chart in the panel, that represents the proportion of the top 4 chains, and then an “Smaller Chain” category and an “Independent” category for one-off stores not belonging to a brand or chain. When the user clicks the appropriate color, the map filters to show only that brand’s or category’s stores (e.g., only Einstein Bagels, or Bruegger’s Bagels, or Smaller Chain stores, etc.). The donut chart also keeps the selected section of the donut chart at the same transparency, but the rest of the donut chart turns 60% transparent until… the user clicks the same section again, when it all returns to 100% transparency and the filter is removed from the map OR when the user hits the RESET button at the botoom of the filter pane
– reset filters button (zoom to maximum extent and show all data, reset all filters and visualization (donut vis above) to blank/none (whatever is appropriate))
– all bagel icons centered on point coordinates.
– If Brand LIKE “Einstein Bagel%” in name, represented using “egg.svg”
– If Brand LIKE “Brueger Bagel%” in name, represent with “everything.svg”
– If Brand is neither of the above (neither Bruegers or Einstein) but has a count of more than 30 use “cinnamon.svg”
– If Brand has a count between 10-29 use “raisin.svg”
– All others, use “plain.svg”
At map opening zoom level, use SVG default size (16px x 16px) and incremently increase all symbol sizes as the user zooms in up to 25px x 25px. Max size should be visible rougly around zoom scale 16.
Do not let users pan outside of the the data extent more than 50 miles in any direction.
Is this making sense so far? Also, I would like a dark, minimalist basemap and a happy, cafe/bagel shop 1950s diner vibe for the title.
Map title (in upper left and decorative styling and font):
Title: The Hegemonic Bagel
Subtitle: (or: How English muffins got creamed!)
Sources:
– Bagel Data: Open Street Map, January 13, 2026.
– Prompt Cartographer: Ian Muehlenhaus
– Tools:
– <a href=”https://webmapgpt.com/”>Web Mapper</a>
– <a href=”https://overpass-turbo.eu/”>Overpass Turbo</a>
– Mapping Tools & APIs:
– List and provide links to basemap, leaflet, D3, etc., as needed and ethical.
Original ChatGPT Prompt for bagel SVG symbols
Can you please create an SVG bagel to be used as a point map symbol in Leaflet? I would like five different versions of these in different varieties: – Everything Bagel (lots of dark specks on it) – Egg Bagel (quite yellow and shiny) – Regular Bagel (neutral color, not yellow like Egg) – Cinnamon Bagel (reddish with little bigs on it, perhaps, be creative) – Raisin Bagel (Regular bagel with raininy looking things occassionally showing) The image should be two dimensional. The bagels should be near perfect round, but their holes can have some minor variation. Their outside circle can too, but only very slight, barely imperceptible. Please make these bagels look like bagels. Detailed SVG art when they get up to 20px width when zooming in to a neighborhood. However, not ugly when only shown at 8px (full-extent zoom). Any questions before you begin? Please create as separate outputs. Pasted in is an example image of many bagels (each SVG should be a single bagel). The image is meant to inspire you. Thanks!
Overpass Turbo query (composed by ChatGPT)
[out:json][timeout:900];
// USA area by ISO country code
area["ISO3166-1"="US"][admin_level=2]->.usa;
// Bagel-related shops and amenities
(
// POIs explicitly tagged as bagel cuisine
nwr["cuisine"~"bagel", i](area.usa);
// Shops whose name contains "Bagel"
nwr["name"~"bagel", i](area.usa);
// Bakeries with bagel cuisine in case of mixed tagging
nwr["shop"="bakery"]["cuisine"~"bagel", i](area.usa);
);
// Output
out center;