Inspiration I'm a 9th-grader in India, and I kept noticing the same pattern around me — friends and older cousins would see a stock tip on Instagram, throw real money at it, lose it, and swear off markets forever. Meanwhile the "serious" apps felt like tax software, and the fun apps (Discord, etc.) had no connection to learning markets. Nothing in India felt like Discord, Zerodha, and a video-game leaderboard in one place. I wanted to build the app I wished existed when I first got curious about the stock market: zero-risk, loud, social, and actually Indian.

What it does Quro is a social + paper-trading platform for Indian markets at quro-daily-9.vercel.app.

Paper trading with a virtual ₹1,00,000 portfolio — buy/sell 50+ NSE & BSE stocks with zero real-money risk. Live Indian indices — NIFTY 50, SENSEX, BANK NIFTY stream in real time. Chat layer — DMs, voice calls, topic servers and channels, so you can actually discuss a trade while making it. Weekly leaderboards — rank up against everyone else's virtual portfolio; resets every Monday. Cross-platform — web PWA plus native Electron builds for Windows, macOS, and Linux. Dyno bot — pings the server when a leaderboard position changes or a tracked stock moves. How I built it Frontend: vanilla HTML/CSS/JavaScript (no framework), organised into index.html, a js/ modules folder, and a css/ folder. Kept it framework-free to stay fast and easy to host. Backend / auth / realtime: Supabase — Postgres for portfolios and trade history, Row-Level Security for per-user data, and Supabase Realtime for the chat + leaderboard updates. Desktop app: Electron wrapping the web build → the same codebase ships as Windows/macOS/Linux. PWA: service worker (sw.js) + manifest.json so it installs on mobile and works offline for the UI shell. Hosting: Vercel with a custom vercel.json for routing. Market data: public NSE/BSE endpoints polled on an interval, cached on the client to stay inside rate limits. Promo videos: I built 5 vertical promo Reels + one JJK-styled hype edit in Remotion (React-as-video) so every ad I post is programmatic and re-renderable. Challenges I ran into Real Indian market data is gated. Most good APIs want subscriptions. I had to stitch together free endpoints, debounce aggressively, and cache on the client so the UI doesn't freeze. Row-Level Security in Supabase is unforgiving. My leaderboard query was slow because I was fetching every row then filtering client-side — took me a while to learn to push the filter into the policy itself. Voice calls in vanilla JS. No framework helpers. WebRTC + signalling through Supabase channels took multiple rewrites before calls would actually connect across networks. Electron + PWA simultaneously. Service workers and Electron's file protocol don't play nicely by default; I spent a night just getting sw.js to register in both contexts. Time zones + market hours. Indian market opens at 09:15 IST. The "is market open?" check breaks if your server's in UTC — I debugged that the hard way after my leaderboard froze on a holiday. Doing it solo while in 9th grade. My boards are this year, so every hour of coding is an hour not revising. Time management was the biggest one. Accomplishments that I'm proud of Shipped a real, publicly hosted product at quro-daily-9.vercel.app — not a localhost-only demo. 50+ NSE & BSE stocks tradable with a full order ticket and trade history. Chat, voice, servers, DMs, leaderboards all working on the same account. Runs in three places from one codebase — web, installable PWA, and native desktop via Electron. Built a full brand kit + 6 promotional videos in Remotion so the launch didn't look like a school project. Did it as a solo Indian 9th-grader with no team and no outside funding. What I learned How a product actually stays on the internet — DNS, deploy pipelines, Vercel's edge, Supabase RLS policies, cache headers — the boring stuff is 80% of shipping. Database design — what a foreign key actually buys you when trades, portfolios, and users all reference each other. WebRTC from zero. Service workers — versioning them, invalidating caches, offline shells. Electron packaging and code-signing gotchas. That Indian markets have wonderful free data if you're patient and willing to read exchange docs. Most importantly: how to keep shipping when something breaks at midnight and school is at 7 AM. What's next for Quro — Your Daily Options & F&O paper trading — right now it's equities only. Mutual funds & SIPs — simulated SIPs so students can see compounding play out. Mobile apps — Capacitor or React Native wrap for the Play Store and App Store. Hindi & regional language UI — huge unlock for the actual Indian audience I'm building for. Smarter Dyno — an LLM-powered assistant that explains why a stock moved, not just that it moved. Guided learning tracks — gamified "quests" that teach P/E ratios, stop-losses, candlestick basics while you paper-trade. News + filings feed integrated into each stock page. Creator mode — let top leaderboard players run public servers / classrooms, Twitch-style. Want me to also shorten any of those sections, change the tone (more formal, more casual), or add a specific fact (e.g. user count, tech stack details)? Just say what to tweak.

Built With

Share this project:

Updates