We've been porting Turborepo, a high-performance build system for JavaScript and TypeScript, from Go to Rust. After implementing global turbo and command line argument parsing in Rust, we split the code into two binaries: one Rust and one Go due to compatibility issues with Alpine Linux. We then ported auxiliary commands like login, link, and unlink, which were relatively simple. However, running and pruning, the core commands that do most of the work, proved challenging. We considered strategies for incremental migration, including building from scratch, writing a trampoline function, adapting the daemon, or using protobuf to communicate between Rust and Go. After weighing options, we settled on the "Rust-Go-Rust sandwich" approach, where a Rust binary calls a Go binary, which in turn calls Rust libraries statically linked into the Go binary. This allowed us to port individual dependencies incrementally and tackle the codebase through testing and debugging. With this setup, we released Turborepo with cross-platform compatibility for 6 targets: Windows x86-64, Windows ARM, Linux x86-64, Linux aarch64, macOS x86-64, and macOS aarch64. The Go sandwich proved to be a complex solution, but it ensured that our users continued to receive new features without stalling the release process.