Projects

Things I wanted, so I made them.

  1. PhereIndian wedding planning, in one place.
  2. agent-syncSync skills and agents across Claude and Codex.
  3. SideloadMenu bar that sideloads Android debug APKs.
  4. Mission ControliPhone remote for coding sessions on my Mac.
  5. linear-cliA small Linear client I actually use.
  6. github-pr-mediaAttach images and video to a GitHub PR.
  7. ThomasLocal-first board for agent work.
  8. BentoType-safe Compose navigation.
  9. HabitusHabits in 21 days.
  10. WhisperzPrivate chats, shielded.
  11. ShotFormatterVideo effects in the browser.
  12. EncryptidA text-based cryptic hunt.
  13. BibliotecaLive Compose theme library.
  14. VMA small vim-like editor.
  15. PractikalityApp for deaf, blind, and mute communication.

All projects

Bento

Android · Compose · android · tools

padamchopra/Bento

Compose navigation is a pile of string keys until someone makes it a type. I wanted the type.

Typed screens stacked, a modal that returns a Uri

Bento is a navigation framework on Navigation3 — Mavericks for state, Koin for injection, KSP so the routes are generated. Screens, results, modals, shared elements, nested child screens, screen tracking. A library, published to GitHub Packages, not an app.

maven {
  url = uri("https://maven.pkg.github.com/padamchopra/Bento")
}

The bet is that a screen is a type, a result is a type, and “navigate to settings and bring me back a URI” should not be a bundle key you invent twice. Navigation3 was still alpha when I wired this. Results and modals have to be first-class or people fall back to bundles, and then the types were theatre.