iPhone · iOS 17 or later

Your camera roll is already a fishing log.

SpotStash finds the fish photos on your iPhone, reads the GPS coordinates your camera quietly saved with each one — or printed on the plotter screen you photographed — and gives you back a map of every spot that produced — plus the GPX and CSV files to take it back out on the water.

One purchase, no subscription No account, no servers GPX + CSV export
SpotStash's map screen showing fishing spots pinned across a shallow coastal bay
4,612 photos read · 38 spots
N 25°08.472′ W 080°55.416′
0 bytes sent off this phone

The whole idea

Photos in. Waypoints out.

You already did the logging. Every time you photographed a fish, your iPhone wrote the coordinates into the file.

01 It reads the libraryPhotos carrying a GPS tag, plus photos of chartplotter screens, where it reads the coordinates printed on the display.
02 It recognises the fishApple's on-device vision model looks at each candidate. Deck shots, net shots, cooler shots and fillet shots all count.
03 It drops the pinCoordinates come straight from the photo's metadata or the numbers on the screen. Nothing is estimated and nothing is guessed.
Scroll — 4,612 photos scanned
Snook held on a boat deck at sunrise
N 25°08.472′
W 080°55.416′
Mahi-mahi in an offshore boat's fish box
N 24°53.766′
W 080°32.502′
Redfish on a kayak deck over a grass flat
N 27°36.648′
W 082°44.418′
Snapper on ice in a cooler
N 24°54.126′
W 080°37.728′
Rainbow trout held above a river
N 35°16.764′
W 082°44.166′
Striped bass held up at dusk on a pier
N 25°56.886′
W 080°07.224′

Four screens, that's the whole app

Small on purpose. Nothing to maintain.

No trip forms, no waypoint naming, no remembering to log anything before you leave the dock. The work was done the moment you took the picture.

01 Scan

Minutes, not hours

SpotStash checks each photo's location tag first and skips anything that has none, so a library of thousands is read in minutes rather than ground through one image at a time.

  • Runs on the Neural Engine, four photos at a time
  • Reads coordinates off plotter-screen photos with no GPS tag
  • Re-scans only look at photos they haven't seen
  • Works with the phone in your pocket
02 Review

You decide what counts

Every detection lands in a review queue with its photo, confidence and coordinates. Swipe to keep or reject. Aquarium photos, screenshots and pictures saved off the internet are flagged before they ever reach your map.

  • Sensitivity slider from "only sure things" to "every maybe"
  • Add notes: bait, tide, depth, water temperature
  • Coordinates shown the way your plotter shows them: N 25°08.472′
  • Your decisions survive every future re-scan
03 Export

Files your gear accepts

Valid GPX 1.1 waypoints, plus one optional track per fishing day so a run reads as a route instead of a scatter of dots. Or CSV, straight into a spreadsheet.

  • Garmin, Navionics, Fishing Points, Gaia GPS, onX, Google Earth
  • Coordinates, elevation, timestamp, species, confidence, accuracy, notes
  • AirDrop, Files, email, or any app on your phone
04 Private

No network code at all

There is no sign-in, no sync and no analytics, because there is no server on the other end to talk to. A file leaves your phone only when you tap Share and choose where.

  • Every App Privacy answer is "Data Not Collected"
  • No third-party SDKs bundled
  • Delete the app and the results go with it
SpotStash scanning a photo library, showing progress and spots found
SpotStash's review queue with a row swiped open to keep or reject a catch
SpotStash's export sheet previewing the GPX file it will write
SpotStash's settings screen explaining that everything happens on the iPhone

Exports

Written to the spec, not to a spec sheet.

SpotStash's GPX output validates against the official GPX 1.1 schema from Topografix, child elements in the exact order the schema fixes. That is the difference between a file that opens and a file your chartplotter silently rejects.

In the app, every spot reads in degrees and decimal minutes — N 25°08.472′ W 080°55.416′ — exactly like your plotter. The GPX file stores decimal degrees, as the standard requires, and your plotter converts it back the moment it imports.

Garmin chartplotters
Navionics Boating
Fishing Points
Gaia GPS & onX
Google Earth
Excel, Numbers, My Maps
SpotStash-catches.gpx
<wpt lat="25.141200" lon="-80.923600">
  <ele>0.0</ele>
  <time>2026-06-14T10:58:11Z</time>
  <name>Snook — Flamingo</name>
  <cmt>Outgoing tide, live pilchard</cmt>
  <sym>Fishing Area</sym>
</wpt>
<trk>                        <!-- one per fishing day -->
  <name>June 14, 2026 — 4 catches</name>
  <trkseg> … </trkseg>
</trk>
IMG_4471.jpeg · no GPS tag
// text read on the plotter screen
Lat   N 25°08.472'
Lon   W 080°55.416'
Name  LEDGE 14

// becomes a waypoint you confirm
<wpt lat="25.141200" lon="-80.923600">
  <name>LEDGE 14</name>
  <cmt>Read from screen photo</cmt>
</wpt>

New · screen reading

Snapped the plotter instead? That counts too.

Half the spots worth keeping are photos of a chartplotter screen, taken to “save later.” SpotStash reads the coordinates printed on the screen itself, even when the photo carries no GPS data at all, and turns them into waypoints.

Garmin, Simrad, Lowrance, Raymarine screens
Waypoint lists on a computer monitor
N 25°08.472′ or N25 08.472 or 25.1412
Waypoint names, depth and water temp kept as notes
Cursor and boat position told apart
Every reading confirmed by you before it’s saved

Text is read with Apple’s on-device text recognition — the same engine as Live Text. Nothing is uploaded.

Before you buy

Three things it can't do for you.

Every fishing app promises magic. This is the part that decides whether SpotStash is worth $6.99 to you, so it's on the sales page rather than buried in a support article.

No coordinates, no pin

A photo needs either a GPS tag or coordinates visible in the picture. A fish shot taken with camera location off, or a sonar screen with no position showing, has nothing to recover — and heavy glare can hide digits, so you confirm every screen reading.

It needs All Photos access

iOS "Selected Photos" mode hides most of your library from every app, SpotStash included. Full access is the only way a whole-library scan is possible — and the app has nowhere to send what it reads.

It names types, not every species

Apple's classifier knows fish, trout, snapper and tuna. It will not tell a tarpon from a permit. You can rename any spot yourself, and species-level recognition is what the next version is for.

Privacy

Fishing spots are worth money.
Treat them that way.

Most apps that map your catches want you to sign in first. That account exists so your coordinates can sit on someone else's server. SpotStash doesn't have an account, because it doesn't have a server.

Reading the photos and recognising the fish both happen on your iPhone, on the machine-learning hardware already in the chip. The only time anything moves is when you tap Share and pick a destination yourself.

Account requiredNone
Network requests madeZero
Analytics & crash SDKsNone
Advertising & trackingNone
Photos uploadedNever
App Privacy labelData Not Collected
Where results are storedOn device only

Read the full privacy policy — it is shorter than this page.

Price

Buy it once. That's the whole model.

SpotStash for iPhone

$6.99one time

No subscription, no in-app purchases, no ads, no upsell screen.

  • Unlimited scans of your whole library
  • Unlimited GPX and CSV exports
  • Unlimited scans of your whole library
  • Coordinates read from plotter-screen photos
  • Notes, day tracks and review history
  • Free updates, including species recognition when it ships
Get SpotStash on the App Store

Requires iPhone with iOS 17 or later. Works offline. Needs photos with a GPS tag or coordinates visible on screen.

Questions

The ones people actually ask.

How does it know which photos have fish in them?
Apple's Vision framework ships an image classifier with roughly 1,300 labels, and it runs entirely on the phone. SpotStash reads a small thumbnail of each geotagged photo and weighs several groups of labels: fish species, caught-seafood terms like cooler and fillet, fishing-scene terms like boat, dock and pier that let a weak fish match through, and veto terms like aquarium, fishtank and screenshot that rule a photo out. You set how strict that is with a slider.
Will it dig through photos that have nothing to do with fishing?
It opens photos that carry a GPS tag, plus photos that look like a chartplotter or computer screen, and reads them on the phone. Nothing it sees is stored, described or sent anywhere — the only output is a list of coordinates you then review by hand.
Will the coordinates look like the ones on my plotter?
Yes. The app shows every spot in degrees and decimal minutes, the way Garmin, Lowrance, Simrad and Raymarine display them: N 25°08.472′ W 080°55.416′. You can switch to degrees-minutes-seconds or decimal degrees in Settings. GPX exports always store decimal degrees because the GPX standard requires it, and your plotter shows them in its own format after import. CSV exports include both.
Can it read the coordinates in photos of my plotter screen?
Yes. Apple's on-device text recognition reads the position shown on the screen, in degrees and decimal minutes, degrees-minutes-seconds or decimal degrees, with or without degree symbols. It works even when the photo has no GPS data, such as a picture texted to you. When a screen shows two positions, like the cursor and the boat, both are labelled so you choose. Waypoint names, depth and water temperature on screen are saved as notes, and you confirm each reading against the photo before it's kept.
My photos live in iCloud. Does that work?
Yes. Coordinates and dates live in the metadata that stays on your phone even when the full-resolution image doesn't, so those spots map immediately. For photos whose pixels were offloaded, there's a setting to pull originals down during a scan — off by default, since it uses data.
Can I get my spots out if I stop using the app?
That's the point of it. Export GPX or CSV any time, as many times as you like, and the files are yours with no lock-in. Nothing is stored in a format only SpotStash can read.
Does it work for freshwater, kayak and pier fishing?
Yes — any photo with coordinates works the same way, whether it was taken on a center console offshore, from a kayak on a grass flat, or standing on a pier at dusk. Trout in a river map exactly like a mahi in a fish box.
Will there be an Android version?
Not right now. The whole app is built on Apple's photo and vision frameworks, which is what makes an on-device, no-server design possible in the first place. An Android build would be a rewrite rather than a port.
Something isn't working. Who answers?
A person does — see the support page. Send the iPhone model, the iOS version and what you expected to happen, and you'll get a real reply.
SpotStash

Pull up the map before your next trip and see what you'd forgotten.