Split optional functionality into packages
I'm still on the fence about doing this, but my gut is telling me it's right. As time passes, I'm finding a lot of different use cases for Joystick, each with their own set of technical requirements. I'm hesitant to take the "package all the things" approach because it usually creates a mess.
There are some things, though, that could be split off without any impact. For example, if you want to use PostgreSQL, install @joystick.js/postgresql or if you don't need to handle any uploads, remove the @joystick.js/upload package.
Where this starts to make sense is in updating the joystick create <app> function to offer a wizard style UI where you can customize the resulting project, selecting which features you want to have those packages installed.
Would also be handy to integrate some sort of warning system into stuff like @joystick.js/node. For example, if you add the uploaders option to node.app() and @joystick.js/upload isn't installed, throw a warning in the console.
I was against this at first but the further I get I think there's some merit. Some projects need stuff, some don't. May do this post-1.0 but if I have time would be good to get a solution implemented.