Yote is the best super-stack solution out there for any data-driven application.
$ (sudo) npm install -g yote
WTH is a super-stack solution? Glad you asked. A 'super-stack' is a made up term for a solution that provides a web application, native mobile apps, and api services out of the box.
Yote should always be the most comprehensive and flexible stack available. Right now that stack looks like this:
- Database
- Server/API
- Client
- Mobile
We're not married to it, however. Yote originally used AngularJS as the client. As our average project complexity grew, we looked for a more performant solution and found it in React/Flux. Then we discovered Redux (which is awesome)... and so on.
If at some point in the future Vue.js or some other new fangled thing proves itself to be better in the wild, we reserve the right to switch things around.
We'll do our best to support older versions through the CLI, but ultimately Yote is forward-looking in nature
Yote itself is not a framework. It's not even really a library. Our idea is to simply take the best practices of the best frameworks and services available and package them up together in one place. Yote may change the nuts and bolts from time to time but the general philosophy will remain the same: Yote will always provide client-agnostic services and server-agnostic clients that are FLEXIBLE, EXTENDABLE, and PERFORMANT out of the box. The overall goal is to help developers roll out production ready super-stack solutions as quickly and painlessly as possible.
We assume at least intermediate-level knowledge of Javascript. For the server you'll need to MondoDB installed and running, and NodeJS >= v8.9.0. For the web client and mobile, it's best to have at least a basic understanding of ReactJS and Redux.
Redux can be a little tricky to wrap your brain around — particularly the
reducer
mapping. If you want to simply trust us that it works, you can just follow the patterns and you should pick it up eventually.
NOTE: Yote CLI is in active development. Note all commands may be ready. Please see
$ yote -h
for a full list of commands.
- Install the Yote CLI
$ (sudo) npm install -g yote
- Initialize your project
$ yote init MyApp # ... this may take a minute
- Change directory to
MyApp/server
and start the web serverThe Yote server is now listening at$ cd MyApp/server $ nodemon # NOTE: yote run-server coming soon...
http://localhost:3030
and watching for changes. - In a new terminal, change directory to
MyApp/client
and start the clientThis runs the Yote client in watch mode to look for and recompile changes to the$ cd MyApp/client $ npm run watch # NOTE: yote run-client coming soon...
bundle.js
- Using a browser, go to
http://localhost:3030
and you'll see "Welcome to Yote!"
See the full docs at fugitivelabs.github.io/yote/
Yote was initially built by Fugitive Labs for Fugitive Labs. We simply wanted a tool to improve our work. But we think other folks can find it useful too. We encourage you to contribute. Improvements in mind, please feel free to open a pull request.
All super-stack components are released individually under various open source licenses. Please refer to their documentation for specific licenses.
Yote itself is released under the MIT License.