How can Shyft help you and your project?
Shyft was developed ๐ฅ and battle-tested โ๏ธ alongside numerous real-life projects. Features were build ๐ based on actual use-cases ๐ผ. Shyft takes care of the simple and the complex parts in your project so you can focus ๐ฌ on the actual task at hand ๐ค.
Source of Truth
Source of Truth
Keep type definitions, validation rules, permissions settings and documentation in one place - the model.
Generators
Generators
Generate a strict GraphQL layer and persistence layer from the same model.
Permissions
Permissions
Shyft comes with a powerful permission framework. From simple role-based access to complex data-driven access rules - Shyft has got you covered.
Filters
Filters
Combine AND
and OR
filters, apply deeply nested selectors or write your own pre-filtering code - Shyft has it all.
Workflows
Workflows
Build complex business workflows with fine-grained control over access and input fields.
Pagination
Pagination
Go with a traditional limit/offset-based approach or jump onto the cursor-based pagination train.
Hooks
Hooks
Define your own hooks on input and output to modify data as needed.
Performance
Performance
Shyft uses the popular DataLoader utility to fetch data in a performant manner.
CRUD+
CRUD+
Every entity is equipped with standard mutations. Replace them or add new ones - it's up to you.
Validation
Validation
Shyft lets you bring your own validation framework to check input fields.
I18n Inside
I18n Inside
We baked internationalization into Shyft right from the start.
TypeScript
TypeScript
Enjoy an awesome DX powered by TypeScript.
Actions
Actions
For more complex data fetching and mutation jobs Shyft provides a place to build your own queries and mutations.
Relay Connections
Relay Connections
Move inside the graph from relation to relation using the convenient Relay standard.
More
More
There is even more: hidden fields, dynamic field resolvers, mock data, migrations, ...