https://openapistack.co/docs/intro/ Skip to main content openapi-stack Logoopenapi-stack Logo openapi-stackDocumentationBackendClientCLIExamples GitHub * Overview * Why API First? * Backend * Client * CLI * Examples * * Overview On this page openapicmd logo openapi-stackGitHub License npm downloads npm downloads GitHub stars openapi-stack is a collection of open source libraries and tools for full stack software development using OpenAPI specification. The goal is to unlock great developer experience and full stack type safety for software teams using REST; inspired by tools like GraphQL and tRPC. How does openapi-stack compare to GraphQL? GraphQL is a query language for APIs developed by Facebook. It gives API clients full control over the data they query, making it extremely flexible and efficient for client-centric use cases. Similar to OpenAPI specification, GraphQL APIs define a strongly typed schema for the data and mutations they support which makes them discoverable and intuitive to develop against. OpenAPI stack achieves the same type safety and great developer experience by using the OpenAPI specification as a single source of truth for the API contract, used to generate types for both client and server side and utilising it for routing and validation during runtime. Both GraphQL and openapi-stack encourage an API First approach where the API contract is treated as a first class citizen in software design instead of treating it as merely documentation. While REST APIs don't generally provide the same level of control to clients as GraphQL, many times this could be seen as a benefit especially in scenarios where strict control over data access and operations is crucial. Many organizations choose REST over GraphQL due to more established conventions, simplicity, and the ability to leverage standard HTTP features directly. Widespread knowledge around REST contribute to its choice among organizations looking for a tried-and-tested approach to building APIs. How does openapi-stack compare to tRPC? tRPC is a Remote Procedure Call (RPC) library for Typescript to build and consume typesafe APIs. Designed for full-stack Typescript applications, tRPC allows direct sharing of types between both the client and server, without relying on code generation. Unlike GraphQL and REST, tRPC doesn't expose a standard machine-readable API schema to be consumed by clients, instead taking a more straightforward approach of exposing endpoints or procedures, essentially "just functions" invoked by the client to the server. OpenAPI stack achieves type safety using a similar workflow to tRPC's procedures with OpenAPI operations, also avoiding code generation by only generating types from OpenAPI spec and using the machine readable contract in the runtime for routing and validation. While the lightweight tRPC approach is optimal for teams just looking to build full stack applications, teams looking to build robust APIs are better served by the API design first approach of openapi-stack or GraphQL. Benefits 1. Single source of truth for your API contract. No more manually updating your OpenAPI specs to keep up with your backend code. Always keep your API documentation and SDKs up to date! 2. Type safety and validation. Build your product faster and with a better developer experience using strongly typed Typescript and runtime validation both in the server and client side. 3. Testing & Collaboration. Leverage API mocks to make testing and development easier and iterate fast on your API design as you build your app's interface. Being blocked by the backend team is a thing of the past! Backend Build, Validate, Route, Authenticate, and Mock your backend using the openapi-backend library. Quickstart - NPM Client Easily consume your API using the typesafe openapi-client-axios library. Quickstart - NPM CLI Generate types, design and test your API using the openapicmd command line tool. Quickstart - NPM Features * [*] Battle-tested in production. High test coverage. * [*] Built with TypeScript, types included with full autocomplete support * [*] Framework agnostic - works with your stack * [*] Lightweight - small frontend bundle + optimized for serverless cold starts * [*] [?] No code generation - we only generate types * [*] [?] OpenAPI 3.x support * [*] Samples included Edit this page Next Why API First? * Benefits * Backend * Client * CLI * Features Docs * Why API First? * Examples * Generating Types * Backend Reference Libraries * openapi-backend * openapi-client-axios * openapicmd Links * OpenAPI Initiative * GitHub Sponsors * Open Collective * Buy me a coffee OpenAPI Stack is Free and Open Source Software (FOSS) licensed under the MIT license. Become a Sponsor!