HuntLine IQ
Hunting movement insight that never exposes your exact location.


- Project
- HuntLine IQ
- Our role
- Architecture · Mobile development · Geospatial data · Backend
- Duration
- 4 months
01 / Behind the product
A real need. A considered solution.
Challenge
Hunters want to share trail-cam observations without giving away their own spots; a platform that shares raw coordinates gets abandoned in the first week. The client’s web app had solved that; now they needed native iOS and Android apps with exact behavioural parity, in three weeks, in time for the Tennessee fair window.
Approach
The scope sentence was clear: parity with the web app plus the two natively contracted features. The typed API layer, constants, date formatting and EXIF-preserving photo preparation were ported verbatim from the web repo; the only server changes were a push-token registry and a RevenueCat webhook. Sessions live in expo-secure-store, and a failed refresh never ends a session without confirming via getUser() first.
TanStack Query keys mirror the web cache exactly; the feed pages over the server’s frozen cursor and ordering is never re-implemented client-side. Push goes through the Expo Push Service with no Firebase SDK in the app; share-sheet upload uses share-intent. Design tokens were frozen from the web CSS and moved to NativeWind.
Result
Map, feed, observation and harvest logging, subscriptions and push in one Expo SDK 57 codebase, submitted to TestFlight and Play through EAS. The same data model and Supabase project as the web platform, with authorisation enforced by row-level security in the database.
02 / Inside the product
The experience, on screen.
Open a screen to explore the details.02 images
03 / Scope & details
The details make the experience.
- 01
Locations snapped to an H3 hexagon grid, no raw coordinates stored
- 02
Daylight activity with weather and moon-phase correlation
- 03
Trail-cam observation and harvest logging
- 04
Map, feed and subscriptions on mobile
Technology
INSIDE THE PRODUCT
The engineering behind the interface.
Systems we built and concrete problems we addressed in this project.
Session loss is protected from false positives
A lesson from the web repo was ported verbatim: a failed refresh never ends the session on its own; getUser() confirms first. Tokens live in expo-secure-store, refresh starts and stops with AppState, and single-session mode lands on the login screen with a "signed in elsewhere" message.
Zero new endpoints, identical types
The typed lib/api/edge.ts API layer, constants, error copy and date formatting were copied from the web with import paths adjusted; feed-seen moved from localStorage to AsyncStorage. Photo preparation on expo-image-manipulator follows the same rules: HEIC→JPEG, downscale by bytes or pixels, EXIF DateTimeOriginal preserved.
No Firebase SDK for push
APNs and FCM run on one pipeline through the Expo Push Service; a credentials-only Firebase project supplies the FCM key to EAS and the client never touches it. On the server only a push-token registry and a sender were added.
IN THE CLIENT’S WORDS
Reviews left on Upwork for this project.
Kyle — August 2026
“Ali didn’t simply add the states I requested. He built the underlying framework so future expansion is significantly easier, while accounting for state-specific counties, regions, season windows, time zones and advertising logic. He then thoroughly tested everything in production and finished ahead of schedule. He continues to exceed my expectations.”
Kyle — July 2026
“When I started this project, I had an idea for a very complex application but no existing codebase. Over the course of several months, Ali helped turn that vision into a real product: a custom architecture, image processing, GIS mapping, authentication, subscriptions, an admin panel, and many unique business rules. As someone without a software engineering background, I especially appreciated that he could translate complex technical decisions into language I could understand.”
Kyle — April 2026
“He took a complex, highly nuanced product vision and translated it into a structured, build-ready system: a 50+ page set of documents covering database schema design, system architecture, configuration layers, zone logic and signal processing workflows. Instead of hardcoding decisions, he designed key elements such as zone thresholds and delay matrices to be configurable, so I can evolve the platform without rebuilding core systems.”
Your idea could be next.
What could we build for you?
From a first release to a growing platform. Let’s plan the design, development and launch together.
From Türkiye to the US, UK, Australia and everywhere in between.