All episodes

The story of Pydantic and Logfire | Samuel Colvin

Pydantic creator Samuel Colvin explains how patient open-source adoption created a launchpad for Logfire, why developer trust takes more than GitHub stars, and why his company chose a different commercial product instead of competing with its own library.

Jack Bridger
Episode 11035:28

Samuel Colvin created Pydantic to validate data at the boundaries of Python programs. Years of organic use — followed by the rise of typed Python and LLM applications — made it one of the ecosystem’s most widely used libraries.

Rather than charge for data validation, the Pydantic company raised $12.5 million to build Logfire, an observability product. Samuel connects that choice to developer experience, recurring revenue, distribution and the difficult database work required to enter a mature category.

The Q&A below is experimental — extracted from the episode transcript with AI. If you spot a mistake, let us know at jack@scalingdevtools.com.

Why did Python need Pydantic?

Type hints made programs easier to reason about, but Python did not enforce them when unknown data entered through an API request, CSV, header, database or user input. I was manually keeping validation code synchronized with annotations and found the duplication absurd. Because annotations remain available at runtime, Pydantic could turn the same type declaration into a practical boundary check.

How did patient open-source growth improve the library?

Pydantic drew unusual attention from its first Hacker News launch, but it then developed organically for years before commercial pressure mattered. Production users found edge cases and helped it become robust. A library launched mainly to support a startup can be asked to scale its adoption before the ecosystem has had time to harden it, becoming a victim of its own early success.

Why are downloads more meaningful than GitHub stars?

A star records that a README looked interesting, and almost nobody removes it when the package proves incomplete. Downloads are imperfect too, but they provide stronger evidence of repeated, real use. A good library must be understandable in 30 seconds, useful within three minutes and still pleasant after 300 hours. Stars mostly measure only the first threshold.

What else helped Pydantic break through?

It benefited from broad movements back toward types and then toward structured LLM data, but it also occupied a less crowded problem than databases. Few teams had invested comparable time in data validation. That left room for a markedly better experience, much as Astral found room to improve Python linting, while categories with proven commercial outcomes attract far more funded competitors.

What rules shaped the search for a commercial product?

I wanted recurring revenue for predictability and I had to be my own customer. Building for a problem I use removes the frustration of repeatedly asking somebody else whether the product is right. A third preference was many small customers instead of a few large ones, though I would compromise on that for the right customer. The first two requirements pointed toward observability.

Why did you choose Logfire?

Logging had bothered me for years: a flat stream of messages throws away the nested structure of the program that produced it. Tracing preserves that structure, and OpenTelemetry removed much of the SDK work that once protected established observability vendors. That created an opportunity to build the product I wanted while letting customers instrument applications without locking themselves to one provider.

What connects Logfire to Pydantic?

The technical overlap is real but limited: both target the same Python developers, share an obsession with developer experience, and Logfire can instrument Pydantic validation. The more important link is distribution. Hundreds of thousands of monthly documentation visitors already know the Pydantic name. Keeping the products distinct also removes the recurring conflict over whether a useful feature belongs in the free library or paid service.

How is building Logfire different from building Pydantic?

I built most of Pydantic alone and could rethink it at my own pace. Logfire has opinionated expert engineers, moves much faster and requires a much broader usable product. Nobody wants half an observability platform when established alternatives exist, so a compelling demo is not enough; ingestion, querying, reliability and the surrounding product must work together before customers can depend on it.

Why did the team build its own analytical database layer?

ClickHouse was fast but its SQL made interval-heavy observability queries awkward. TimescaleDB offered familiar PostgreSQL, but the row-level permissions needed for customer-written queries disabled important performance features. Apache DataFusion provided an extensible Rust engine over object storage and Parquet, allowing the team to build FusionFire with modern architecture and standard SQL. The route was indirect, but each failed choice clarified the actual requirements.

Can domain outsiders still build a better observability product?

The team did not begin as database or observability veterans; it began as Python developers who needed the end product. That made the database journey slower, but it kept attention on what developers want instead of reproducing an incumbent’s internal assumptions. Deep infrastructure expertise matters, yet proximity to the user’s problem can determine which difficult infrastructure is worth building.

Links & references

This episode is brought to you by WorkOS.

Keep listening