{"slug": "jsonnet", "name": "Jsonnet", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "", "recommenders": 3, "commenters": 5, "warners": 1, "score": 1.966, "rising": 0.35, "first": "2025-11-26", "latest": "2026-10-17", "why": "In the end we used jsonnet which turned out to be a safe choice", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 3, "neutral": 0, "compare": 1, "warn": 1}, "spark": [1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1], "listed": true, "loved": [], "caveat": "", "short_quote": "In the end we used jsonnet which turned out to be a safe choice", "kind": "", "icon": false, "domain": null, "github_repo": null, "official_url": "https://jsonnet.org/", "pricing": "", "aliases": ["Jsonnet", "Json.NET", "jsonnet"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 802172529, "item_id": 50135783, "url": "https://news.ycombinator.com/item?id=50135783", "by": "p_l", "date": "2026-10-17", "stance": "recommend", "quote": "I use exclusively jsonnet (through kubecfg) when I can.", "excerpt": "It's why, except for upstream charts, I use exclusively jsonnet (through kubecfg) when I can. String interpolation is a pox on the ecosystem, especially given how YAML was only originally a debug helper...", "context": "", "use_case": "Kubernetes manifests", "switched_from": "", "story": "A skeptic's first contact with Kubernetes (2024)"}, {"id": 746343793, "item_id": 46646487, "url": "https://news.ycombinator.com/item?id=46646487", "by": "teh", "date": "2026-01-16", "stance": "recommend", "quote": "In the end we used jsonnet which turned out to be a safe choice", "excerpt": "I can't fully answer your question but I did once spend about a week porting plain internal configuration to cue, jsonnet, dhall and a few related tools (a few thousand lines). I was initially most excited by cue but the novelty friction turned out to be too high. After presenting the various approaches the team agreed as well. In the end we used jsonnet which turned out to be a safe choice. It's not been a source of", "context": "", "use_case": "", "switched_from": "", "story": "Cue Does It All, but Can It Literate?"}, {"id": 736921794, "item_id": 46057612, "url": "https://news.ycombinator.com/item?id=46057612", "by": "algorithmsRcool", "date": "2025-11-26", "stance": "recommend", "quote": "JSON.Net was around by that point and was/is excellent", "excerpt": "> Like if you build an Excel formula, the mandatory async/await approach just doesn't work. It's not an asynchronous operation and runs into a UI context where you deadlock if you wait. Last time I did excel interop it was COM based and there wasn't any async part of it. I'm curious if you were using COM interop also? Also, async/await was explicitly designed to work in UI contexts like Winforms and WPF where there i", "context": "", "use_case": "", "switched_from": "", "story": "Reinventing how .NET builds and ships (again)"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 747271889, "item_id": 46704493, "url": "https://news.ycombinator.com/item?id=46704493", "by": "rjzzleep", "date": "2026-01-21", "stance": "warn", "quote": "And it's not this unusable mess that ksonnet or jsonnet is.", "excerpt": "KCL fixes a lot of issues, but it doesn't seem to gain any traction. And it's not this unusable mess that ksonnet or jsonnet is. https://www.kcl-lang.io/", "context": "", "use_case": "", "switched_from": "", "story": "Building Robust Helm Charts"}]}], "who": [], "tags": [], "use_cases": ["kubernetes manifests"], "compared": [], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=50127572", "title": "A skeptic's first contact with Kubernetes (2024)", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47061029", "title": "Show HN: CEL by Example", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46676708", "title": "Building Robust Helm Charts", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46588607", "title": "Cue Does It All, but Can It Literate?", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46051691", "title": "Reinventing how .NET builds and ships (again)", "mentions": 1}], "sentiment_by_month": {"2025-11": {"recommend": 1}, "2025-12": {}, "2026-01": {"recommend": 1, "warn": 1}, "2026-02": {"compare": 1}, "2026-03": {}, "2026-04": {}, "2026-05": {}, "2026-06": {}, "2026-07": {}, "2026-08": {}, "2026-09": {}, "2026-10": {"recommend": 1}}, "quotes": [{"id": 802172529, "item_id": 50135783, "url": "https://news.ycombinator.com/item?id=50135783", "by": "p_l", "date": "2026-10-17", "stance": "recommend", "quote": "I use exclusively jsonnet (through kubecfg) when I can.", "excerpt": "It's why, except for upstream charts, I use exclusively jsonnet (through kubecfg) when I can. String interpolation is a pox on the ecosystem, especially given how YAML was only originally a debug helper...", "context": "", "use_case": "Kubernetes manifests", "switched_from": "", "story": "A skeptic's first contact with Kubernetes (2024)"}, {"id": 753086705, "item_id": 47067919, "url": "https://news.ycombinator.com/item?id=47067919", "by": "simmonmt", "date": "2026-02-18", "stance": "compare", "quote": "", "excerpt": "That's an anti pattern, at least the way we use it. If you need to add complexity, you define custom functions. If that's not enough, CEL probably isn't the right choice, and you'd be doing yourself no favors banging it into that square hole.", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: CEL by Example"}, {"id": 747271889, "item_id": 46704493, "url": "https://news.ycombinator.com/item?id=46704493", "by": "rjzzleep", "date": "2026-01-21", "stance": "warn", "quote": "And it's not this unusable mess that ksonnet or jsonnet is.", "excerpt": "KCL fixes a lot of issues, but it doesn't seem to gain any traction. And it's not this unusable mess that ksonnet or jsonnet is. https://www.kcl-lang.io/", "context": "", "use_case": "", "switched_from": "", "story": "Building Robust Helm Charts"}, {"id": 746343793, "item_id": 46646487, "url": "https://news.ycombinator.com/item?id=46646487", "by": "teh", "date": "2026-01-16", "stance": "recommend", "quote": "In the end we used jsonnet which turned out to be a safe choice", "excerpt": "I can't fully answer your question but I did once spend about a week porting plain internal configuration to cue, jsonnet, dhall and a few related tools (a few thousand lines). I was initially most excited by cue but the novelty friction turned out to be too high. After presenting the various approaches the team agreed as well. In the end we used jsonnet which turned out to be a safe choice. It's not been a source of", "context": "", "use_case": "", "switched_from": "", "story": "Cue Does It All, but Can It Literate?"}, {"id": 736921794, "item_id": 46057612, "url": "https://news.ycombinator.com/item?id=46057612", "by": "algorithmsRcool", "date": "2025-11-26", "stance": "recommend", "quote": "JSON.Net was around by that point and was/is excellent", "excerpt": "> Like if you build an Excel formula, the mandatory async/await approach just doesn't work. It's not an asynchronous operation and runs into a UI context where you deadlock if you wait. Last time I did excel interop it was COM based and there wasn't any async part of it. I'm curious if you were using COM interop also? Also, async/await was explicitly designed to work in UI contexts like Winforms and WPF where there i", "context": "", "use_case": "", "switched_from": "", "story": "Reinventing how .NET builds and ships (again)"}]}