metatype icon indicating copy to clipboard operation
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.

Metatype

Quick-startDocsUse casesCommunity

Support us by starring ⭐ this repository, joining the community on discussions 💬,
subscribing to releases 🔔, requesting a feature 💡 or even making a contribution :octocat:.

Typegate Docker Meta CLI binary Python typegraph SDK Typescript typegraph SDK

Metatype • declarative API development platform

Programming is like castle building

And 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.

Castle building
Stable castle

Build stable castle with typegraphs

Typegraphs 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 typegate

Typegate is a distributed GraphQL/REST query engine that compiles, optimizes, runs and caches queries over typegraphs. It enforces authentication, authorization and security for you.

Modulable castle
Reusable castle

Build reusable castle with Metatype

Install 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.

Architectural overview

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".

  1. Fork the repository
  2. Clone your fork and follow the developer setup
  3. Create a feature branch: git checkout -b feature/awesome-x
  4. Commit your changes using conventional commits: git commit -am 'feat: add awesome x'
  5. Push to the branch: git push origin feature/awesome-x
  6. 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 ↑