<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Robby D</title>
    <description>The latest articles on DEV Community by Robby D (@robbydslilgreens).</description>
    <link>https://dev.to/robbydslilgreens</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4137849%2Ff1c33328-67b6-47c2-83c1-b1b16873d5ed.png</url>
      <title>DEV Community: Robby D</title>
      <link>https://dev.to/robbydslilgreens</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/robbydslilgreens"/>
    <language>en</language>
    <item>
      <title>I open-sourced the OpenStreetMap step of our own retail-prospecting tool</title>
      <dc:creator>Robby D</dc:creator>
      <pubDate>Tue, 22 Sep 2026 14:55:41 +0000</pubDate>
      <link>https://dev.to/robbydslilgreens/i-open-sourced-the-openstreetmap-step-of-our-own-retail-prospecting-tool-ab</link>
      <guid>https://dev.to/robbydslilgreens/i-open-sourced-the-openstreetmap-step-of-our-own-retail-prospecting-tool-ab</guid>
      <description>&lt;p&gt;We make a small-batch beverage (Robby Ds Lil Greens, in Virginia's Shenandoah Valley) and sell it through independent stores — cafes, juice bars, health-food shops, delis. Before you can pitch anyone, you need a list of who's actually nearby, and most of that list is small local shops that never show up in a "top retailers" search.&lt;/p&gt;

&lt;p&gt;We'd already built a script for our own prospecting that pulls candidates from OpenStreetMap (Nominatim to geocode a place, one Overpass query to find nearby independent-looking shops). This week I stripped it down to a standalone, dependency-free version and published it: &lt;strong&gt;&lt;a href="https://github.com/robbydslilgreens-bit/indie-door-finder" rel="noopener noreferrer"&gt;indie-door-finder&lt;/a&gt;&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python door_finder.py &lt;span class="nt"&gt;--city&lt;/span&gt; &lt;span class="s2"&gt;"Asheville, NC"&lt;/span&gt; &lt;span class="nt"&gt;--radius-mi&lt;/span&gt; 10 &lt;span class="nt"&gt;--out&lt;/span&gt; doors.csv
python door_finder.py &lt;span class="nt"&gt;--lat&lt;/span&gt; 35.5951 &lt;span class="nt"&gt;--lon&lt;/span&gt; &lt;span class="nt"&gt;-82&lt;/span&gt;.5515 &lt;span class="nt"&gt;--radius-mi&lt;/span&gt; 15 &lt;span class="nt"&gt;--out&lt;/span&gt; doors.csv
python door_finder.py &lt;span class="nt"&gt;--city&lt;/span&gt; &lt;span class="s2"&gt;"Front Royal, VA"&lt;/span&gt; &lt;span class="nt"&gt;--radius-mi&lt;/span&gt; 25 &lt;span class="nt"&gt;--broad&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No API keys, no accounts, no third-party packages — just the Python standard library plus two free public OSM services. Output is a CSV: name, category, address, phone, website, email (when OSM has one), distance, and a link back to the OSM entry. It filters out anything tagged with a brand/operator and a list of common chain names, so what's left is mostly independent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it's not:&lt;/strong&gt; a verified contact list. A sample run for Asheville, NC (8-mile radius) found 45 independent candidates — only 14 had a website and 2 listed an email. OpenStreetMap coverage is uneven and volunteer-entered, especially for small rural shops. Use the output as a starting list, not a finished one: look at each shop's site or call before you pitch, and verify any email before you send to it. It also finds shops, not buyers — someone still has to walk in or call.&lt;/p&gt;

&lt;p&gt;I built and use this for our own beverage brand's outreach; publishing it standalone in case it saves another maker an afternoon of manually building the same list by hand. MIT licensed, works fine without anything else we sell. If you want the rest of the method (how to find the actual buyer, what to say, following up after a sample), we wrote that up too — &lt;a href="https://robbydslilgreens.com/answers/tools-for-getting-into-indie-retail-stores?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=door-finder-devto" rel="noopener noreferrer"&gt;free tracker + guides&lt;/a&gt; or a &lt;a href="https://shop.robbydslilgreens.com/products/the-indie-retail-playbook-get-your-food-or-drink-into-independent-stores?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=door-finder-devto" rel="noopener noreferrer"&gt;$19 written playbook&lt;/a&gt; if you'd rather have it all in one place.&lt;/p&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/robbydslilgreens-bit/indie-door-finder" rel="noopener noreferrer"&gt;https://github.com/robbydslilgreens-bit/indie-door-finder&lt;/a&gt; — issues/PRs welcome, especially chain names I missed.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: I run this brand's marketing through an AI agent that researches, writes, and (within set guardrails) publishes on my behalf. This post was drafted by that process and reviewed against our own facts before publishing — flagging it here since it's directly relevant to a "here's what I built" post.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>python</category>
      <category>showdev</category>
      <category>smallbusiness</category>
    </item>
  </channel>
</rss>
