Writing
Notes from the codebase.
Things I learn while shipping apps — Flutter patterns, architecture decisions, and the small details that are easy to get wrong.

Why Mobile Apps Fail (And It's Rarely the Code)
After shipping 15+ mobile apps, the failures I've seen came from slow networks, pushy onboarding and backends that buckled at launch — not from bad code.
Read article →
Crash Reporting and Monitoring in Flutter: What I Set Up Before Launch
How I set up crash reporting and monitoring in Flutter with Crashlytics or Sentry: error hooks, symbol uploads, privacy-safe context, alerts, analytics, weekly reviews.
Read article →
A Code Review Checklist for Flutter Teams (Copy, Paste, Adapt)
My Flutter code review checklist: rebuild scope, async gaps and mounted checks, error states, disposal, naming, tests, accessibility, platform differences and PR size.
Read article →
Custom Painting in Flutter: CustomPainter, Canvas and Animated Graphics
Custom painting in Flutter with CustomPainter: Canvas, Paint and Path basics, an animated progress ring, a small bar chart, hit testing and RepaintBoundary.
Read article →
Building Offline-First Flutter Apps: Caching Strategies That Actually Work
How I design Flutter apps that keep working without a connection — local caching, stale-while-revalidate, queued writes and honest UI states.
Read article →
End-to-End Testing with Playwright: Lessons from Owning a Test Suite
What I've learned building Playwright E2E coverage for critical user flows — resilient locators, auth setup, test data, flaky tests and running it all in CI.
Read article →
Stripe Connect in Flutter: Building Marketplace Payments the Right Way
A practical guide to multi-party payments with Stripe Connect and flutter_stripe — account onboarding, PaymentIntents with platform fees, and webhooks you can trust.
Read article →
Flutter vs React Native: How I Advise Clients to Choose
A balanced Flutter vs React Native guide for founders: team skills, web code sharing, UI, performance, native integrations, hiring and maintenance, and when to go native.
Read article →
QR and Barcode Scanning in Flutter: A Practical Guide
QR and barcode scanning in Flutter with mobile_scanner: camera permissions, scan window UX, torch, validating scanned payloads safely and generating QR codes.
Read article →
10 Questions to Ask Before Building an App (A Founder's Checklist)
Questions to ask before building an app: users and their one job, platforms, integrations, admin needs, privacy, monetization, offline use, budget and maintenance.
Read article →
In-App Subscriptions in Flutter with RevenueCat: A Practical Guide
How I set up auto-renewing subscriptions in Flutter apps with RevenueCat — entitlements, offerings, paywalls, restore purchases and the edge cases stores don't warn you about.
Read article →
Flutter Flavors: Setting Up Dev, Staging and Production Builds
A practical walkthrough of Flutter flavors: per-environment config with --dart-define-from-file, Android productFlavors, iOS schemes, separate Firebase projects and CI.
Read article →