
Boilerplate for graphql and graphql-ws using Apollo Server Express and powered by TypeORM and TypeGraphQL to make your work is quicker and easier.
This boilerplate is designed to streamline the development process when working with GraphQL and WebSocket functionalities via Apollo Server Express. It leverages TypeORM and TypeGraphQL to allow developers to get their projects up and running more efficiently. Created by Arya W Pratama, this setup aims to simplify workflows, making it an attractive option for developers looking to save time and effort in their projects.
What stands out in this boilerplate is its emphasis on practical features that support authentication, database management, and ease of use, all while ensuring clean code is maintained. For those venturing into GraphQL, this setup provides meaningful assistance that encourages best practices without overwhelming newcomers.
Basic JWT Login and Register System: Implements a straightforward authentication flow, allowing users to log in and register with JSON Web Tokens.
Role Based Access Control Guard: Ensures that different user roles have appropriate access to resources within the application, enhancing security.
GraphQL WebSocket Support: Utilizes graphql-ws for real-time subscriptions, enabling live updates and interactions within the app.
Database Faker Integration: Easily seed your database with realistic fake data using Faker and TypeORM, streamlining development and testing processes.
Build Helpers: Keeps your build folder organized, contributing to a clean project structure and making management easier.
TypeScript and TypeGraphQL Support: Offers strong typing and decorators, making code more maintainable and understandable.
Extensive Command Scripts: Includes easy-to-follow command scripts for building, seeding, and managing your database, simplifying project management.
Customizable Path Aliases: Allows you to tailor the project structure to your liking through easy modifications in tsconfig.json.

Express.js is a simple Node.js framework for single, multi-page, and hybrid web applications.
ESLint is a linter for JavaScript that analyzes code to detect and report on potential problems and errors, as well as enforce consistent code style and best practices, helping developers to write cleaner, more maintainable code.
A website that uses GraphQL as a query language to manage data fetching and state management. This includes features such as a strongly typed schema, client-side caching, and declarative data fetching to streamline data management and optimize website performance.
TypeScript is a superset of JavaScript, providing optional static typing, classes, interfaces, and other features that help developers write more maintainable and scalable code. TypeScript's static typing system can catch errors at compile-time, making it easier to build and maintain large applications.