CoinHaus Community Features — Voting and Discussion in One App
Two Things Investors Always Do Simultaneously
Crypto investors are always doing two things at once: watching prices and reading what other people think.
Currently those two things are in completely separate places. Check prices in an exchange app, then jump to a KakaoTalk chat or Telegram group for community discussion. CoinHaus aimed to put both in the same app.
Per-Coin Feeds
The structure was straightforward: each coin gets its own discussion feed.
On the Bitcoin screen, scroll down and you see posts about Bitcoin. On the Ethereum screen, you see Ethereum discussion. The community flows directly from the price view — no navigation needed.
Posts can be written anonymously or with an account. Crypto communities skew anonymous, so both needed to work.
Price Prediction Polls
The community feature that got the strongest reaction was price prediction voting.
"Will Bitcoin be higher or lower in one week?" Users vote, results update in real time, and after the week passes you can see how the crowd's prediction compared to what actually happened.
It's a simple mechanic, but it drove engagement more than anything else in the community section. There's something compelling about seeing "63% say it'll go up" — and wanting to add your own vote.
Backend Architecture
The trickiest design decision was the backend split.
Real-time prices were already handled by WebSocket. For community data — posts, comments, votes — I chose Firebase Firestore. It supports real-time listeners (important for live vote counts and new post notifications) while also allowing structured queries (filtering posts by coin, sorting by upvotes).
The problem: when prices made big moves, traffic spiked. Users flooded in to post their takes, and Firebase read/write costs jumped sharply. I added rate limiting on the client side and introduced server-side caching for popular post lists. That stabilized the cost curve.
The Moderation Problem
As the user base grew, I ran into a problem I hadn't planned for: misleading posts.
"○○ coin is listing tomorrow, buy now for 10x gains." These started appearing regularly. I added a report feature and built a simple system to restrict repeat offenders.
Reviewing reports as a solo developer while maintaining the rest of the app is genuinely demanding. Community features grow an app's engagement, but they come with real operational overhead that solo developers often underestimate.