Launching SDKS.io — A Place for SDK Builders
Tags: api, openapi, sdk, generator
Published: 2023-04-20 16:15:00

Photo by <a href="https://unsplash.com/es/@corinnekutz?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Corinne Kutz</a> on <a href="https://unsplash.com/photos/tMI2_-r5Nfo?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>

In this article, we’ll introduce you to [sdks.io](https://sdks.io/docs/introduction/), why we built it, and our hopes for the future.

## What are SDKs
SDKs (software development kits) are collections of software development tools and resources that allow developers to create applications for a specific platform or operating system. SDKs can include libraries, sample code, and documentation, among other resources.

## Why SDKs are important
SDKs are important for developers because they abstract away complexity and reduce the amount of code a developer needs to write when integrating with APIs. Companies provide these pre-built components and tools as SDKs making it easier for developers to build robust and feature-rich applications.

Additionally, SDKs can provide developers with support and documentation, which helps them troubleshoot issues and ensure their application is working as intended. This can be especially useful for developers who are new to a platform or who are unfamiliar with its specific tools and resources.

## What is SDKs.io
[SDKs.io](https://sdks.io/docs/introduction/) is a site dedicated to improving the state of SDK development. [APIMatic](https://www.apimatic.io/) has years of experience building SDKs for leading technology companies and our staff includes those who’ve managed SDK programs for API providers. We brought our combined experience together to establish a set of best practices developers can use to build SDKs for consuming RESTful APIs.

At SDKs.io we cover subjects such as design considerations before you start building, guidelines for constructing code libraries, and recommendations for supporting developers through different types of documentation. With this information teams are better equipped to provide software that serves their developer community.

![SDKS.io - home of best practices for building SDKs](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ubyv1phwz81zaq739t7e.png)

## Best Practices
The [design section](https://sdks.io/docs/category/design) helps teams think big picture and establish guidelines for developing code libraries that are the foundation for an SDK. In preparation, you’ll consider the programming languages and frameworks to support, does your API work for both client and server-side libraries, should you utilize code generation, and should you open source your SDK code. We discuss the importance of idiomatic code and naming conventions and how annotations can be used to power code completion in developer IDEs.

The [build section](https://sdks.io/docs/category/build) dives deep into the details of building code libraries for APIs. We cover topics such as authentication, translating endpoints into methods, data models, logging, persistent connections, timeouts & retries, and much more. All with an eye towards abstracting away complexity and reducing the amount of code a developer needs to write when integrating with your API.

The [support section](https://sdks.io/docs/category/support) focuses on ways to support developers through different documentation formats. We look at the pros and cons of open sourcing your code libraries and how to support your SDK users in online forums and through traditional support teams.

## Ways to Build
We are advocates of code generation and do a deep dive into [OpenAPI generator and APIMatic](https://sdks.io/docs/ways-to-build-sdks/code-generation/) to show developers how to evaluate these types of solutions. We do our best to examine the tradeoffs between [building vs. buying](https://sdks.io/docs/ways-to-build-sdks/code-generation/build-vs-buy) a code generation solution. Of course, [homegrown SDKs](https://sdks.io/docs/ways-to-build-sdks/homegrown) may be the best way to serve your developer community, and we expect the best practices can help teams who take this approach. We also touch on ways to engage with developers who’ve built their own code libraries and made them available to your community.

## SDK Research
Lastly, we’ve kicked off [SDK industry research](https://sdks.io/docs/industry-sdk-research) to better understand the SDK programs of leading technology companies. By observing trends and sharing insights we can understand the state of SDK development.

You’ll definitely want to watch this space for interesting insights. For example, we discovered a vast array of programming languages are supported by companies. 18 languages were represented in our SDK survey with JavaScript/TypeScript being the most popular, followed by Python, Java, and Ruby. PHP barely edged out C# for 5th place. A signal of the shifting landscape, Go makes a strong showing in our programming language list along with Swift and Kotlin.

![SDK Language Popularity](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qb7rbu9odwtogv7mslrs.png)

## Why did we create SDKs.io
Knowledge about SDK development is out there but tends to be scattered across blog posts written by teams who’ve built SDKs and are not intended to be a guide or a gathering place for the community of SDK builders.

Our aim is to provide a space where builders can share their triumphs and failures on the road to providing a better developer experience. There is no guide to building SDKs and you have to start somewhere, so we started with our experiences and learnings in the space.

This is an ongoing project and will get better over time. We don’t have all the answers and invite others to contribute their stories and experiences building SDKs. We’ve turned on [GitHub discussions](https://github.com/apimatic/apimatic-sdks-io/discussions) as a place for conversation with us and each other.

We are human, so if you find an error and can submit an issue or a pull request, we’d really appreciate your help.

## What’s next for SDKs.io
We’ve just launched, so feedback from the community would help us understand what you’re finding helpful and how we can improve. Our blog area will serve as a place for guest writers and SDKs news and updates. 

SDK research is an area we are very excited about. This research is based on public SDK repositories and developer portals. Ideally, we’d like SDK builders to contribute information about their programs to increase the representation, accuracy, and richness of our data set. Also, what questions would you like answered about SDK trends. We’d love to hear from you and find ways to provide even more valuable insights.

## Who is APIMatic
APIMatic builds SDKs and [documentation](https://www.apimatic.io/developer-experience-portal/) for leading technology companies to enhance their developer experience and drive API adoption. SDKs built with APIMatic have been used by millions of developers. 

APIMatic [auto-generates SDKs](https://www.apimatic.io/continuous-code-generation/) and idiomatic code samples, which developers can copy and paste directly into their codebase. We also generate language-specific documentation, API reference docs, and how-to guides. 

The platform includes an API Code Playground that allows developers to make API calls directly from the documentation and modify code in their preferred language to test the results. 

Moreover, companies can choose to have documentation hosted by APIMatic, embedded in an existing developer portal, or deployed on their own domain. Updates to the developer experience are automated through full CI/CD integration.

If you’re a developer who wants to learn more about SDKs, you should [check out the sdks.io website](https://sdks.io/docs/introduction/). With its clear and concise explanations and practical examples, sdks.io aims to help you become a more efficient and effective developer.