Boundary

HomeBlogPodcastTeamJobs
DocsStar on GitHub
2,107

Why The F*** Did We Make a Language?

Because building AI applications shouldn't feel like defusing a bomb. Here's the story of why we built BAML and why you'll love it.

Read the Full StoryWatch Video

The Problem We All Face

Every developer building AI applications runs into the same walls. We got tired of banging our heads against them.

Type Safety Nightmare

Problem: JSON schemas and untyped API responses everywhere

Solution: First-class types for AI inputs and outputs

Prompt Engineering Hell

Problem: String concatenation and template literals for prompts

Solution: Structured prompt composition with validation

No IDE Support

Problem: Writing prompts in strings with no autocomplete or validation

Solution: Full IDE support with syntax highlighting and IntelliSense

Runtime Failures

Problem: AI responses that don't match expected formats

Solution: Compile-time validation and runtime guarantees

See The Difference

Without BAML

// Hope the AI returns the right format 🤞
const response = await openai.complete({
  prompt: `Extract user info from: ${text}`
});

// Runtime error waiting to happen
const user = JSON.parse(response);
console.log(user.name); // undefined? string? who knows!
  • ✗No type safety
  • ✗Runtime errors
  • ✗Manual parsing
  • ✗No validation

With BAML

// Define once, use everywhere with confidence
class User {
  name: string
  email: string
  age: int
}

const user = await GetUserInfo(text);
console.log(user.name); // TypeScript knows it's a string!
  • ✓Full type safety
  • ✓Compile-time checks
  • ✓Auto parsing
  • ✓Built-in validation

Our Journey

We started building AI applications in 2022, right when ChatGPT launched. Like everyone else, we were excited about the possibilities. But the reality hit hard.

Month 1: "This is amazing! We can build anything!" String concatenation everywhere. JSON.parse() on every response. Ship it! 🚀

Month 2: Production errors. Everywhere. The AI returns slightly different formats. Our parsing breaks. Customers are angry. We add try-catch blocks around everything.

Month 3: We build a validation layer. Then a type generation system. Then a prompt management system. We're building more infrastructure than actual features.

Month 4: F*** it. If we're going to solve this problem, let's solve it properly. For everyone.

And that's how BAML was born.

Why a Language Though?

Purpose-Built for AI

General-purpose languages weren't designed for AI interactions. BAML is built specifically for defining AI interfaces, with first-class support for prompts, schemas, and validations.

Compile-Time Safety

Catch errors before they hit production. BAML's compiler validates your schemas, prompts, and type definitions at build time, not runtime.

Developer Experience

Full IDE support, automatic code generation, and seamless integration with your existing TypeScript/Python codebase. It just works.

What developers are saying:

"Finally, someone who gets it. BAML is what I've been trying to build internally for months."

- Senior Engineer at Fortune 500

"Reduced our AI-related bugs by 90%. Not exaggerating."

- CTO at AI Startup

"The VS Code extension alone is worth it. Pure developer happiness."

- Full Stack Developer

Ready to Stop Fighting Your Tools?

Join thousands of developers who are building AI applications the right way. With type safety, reliability, and actually enjoyable developer experience.

Try in PlaygroundGet Started

Still skeptical? That's healthy. Check out our comparisons with alternatives.

Boundary

Open source toolkit for AI development. Build type-safe AI applications with your team - all with confidence and reliability.

  • Company
  • About Us
  • Why BAML?
  • Privacy Policy
  • Terms of Service
  • Resources
  • Changelog
  • Docs
  • Jobs
  • Social
  • GitHub
  • Twitter
  • Discord
  • LinkedIn
  • YouTube