Multi-source profit monitor. One pipeline, many sources: live auctions
(dealdash, ebay), travel pricing, dropshipping, deals pages, crypto
exchanges. Each source plugs into the same Source interface and emits
normalized Opportunity records that the dashboard, CLI, and API all read
from a shared store.
apps/
web/ Next.js 16 + Tailwind 4 dashboard (PWA-installable)
cli/ CLI / daemon (will host the lifted ink TUI)
packages/
core/ Shared types, profit math, storage interface, alert bus, runner
storage-json/ JSON file storage adapter (Supabase adapter coming)
source-dealdash/ DealDash source (lift from ~/src/dealdash)
data/ JSON storage root (gitignored)
b1dz is evolving into a plugin platform. DEX connectors and trading
strategies ship as plugins against a stable contract
(packages/core/src/plugins.ts), with a catalog rendered at
/store in the web app. Execution
is signals-only — strategy authors emit normalized Signal objects
and b1dz's engine owns signing, risk, and approvals, so third-party
code never touches user keys.
See docs/prd-plugins-v0.md for the one-day
scope and the full architectural call.
- pnpm 10 workspaces + Turbo
- Next.js 16 (App Router, RSC), React 19, Tailwind 4
- TypeScript strict, ESM only
- Storage: JSON files now → Supabase later (same
Storageinterface) - PWA: manifest + minimal service worker in
apps/web/public
cd ~/src/b1dz.com
pnpm install
pnpm dev:web # Next.js dashboard
pnpm dev:cli # daemonThe crypto TUI now includes a realtime OHLC chart pane backed by exchange websocket data plus public candle bootstrap.
Controls:
1=1m2=5m3=15m4=1h5=4h6=1d7=1w,/.= previous / next chart pair
Module usage example:
<RealtimeOHLCChartContainer
pair="BTC-USD"
exchange="kraken"
timeframe="5m"
positions={positions}
closedTrades={closedTrades}
/>- Move
~/src/dealdash/dealdash.tsAPI helpers intopackages/source-dealdash/src/api.ts - Lift profit math (
profitability,getResaleValue,nonPackEntryFloor) intoevaluate() - Lift
bookBid/cancelBidBuddy/exchangeWinForBidsintoact() - Lift the ink TUI from
dealdash-ink.tsxintoapps/cli/src/tui/ - Wire the runner so the TUI just renders state from the same
Storage - Once the CLI works end-to-end, point
apps/webat the same data - Add
source-ebayto validate the abstraction - Swap
storage-jsonfor astorage-supabasepackage
The whole project lives at ~/src/b1dz.com.
- Inventory-aware spot scanner: alert only when the user already has token inventory on the sell venue and stable balance on the buy venue.
- Per-token thresholds for small accounts: net edge after fees, min notional, and size caps.
- Inventory rebalance guidance: flag when one venue has become cash-heavy or token-heavy after repeated arb rounds.
- Executable depth sizing: use real order book depth, not only top-of-book price, before auto-firing cross-exchange spot arb.
- Per-exchange market-rule normalization: cache and enforce lot size, min notional, quantity increments, and price tick rules across Binance, Kraken, and Coinbase before order placement.