metatype
metatype copied to clipboard
Declarative API development platform. Build backend components with WASM, Typescript and Python, no matter where and how your (legacy) systems are.
Quick-start • Docs • Use cases • Community
Support us by starring ⭐ this repository, joining the community on
discussions 💬,
subscribing to
releases 🔔, requesting a
feature 💡 or even making a
contribution :octocat:.
Metatype • declarative API development platform
Programming is like castle buildingAnd castle building is hard. Even the best teams can struggle to build according to the plans, especially with the ever evolving needs and the tech landscape complexities. |
![]() |
![]() |
Build stable castle with typegraphsTypegraphs are programmable virtual graphs describing all the components of your stack. They enable you to compose APIs, storage and business logic in a type safe manner. |
Build modulable castle with typegateTypegate is a distributed GraphQL/REST query engine that compiles, optimizes, runs and caches queries over typegraphs. It enforces authentication, authorization and security for you. |
![]() |
![]() |
Build reusable castle with MetatypeInstall third parties as dependencies and start reusing components. The Meta CLI offers you live reloading and one-command deployment to Metacloud or your own instance. |
back to top ↑
Overview and motivations
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!
back to top ↑
Development status
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).
back to top ↑
Contributing
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.
back to top ↑
License
Copyright © Metatype OÜ. Distributed under various licenses, see LICENSE for the details. Contributions are welcomed and subject to Contributor License Agreement (CLA).
back to top ↑