· 3 min read
Portfolio Updates: Famon Fixes, New Blog, and Peakward Beta
Three updates — bug fixes for my Firebase Analytics CLI tool, a brand new blog feature on my portfolio, and open invitations to test my running app Peakward on TestFlight.
I've been quiet on the publishing front, but that doesn't mean I haven't been shipping. Here's what's new across three projects I've been building.
Famon: Firebase Analytics Monitoring, Now in Your Terminal
I never actually announced this properly when it launched, so let's fix that.
Famon is an open-source Dart CLI tool that streams Firebase Analytics events from your Android or iOS app straight to your terminal in real-time. No more switching contexts — see your analytics logs right inside your editor while you debug.
# Install from pub.dev
dart pub global activate famon
# Start monitoring
famon monitor
The tool gives you smart filtering, session statistics, and persistent storage via Isar. Recent updates fixed a critical bug where keyboard shortcuts weren't working — quit and Ctrl+C now respond immediately instead of hanging until new log data arrives. Also improved parsing for native Firebase events and tightened security based on an audit I ran last month.
There's also a new famon issue command that opens your browser to submit bug reports directly from the CLI, complete with auto-collected system info.
Peakward TestFlight: Join the Beta
Peakward is a running and fitness app I've been building with Flutter. It syncs with Apple HealthKit and Strava, then uses AI (Google Gemini + Apple Foundation Models) to generate personalized daily briefs that factor in your training load, weather conditions, and goals.
Recent work added some features I'm particularly happy with:
- Prediction trend charts showing how your fitness is trending over time
- Training status badges that surface whether you're building fitness, maintaining, or need recovery
- TSB-aware predictions that adjust race time estimates based on your current training stress balance (TSB = fitness level minus fatigue — positive means you're rested and ready to perform, negative means you're carrying training load)
- Support for six training methodologies: Daniels' Running Formula, MAF, 80/20, and more
- Dashboard fix in 0.15.6 — Resolved a critical dependency injection bug that was causing a grey screen after onboarding. The app now properly initializes all cubits before the dashboard renders.
The beta is open. If you're a runner with an iPhone, I'd love feedback on the AI coaching and training plan generation.
This Blog Now Exists
My portfolio site (the one you're reading this on) now has a working blog section. It's built with Nuxt 4 and Vue 3, and posts are written in Markdown with frontmatter — simple enough that there's no friction to publishing.
The nice part: this blog has an RSS feed that auto-posts to LinkedIn, dev.to, and Medium. Write once, publish everywhere.
I'll be posting here regularly about mobile development, architecture decisions, and lessons from shipping these projects. If there's something specific you'd like me to cover, reach out.
Thanks for reading. If any of these projects sound interesting, check them out and let me know what you think.