In my last posts I have talked about the current problems with JSON schema and the challenges of code generation for the OpenAPI spec which are inherited from the JSON schema design decisions. With this post we are really happy and excited to introduce TypeHub which is a collaborative platform to design open data specifications.
TypeHub acts not as a replacement for existing API specifications like OpenAPI since we only focus on modeling data. It is more a complement since you can easily export your defined types for usage at any specification which is currently popular. This means TypeHub is not limited to REST APIs, it can be used in many different protocols i.e. Protobuf or GraphQL. With TypeHub you can have a public single source of truth of your data models.
You can think of TypeHub is like GitHub but instead of code we model data. This means we can create new documents, a document is like a repository but instead of files it contains types. In general a document describes a specific JSON structure. In the following I want to show you some screenshots from TypeHub so you can get an insight how it looks:
The start point of every document is the preview which renders the complete document in HTML. At the right side bar you can directly export this document into multiple languages. It also shows the latest releases.
This issue list provides a simple way for other users to provide feedback to your document. Each issue can be closed by the author.
Through pull requests a user can change an existing document. That means a user forks an existing document (copies the document to his account). Then the user can make all changes and create a pull request to merge these changes back to the upstream document. We have integrated a merge engine which then tries to combine both changes into the final document.
Each PR contains a diff view about all changes.
The tags list shows all available releases of the document. If you create a new tag on a document TypeHub automatically generates a changelog about all changed properties so you dont need to manually track those changes.
The editor is finally the core of TypeHub which provides an easy and elegant way to model you data. It contains also a live preview of all your changes at the bottom (if your screen is large enough we show it at the side)
So this was a first short introduction of TypeHub and I hope we could give you a great sneak peek. We are really excited about the release and we think that we can change with this tool the way how we describe data in the API world. If you like the project please feel free to register an account at TypeHub and play around with it. We are currently in an very early stage and not everything is final yet. If you want to provide feedback please use our contact form. So happy data modelling!