{"slug": "buf", "name": "Buf", "category": "other", "category_name": "Other software", "description": "", "recommenders": 5, "commenters": 7, "warners": 2, "score": 2.682, "rising": 2.35, "first": "2026-02-09", "latest": "2026-08-17", "why": "with the advantage that you can just keep Protobuf and all the battle hardened tooling that comes with it", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 6, "neutral": 0, "compare": 0, "warn": 2}, "spark": [0, 0, 0, 2, 1, 0, 0, 0, 0, 3, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "with the advantage that you can just keep Protobuf and all the battle hardened tooling that comes with it", "kind": "", "icon": true, "domain": "buf.build", "github_repo": null, "official_url": "https://buf.build", "pricing": "", "aliases": ["Buf", "buf"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 789322640, "item_id": 49332665, "url": "https://news.ycombinator.com/item?id=49332665", "by": "bheadmaster", "date": "2026-08-17", "version": null, "stance": "recommend", "quote": "Buf has made my life easier", "excerpt": "Make sure to take reporting negativity bias into account. People will speak up when they don't like something, while stay quiet when everything is fine. I, personally, enjoy Buf. It has solved many frustrations I've had with The Way it was previously done, manually installing protoc plugins, writing arcane flags into scripts nobody wants to touch, working around various quirks, like how protoc produces different outp", "context": "", "use_case": "protobuf tooling and LSP", "switched_from": "protoc", "story": "Protobuf has LSP support. You're welcome"}, {"id": 789218128, "item_id": 49326133, "url": "https://news.ycombinator.com/item?id=49326133", "by": "cdelsolar", "date": "2026-08-16", "version": null, "stance": "recommend", "quote": "There is no better stack, I'll die on this hill.", "excerpt": "I use Go + Buf + protobuf-es + Connect on my web projects. There is no better stack, I'll die on this hill.", "context": "", "use_case": "Protobuf toolchain", "switched_from": "", "story": "Protobuf has LSP support. You're welcome"}, {"id": 789182608, "item_id": 49323913, "url": "https://news.ycombinator.com/item?id=49323913", "by": "arccy", "date": "2026-08-16", "version": null, "stance": "recommend", "quote": "buf is a parser / compiler as an alternative to protoc", "excerpt": "buf is a parser / compiler as an alternative to protoc https://buf.build/docs/migration-guides/migrate-from-protoc/", "context": "", "use_case": "Protobuf parsing and compiling", "switched_from": "", "story": "Protobuf has LSP support. You're welcome"}, {"id": 756796528, "item_id": 47299783, "url": "https://news.ycombinator.com/item?id=47299783", "by": "dewey", "date": "2026-03-08", "version": null, "stance": "recommend", "quote": "with the advantage that you can just keep Protobuf and all the battle hardened tooling that comes with it", "excerpt": "> Skir is a universal language for representing data types, constants, and RPC interfaces. Define your schema once in a .skir file and generate idiomatic, type-safe code in TypeScript, Python, Java, C++, and more. Maybe I'm missing some additional features but that's exactly what https://buf.build/plugins/typescript does for Protobuf already, with the advantage that you can just keep Protobuf and all the battle harde", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Skir \u2013 A schema language I built after 15 years of Protobuf friction"}, {"id": 752161362, "item_id": 47010085, "url": "https://news.ycombinator.com/item?id=47010085", "by": "dewey", "date": "2026-02-13", "version": null, "stance": "recommend", "quote": "Now it's just \"buf generate\"", "excerpt": "I've only enjoyed using Protobuf + gRPC after we've started using https://buf.build. Before that it was always a pain with Makefiles building obscure commands, then developers having different versions of the Protobuf compiler installed and all kinds of paper cuts like that. Now it's just \"buf generate\", every developer has the exact same settings defined in the repo and on the frontend side we are just importing the", "context": "", "use_case": "Protobuf codegen and tooling", "switched_from": "", "story": "gRPC: From service definition to wire format"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 789166160, "item_id": 49322885, "url": "https://news.ycombinator.com/item?id=49322885", "by": "echelon", "date": "2026-08-16", "version": null, "stance": "warn", "quote": "Buf's offering of protobuf registries and codegen SDKs for microservices seems less necessary in the LLM era.", "excerpt": "Buf's offering of protobuf registries and codegen SDKs for microservices seems less necessary in the LLM era. I'm starting to question many of protobuf's advantages (perhaps not the wire format). Add to that monorepos and other fads of the 2010s given the rise of LLMs. I used to be a big believer in this stuff, but I'm quickly having my core assumptions change out from under me.", "context": "", "use_case": "protobuf registries and codegen", "switched_from": "", "story": "Protobuf has LSP support. You're welcome"}, {"id": 782134720, "item_id": 48883420, "url": "https://news.ycombinator.com/item?id=48883420", "by": "jtbaker", "date": "2026-07-12", "version": null, "stance": "warn", "quote": "Buf.build, never again.", "excerpt": "Buf.build, never again. Had a proto evangelist get us ingratiated into their system a few years ago and then they introduced a bunch of rent seeking behavior just to be able to to the code generation, and getting it ripped out was a huge PITA. https://github.com/betterproto/python-betterproto2 was a decent (async, type hinted) python implementation last I checked.", "context": "", "use_case": "protobuf code generation", "switched_from": "", "story": "Protobuf-py: Protobuf for Python, without compromises"}]}], "who": [], "tags": [], "use_cases": ["protobuf tooling and lsp", "protobuf toolchain", "protobuf parsing and compiling", "protobuf registries and codegen", "protobuf code generation", "protobuf codegen and tooling"], "compared": [{"slug": "protocol-buffers", "name": "Protocol Buffers", "co": 3, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=49322573", "title": "Protobuf has LSP support. You're welcome", "mentions": 4}, {"url": "https://news.ycombinator.com/item?id=48827058", "title": "Protobuf-py: Protobuf for Python, without compromises", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47299022", "title": "Show HN: Skir \u2013 A schema language I built after 15 years of Protobuf friction", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46944430", "title": "gRPC: From service definition to wire format", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46953491", "title": "What Functional Programmers Get Wrong About Systems", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {}, "2026-01": {}, "2026-02": {"recommend": 2}, "2026-03": {"recommend": 1}, "2026-04": {}, "2026-05": {}, "2026-06": {}, "2026-07": {"warn": 1}, "2026-08": {"warn": 1, "recommend": 3}, "2026-09": {}, "2026-10": {}}, "versions": [], "version_unnamed": 0, "family_ref": null, "runs_on": null, "lines": [], "quotes": [{"id": 789322640, "item_id": 49332665, "url": "https://news.ycombinator.com/item?id=49332665", "by": "bheadmaster", "date": "2026-08-17", "version": null, "stance": "recommend", "quote": "Buf has made my life easier", "excerpt": "Make sure to take reporting negativity bias into account. People will speak up when they don't like something, while stay quiet when everything is fine. I, personally, enjoy Buf. It has solved many frustrations I've had with The Way it was previously done, manually installing protoc plugins, writing arcane flags into scripts nobody wants to touch, working around various quirks, like how protoc produces different outp", "context": "", "use_case": "protobuf tooling and LSP", "switched_from": "protoc", "story": "Protobuf has LSP support. You're welcome"}, {"id": 789218128, "item_id": 49326133, "url": "https://news.ycombinator.com/item?id=49326133", "by": "cdelsolar", "date": "2026-08-16", "version": null, "stance": "recommend", "quote": "There is no better stack, I'll die on this hill.", "excerpt": "I use Go + Buf + protobuf-es + Connect on my web projects. There is no better stack, I'll die on this hill.", "context": "", "use_case": "Protobuf toolchain", "switched_from": "", "story": "Protobuf has LSP support. You're welcome"}, {"id": 789182608, "item_id": 49323913, "url": "https://news.ycombinator.com/item?id=49323913", "by": "arccy", "date": "2026-08-16", "version": null, "stance": "recommend", "quote": "buf is a parser / compiler as an alternative to protoc", "excerpt": "buf is a parser / compiler as an alternative to protoc https://buf.build/docs/migration-guides/migrate-from-protoc/", "context": "", "use_case": "Protobuf parsing and compiling", "switched_from": "", "story": "Protobuf has LSP support. You're welcome"}, {"id": 789166160, "item_id": 49322885, "url": "https://news.ycombinator.com/item?id=49322885", "by": "echelon", "date": "2026-08-16", "version": null, "stance": "warn", "quote": "Buf's offering of protobuf registries and codegen SDKs for microservices seems less necessary in the LLM era.", "excerpt": "Buf's offering of protobuf registries and codegen SDKs for microservices seems less necessary in the LLM era. I'm starting to question many of protobuf's advantages (perhaps not the wire format). Add to that monorepos and other fads of the 2010s given the rise of LLMs. I used to be a big believer in this stuff, but I'm quickly having my core assumptions change out from under me.", "context": "", "use_case": "protobuf registries and codegen", "switched_from": "", "story": "Protobuf has LSP support. You're welcome"}, {"id": 782134720, "item_id": 48883420, "url": "https://news.ycombinator.com/item?id=48883420", "by": "jtbaker", "date": "2026-07-12", "version": null, "stance": "warn", "quote": "Buf.build, never again.", "excerpt": "Buf.build, never again. Had a proto evangelist get us ingratiated into their system a few years ago and then they introduced a bunch of rent seeking behavior just to be able to to the code generation, and getting it ripped out was a huge PITA. https://github.com/betterproto/python-betterproto2 was a decent (async, type hinted) python implementation last I checked.", "context": "", "use_case": "protobuf code generation", "switched_from": "", "story": "Protobuf-py: Protobuf for Python, without compromises"}, {"id": 756796528, "item_id": 47299783, "url": "https://news.ycombinator.com/item?id=47299783", "by": "dewey", "date": "2026-03-08", "version": null, "stance": "recommend", "quote": "with the advantage that you can just keep Protobuf and all the battle hardened tooling that comes with it", "excerpt": "> Skir is a universal language for representing data types, constants, and RPC interfaces. Define your schema once in a .skir file and generate idiomatic, type-safe code in TypeScript, Python, Java, C++, and more. Maybe I'm missing some additional features but that's exactly what https://buf.build/plugins/typescript does for Protobuf already, with the advantage that you can just keep Protobuf and all the battle harde", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Skir \u2013 A schema language I built after 15 years of Protobuf friction"}, {"id": 752161362, "item_id": 47010085, "url": "https://news.ycombinator.com/item?id=47010085", "by": "dewey", "date": "2026-02-13", "version": null, "stance": "recommend", "quote": "Now it's just \"buf generate\"", "excerpt": "I've only enjoyed using Protobuf + gRPC after we've started using https://buf.build. Before that it was always a pain with Makefiles building obscure commands, then developers having different versions of the Protobuf compiler installed and all kinds of paper cuts like that. Now it's just \"buf generate\", every developer has the exact same settings defined in the repo and on the frontend side we are just importing the", "context": "", "use_case": "Protobuf codegen and tooling", "switched_from": "", "story": "gRPC: From service definition to wire format"}, {"id": 751271763, "item_id": 46954485, "url": "https://news.ycombinator.com/item?id=46954485", "by": "mbo", "date": "2026-02-09", "version": null, "stance": "recommend", "quote": "their compatibility checkers, like Buf's `buf breaking`", "excerpt": "This is an absolutely wonderful article. I helped build a system very similar to the one quoted below: > A deploy pipeline that queries your orchestrator for running image tags, checks your migration history against the schema registry, diffs your GraphQL schema against collected client operations, and runs Buf\u2019s compatibility checks: this is buildable today, with off-the-shelf parts. that was largely successful at e", "context": "", "use_case": "", "switched_from": "", "story": "What Functional Programmers Get Wrong About Systems"}]}