Portle

What it does

Portle is decision support for a jammed terminal. A planner types the action they’re considering in plain language. Portle checks it against current conditions and hard holds, shows what that move is likely to do over the next few hours, and puts it next to a safety-first and a flow-first alternative. The planner picks or rejects. Portle saves a proposed plan.

It also surfaces conflicting reports from different systems (gate vs yard vs customs) so someone can confirm which story to trust before they plan off a bad one.

Who it is for

Terminal planners and operations managers. The people who have to decide, in the middle of a disruption, whether to hold cargo, reserve a lane, or keep the gate moving without blowing past legal holds or letting reefers and medical freight run out of time.

What we got working this weekend

A working end-to-end demo.

  • Live-looking ops dashboard (West Basin / Port of LA) — lanes, queues, urgent cargo, holds
  • Plain-language proposal → structured action → simulation
  • Side-by-side comparison of your plan vs two feasible alternatives
  • Conflict review: pick the authoritative report when sources disagree
  • Decision log that records a proposed plan only
  • Demo data wired through Excel workbooks, plus a deployed frontend and API so you can run it in a browser
  • Weighted scoring to pick a preferred plan: safety weights reefers, urgent cargo, and spoilage risk; flow weights delays, truck wait, cost, recovery time, and emissions.

In a real product this would sit on top of the systems they already have and take a live feed. This weekend it’s a simulated snapshot you can click through.

Tools we used

  • Next.js, React, TypeScript, Tailwind — the planner UI: live dashboard, proposal box, comparison cards, conflict review
  • FastAPI and Python — interpret the plan, run the simulation, score options, and save the decision log
  • IBM Bob — the language layer: turn plain English into a structured action and explain the recommendation (deterministic parser as fallback)
  • pandas and Excel workbooks — gates, yard, reefers, holds, and conflicting event reports for the demo snapshot
  • SQLAlchemy + SQLite — store proposed plans and which conflict story the planner confirmed
  • Vercel and Railway — frontend and API so the demo runs in a browser
  • Cursor — AI tool used to help us build and iterate the app this weekend

Built With

Share this project:

Updates

Submission history