Privacy & security
Why TradePilot is safe to explore — backtests run client-side, there's no trading server, and your saved data is protected by Postgres row-level security.
TradePilot is built so that exploring strategies never puts your data or capital at risk.
Backtests run in your browser
The engine is pure client-side TypeScript. When you run a backtest or a Lab experiment, the computation happens in your browser (in a Web Worker) — your configuration and results are not sent to a server to be computed. You can run the whole app signed out.
No live trading
Nothing here executes real orders. There is no brokerage connection wired up; the
orders table exists only as reserved schema
for possible future trading. A backtest is a simulation over historical
prices, not a market action.
Your saved data is protected by RLS
When you sign in and save work, it lives in Postgres with row-level security (RLS) on every table — the database enforces access, not just the UI:
- Private by default — accounts, holdings, transactions, watchlists, and alerts are readable only by their owner.
- Opt-in sharing — strategies and backtests are private until you set
is_public; only then can anyone else read them. - Owner-only writes — no one but the owner can edit or delete a row.
The community leaderboard is a security-invoker view, so it respects those same policies and can only ever surface runs you chose to make public. It’s also hardened so a malformed public row can’t break it for everyone. Full details: data model.
Deferred by design
Broker credential storage (broker_connections) is intentionally not part of
the current schema — sensitive integration is deferred rather than shipped
half-secured.
Related
- Data model — table-by-table RLS
- Publishing & sharing — what becomes public when