The problem
Traders act on impulse and only discover the risk afterwards. A tool that helps has to work on a phone, on a bad connection, without shipping anyone's data anywhere.
What was built
A rules-based pre-trade scoring engine, a position-size risk manager, a trading psychology checklist and a journal with backup export. Licence-key activation binds a subscription to a device; profiles are local-first; an indicative live gold feed reads market structure.
The engineering decision
Fully offline-capable — the rules engine runs with no connection at all, and subscription status is reconciled with the payment provider periodically rather than on every load. The product ships with an explicit, unglamorous disclosure of exactly what the price feed is and is not, and states plainly that it does not predict prices.
How I built it
- Languages
- JavaScriptHTMLCSS
- Frameworks & libraries
- Tailwind CSSService Worker (offline)IndexedDB and localStorage
- Apps & tools
- Claude Code (AI pair-programming)Git & GitHubCloudflare Workers (AI proxy and encrypted backup)Gemini API (optional assistant)Lemon Squeezy (one-time passes)Lighthouse
- Hosting & data
- GitHub Pages (public build)Cloudflare Workers
- 01
Rules engine
A pre-trade scoring engine and position-size risk manager written in plain JavaScript, so it runs entirely in the browser with no server.
- 02
Offline-first
A service worker caches the app, and profiles and the journal live in IndexedDB and localStorage, so it works on a phone with no connection.
- 03
Licences and payments
One-time passes sold through Lemon Squeezy and bound to up to two devices, with status reconciled periodically instead of on every load.
- 04
Cloud pieces, kept small
A Cloudflare Worker proxies the optional AI assistant so no key ships in the app, and stores end-to-end encrypted backups where the server holds only ciphertext.
- 05
Publish
Built from a private repository into a public GitHub Pages site, with the owner-only features stripped from the public build.
Next plate
Rancho FelipeA multi-page booking site for a private farm resort, built to move bookings off third-party platforms.