{"slug": "baml", "name": "BAML", "category": "ai", "category_name": "AI models and assistants", "description": "", "recommenders": 3, "commenters": 7, "warners": 0, "score": 3.341, "rising": -0.98, "first": "2025-11-14", "latest": "2026-04-29", "why": "BAML (https://boundaryml.com/) is really great for handling structured outputs. It's what we use at my company.", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 3, "neutral": 3, "compare": 2, "warn": 0}, "spark": [1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "BAML (https://boundaryml.com/) is really great for handling structured outputs. It's what we use at my company.", "kind": "", "icon": false, "domain": "boundaryml.com", "github_repo": null, "official_url": "https://boundaryml.com", "pricing": "", "aliases": ["BAML"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 759884784, "item_id": 47492799, "url": "https://news.ycombinator.com/item?id=47492799", "by": "AIorNot", "date": "2026-03-23", "stance": "recommend", "quote": "I kind of like BAML https://boundaryml.com/ been using it in production", "excerpt": "I kind of like BAML https://boundaryml.com/ been using it in production Edit, read the article -its really good- that cycle of AI engineering progression is spot on -read the article too!", "context": "", "use_case": "Production LLM calls", "switched_from": "", "story": "If Dspy is so great, why isn't anyone using it?"}, {"id": 746573552, "item_id": 46660847, "url": "https://news.ycombinator.com/item?id=46660847", "by": "farhankhan3", "date": "2026-01-17", "stance": "recommend", "quote": "BAML (https://boundaryml.com/) is really great for handling structured outputs. It's what we use at my company.", "excerpt": "BAML (https://boundaryml.com/) is really great for handling structured outputs. It's what we use at my company.", "context": "uses it at their company", "use_case": "LLM structured outputs", "switched_from": "", "story": "LLM Structured Outputs Handbook"}, {"id": 734970640, "item_id": 45935665, "url": "https://news.ycombinator.com/item?id=45935665", "by": "porker", "date": "2025-11-14", "stance": "recommend", "quote": "which flies under the radar and imo is underrated", "excerpt": "Shout-out to BAML [1], which flies under the radar and imo is underrated for getting structured output out of any LLM. JSON schema is okay so long as it's generated for you, but I'd rather write something human readable and debuggable. 1. https://github.com/BoundaryML/baml", "context": "", "use_case": "structured LLM output", "switched_from": "", "story": "Structured outputs on the Claude Developer Platform"}]}], "caveats": [], "who": [{"by": "farhankhan3", "context": "uses it at their company", "url": "https://news.ycombinator.com/item?id=46660847", "date": "2026-01-17"}], "tags": [], "use_cases": ["production llm calls", "llm structured outputs", "structured llm output"], "compared": [{"slug": "dspy", "name": "DSPy", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [{"id": 769438672, "item_id": 48089917, "url": "https://news.ycombinator.com/item?id=48089917", "by": "aaronvg", "date": "2026-05-10", "stance": "neutral", "quote": "We are working on making our programming language BAML turing-complete.", "excerpt": "We are working on making our programming language BAML turing-complete. https://github.com/boundaryml/baml It is a language that is embeddable in other programming languages, with the type system similar to typescript, and a runtime that is similar to Go. People use it currently for structured outputs with llms but soon we will support orchestration and more. We are letting some users have an early access preview! Le", "context": "", "use_case": "", "switched_from": "", "story": "Ask HN: What Are You Working On? (May 2026)"}, {"id": 741544848, "item_id": 46346553, "url": "https://news.ycombinator.com/item?id=46346553", "by": "hellovai", "date": "2025-12-21", "stance": "recommend", "quote": "that workaround we've found works quite well", "excerpt": "(on of the creators of BAML here) yep! exactly! that workaround we've found works quite well, but the problem is that its not sufficient to just retry in the case of failed schema matches (its both inefficient and also imo incorrect). Take these two scenarios for example: Scenario 1. My system is designed to output receipts, but the user does something malicious and gives me an invoice. during step 2, it fails to fit", "context": "", "use_case": "", "switched_from": "", "story": "Structured outputs create false confidence"}], "threads": [{"url": "https://news.ycombinator.com/item?id=48085993", "title": "Ask HN: What Are You Working On? (May 2026)", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47950283", "title": "Show HN: A new benchmark for testing LLMs for deterministic outputs", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47490365", "title": "If Dspy is so great, why isn't anyone using it?", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46820783", "title": "OpenClaw \u2013 Moltbot Renamed Again", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46635309", "title": "LLM Structured Outputs Handbook", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46345333", "title": "Structured outputs create false confidence", "mentions": 1}], "sentiment_by_month": {"2025-11": {"recommend": 1}, "2025-12": {"neutral": 2, "compare": 1}, "2026-01": {"recommend": 1, "neutral": 1}, "2026-02": {}, "2026-03": {"recommend": 1}, "2026-04": {"compare": 1}, "2026-05": {}, "2026-06": {}, "2026-07": {}, "2026-08": {}, "2026-09": {}, "2026-10": {}}, "quotes": [{"id": 767279776, "item_id": 47954986, "url": "https://news.ycombinator.com/item?id=47954986", "by": "jumploops", "date": "2026-04-29", "stance": "compare", "quote": "I'd also love to see a comparison with BAML", "excerpt": "I have anecdotal experience here, but I've found more success when solving the task first, and then returning it as JSON in a separate LLM call[0]. Running a single non-reasoning LLM call from source data (text/image/audio in your diagram) to structured JSON seems fragile with the current state of LLMs. You're essentially asking the model to do two tasks in one pass: parse the input and then format the output. It's a", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: A new benchmark for testing LLMs for deterministic outputs"}, {"id": 759884784, "item_id": 47492799, "url": "https://news.ycombinator.com/item?id=47492799", "by": "AIorNot", "date": "2026-03-23", "stance": "recommend", "quote": "I kind of like BAML https://boundaryml.com/ been using it in production", "excerpt": "I kind of like BAML https://boundaryml.com/ been using it in production Edit, read the article -its really good- that cycle of AI engineering progression is spot on -read the article too!", "context": "", "use_case": "Production LLM calls", "switched_from": "", "story": "If Dspy is so great, why isn't anyone using it?"}, {"id": 749193137, "item_id": 46824571, "url": "https://news.ycombinator.com/item?id=46824571", "by": "itissid", "date": "2026-01-30", "stance": "neutral", "quote": "There has been some work around this practically being tried out using it for structured data outputs from LLMs https://docs.boundaryml.com/guide/baml-advanced/prompt-optimization", "excerpt": "I think one thing these things could benefit from is an optimization algorithm that creates prompts based on various costs. $$, and what prompts actually gives good results. But it's not an optimization algorithm in the sense gradient descent is, but more like Bandits and RL. There has been some work around this practically being tried out using it for structured data outputs from LLMs https://docs.boundaryml.com/gui", "context": "", "use_case": "", "switched_from": "", "story": "OpenClaw \u2013 Moltbot Renamed Again"}, {"id": 746573552, "item_id": 46660847, "url": "https://news.ycombinator.com/item?id=46660847", "by": "farhankhan3", "date": "2026-01-17", "stance": "recommend", "quote": "BAML (https://boundaryml.com/) is really great for handling structured outputs. It's what we use at my company.", "excerpt": "BAML (https://boundaryml.com/) is really great for handling structured outputs. It's what we use at my company.", "context": "uses it at their company", "use_case": "LLM structured outputs", "switched_from": "", "story": "LLM Structured Outputs Handbook"}, {"id": 741299874, "item_id": 46331242, "url": "https://news.ycombinator.com/item?id=46331242", "by": "vicentereig", "date": "2025-12-19", "stance": "compare", "quote": "BAML is a DSL - write .baml files, generate code, get validated structured outputs.", "excerpt": "Both model prompts as functions. BAML is a DSL - write .baml files, generate code, get validated structured outputs. DSPy is a programming paradigm. I like to look at it like the MVC for the Web. You define Signatures[0]: typed contracts governing the relationship between your models and your app. Signatures model prompts as functions too, without leaving Ruby. Then compose them into modules (Predict, ChainOfThought,", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Stepped Actions \u2013 distributed workflow orchestration for Rails"}, {"id": 741162784, "item_id": 46322674, "url": "https://news.ycombinator.com/item?id=46322674", "by": "itissid", "date": "2025-12-18", "stance": "neutral", "quote": "is also trying to solve?", "excerpt": "Isn't atleast part of that GH issue something that this https://docs.boundaryml.com/guide/introduction/what-is-baml is also trying to solve? LLM inputs and outputs must be functions with defined functions. That was their starting point. IIUC their most recent arc focuses on prompt optimization[0] where you can optimize \u2014 using DSPy and an optimization algo GEPA [1] \u2014 using relative weights on different things like er", "context": "", "use_case": "", "switched_from": "", "story": "Skills for organizations, partners, the ecosystem"}, {"id": 737846577, "item_id": 46115411, "url": "https://news.ycombinator.com/item?id=46115411", "by": "maxdo", "date": "2025-12-01", "stance": "neutral", "quote": "building with Python, BAML", "excerpt": "Lantern | https://withlantern.com | Software Engineers (Python, Full-Stack) | Full time in New York, NY (ONSITE) Lantern is building AI-powered revenue intelligence\u2014think autonomous agents that turn cold outreach into warm conversations. Our platform automatically detects buying signals across your tech stack [1], prioritizes opportunities, and helps B2B sales teams focus on deals that actually close. We're an agenti", "context": "", "use_case": "", "switched_from": "", "story": "Ask HN: Who is hiring? (December 2025)"}, {"id": 734970640, "item_id": 45935665, "url": "https://news.ycombinator.com/item?id=45935665", "by": "porker", "date": "2025-11-14", "stance": "recommend", "quote": "which flies under the radar and imo is underrated", "excerpt": "Shout-out to BAML [1], which flies under the radar and imo is underrated for getting structured output out of any LLM. JSON schema is okay so long as it's generated for you, but I'd rather write something human readable and debuggable. 1. https://github.com/BoundaryML/baml", "context": "", "use_case": "structured LLM output", "switched_from": "", "story": "Structured outputs on the Claude Developer Platform"}]}