Support us by starring ⭐ this repository, joining the community on
discussions 💬,
subscribing to
releases 🔔, requesting a
feature 💡 or even making a
contribution .
Metatype • declarative API development platform
Metatype is an open source platform for developers to declaratively build APIs. It offers a unique approach to building backends, where the focus is all on data modelling and the platform takes care of the rest.
The intent is to find a convenient computing model that tackles the following challenges:
- most developers still spend too much time on tasks with low-value (crud, data validation, compliance, etc.)
- when growing a product, it is hard to keep up with business needs and remain innovative with technology
- managing server and infrastructure shall never be a concern for developers nor slow them down
In that respect, Metatype can be seen as an alternative to Hasura, Strapi, Firebase, or even web frameworks like Django or NestJS. You can see how Metatype differs reading the conceptual overview or the comparison summary.
The platform consists of the following components:
- Typegraph: a package to describe typegraphs - virtual graphs of types - and compose them
- Typegate: a distributed REST/GraphQL query engine to execute queries over typegraphs
- Meta CLI: a command-line tool to provide great developer experience and serverless deployment
A vast range of runtimes is implemented by the platform and provides out of the box support for storing data in databases/S3, connecting to third-party/internal APIs and running business logic in Deno/Python/WebAssembly.
Browse the documentation or start directly building your first typegraph!
Metatype is in beta and some interfaces still need to be stabilized, yet most of the core of the engine is close to production readiness. As such, it does not follow semantic versioning until the first stable release, and all changes will be explicitly outlined in the changelog (watch/subscribe to this repository to be notified).
If you have an idea or a suggestion that would make this better, please fork the repository and follow the step below to create a pull request. You can also simply open an issue with the tag "enhancement".
- Fork the repository
- Clone your fork and follow the developer setup
- Create a feature branch:
git checkout -b feature/awesome-x
- Commit your changes using
conventional commits:
git commit -am 'feat: add awesome x'
- Push to the branch:
git push origin feature/awesome-x
- Open a pull request
First-time contributors can find a list of friendly issues for them to get started and discover step by step the platform.
Copyright © Metatype OÜ. Distributed under various licenses, see LICENSE for the details. Contributions are welcomed and subject to Contributor License Agreement (CLA).