{"id":13764372,"url":"https://github.com/GordyD/3ree","last_synced_at":"2025-05-10T19:30:58.227Z","repository":{"id":149490131,"uuid":"42030699","full_name":"GordyD/3ree","owner":"GordyD","description":"An example universal JS application written with the 3REE stack, React + Redux + RethinkDB + Express. A stack for building apps, front and back end, with just Javascript.","archived":false,"fork":false,"pushed_at":"2018-10-06T14:58:31.000Z","size":128,"stargazers_count":846,"open_issues_count":5,"forks_count":91,"subscribers_count":31,"default_branch":"master","last_synced_at":"2024-11-17T00:33:36.866Z","etag":null,"topics":["boilerplate","express","javascript","react","redux","rethinkdb","universal"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GordyD.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2015-09-07T04:08:41.000Z","updated_at":"2024-10-26T07:13:10.000Z","dependencies_parsed_at":"2023-05-01T05:17:51.288Z","dependency_job_id":null,"html_url":"https://github.com/GordyD/3ree","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GordyD%2F3ree","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GordyD%2F3ree/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GordyD%2F3ree/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GordyD%2F3ree/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GordyD","download_url":"https://codeload.github.com/GordyD/3ree/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253470670,"owners_count":21913710,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["boilerplate","express","javascript","react","redux","rethinkdb","universal"],"created_at":"2024-08-03T16:00:19.637Z","updated_at":"2025-05-10T19:30:57.866Z","avatar_url":"https://github.com/GordyD.png","language":"JavaScript","readme":"## 3REE\n[![Circle CI](https://circleci.com/gh/GordyD/3ree.svg?style=svg)](https://circleci.com/gh/GordyD/3ree)\n\nAn example universal JS application written with the 3REE stack, *Re*act + *Re*dux + *Re*thinkDB + *E*xpress. A stack for building apps, front and back end, with just Javascript.\n\nThis project was initially conceived to experiment with using these technologies in conjunction with one-another. I have written a [blog](http://blog.workshape.io/the-3ree-stack-react-redux-rethinkdb-express-js/) that relates to this codebase.\n\n![Screenshot](http://i.imgur.com/RiFteKV.png)\n\nThis project is useful for:\n - seeing how to build a Universal Javascript application\n - understanding how to handle asyncronousity in Redux action creators\n - seeing how you can use Socket.io with Redux\n - building your own Redux powered application\n - seeing how you can use System.import() with React Router + Webpack2 to acheive code splitting for different routes of your application\n - forking so that you can build your own 3REE stack app!\n\n### Main Features\n\n - Universal (Isomorphic) Javascript Application\n - Use of Webpack 2's Code Splitting and Tree Shaking features\n - Asyncronous Redux actions example\n - Use of RethinkDB Changefeeds for realtime updates reflected in the UI\n\n### Demo\n\nThere is a demo app hosted at [3ree-demo.workshape.io](http://3ree-demo.workshape.io). Check it out. If it is down, please email  tanc@workshape.io\n\n### Setup\n\nYou will need to install [RethinkDB](http://www.rethinkdb.com). You can find instruction on how to do so [here](http://rethinkdb.com/docs/install/). Make sure you have the latest version installed.\n\n - Clone the repo `git clone git@github.com:GordyD/3ree.git`\n - Make sure you are using Node v6.0.0 (I recommend using [n](https://github.com/tj/n) for Node version management)\n - Run `npm install`\n - If your local environment is not reflected by `config/default.json`, then add a file at `config/local.json` to provide local customisation.\n - Run `npm run db-setup` to set up DB\n\n### Running Dev Server\n\nOn Linux/OSX: `npm start`\n\nOn Windows: `npm run start:win`\n\nThis will start the Webpack dev server - for serving the client, as well as the server-side API.\n\nGo to http://localhost:3001 in two separate tabs - see changes propagate in real time (Hot Module Replacement works too).\n\n### Running Production Server\n\nYou will need to roll out your own deployment script for a server, but before you can ship you will need to:\n\n - Build the client with `npm run build:prod`\n - Ensure all production npm modules are installed on the server. e.g. `npm install --prod`\n - Rsync your application to your server\n - Set up nginx or your web server of choice to map HTTP requests for your URL to `http://localhost:3000`\n - Run `npm run start:prod` to run on your server\n - Go to your URL\n\nNOTE: Production has not been tested on Windows.\n\n### Tech Used\n\n| **Tech** | **Description** |\n| ---------|-----------------|\n| [React](https://facebook.github.io/react/) | View layer |\n| [React Router](https://github.com/reactjs/react-router) | Universal routing |\n| [Redux](http://redux.js.org/) | State management |\n| [RethinkDB](http://www.rethinkdb.com) | Persistance layer |\n| [Express](http://expressjs.com/) | Node.js server framework |\n| [Socket.io]() | Used for realtime communication between clients and server |\n| [Webpack](https://webpack.github.io/) | Module bundling + build for client |\n| [Superagent](https://github.com/visionmedia/superagent) | Universal http requests |\n| [Stylus](http://stylus-lang.com/) | Expressive, dynamic, robust CSS |\n","funding_links":[],"categories":["Awesome RethinkDB [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)","Marks","Node.js"],"sub_categories":["Table of Contents","Boilerplate","Node.js packages and template projects"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGordyD%2F3ree","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FGordyD%2F3ree","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGordyD%2F3ree/lists"}