The secret to 10-minute delivery isn't driver speed. The average delivery distance is shorter than your morning walk. Dark stores are everywhere, hiding in plain sight.
I mapped quick-commerce infra in Indian cities. Every dark store, real routing data, actual coverage zones across major urban hubs, across Blinkit, Zepto, and Instamart.
<div class="project-links">
<a href="https://darkstoremap.in/" class="notes-button" target="blank">Explore the Live Map →</a>
</div>
The Problem We're Solving
Quick-commerce companies like Blinkit, Zepto, and Instamart promise 10-minute deliveries. But how much of a city can they actually reach in that time? This map answers that question by showing the true delivery footprint of every dark store.
Step 1: Finding All the Dark Stores
We needed the locations of every dark store across major Indian cities. A community member on Reddit (u/sigmaAs) had already mapped these stores using Google Maps. We exported that data as a geographic file (KML format) containing the exact coordinates of each store, organized by brand.
Result: A dataset of all known Blinkit, Zepto, and Instamart dark store locations across Bangalore, Mumbai, Delhi, Hyderabad, and Pune.
Step 2: Generating Coverage Zones (Isochrones)
Instead of drawing simple circles around each store (which would be inaccurate), we used isochrones. These are shapes that represent all the areas reachable from a point within a specific time, accounting for actual roads, one-ways, and traffic patterns.
We used two different calculation methods:
- For Walking (Customer Accessibility): Based on average human walking speed of 5 km/hr. Shows what areas a customer can walk to the store from in 10 minutes. - For Delivery (Rider Coverage): Based on area-specific average speeds for delivery riders. Different neighborhoods have different speeds based on road conditions and traffic density.
For example: Koramangala averages 15 km/hr, Whitefield averages 22 km/hr, while HSR Layout averages 17 km/hr. These speeds were calibrated for each locality across all five cities using Geoapify's Isolines API.
Step 3: Pre-Computing Everything
Real-time API calls for hundreds of stores would be slow and expensive. So we pre-computed all the isochrone data: Every city × Every store × Both modes (walk + delivery).
This resulted in high-fidelity polygon data stored as JSON files. When you open the app, it loads instantly because everything is already calculated.
Data sizes give you an idea of coverage density:
- Bangalore delivery mode: 54 MB of polygon data - Delhi delivery mode: 49 MB of polygon data - Pune and Hyderabad: 11-12 MB each
Step 4: Adding Orientation Layers
A coverage map is only useful if you can orient yourself. We added:
- Metro Lines: Extracted from Overpass Turbo (OpenStreetMap). Queried for all metro/rail lines with their official colors, exported as GeoJSON, and overlaid on the map. - Geographic Features: Lakes, parks, and major landmarks are visible on the base map with city labels and neighborhood names for quick reference.
Step 5: The Visualization
Everything comes together on an interactive Leaflet map:
- Heatmap Mode: Overlapping coverage areas blend together, showing coverage density. - Polygon Mode: Individual store coverage zones are visible with clear boundaries. - Brand Filtering: Toggle between Blinkit (yellow), Zepto (purple), and Instamart (orange). - Quick Navigation: Jump to specific neighborhoods using area pills.
Key Insights
- Coverage Gaps: Instantly see which areas are underserved. - Brand Comparison: Compare which platform has better coverage in your neighborhood. - Accessibility Analysis: Click anywhere to test if that location is within 10-minute reach.
<p class="blog-conclusion"> Explore the reality of the 10-minute promise at <a href="https://darkstoremap.in/" target="blank">darkstoremap.in</a>. </p>