Hacker ApprovedDepartments

Skir

Ranked 3 of 4 API description languages by recommenders

Protobuf-style schema language with stricter types and safer compatibility defaults. Critics say migrating persisted data is hard and it still uses numeric field tags.

Protobuf-style schema language with stricter types and safer compatibility defaults. Critics say migrating persisted data is hard and it still uses numeric field tags.

16 people gave an opinion

recommend it
7
criticize it
9
approval share
44%
Each figure is one person. RecommendsCriticizes

Recommended in 1 of 13 months

  1. November 2025: not recommended
  2. December 2025: not recommended
  3. January 2026: not recommended
  4. February 2026: not recommended
  5. March 2026: recommended
  6. April 2026: not recommended
  7. May 2026: not recommended
  8. June 2026: not recommended
  9. July 2026: not recommended
  10. August 2026: not recommended
  11. September 2026: not recommended
  12. October 2026: not recommended
  13. November 2026: not recommended (month in progress)

Why it doesn’t carry the badge

  • 7 people recommend itNeeds 10 or more, not met.
  • 0.7 recommenders for every criticNeeds 2 to 1 or better, not met.
  • Recommended in 1 of 13 monthsNeeds 4 or more, not met.

The same three rules apply to every product, and the badge can’t be bought. How the badge works

What people say about it

The reasons people give, with the number of comments that give each one. Open a reason to read what they said.

Why people recommend it

Each mark is one comment

  • Safe compatibility defaults

    “it offers a good tradeoff between efficiency (only a bit less compact than binary), backward compatibility”

    Comment from 8 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

    “the idea is that it is often a good "default" choice because it offers a good tradeoff across 3 properties”

    Comment from 8 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

    “+100 there's not reason to allow breaking changes by default”

    Comment from 8 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”
  • Better type safety than Protobuf

    “I did it a bit better than protobuf because it generally has better type safety”

    Comment from 10 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

    “seems to be a nice improvement over Protobuf”

    Comment from 10 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

What people warn about

Each mark is one comment

  • Numeric field tags remain required

    “I don't see how the serialization this proposes fixes it without the numerical tagging equivalent.”

    Comment from 9 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

    “Obligatory dense field numbers seems like a massive downside”

    Comment from 8 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”
  • Not enough gain to switch

    “Moving me off protobuf requires something at least 10x better--that's a very high bar.”

    Comment from 8 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

    “If Skir wants to be more than prettier syntax it needs concrete wins”

    Comment from 9 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

Other API description languages people recommend

The three most recommended other API description languages, with the same counts for each, so you can compare like for like. The tick on each bar marks the 2 to 1 line the badge needs.

Skir compared with 3 alternatives
ProductRecommendCriticizeApprovalMonthsOwnedBadge
OpenAPI Specification302258%10——
TypeSpec110100%5—Approved
SkirThis page7944%1——
Swagger6555%4——
See all 4 API description languages, ranked

What people said

All 22 comments that mention it, newest first. Each links to the original comment.

“A bit different kind of introspection.”

CriticizesComment from 10 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

“The implicit version is brittle design for backwards compatibility.”

CriticizesComment from 10 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

“I did it a bit better than protobuf because it generally has better type safety”

RecommendsComment from 10 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

“I cannot recommend people migrating from protobuf to Skir if they have some persisted data to migrate”

MixedComment from 10 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

“seems to be a nice improvement over Protobuf”

MixedComment from 10 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

“This is a big one I wish proto had in the first place.”

MixedComment from 9 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

“With Skir, that's not the case.”

RecommendsComment from 9 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

“If Skir wants to be more than prettier syntax it needs concrete wins”

CriticizesComment from 9 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

“I don't see how the serialization this proposes fixes it without the numerical tagging equivalent.”

MixedComment from 9 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

“If you remove or are unaware of a `int32?` field, old consumers will suddenly think the value is present as a "default" value rather than absent”

CriticizesComment from 8 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

“I mostly added this feature for unit tests, where you want to easily create some objects”

RecommendsComment from 8 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

“Moving me off protobuf requires something at least 10x better--that's a very high bar.”

CriticizesComment from 8 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

“+100 there's not reason to allow breaking changes by default”

MixedComment from 8 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

“Impressive. Some interop with established standards such as OpenAPI or gRPC would make it an easier sell for non-greenfield projects”

MixedComment from 8 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

“Built-in compatibility checks, the fact that you can import dependencies from other projects”

RecommendsComment from 8 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

“the idea is that it is often a good "default" choice because it offers a good tradeoff across 3 properties”

RecommendsComment from 8 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

“If the docs can't even get the syntax right, that's a hard no from me.”

CriticizesComment from 8 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

“it offers a good tradeoff between efficiency (only a bit less compact than binary), backward compatibility”

RecommendsComment from 8 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

“The best thing Skir does is strict generated constructors.”

MixedComment from 8 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

“Obligatory dense field numbers seems like a massive downside”

CriticizesComment from 8 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

“that's exactly what buf does for Protobuf already, with the advantage that you can just keep Protobuf”

CriticizesComment from 8 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

“Notably missing both Go and Rust”

CriticizesComment from 8 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.