Investor Analytics SaaS · 0-to-1
stox.my
Multi-factor screening and alpha discovery for Bursa Malaysia, served from the edge in under 100 ms.
< 100ms
p95 reads on hot queries
Bursa
Full equity coverage
Edge-first
Cloudflare Workers + D1 + KV
The problem
Bursa retail traders were screening on spreadsheets.
Koyfin and Finviz don't cover Bursa Malaysia properly. Local retail traders had no proper multi-factor screener — they were exporting CSVs from broker terminals into Excel, sorting by hand, and missing rotations. Nothing tied real-time price action to fundamentals to alpha signals in one product.
The approach
One product, three engines, served from the edge.
A single SaaS that ingests Bursa pricing in real time, scores every equity across momentum, value, and quality, and surfaces watchlists with AI-assisted commentary. Edge-first so the experience feels instant — no spinners on screener queries.
- →Real-time Bursa pricing pipeline writing to D1 with numbered .sql migrations
- →Multi-factor scoring (momentum + value + quality) recomputed on schedule
- →KV-cached hot queries so the screener feels instant on every keystroke
- →AI-assisted alpha commentary on the watchlist tier
- →End-to-end on Cloudflare — Workers, D1, KV, R2, Cron Triggers
The result
Live SaaS. Paying users. Sub-100 ms feel.
Shipped 0-to-1 from ingestion to ranking to frontend to deployment. Hand-written SQL the whole way, edge-first infra. The screener responds at the rate of thought, which is how investor tools should feel.
< 100ms
p95 latency on hot screener reads
Live product

Live Market Screener at stox.my/screener — daily-updated KLSE with structured fundamentals, technicals, and signal filters

Founding backer deck at stox.my/pitch-deck — live KLSE watchlist (MAYBANK +1.82%, PBBANK +0.87%, TENAGA -0.43%, CIMB +2.14%) and AI summary

Marketing surface at stox.my — KLSE intelligence layer, 900+ counters, 65+ parameters
Stack used
- TypeScript
- React 19
- Hono
- Cloudflare Workers
- D1
- KV
- R2
- Cron Triggers
- Hand-written SQL