Case Studies

How Codat Made Their API Experience Best In Class

Nolan Sullivan

Nolan Sullivan

June 10, 2023

Featured blog post image

When it comes to developer experience, Codat is committed to building an API that is mentioned in the same breath as Stripe. They partnered with Speakeasy to realize their ambitions with a partner that cares as much about DevEx as they do.

Challenge

Codat (opens in a new tab) is the universal API for small business data. Intended for companies building software used by SMBs, the Codat API can be used for such varied purposes as underwriting credit risk, automating accounting, or building SMB dashboards. They serve as a one-stop shop for accessing consented business data from a customer’s banking, accounting, and commerce platforms.

Max Clayton Clowes and David Coplowe are part of Codat’s developer experience SWAT team; a small team, with a big mandate. And in the beginning of 2023, they asked themselves a question that many a small DevEx team has obsessed over: what is the most impactful thing we could do to reduce our user’s time to build?

With the company being founded by developers, developer experience has always been at the heart of what they build. As such, Codat’s dedicated DevEx team is relentlessly focused on ensuring Codat’s implementation is simple and the time to integration (ie. time to 200) is measured in minutes.

In the DevEx team’s review, they identified SDKs as a top priority feature to improve the time to 200 for new users. SDKs had been a long-standing request from some of their largest customers, and could be a big plus for reducing the effort for Codat to onboard smaller customers.

They first identified which languages were important for them to support. In order of priority:

  • Go
  • Python
  • Typescript
  • C#

Their plan was to attack the languages one at a time, starting with the languages which they had familiarity with: Go. But before they started coding, they first needed to decide on whether they were going to use a generator, or build the libraries by hand.

From a time to value perspective, a generator was appealing. Especially for languages where they lacked expertise, but it would mean painful tradeoffs in terms of the vision they had for their SDKs. Ease of use and good developer ergonomics was extremely important to them. In particular they wanted an SDK with:

  • Per Service Packages - They wanted each Codat API e.g. banking, accounting, commerce to be available as a standalone package so that users could avoid bloat, and just grab what they need.
  • Type Safety - They wanted strongly typed library so that users could catch errors at compile time, and take advantage of their IDE’s auto-completion.
  • Appropriate Abstraction - They wanted the methods in their SDK to abstract away API details, like whether a parameter belongs in the path or the query. They wanted users to be able to focus on inputs & outputs.
  • Accurate Documentation - They wanted client libraries to be well-documented, with rich usage examples that would help customers get started.

Solution

Staring down the barrel of a trade-off between quality and speed, Codat went searching for alternative options. And that’s when they found Speakeasy.

Speakeasy enabled Max & David to easily create SDKs which met all of the important criteria for good ergonomics — done automatically from the Codat OpenAPI spec.

“The engineering team is consistently focused on developing Codat’s core infrastructure, and we’re always figuring out the most efficient way to advance our developer experience. Finding Speakeasy has been transformational in terms of our team’s velocity. We’ve been able to progress our roadmap faster than we thought possible. We were able to get SDKs for 3 languages in production in a couple of weeks -- if we’d been on our own, it would probably have taken a month for each language. We also would likely have needed to hire developers with new language expertise that we don't necessarily have today.”

David Coplowe, Codat DevEx Team

Not only did the Speakeasy SDKs help deliver great developer ergonomics, but the managed SDK workflow made ongoing support trivial.

In particular Speakeasy’s OpenAPI validation has helped them make ongoing improvements to their OpenAPI spec, which has paid dividends not just in the creation of SDKs, but in improving their API reference documentation as well.

Results

Codat’s SDKs (opens in a new tab) are available via their user’s favorite package managers. The response has been overwhelmingly positive. Users have been delighted to have the option of integrating Codat using their preferred language and runtime.

In addition, the SDKs have had a positive impact on internal development. Codat’s application teams have received a boost in productivity as they’ve been able to take advantage of the SDKs to handle the more mundane aspects of integrating with backend services. Take a closer at Codat’s SDKs here (opens in a new tab).