I wanted a way to build backends quickly while keeping the frontend experience equally straightforward.
RoadmanJS was the experiment: think of a composable package system for backend capabilities. Teams could work independently on packages, then export GraphQL resolvers, database models, and client queries together.
For example, a chat package could contain everything needed to add a full-featured chat capability. At the application level, you would compose the packages you need:
import { roadmanPackage, aResolver, bResolver } from "@roadmanjs/package"; roadman({ roadmen: [roadmanPackage], resolver: [...aResolver, bResolver], });
Each package could define its own required environment variables. Once it was added, the GraphQL IDE exposed the queries, mutations, and subscriptions supplied by that package.
The client side followed the same idea. A package could export the GraphQL operations a React app needed, keeping the API surface close to the code that owned the capability.
