Skip to main content

· 3 min read

banner

It's been a fast start to the year and we are excited to bring you some new features and improvements to Konfig.

AI-Generated Operation IDs

useAIForOperationID

konfig fix now has a new option --useAIForOperationID that allows you to use AI to generate meaningful operation IDs for your OpenAPI specification.

As part of ensuring your OpenAPI specification is high-quality, it is important to write meaningful operation IDs. Operation IDs are used as method names in the generated SDKs. Konfig follows a strict convention for naming your operation ID. However, we understand that it can be a bit of a hassle to come up with these names. Furthermore, if you have a large OpenAPI spec, it can be a time-consuming task to name each operation ID. Now you can use AI to automate this process.

OpenAPI Specification 3.1 Support

openapi31

Konfig now supports OpenAPI Specification 3.1 🎉!

OpenAPI Specification 3.1 is the latest version of the OpenAPI Specification. It brought a few new features and improvements over the previous version, 3.0.x, but also introduced some breaking changes.

Particularly in 3.1, you can specify nullable by specifying the null keyword in the type field. This is a breaking change from 3.0.x where nullable was a separate field.

· 3 min read

banner

Happy New Year 🎉! We are super excited to bring you Konfig Changelog #9. We have made some improvements to the Docs Portal, fixed some security vulnerabilities and improved the Python SDK.

Docs Portal Support for iframes

iframe support

We've added support for embedding an iframe from sites such as YouTube, allowing you to embed videos and more into your portal.

Security Fixes

security fixes

We fixed a security vulnerability in our Python and TypeScript SDKs:

  1. Upgraded aiohttp from 3.8.4 to 3.9.1 in Python SDK
  2. Upgraded axios from 0.27.2 to 1.6.4 in TypeScript SDK

Note that both these changes are backward incompatible so if you already have SDKs with Konfig, we have put these upgrades behind a feature flag so you can upgrade at your own pace.

Improved Python SDK Type Hints

typehint
Screenshot of response type hint being inferred inside of VSCode

Type hints in Python used to only previously work in PyCharm but now they work in VSCode as well.

Check Out Our New Blog Posts!

We published two new blog posts:

  1. I Reviewed 1,000s of Opinions on gRPC
grpc
A fun read!

These are always fun to write because I get to learn more about the general sentiment of technology and deepen my understanding of different technologies.

  1. How To Implement Free, Fast, Local Search Using Fuse.js with Next.js SSR
search
A technical read!

To implement search functionality in Konfig's Docs Portal, we had to solve a really interesting problem around how to implement search in a Next.js app that is statically generated. This blog post goes into detail on how we solved this problem.

· 9 min read
Dylan Huang
Banner
What do developers really think about gRPC?

It is no secret that gRPC is widely adopted in large software companies. Google originally developed Stubby in 2010 as an internal RPC protocol. In 2015, Google decided to open source Stubby and rename it to gRPC. Uber and Netflix, both of which are heavily oriented toward microservices, have extensively embraced gRPC. While I haven't personally used gRPC, I have colleagues who adore it. However, what is the true sentiment among developers regarding gRPC?

To find out, I went to where developers live: Reddit, Twitter, Hacker News, and YouTube. I parsed 1,000s of discussions and synthesized my findings in this article, striving to present only thought-provoking opinions.

funnel
Funnel for gathering through-provoking opinions

· 7 min read
Dylan Huang

Banner

info

This article teaches you how to implement free, fast, and local search using Fuse.js in Next.js with SSR. If you are looking for an API docs provider with great out-of-the-box search functionality, consider using Konfig to host your API docs.

The Problem

Most websites worth its salt have a search bar. It's a great way to help users find the content they need quickly. To migrate one of our customers at Konfig from ReadMe to our Docs product, we needed to reach feature parity with ReadMe's product, which meant adding search functionality.

· 3 min read

Docs Search

Demo of Search Functionality

We've added a lightning fast search bar to the docs that allows you to quickly search for your docs. The search bar is available on the top right of the docs and has a shortcut of Ctrl + K to quickly focus on it (on Mac it's Cmd + K).

Inline SDK Installation Instructions

Inline Installation Instructions

We've added a new installation instructions section to the docs that allows you to quickly copy the SDK installation instructions for a language. This makes it easier for developers to get started with your SDKs by reducing the friction of finding the SDK installation instructions.

Google Analytics Support

konfig.yaml

_32
outputDirectory: /tmp/acme-sdks-out
_32
specInputPath: api.yaml
_32
specPath: api-fixed.yaml
_32
portal:
_32
title: Acme
_32
primaryColor: "#1f334e"
_32
logo:
_32
light: portal-logo-light.png
_32
dark: portal-logo-dark.png
_32
googleAnalyticsId: G-XXXXXXXXXX
_32
documentation:
_32
sidebar:
_32
sections:
_32
- label: Guides
_32
links:
_32
- id: getting-started
_32
path: docs/getting-started.md
_32
- id: client-side-direct-api-usage
_32
path: docs/client-side-direct-api-usage.md
_32
demos:
_32
- id: getting-started
_32
path: demos/getting-started.md
_32
generators:
_32
python:
_32
version: 1.0.0
_32
packageName: acme_client
_32
projectName: acme-python-sdk
_32
outputDirectory: python
_32
clientName: Acme
_32
git:
_32
userId: konfig-dev
_32
repoId: acme-sdks/tree/main/python

Sample configuration for Google Analytics

You can now add your Google Analytics ID to your docs configuration and we'll automatically add the Google Analytics script to your docs. See the full instructions for adding Google Analytics to your docs here.

· 10 min read
Anh-Tuan Bui

pivoting-from-b2b-gaming

summary
  • Even though the gaming TAM looks large on paper, gaming companies have diverse needs. There are nuances that shrink the TAM depending on what types of gaming companies have the hair on fire problem that your product solves
  • Based on our ideal customer profile, we had to adopt an enterprise go to market motion which was challenging to get initial traction for
  • We needed to truly be 10x better off the bat since we were looking to replace a core function for gaming companies and we couldn't get there

A startup is a long and difficult journey, one that I was wholly unprepared for despite having a decade of work experience in finance and tech. Learnings from one failed startup influence the next startup attempt, so to take a step back and discuss why I got into the gaming space in the first place, I have to talk about my first startup, an investment app that helped people learn about and construct portfolios of ETFs, that I co-founded in 2021.

· 10 min read
Dylan Huang

Open Source vs. Paid OpenAPI Documentation Generators

OpenAPI makes it really easy to generate documentation for your API. There are a number of open source and paid solutions that make it easy to generate documentation for your API. To determine the best solution for your needs, we researched and compared the best open source and paid OpenAPI documentation generators.

At the end, we give our opinion on which solution is best for you depending on your requirements and current setup.

· 2 min read

Banner

Python SDK Ergonomic Improvement

We improved the Python SDK to return Pydantic-based response values which allows for using the __getattr__. This is slightly more concise than the previous version, which used the __getitem__ syntax to access response values.

Before

Previously, you had to use the [] syntax to access response values. This required a little more code for every property access.


_10
response = client.store.place_order(quantity=1000)
_10
print(response.body["order_id"])

After

With Pydantic-based response values, you can use the . syntax to access. This is slightly less verbose and looks more Pythonic.


_10
response = client.store.place_order(quantity=1000)
_10
print(response.order_id)

Notice how there is also no need to use the body attribute to access the response body. All new Python SDKs will be using this new syntax.

We will not be updating previously generated Python SDKs to use this new syntax to ensure backwards compatibility.

Non-SDK Snippets in API Portal

Non-SDK Snippets
Example of generated snippet for using cURL

The API Reference page now generates non-SDK code snippets for cURL and other languages that do not have an SDK. This allows developers to quickly generate, copy, and paste code snippets regardless of whether or not there is an SDK for your language.

· 6 min read
Dylan Huang
Anh-Tuan Bui

Konfig vs. Open Source

Konfig offers numerous benefits when generating SDKs from OpenAPI compared to utilizing an open-source library or crafting them manually. These benefits significantly impact your engineers and business in a positive manner. In this article, we will outline these crucial advantages.

· 8 min read
Dylan Huang

GitHub Copilot has recently taken the software engineering world by storm, hitting a milestone of $100M ARR. This achievement alone qualifies it to be a publicly listed company. Meanwhile, funding continues to flow into code-focused LLM use cases.

100M ARR
GitHub Copilot crosses 100M ARR Milestone
TabbyML
TabbyML Raising 3.2M for an open-source GitHub Copilot
Tabnine
Tabnine raises $15.5M for AI that autocompletes code
Cursor
Anysphere raises $8M from OpenAI to build an AI-powered IDE
Codium
CodiumAI raises $11M