Cookie Policy
We keep device usage minimal. The terminal relies mostly on first-party local storage (which stays on your device), uses cookieless analytics, and sets exactly one cookie — to remember your consent choice.
What we store
| KEY | TYPE | PURPOSE | LIFETIME |
|---|---|---|---|
| nq_consent | Cookie | Remembers your consent choice so the notice isn't shown again | 1 year |
| bb_workspace_state · bb_securities | localStorage | Your desk layout, panels and watchlist | Until cleared |
| bb_portfolio · bb_cash | localStorage | Your paper-trading positions and cash | Until cleared |
| bb_command_history | localStorage | Recent commands for quick recall | Until cleared |
| gemini_api_key | localStorage | Your optional AI key — stays on your device, never sent to us | Until cleared |
| bb_boot_done | sessionStorage | Skips the boot animation for this browser session | Session |
| bb_tour_done | localStorage | Remembers you've seen the first-visit tour | Until cleared |
| nxq_uv_v1 | localStorage | Counts your device once for anonymous visitor stats | Until cleared |
Analytics
We use Vercel Web Analytics and Speed Insights, which are cookieless and aggregate — no advertising profiles, no cross-site tracking. Choosing Essential only additionally stops the anonymous unique-visitor ping.
Why local storage, not tracking cookies
Functional data stays on your device, isn't transmitted with every request, and lets the terminal re-recognise your desk and keep you signed in without forcing a fresh login each visit.
Your control
Essential only limits us to what's needed to run the app and suppresses the analytics ping. You can clear all of this any time via your browser's “clear site data” — note that doing so resets your desk, watchlist and paper portfolio.
Third-party storage
When you sign in with Google, Firebase Authentication may set its own storage to keep your session, governed by Google's privacy policy.
Changes
We'll update the date above whenever this policy changes.