Landfall
International shipping risk, cost, and routing — scored before you book.
Landfall is an AI workspace for logistics planners. Describe a shipment (product, lane, weight, ship window) and a coordinated set of agents pulls live web signals to estimate disruption risk, landed-cost drift, delay bands, alternate ports, and a prioritized action list. When you are ready to commit, Landfall can place a live phone call to the carrier to verify the quote.
Built for the Bright Data AI Agents & Web Data Hackathon; live calls via Callwright (VOYGR).
Pipeline
| Stage | What runs |
|---|---|
| Product profile | Category, HS codes, material mix, upstream dependencies |
| Market signals | Commodity, freight, port, weather, geopolitics, supplier, regulatory agents |
| Port scout | Congestion-aware alternate discharge ports |
| Duty desk | Effective tariff stack + import document checklist |
| Synthesis | 30/60/90-day cost curves, mode table, alerts |
| Briefing | Executive summary + dated action plan |
| Quote confirm | Optional live carrier call (Callwright) |
Deliverables: composite risk index, expected delay range, cost exposure charts, dependency map, news feed, and carrier confirmation transcript.
Live web data
Intelligence agents talk to the Bright Data MCP (@brightdata/mcp):
search_engine— SERP for rates, congestion, commodities, tariffs, weatherscrape_as_markdown— deeper page extraction when a source is worth opening
src/lib/brightdata.ts owns the client. Without a token, Landfall serves a
deterministic offline corpus so demos still complete (header shows DEMO vs LIVE).
Layout
src/
app/ # Next.js routes, SSE analyze endpoint, Callwright proxy
components/ # Intake UI, agent console, dashboard, map, call flow
lib/
agents.ts # LLM + search agent definitions
orchestrator.ts # pipeline scheduler + risk aggregation
brightdata.ts # MCP client + offline fallback
callwright.ts # carrier call integration
drivers.ts # commodity time series for charts
geo.ts # port geocoding
Progress streams over Server-Sent Events so each agent lights up in the console as it finishes.
Stack
Next.js 16 · React 19 · TypeScript · Tailwind CSS v4 · Recharts · Leaflet · Framer Motion · OpenAI · Bright Data MCP · Callwright
Local run
cp .env.example .env.local # OPENAI_API_KEY, optional BRIGHTDATA_API_TOKEN, CALLWRIGHT_API_KEY
npm install
npm run dev # http://localhost:3000
Use a preset (e.g. plastic chairs Shanghai → LA) or the chat intake, then run analysis.
Keys are optional for a full UI walkthrough; add them for live SERP/LLM/call paths.
Env vars
| Variable | Role |
|---|---|
OPENAI_API_KEY |
Agent reasoning |
OPENAI_MODEL |
Defaults to gpt-4o-mini |
BRIGHTDATA_API_TOKEN |
Live search/scrape |
BRIGHTDATA_PRO_MODE |
Extra browser tools when set |
CALLWRIGHT_API_KEY |
Live carrier phone confirmation |
Landfall · Bright Data · OpenAI · Callwright
Built With
- css
- dockerfile
- javascript
- shell
- typescript
Log in or sign up for Devpost to join the conversation.