Changelog

Recent releases, in reverse chronological order.

Pricing & checkout

  • /pricing and /app/billing now read from one shared plan catalog with admin-side overrides.
  • Upgrade button now actually starts the Stripe checkout (the inline onclick was being serialised as text).
  • Free plan description rewritten to reflect the real metering: 1 booking + 25 schedule searches per month.

Authentication reliability

  • Sign-up no longer hangs on slow Kolaybase responses: 12 s fetch timeouts + best-effort role-row insert + 25 s client-side watchdog.
  • Session cookies survive deploys for 60 days via silent refresh-token rotation.
  • All contact addresses centralised so emails sent from the site reach a real inbox.

CO₂ emissions per sailing

  • Each schedule row shows estimated CO₂ for the booked container based on great-circle distance and a per-carrier efficiency factor.
  • Matches the data point SeaRates surfaces, transparent on every row.

Carrier registry expanded

  • Now covering 36+ container lines (Maersk, MSC, CMA CGM, Hapag-Lloyd, ONE, Evergreen, ZIM, Yang Ming, Wan Hai, KMTC, ANL, Hamburg Süd, Sealand, Safmarine and more).
  • Real logos at SCAC-coded filenames; SCAC alias normalisation so legacy short codes (ZIM, HAPAG, ONE) resolve correctly.

Unified hero search

  • Origin / destination / date / cargo / search in one chip-style bar with inline port autocomplete.
  • Same bar lives on the home page and on /schedules so the experience is consistent.

Live container tracking

  • Auto-detects container, AWB or BL number from a single input.
  • Renders prepol / pol / pod / postpod sequence + AIS-based vessel position when available.