Currently using Earthly for consistency of protobuf generation between multiple devs. We also check-in the generated go code so that we don't have to do this part in CI. Because we use Earthly to run protoc and grpc bindings, they're always the same version so we don't get spurious diffs between devs.
Previously we would have a Makefile for the protoc commands together with locally installed protoc bins. Earthly makes this interaction very nice now.