I'm a Staff Software Engineer who's been shipping Flutter since before 1.12 landed in December 2019. By day I architect Couchsurfing's mobile app — 1.3M lines of Dart serving 25M+ members — and lead the mobile team that builds on it.
The rest of my time goes to Dart dev tooling: CLIs, code generators, and two backend frameworks. 36 packages on pub.dev, pulled ~267K times a month. Almost all of it exists because some corner of the ecosystem was missing it — if a tool gets in a developer's way, I'd rather fix the tool than work around it.
Where most of my open-source time goes right now — two backend frameworks, and the tooling I lean on to build them:
|
revali
·
revali.dev
Dart backend framework inspired by NestJS — decorators, DI, and structure for building APIs in Dart. Annotate a controller and it generates the router, request binding, and DI wiring. Named after the Zelda champion, obviously. |
zonai
·
zonai.dev
A batteries-included Dart backend — auth, a typed database layer, live query streams, file storage, cron, and access rules, all generated from a schema you write in Dart. Named after Tears of the Kingdom's ancient civilization. |
|
sip
CLI to manage Dart mono-repos — run scripts, tests, and pub commands across every package from one place. |
hooksman
Git hooks and tasks defined as Dart scripts or shell commands — a Dart-native alternative to Husky/lint-staged. |
Also experimenting with recently:
- import_ozempic 💉 — trims unused/bloated imports from Dart codebases
- barreler — generates and auto-updates barrel files as you add or remove files from a Dart project
- pub_version_plus — CLI for incrementing
pubspec.yamlversion numbers - bloc_enhancer — annotation package that streamlines Bloc event/state classes and simplifies state type checks
- get_it_injector — generates
get_itregistrations so DI wiring stops being hand-written
Packages I've published and kept maintained over time:
| Project | Description | |
|---|---|---|
| change_case | Transform strings between camelCase, snake_case, PascalCase, and more |
|
| autoequal / equatable_gen | Code generation for Equatable — auto-builds props getters |
|
| go_router_paths | Type-safe path definitions for the go_router package |
|
| scoped_deps | Scoped dependency injection without a global service locator | |
| pnv | Encrypt/decrypt secrets and manage env files for Dart & Flutter projects | |
| minesweeper | Classic Minesweeper, recreated for the command line | |
| snake | Classic Snake, recreated for the command line |
All packages are published under pub.dev/publishers/mrgnhnt.com.
Clean code, practical tools, and a healthy obsession with Hyrule. 🗡️
Star something you like, open an issue, or say hi — always happy to connect with fellow devs.




