Nava
Describe a trade, price alert, or recurring rule in plain English; an LLM pipeline turns it into a structured order executed against a live brokerage.
- Year
- 2026
- Stack
- Django REST · PostgreSQL · Redis · Celery · React Native · Expo
- Links
- Private
~440
Automated tests
9
External integrations
The problem
Trading interfaces demand structured input — ticker, side, quantity, order type — while people think in sentences. The translation layer is genuinely useful, and it is also the most dangerous thing you can build, because the output spends real money.
The hard problem was never the parsing. It was making an LLM-driven path safe enough that a misread sentence, a stale quote, or a compromised social account can't cost a user money.
Approach
Users describe intent from an iOS client; an LLM pipeline parses it into a typed, structured order that executes against a live brokerage API. Django REST and PostgreSQL on the backend, React Native/Expo on the client — roughly 31,500 lines across nine third-party integrations, taken from an empty repo to App Store submission-ready in two months.
Every safety guarantee is enforced at the execution boundary rather than in the interface, so no transport can route around it.
Architecture
- 01Plain English
User describes a trade, alert, or recurring rule from the iOS client
- 02LLM parse
Intent is resolved into a typed, structured order
- 03Confirm
Live re-quote; execution refused on a price move over 1%
- 04Fire
One shared firing function that every transport must go through
- 05Settle
Celery workers handle alert evaluation and notification fan-out
Features
Natural-language trading
Describe a trade, price alert, or recurring rule in plain English — the LLM pipeline resolves it into a structured order.
Price-safety confirmation
Every order re-quotes the live price before it executes and refuses to fill on a move over 1%.
Verified DM execution
Orders placed over DM require a one-time code sent to a separately verified phone before they can fire.
Live market data
A stale-while-revalidate cache keeps quotes fresh without cold-fetch latency on the user's path.