Skip to content
/ yote Public
forked from fugitivelabs/yote

Yote is the best super-stack solution for any data-driven application

Notifications You must be signed in to change notification settings

yoteapp/yote

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,651 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Howler Logo

Welcome to Yote!

Yote is the best super-stack solution out there for any data-driven application.

$ (sudo) npm install -g yote

The Super Stack


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:

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

Philosophy


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.

Prerequisites


We assume at least intermediate-level knowledge of Javascript. For the server you'll need to MongoDB installed and running, and NodeJS >= v20.19.1. For the web client and mobile, it's best to have at least a basic understanding of ReactJS and Redux Toolkit.

In YOTE, we (mis)use Redux Toolkit to maintain a current cache of the server data structured as a normalized state. This is a bit of a departure from the typical use of Redux, but we've found it to be a very powerful pattern for efficiently managing data fetching and mutation. Read more about our state management pattern here.

Basic Usage


  1. Make sure you have MongoDB installed, instructions here, and have a mongo server running locally on the default port.

    $[~] mongod --dbpath /path/to/data/db
    
  2. Install dependencies...

Clone this repository and install dependencies for the main dir and the server and web apps: From the root of the project, run:

$ npm run install:all
  1. Start the app (dev mode)...

From the root of the project, run:

$ npm run start

This will start both the server and the frontend using ViteExpress. You should see output similar to:

...
Example app listening at localhost:3233
  1. In your browser, navigate to http://localhost:3233 and you should see the "Welcome to Yote" screen.

Documentation


See the full docs at fugitivelabs.github.io/yote/

Contributing


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.

License


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.

About

Yote is the best super-stack solution for any data-driven application

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 93.0%
  • Java 2.6%
  • C++ 1.2%
  • CSS 0.8%
  • Objective-C++ 0.7%
  • HTML 0.5%
  • Other 1.2%