The Outlaw Coast

Smuggling Routes, Hidden Sites, and the 1978 Coastline of the Ten Thousand Islands

Author

Ryan Lafferty

Published

March 8, 2026

The Outlaw Coast

For nearly a century, the Ten Thousand Islands have served as Florida’s untamed backdoor: a labyrinth of mangrove tunnels and oyster bars where the only law was the tide. In the 1920s, this watery wilderness became a haven for rum-runners who used the shallow, shifting channels to evade heavy Federal cutters, turning the quiet fishing villages of Chokoloskee and Everglades City into covert ports of call for Caribbean liquor.

The skills forged in that era, navigating the pitch-black backcountry without a chart, found a new purpose in the 1970s. As commercial fishing was restricted and the local economy cratered, the sons and grandsons of those early pioneers became “saltwater cowboys,” swapping mullet for marijuana. Under cover of the mangrove canopy, they transformed these islands into one of the primary entry points for the “Square Grouper” era, hauling millions of pounds of contraband through a landscape that swallowed outsiders whole.

This analysis layers historical site data and archival smuggling routes onto the 1978 Florida coastline survey, a snapshot of the waterway network as it existed during the peak years of the trade. The satellite basemap reveals the same tidal maze that made enforcement nearly impossible.

21 historical sites loaded
5 historical routes loaded
5689 coastline features loaded

Points of Interest

Show code
display_cols = sites[["name", "site_type", "year_established", "significance_level", "description"]].copy()
display_cols.columns = ["Name", "Type", "Year", "Significance", "Description"]
display_cols.sort_values("Year").style.set_properties(
    subset=["Description"], **{"min-width": "320px", "white-space": "normal"}
).set_properties(**{"font-size": "0.92em"})
Historical sites of the Ten Thousand Islands region. Significance level reflects primary source documentation depth.
  Name Type Year Significance Description
18 Mound Key Island 400 Medium The Calusa were a highly complex, non-agrarian society that dominated the South Florida coast for over 1,500 years. Rather than relying on traditional agriculture, they utilized advanced estuarine aquaculture and engineered massive architectural features entirely from discarded shells
8 Indian Key Pass Pass 1500 High Historic Calusa Indian site and later smuggling route.
13 Shark River Waterway 1800 Medium Major waterway through the Everglades; historic Seminole route.
15 Cape Sable Cape 1838 High Southernmost point; historic lighthouse and remote settlement.
0 Everglades City Center Town Center 1873 High Epicenter of "Operation Everglades" (1983); the town where ~80% of the male population was arrested.
2 Chokoloskee Island Settlement 1874 High The primary island community connected to the mainland; home to Totch Brown.
11 Mormon Key Island 1880 Medium Historic farming attempt site; represents failed settlement efforts.
1 Watson's Place (Chatham Bend) Homestead 1890 High Site of the Ed Watson homestead; represents the area's deep history of lawlessness and isolation.
17 Oyster Bay Bay 1890 Low Historic oyster harvesting area; important food source.
12 Lostmans River Waterway 1890 High Extremely remote waterway; site of Ed Watson murders and ongoing lawlessness.
14 Flamingo Settlement 1893 Medium Remote outpost at the southern tip; historic fishing village.
16 Whitewater Bay Bay 1900 Low Large shallow bay; historic fishing grounds and smuggling route.
9 Pavilion Key Island 1900 Low Remote island used as a camp by fishermen and later as a drop point.
20 Smallwood's Dock Dock 1906 Medium Original dock where supplies arrived by boat; critical supply line for the island.
19 Ted Smallwood Store Trading Post 1906 High Historic trading post; central hub for locals, outlaws, and early trade.
7 Halfway Creek Creek 1910 Low Midpoint stop for traders between Everglades City and the outer islands.
5 Lopez River Waterway 1920 Medium Remote waterway used for rum-running and later marijuana smuggling operations.
4 Chevelier Bay Bay 1920 Medium Historic fishing grounds and smuggling route during Prohibition era.
10 Rabbit Key Island 1920 Low Small key used for temporary camps and clandestine meetings.
6 Turner River Waterway 1930 Low Historic canal and transportation route through the mangroves.
3 Fakahatchee Strand State Preserve Preserve 1974 Medium Historic logging area often used for clandestine airstrips due to its remote, linear features.

The Smuggler’s Highway

To the uninitiated, the map of the Ten Thousand Islands is a chaotic splatter of green and blue. To the smugglers, it was a precise network of arterial highways. The Barron River, the region’s dredged commercial heart, served as the brazen front door where shrimp boats laden with bales would dock under the guise of a night’s catch. Deeper in the backcountry lay the Chatham River, a historic channel echoing with the dark legacy of Edgar Watson, offering a direct deep-water vein to the hidden interiors of the Glades.

To the south, the Lopez River provided a winding back alley for smaller skiffs to slip unnoticed into the labyrinth. The Wilderness Waterway, now a celebrated paddling trail, served as the “Inside Route,” a 99-mile concealed highway allowing traffickers to move illicit cargo from the Cape Romano shoals all the way to Flamingo without ever exposing themselves to the open Gulf or the Coast Guard’s gaze.

Operation Everglades (1983): The decisive federal action that collapsed the network. Authorities physically blocked CR 29, the only road into Everglades City, while simultaneously closing the Barron River to boat traffic. With escape routes sealed, the operation netted 52 arrests in a single morning, effectively ending the organized trade in the Ten Thousand Islands.

Route Details

Show code
routes[["name", "route_type", "year_active", "length_km", "description"]]\
    .sort_values("year_active")\
    .style.set_properties(
        subset=["description"], **{"min-width": "280px", "white-space": "normal"}
    ).set_properties(**{"font-size": "0.92em"})
Documented historical routes by type, period, and approximate length.
  name route_type year_active length_km description
0 Chatham River Route Water Route 1890 17.600000 Water route from Chokoloskee to Watson's Place at Chatham Bend
2 Wilderness Waterway (North Section) Water Route 1900 105.470000 Historic route through the Ten Thousand Islands to Flamingo
4 Barron River Route Water Route 1900 6.220000 Main water route from Everglades City to Chokoloskee via Barron River
1 Lopez River Smuggling Route Smuggling Route 1920 7.570000 Historic rum-running and later marijuana smuggling route
3 Lopez River Route Smuggling Route 1978 nan Everglades City to Lopez River

Smuggling Routes and Historical Sites

All layers on one interactive map: the 1978 coastline, documented smuggling routes, and historical sites against satellite imagery of the Ten Thousand Islands.

Show code
m = create_base_map(center=[25.85, -81.35], zoom=10, tiles="satellite")

# Add a terrain/positron option alongside the default satellite
folium.TileLayer(
    tiles="https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}{r}.png",
    attr='&copy; <a href="https://carto.com/">CARTO</a>',
    name="Dark (CartoDB)",
    control=True,
).add_to(m)

# 1978 coastline layers
shoreline   = coastline[coastline["class"] == "SHORELINE"]
alongshore  = coastline[coastline["class"] == "ALONGSHORE FEATURE"]

m = add_geodataframe_layer(
    m, shoreline,
    name="Shoreline (1978)",
    tooltip_fields=["inform", "attribute"],
    style={"color": "#38bdf8", "weight": 1.5, "opacity": 0.8},
)

m = add_geodataframe_layer(
    m, alongshore,
    name="Alongshore Features (1978)",
    tooltip_fields=["inform", "attribute"],
    style={"color": "#94a3b8", "weight": 1.0, "opacity": 0.6},
)

# Routes layer
m = add_geodataframe_layer(
    m, routes,
    name="Historical Routes",
    tooltip_fields=["name", "route_type", "year_active"],
    style={"color": "#fbbf24", "weight": 4, "opacity": 0.9, "dashArray": "8 4"},
    highlight={"weight": 6, "opacity": 1},
)

# Site markers
for _, site in sites.iterrows():
    color = (
        "#f43f5e" if site["significance_level"] == "High"
        else "#f97316" if site["significance_level"] == "Medium"
        else "#0ea5e9"
    )
    folium.CircleMarker(
        location=[site["latitude"], site["longitude"]],
        radius=9 if site["significance_level"] == "High" else 6,
        color=color,
        fill=True,
        fill_opacity=0.85,
        tooltip=f"<b>{site['name']}</b> ({site['year_established']})",
        popup=folium.Popup(
            f"<div style='min-width:280px;font-family:Georgia,serif;'>"
            f"<b style='color:#0a1a16;'>{site['name']}</b><br>"
            f"<i>{site['site_type']}</i> | {site['year_established']}<br><br>"
            f"{site['description']}"
            f"</div>",
            max_width=450,
        ),
    ).add_to(m)

m = finalize_map(m)
m
Make this Notebook Trusted to load map: File -> Trust Notebook

The 1978 Florida coastline (NOAA survey), historical smuggling routes, and key sites overlaid on Esri satellite imagery. Toggle layers via the control panel.

Legend: Blue lines = 1978 NOAA shoreline. Gold dashed = historical smuggling routes. Circles colored by significance: red = High, orange = Medium, blue = Low.

The 1978 Coastline

Show code
import contextily as cx

coastline_display = coastline[coastline["class"] != "CARTOGRAPHIC LIMIT"]
coastline_3857    = coastline_display.to_crs(epsg=3857)

CLASS_COLORS = {
    "SHORELINE":           "#38bdf8",
    "ALONGSHORE FEATURE":  "#94a3b8",
}

fig_coast, ax = plt.subplots(1, 1, figsize=(12, 8))
fig_coast.patch.set_facecolor("#0a1a16")
ax.set_facecolor("#0a1a16")

for cls, color in CLASS_COLORS.items():
    subset = coastline_3857[coastline_3857["class"] == cls]
    if len(subset) > 0:
        subset.plot(ax=ax, color=color, linewidth=0.6, label=cls, alpha=0.9)

cx.add_basemap(ax, source=cx.providers.CartoDB.DarkMatter, zoom=10)

ax.set_title("1978 Florida Coastline — Ten Thousand Islands", fontsize=13, fontweight="bold", color="#e8f4f1", pad=10)
ax.set_axis_off()
legend = ax.legend(loc="lower left", fontsize=9, framealpha=0.85, facecolor="#0d2b23", edgecolor="#00b5a3", labelcolor="#c8d8d4")
plt.tight_layout()
plt.show()

1978 NOAA Florida coastline survey for the Ten Thousand Islands region, classified by feature type.

Sites Timeline

Show code
import plotly.express as px

fig_timeline = px.scatter(
    sites,
    x="year_established",
    y="name",
    color="significance_level",
    symbol="site_type",
    title="Historical Sites of the Ten Thousand Islands: Timeline",
    labels={"year_established": "Year Established", "name": "Site"},
    color_discrete_map={
        "High":   "#f43f5e",
        "Medium": "#f97316",
        "Low":    "#0ea5e9",
    },
)
fig_timeline.update_layout(
    height=520,
    plot_bgcolor="rgba(10,26,22,0.0)",
    paper_bgcolor="rgba(10,26,22,0.0)",
    font_color="#c8d8d4",
    title_font_color="#e8f4f1",
    legend_title_text="Significance",
    xaxis=dict(gridcolor="rgba(0,181,163,0.1)", color="#94a3b8"),
    yaxis=dict(gridcolor="rgba(0,181,163,0.08)", color="#c8d8d4"),
)
fig_timeline.show()

Historical sites plotted by year of establishment and significance level.

Coastline Feature Breakdown

Show code
class_counts = (
    coastline.groupby("class")
    .size()
    .reset_index(name="count")
    .sort_values("count", ascending=False)
)
inform_counts = (
    coastline.groupby("inform")
    .size()
    .reset_index(name="count")
    .sort_values("count", ascending=False)
)

print("Features by Class:")
print(class_counts.to_string(index=False))
print("\nFeatures by Inform:")
print(inform_counts.head(10).to_string(index=False))
Features by Class:
             class  count
         SHORELINE   4884
ALONGSHORE FEATURE    796
CARTOGRAPHIC LIMIT      9

Features by Inform:
              inform  count
      Apparent Shore   3704
 Gen. manmade object    783
 Pier, Ramp, or Dock    685
                SPOR    372
Jetty/Brkwater/Groin    108
       Approx. Shore     23
     User added line      9
   Approximate Shore      2

Primary Sources and Bibliography

The Barron River Route

Significance: The primary commercial artery. The 1983 “Operation Everglades” blockade physically shut down CR 29 and the river access to trap the smugglers.

  • Primary: United States District Court, Middle District of Florida. “Operation Everglades” Case Archives (1983 to 1984).
  • Secondary: Deep Water: The Story of the Beavers of Everglades City (local history covering the dredging era and subsequent bust).

The Chatham River Route

Significance: The deep-water access to the Watson Place. Smugglers used the high banks of the Chatham, rare in the mangroves, to offload onto elevated shell mounds.

  • Primary: Tebeau, Charlton W. Man in the Everglades: 2000 Years of Human History in the Everglades National Park. University of Miami Press.
  • Literary: Matthiessen, Peter. Killing Mister Watson. Documents the river as the primary transit route for the region’s outlaws.

The Lopez River Route

Significance: Named for the Lopez family (early settlers). It connects the inland bays to the Gulf, allowing for “inside” passage to avoid rough seas and patrols.

  • Primary: Simons, M.H. “Report on the Ten Thousand Islands.” Annual Report of the Smithsonian Institution.
  • Oral History: Brown, Totch. Totch: A Life in the Everglades. Describes specific use of these “backdoor” family channels for evading game wardens and later drug interdiction.

The Wilderness Waterway (North Section)

Significance: The historic “Inside Route.” While officially established as a park trail in the 1970s, its channels were the standard smuggler’s highway to move goods between Everglades City and Flamingo without entering the Gulf of Mexico.

  • Primary: Truesdell, William G. A Guide to the Wilderness Waterway of the Everglades National Park. University of Miami Press.
  • Oral History: “Calusa to Campbell” (NPS Historic Resource Study) details the usage of inland cuts by locals to avoid “outside” detection.

Technical Details

print(f"Python:     {sys.version.split()[0]}")
print(f"Platform:   {platform.system()} {platform.release()}")
print(f"GeoPandas:  {gpd.__version__}")
print(f"Pandas:     {pd.__version__}")
print(f"Folium:     {folium.__version__}")
print()
print(f"Historical sites:   {len(sites)}")
print(f"Historical routes:  {len(routes)}")
print(f"Coastline features: {len(coastline)}")
print(f"Coastline CRS:      {coastline.crs}")
Python:     3.11.9
Platform:   Windows 10
GeoPandas:  0.14.4
Pandas:     2.2.2
Folium:     0.20.0

Historical sites:   21
Historical routes:  5
Coastline features: 5689
Coastline CRS:      EPSG:4326
geoglypha1.org