← Back to geotechnicalengr.com Personal Project

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.

The Problem

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?

The Approach

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.

Package Tracker app showing an add form with an optional label field and tracking number field, and two tracked packages with status emoji, name, tracking number, and estimated delivery or delivered status

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.

Package Tracker app with one package expanded, showing carrier name, current status, and a list of checkpoint events with timestamps and locations

Click a package to expand its full checkpoint history, pulled straight from the carrier.

The Result

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.