iOS app + website
GunStatus
An iOS app that tracks South African firearm applications and licence renewals.
- My role
- Design, development and App Store release
- Platform
- iPhone and iPad
- Status
- On the App Store
- Built with
- Swift, SwiftUI, CloudKit, Push notifications, StoreKit




While you wait on a firearm application, the question is always the same: has anything changed? GunStatus checks the SAPS online enquiry for you, keeps your licences and expiry dates in one place, and sends a notification when something moves. I designed and built the native iOS app, and the website that introduces it.
The app
Built for one job, and built well
GunStatus is a native iOS app written in Swift and SwiftUI. It is made specifically for South African firearm owners dealing with SAPS applications and licence renewals, so every screen is shaped around that job instead of around a generic tracker.
- 01
Application status tracking
Enter your reference and serial number and GunStatus checks the official SAPS Firearms Online Enquiry system, then shows the status, working days so far and the last SAPS update.
- 02
Background monitoring and notifications
Switch monitoring on and the app watches a saved application for you, sending a push notification when its status changes. It is best-effort and depends on SAPS being available, and the app says so.
- 03
My Firearms and renewal reminders
Licence details live in one place with expiry countdowns, and reminders arrive 7 and 6 months before a licence expires.
- 04
Shooting records
Log shooting activity and generate a PDF report for applications and record-keeping.
- 05
iCloud sync
Your data syncs across your Apple devices through iCloud (CloudKit).
- 06
Privacy by design
Most data, including the shooting log, stays on the device. No names, addresses or contact details are stored on the servers, and there is no advertising.
The website
A fast, search-friendly home for the app
The GunStatus website is a separate project: a static Next.js site on Vercel that I rebuilt from an older WordPress and Elementor site. It explains the app, shows the screens, answers common questions and gives people a way to get support.
- 01
SEO carried over
The same page URLs, titles, descriptions and social previews as the WordPress site, plus redirects for old URLs, so existing search rankings were respected during the move.
- 02
Structured data and FAQ
Schema.org markup for the app, organisation and FAQ, and a support page with a spam-protected contact form that sends through a normal mailbox.
- 03
Store badges and QR codes
App Store links are campaign-tagged, and one setting controls what the Google Play badge shows while the Android version is in testing.


Built with
- Swift
- SwiftUI
- CloudKit
- Push notifications
- StoreKit
- Next.js
- TypeScript
- Tailwind CSS
- Vercel
Next case study
The Coastal
Start a project
Got
something
to build?
A site that needs to be better, an app that needs to exist, a platform that has outgrown its tools. Tell me what it is and I’ll tell you honestly how I’d approach it.
hi@rudilouw.com

