We're hiring! We're looking for Golang (Go) Developers, DevOps Engineers and Solution Architects who want to help us shape the future of Microservices, distributed systems, and APIs. By working at WunderGraph, you'll have the opportunity to build the next generation of API and Microservices infrastructure. Our customer base ranges from small startups to well-known enterprises, allowing you to not just have an impact at scale, but also to build a network of industry professionals. We're all aware of the problem of keeping your API documentation in sync with the implementation of your API. There are multiple ways to solve this problem, but so far all of them take a lot of time and effort to maintain. In this article, we'll show you a new approach to API development that will make your life 10x easier. Just write your API in TypeScript and let the compiler do the work for you. Don't ever worry about writing OpenAPI specifications again. The existing approaches to solving this problem are the schema-first approach and the code-first approach, both of which have their drawbacks. The schema-first approach is tedious and has limitations with tooling, while the code-first approach requires annotations that can be cumbersome to use. Enter TypeScript First API Development, a new approach where you write TypeScript API handlers, and the compiler generates an OpenAPI specification for you. This approach eliminates the need to write specifications, annotate your code, or generate server stubs. You simply create a new project, create a new API handler, save it, and the compiler generates an OpenAPI specification. The generated specification can be used to test your API with curl or any other client, and you can deploy it to the cloud in under a minute. WunderGraph uses esbuild to transpile the file and dynamically load it into its fastify server as an endpoint, while using TypeScript's compiler to introspect the type of the input object and the return type of the handler. This approach is a great middle ground for cases where you want to move fast, iterate quickly, but still have a specification that you can share with your team and clients.