The problem: every carrier speaks its own language
Tracking a parcel should be trivial, and it isn't. Every carrier publishes its data differently: some offer an API with decent documentation, others only a web form, others return statuses in their own language with their own naming. A customer who buys from several shops ends up with five tabs open and nowhere to see it all together.
The challenge behind LocParcel was never building a pretty search box — it was achieving real coverage across hundreds of carriers without maintaining that coverage swallowing the whole project.
What I built
TrackingMore integration
Connected to TrackingMore's aggregator API, which covers hundreds of carriers through a single integration point.
Caching layer
Already-resolved lookups are served from cache to avoid repeat calls to the external API — the product's main variable cost.
Paid subscriptions
A freemium model with a trial offer and a monthly plan, with the full subscription lifecycle handled in-platform.
Flutter mobile app
A companion tracking app published on Google Play, built with Flutter.
Technical decisions
The backend runs on Laravel. For a product with subscriptions, user accounts, job queues and constant external integrations, a mature ecosystem for authentication, payments and background processing saves months compared to assembling it all from scratch.
The most important decision on the project was a build-or-integrate call, and it went to integrate: LocParcel consumes TrackingMore's aggregator API rather than maintaining hundreds of in-house integrations. Writing and sustaining one integration per carrier is full-time work for an entire team — every provider changes its API whenever it suits them — and none of that effort would have produced anything the end user could notice.
The trade-off is real and worth stating: you depend on an external provider and you pay per lookup. Which is precisely why caching isn't a micro-optimisation but a direct lever on the product's margin: every repeated search served from cache is a call that never gets billed.
The platform also includes country detection to tailor the experience, and granular GDPR-compliant cookie consent with independent categories for analytics, marketing and functionality.
Do you need to integrate external services?
If your product depends on third-party data — carriers, payment gateways, ERPs or any external API — the decision that moves the most money isn't technical: it's knowing what to build and what to buy. I help you make that call with the numbers in front of you, then build the integration, caching and cost controls that keep it sustainable.