
From the GraphQL Editor (opens in a new tab) and Aexol Studio (opens in a new tab) teams, comes a Framework ensuring GraphQL Resolvers and arguments type-safety. Written in TypeScript.
😮 Features
Axolotl is a framework wrapper that lets you forget about type‑casting and schema spelunking. When there is no drama, only efficiency remains.
- ⚙️ Generates models at runtime during development - which ensures type safety
- 🏃 Enables seamless migration between different GraphQL Servers like GraphQL Yoga and Apollo Server
- 🤓 Lets you write your own adapters for various purposes
- 🐙 Supports micro-federation! It allows to merge different schemas and resolvers inside one repository.
- 🦕 Supports Deno from version 0.2.7. It works with Deno in production.
- 😂 Is very easy to set up, start and integrate. You just need to
npx @aexol/axolotl create-yoga
- 🦎 includes modularium, a package with installable GraphQL schemas with backend
🤔 Story
Writing GraphQL for backend developers remains a complicated process when you want to take the schema-first approach instead of going code-first. I was in the type-safety rabbit hole while building GraphQL Zeus (opens in a new tab) (a GraphQL client with almost 1 million downloads). Maintaining Zeus and developing with the constantly-changing TypeScript proved to be really hard.
Over the years, I have come to understand that there was even more to it: we needed an evolutionary framework. I decided to write something simpler. Something that the community needed that integrated everything using the same knowledge. Something, ultimately, much more powerful.
This is how Axolotl was born.
😇 How It Works
Axolotl provides type‑safety and lets you choose the adapter (or write your own). You develop your GraphQL project quickly, and the adapter handles the runtime details for your chosen server.
Repository
Element | Description |
---|---|
Adapters | To develop adapters for popular nodejs frameworks |
Examples | To experiment with axolotl and its packages |
Modularium | Installable code chunks for your project |
Micro-federation | To use the micro-federation feature in axolotl - Micro-federation means that all the modules are located within one project or one monorepo or are distributed as npm packages - The axolotl projects are merged to the supergraph later |
Development
[!IMPORTANT] To start developing you need to know a few things.
This is an npm workspaces monorepo.
Build workspaces in order:
npm run build --ws --if-present
Run an example:
npm run start -w examples/beerpub-yoga