Package Tracker
Every carrier has its own tracking page, its own quirks. I built one box that takes any tracking number and just tells me what's going on — mostly to see if I could.
Every carrier has its own tracking page, its own quirks. I built one box that takes any tracking number and just tells me what's going on — mostly to see if I could.
Checking on a shipment means first remembering which carrier has it, then finding that carrier's own tracking page and re-entering the number. It's minor friction, not a real pain point, but it was a good small problem to explore: could one box, one tracking number, and no carrier-juggling replace all of that?
A static HTML/CSS/JS front end backed by a single PHP script and a JSON file — same pattern as the rest of these apps — plus one integration with AfterShip's tracking API instead of building a separate integration per carrier. AfterShip auto-detects the carrier from the tracking number and returns a unified status (Pending, In Transit, Out for Delivery, Delivered, etc.) across the many carriers it supports, so the app never has to know or ask which one it's dealing with. Each package shows as a single row — a status emoji, an optional label so an unlabeled 22-digit number becomes "birthday gift for Mom," and an estimated delivery date — click to expand the full checkpoint history. A daily auto-refresh plus a manual refresh button spends calls against AfterShip's free tier deliberately instead of burning it on every page load.
Add a package with an optional label so you know what it is at a glance — status and estimated delivery show right in the list.
Click a package to expand its full checkpoint history, pulled straight from the carrier.
One place to check on anything in transit, regardless of carrier — and a working answer to whether a single-box, carrier-agnostic tracker was worth building. Turns out it was: I'm using it for real packages now, not just test tracking numbers.