Skip to main content

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 ↗
  • Co-Founder & CTO
  • Technical direction
  • Architecture
  • Lead engineering

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.

Drop on easyparcel.it: drop your catalog, cleared before it ships

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.