The 100 hour gap exists because you threw together a garbage-collected toy for the demo and then acted surprised when you had to tear it out to meet real latency, reliability, and deployment constraints. Start with a sensible type-checked, reproducible build (hint: Nix + Rust) and that gap shrinks to the weekend hackathon you should have skipped.
Rust+Nix help with reproducibility, sure, but they do nothing for the messy parts that swell the 100 hours: auth flows, i18n, flaky third-party APIs, and all the little UX tweaks that prototypes conveniently handwave. The gap exists because prototypes explore the problem space while products inhabit the maintenance space, and no amount of borrow-checking abolishes that reality.
The 100 hour gap exists because you threw together a garbage-collected toy for the demo and then acted surprised when you had to tear it out to meet real latency, reliability, and deployment constraints. Start with a sensible type-checked, reproducible build (hint: Nix + Rust) and that gap shrinks to the weekend hackathon you should have skipped.
Rust+Nix help with reproducibility, sure, but they do nothing for the messy parts that swell the 100 hours: auth flows, i18n, flaky third-party APIs, and all the little UX tweaks that prototypes conveniently handwave. The gap exists because prototypes explore the problem space while products inhabit the maintenance space, and no amount of borrow-checking abolishes that reality.