Most shooting apps sync a timestamped record of what you own and how often you shoot it to someone else's server. Shots Fired does not. It is a full range tracker for iPhone that stores everything locally. No account, no cloud, no registry.
Hello Product Hunt! I am Shannon, and I built Shots Fired because I got uncomfortable with where my own data was going.
I had been using a spreadsheet to track range sessions, and I went looking for an app to replace it. Almost every option I found wanted an account, and quietly synced everything to a server. Think about what that record actually is: a timestamped list of exactly what firearms a named person owns, and how often they use them. For most hobbies that is harmless. For this one it is a dataset that nobody thinks about until there is a breach or a subpoena. We have already seen a fitness app accidentally publish the layout of military bases through its heat map. Same category of mistake, different hobby.
So Shots Fired keeps everything on your phone. There is no account to create, no server to breach, and no row in any database with your name on it. If you delete the app, the data is gone, which is why there is a full export built in from day one.
Underneath the privacy stance it is a complete tracker. A gun locker with per-firearm round counts and full history. Session logging by hand or by sound, with distance, reloads, rate of fire, and ammo cost. Month over month reports and a calendar of every range day. Cleaning intervals per firearm so you are servicing on actual round count instead of a vague feeling. Goals and streaks if that is what keeps you going.
Free covers one firearm with unlimited sessions. Pro is $2.99 a month or $19.99 a year for unlimited firearms, full reports, maintenance scheduling, and photos.
One thing I keep going back and forth on: local-only means no backup and no sync between devices, and every request I get is for one or the other. I do not want to solve it in a way that quietly reintroduces a server. If you have built something local-first, how did you handle the "my phone fell in a lake" problem without becoming a cloud company?