Blog

Behind-the-scenes stories from building BrainFit and BloomCard — algorithms, architecture, and indie dev lessons.

Technical

Surviving a 7-Phase Package Migration Across Two Flutter Apps

How I upgraded Riverpod, GoRouter, AdMob, and the entire Firebase stack across two production Flutter apps in 7 careful phases — and what I learned about managing migration risk.

Read more
Technical

Building Offline-First Flutter Apps with OfflineQueue and Supabase

How BrainFit ensures zero data loss during subway rides — with an OfflineQueue table, SyncService orchestration, and subscription state caching for offline Pro access.

Read more
Devlog

Managing 32 Mini-Games with a Lazy Registry Pattern

How BrainFit organizes 32 cognitive training games across 6 brain areas using a registry pattern with lazy initialization for fast app startup.

Read more
Devlog

90 CustomPainters: Why BloomCard Ditched Every Single Emoji

How inconsistent emoji rendering across devices led us to build 90+ CustomPainter classes — and the unexpected benefits of drawing everything in code.

Read more
Design Notes

Designing a Score System That Doesn't Frustrate Players

How BrainFit's BQ score uses asymmetric EMA smoothing and three layers of decline protection to keep players motivated — because losing feels twice as bad as winning feels good.

Read more
Devlog

How I Used Chess Elo Ratings to Balance Brain Training Difficulty

Why I borrowed a chess rating system for a brain training app, and how tuning K-factors and asymmetric loss created a difficulty curve that keeps players in flow.

Read more
Design Notes

Designing a Community Deck Marketplace — Free Browsing, Paid Downloads

How BloomCard balances open exploration with sustainable monetization — download quotas, creator rewards, and the economics of a user-generated content marketplace.

Read more
Design Notes

Growing Planets vs Blooming Gardens — Designing Two Progression Systems

A side-by-side comparison of two gamification approaches: BrainFit's 5-stage planet evolution and BloomCard's stability-based garden growth — and why the metaphor matters more than the mechanics.

Read more
Indie Dev

Designing Paywalls That Don't Drive Users Away

How two indie apps balance monetization with user experience — celebration paywalls, feature gates, cooldown managers, and the numbers behind each decision.

Read more
Technical

Implementing FSRS-5 Spaced Repetition From Scratch in Flutter

How I simplified the FSRS-5 algorithm for a flashcard app — trading 10% theoretical accuracy for 5x faster execution, with a garden growth visualization on top.

Read more
Indie Dev

4 Side Projects I Killed — And What They Taught Me

Before BrainFit and BloomCard, I built and abandoned four side projects. Here's what went wrong, what I learned, and what carried over to the apps I'm shipping today.

Read more
Blog