Skip to main content

Having Developers Generate Their Own SDKs

Some companies are providing an API specification and asking developers to generate their own SDKs. This is a new trend and it will be interesting to see how it plays out. I am most interested to hear what developers think.

Marqueta is an example of a company who has taken this approach.

There are obvious advantages and disadvantages.

Advantages

The big advantage is your company won't need to build, test and maintain multiple SDKs. This extends to documentation, code samples and other support materials specific to SDKs. Instead you'll focus on creating high quality API specifications and keeping them up to date as your API evolves.

Disadvantages

An overall disadvantage is friction introduced into the developer journey. Developers won't see any code libraries in their preferred language or documentation with code samples showing how to interact with the API. Quick start or guided walkthroughs will be provided with generic code samples and not an SDK. This code would be discarded once the developer generated their own SDK.

Issues building or using the generated code would be the developers responsibility and could end up being repeated by each developer. Tech support inquires would shift away from how do I use your SDK to achieve this outcome, to how do generate a client SDK in language X. Once I generate it, how do I add it to my project and use it.

Upon successfully generated and working with their own SDK, it's up to developers to stay up to date with changes in your API and generate a new SDK. They'll also manage any security updates to dependencies in their generated code.

As mentioned in the OpenAPI generator section, no README was generated and documentation had to be generated separately with incomplete results.

Final thoughts

As someone who's built developer programs, I know this stuff is hard. Asking every developer to build thier own SDK feels like punting the problem instead of solving it for your community. If you've chosen this path and want to share your experience, start a conversation on GitHub discussions, we'd love to hear how it was recieved by your developers.

Share this page: