To provide HubSpot developers with a flexible and powerful set of tools, the technical design is as follows:
- The commands should follow Unix best practices in terms of composability. See Unix Philosophy
Write programs that do one thing and do it well.
Write programs to work together.
Write programs to handle text streams, because that is a universal interface.
-
Don't prescribe a particular node task runner (Gulp, Grunt, etc...). Instead work to separate the cli from the underlying functionality so that we can easily create a library separate from the CLI for use in the creation of tasks.
-
Support multiple accounts. It should be easy to run the commands against multiple accounts.
-
Minimize dependencies.
-
Plan for the code to be open source.