You are browsing as a guest. Sign up (or log in) to start making projects!

Pulse

  • 1 Devlogs
  • 7 Total hours

Learn how to invest, before you can afford to lose.

Ship #1 Changes requested

Pulse is a social paper trading app built specifically for teens. The problem is simple: most people under 18 legally can't open a brokerage account, and even for those who can, throwing real money at stocks before you understand what you're doing is a terrible idea. But the existing alternatives, paper trading apps and stock simulators, are all built for adults and feel like spreadsheets. There's no social element, no reason to come back, no one to compete with. Pulse fixes that by combining real-time paper trading with a social layer designed around how teens actually use apps.
You get a virtual portfolio seeded with fake money and you trade real stocks at live market prices. Every buy, every sell, every position is tracked exactly like it would be in a real brokerage. You build intuition for how markets move, what volatility actually feels like, and how hard it is to time an exit, without ever risking a dollar. This update shipped the social infrastructure that makes all of that actually fun. You can follow other traders and watch their moves appear in your feed in real time. You can create a group with your friends, see eachother on a shared leaderboard, and compete on portfolio returns over time. You can put a face to your handle with a profile picture. And the whole UI got rebuilt from the ground up to feel faster and cleaner.

The most challenging part was the social feed. The naive approach of re-fetching on every action felt laggy and broke the illusion that anything was live. So the feed runs on Firestore real-time listeners, meaning updates push to every client the moment they're written. That introduced a new problem: follow and unfollow actions felt slow because they waited on the server before updating the UI. I switched to optimistic updates, where the UI changes immediately and then syncs in the background, with rollback logic if the write fails. Getting that rollback to behave correctly in edge cases, like a user rapidly tapping follow/unfollow, took way more debugging than I expected.

The leaderboard had its own set of problems. Calculating portfolio returns client-side worked fine with two or three users in a group but got noticeably slow as groups got bigger. I moved the PnL calculation server-side and trigger a recalculation on every trade write instead. The client just reads the result. Much faster and the rankings update in real time without anyone doing math on their phone. Profile pictures had a sneaky issue too: users were uploading full-resolution photos straight from their camera roll and Firebase Storage costs scale with bytes stored and transferred. I added client-side image compression before the upload and hard cap everything at 200 KB. The quality is still totally fine and the cost difference is significant.

What I'm most proud of is that this is a real shipped iOS app on the App Store with over 100 users that actual teenagers are using to learn investing. It's not a demo, it's not a prototype running on localhost. The live market data is real, the social features work, and the leaderboard updates when your friend makes a trade from across the country. Building something that functions at that level while also being genuinely fun to use is what I set out to do.
To test it, download Pulse from the App Store on an iPhone, create an account, and you'll start with a virtual portfolio. Place a few trades on any stock you recognize, then find another user to follow and watch their activity show up in your feed. If you want to test the group leaderboard, create a group and share the code.

Check it out at tinyurl.com/pulseofficial

  • 1 devlog
  • 7h
Try project → See source code →
Open comments for this post

6h 50m 18s logged

Pulse devlog, v1.1.

Pulse just got a social layer. The big focus this update was making the app actually feel alive. Paper trading in isolation is fine for learning, but competing and building with friends is what makes it stick, so I spent this session wiring up the core social infrastructure.

Friends & Following lets you find and follow other traders and see their activity in your feed in real time. Follow relationships are stored in Firestore with live listeners so updates come through instantly without polling. 
Groups lets you create a crew and compete on portfolio returns. 
Leaderboard rankings are calculated server-side on write so the client never has to do heavy math. 
Profile Pictures mean you can finally put a face to the handle. 
Images get compressed under 200 KB on the client before uploading to keep storage costs reasonable.
UI Improvements include a full app redesign, a contrast pass across every screen, and a spacing system refactor that brought load time down around 18%.

Up next: DMs, trade reactions, push notifications for follower activity, and a proper onboarding flow for new users.

Check it out at tinyurl.com/pulseofficial

Pulse devlog, v1.1.

Pulse just got a social layer. The big focus this update was making the app actually feel alive. Paper trading in isolation is fine for learning, but competing and building with friends is what makes it stick, so I spent this session wiring up the core social infrastructure.

Friends & Following lets you find and follow other traders and see their activity in your feed in real time. Follow relationships are stored in Firestore with live listeners so updates come through instantly without polling. 
Groups lets you create a crew and compete on portfolio returns. 
Leaderboard rankings are calculated server-side on write so the client never has to do heavy math. 
Profile Pictures mean you can finally put a face to the handle. 
Images get compressed under 200 KB on the client before uploading to keep storage costs reasonable.
UI Improvements include a full app redesign, a contrast pass across every screen, and a spacing system refactor that brought load time down around 18%.

Up next: DMs, trade reactions, push notifications for follower activity, and a proper onboarding flow for new users.

Check it out at tinyurl.com/pulseofficial

Replying to @ishaangulati

1
53

Followers

Loading…