Easily split up and reuse parts of your domain. Simply plug in a module like user or shopping cart; configure it and get going. Creating and using modules is easy. They're just regular directories. No magic. No directory scanning, no prefixes, just your own code.
Written with and for TypeScript projects. Although it does work with flow and ES6 based projects, the focus is on TypeScript. Some of the reasons stix is so fast can also be attributed to its use of new features and lazy nature of service loading.
Proven to work and scale. This includes inversion of control, service managers and injectors for controllers and commands making it easy to create highly reusable and configurable modules for your API, or the CLI.
What does it contain?
Stix comes with a command line environment. Just as you can create API endpoints, you can create CLI commands. Using stix-cli you automatically get help output, as well as support for autocomplete on the cli, or as some call it "tabtab support".
We all love documentation. We all hate writing it. Especially swagger documentation. That's why stix-swagger (for real, we nailed naming these modules) automatically generates your swagger docs for you. Installing it will directly document your endpoints for you.
Feared by some, loved by many. Code generators. Quickly scaffold your boilerplate using generators. Initialize a new module, add a controller, create a new entity. All without writing a single line of code. The code generated is basic and simple and thus there's no magic. Scaffold and code away.
Stix ❤️ Wetland ORM. Offered as a module (and because of that completely optional) stix works really well with Wetland. The aptly named stix-wetland provides utilities to make working with the database a lot more fun. Besides the separation of concerns (for example the Repository and Unit of Work patterns) you also get utilities for default.
Stix-gates offers security and enrichment to your endpoints. Configure the gates to pass before executing any specific action to filter out unauthorized requests , invalid parameters or enrich the request with for example a user or ACL rules. Gates are basically dynamic middleware, only applying to the routes you configure them for.