An AI platform for international trade
EasyParcel brings shipping, customs classification, duties and compliance into one operating environment for merchants who sell across borders. As co-founder and CTO I lead its technology, architecture and engineering.
Visit live site ↗Why it exists
Every international shipment carries the same chain of decisions — classification, customs, duties, VAT, compliance, tracking, customer care — and most companies still run them in separate tools while the rules keep changing. EasyParcel checks duties, HS codes and origin before a parcel leaves, so the seller can ship duties-paid and the buyer sees the real landed cost at checkout.
What I did
I set the technical direction and designed the architecture of the whole system — the public site and its backend-for-frontend, the operating platform, identity, the integration of legacy modules and the quality gates — and I lead its engineering.
How it works
Four parts, one identity: the public site; a backend-for-frontend that guards its live tools; the platform merchants and operators work in; and the ParceLabs engines that answer the customs questions. One sign-on spans site and platform.
- Public siteReact · IT / EN · live tools
- Backend-for-frontendmetering · abuse limits · workbook
- ParceLabs AuthOAuth2 · one session, site + platform
- ParceLabs enginesEasyDogana · EasyShip …
- PlatformPHP · MySQL · Redis · queue worker
- Legacy modulesrendered inside the platform
Drop: a catalogue in, answers out
Visitors drop a spreadsheet, a PDF or a photo of a catalogue page and get HS codes, duty and VAT rates, origin and landed cost back, with a workbook to download. Behind the page, the backend-for-frontend meters every run against a spending ceiling, limits abuse per visitor and network, and caches by the catalogue's content rather than its file.
Honest numbers over pretty numbers
The result holds back rates when a classification's confidence is low, holds back totals when a destination or duty is missing, flags values read from scans and never converts currency silently. The workbook mirrors the result card exactly, so the two can't drift.
Migrating without a freeze
Older modules keep working inside the new platform: their pages are captured, stripped of their own shell and rendered in the platform's layout — without touching their code. Files resolve from a typed registry, never from request parameters, and every route carries its migration status, so the move is tracked screen by screen.
One sign-on, many hosts
Site and platform share one OAuth2 sign-on with scope-based permissions. Because cookies can't cross hostnames, white-label hosts start their own session from a short-lived, single-use ticket.
Quality as a gate
Static analysis at PHPStan level 8, automated test suites, an Italian/English parity check on every translation key, and releases cut from annotated tags — which refuse to tag while the legacy manifest is out of date.