{"id":13395424,"url":"https://github.com/reactGo/reactGo","last_synced_at":"2025-03-13T20:32:15.894Z","repository":{"id":23388704,"uuid":"26750407","full_name":"reactGo/reactGo","owner":"reactGo","description":"Your One-Stop solution for a full-stack universal Redux App!","archived":false,"fork":false,"pushed_at":"2023-09-24T12:01:24.000Z","size":4500,"stargazers_count":2804,"open_issues_count":25,"forks_count":562,"subscribers_count":93,"default_branch":"master","last_synced_at":"2024-10-29T15:17:18.728Z","etag":null,"topics":["full-stack","javascript","react","react-router","redux","universal","webpack"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/reactGo.png","metadata":{"files":{"readme":"README.md","changelog":"Changelog.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-11-17T09:51:09.000Z","updated_at":"2024-10-23T02:30:30.000Z","dependencies_parsed_at":"2024-06-19T10:09:06.787Z","dependency_job_id":null,"html_url":"https://github.com/reactGo/reactGo","commit_stats":{"total_commits":782,"total_committers":61,"mean_commits":"12.819672131147541","dds":"0.46803069053708435","last_synced_commit":"a2605f97666585534761b3c03bea8247547a833e"},"previous_names":["choonkending/react-webpack-node"],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reactGo%2FreactGo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reactGo%2FreactGo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reactGo%2FreactGo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reactGo%2FreactGo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/reactGo","download_url":"https://codeload.github.com/reactGo/reactGo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243478469,"owners_count":20297266,"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":["full-stack","javascript","react","react-router","redux","universal","webpack"],"created_at":"2024-07-30T17:01:57.876Z","updated_at":"2025-03-13T20:32:15.529Z","avatar_url":"https://github.com/reactGo.png","language":"TypeScript","readme":"# reactGo\n\n[![Dependency Status][dep-status-img]][dep-status-link]\n[![Gitter][gitter-img]][gitter-link] [![npm version][npm-badge]][npm-link]\n\n[한글 공식문서](https://github.com/reactGo/reactGo/blob/master/README_KO.md)\n\n\u003e Your One-Stop solution for a full-stack app with ES6/ES2015 React.js featuring universal Redux, Redux Thunk, React Router, Hot reloading, Emotion, Express 4.x, and multiple ORMs. :rocket:\n\n_Formerly known as choonkending/react-webpack-node_\n\n[dep-status-img]: https://img.shields.io/librariesio/release/npm/@reactgo/cli\n[dep-status-link]: https://libraries.io/npm/@reactgo%2Fcli\n[gitter-img]: https://badges.gitter.im/Join%20Chat.svg\n[gitter-link]: https://gitter.im/choonkending/react-webpack-node?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge\n[npm-badge]: https://badge.fury.io/js/%40reactgo%2Fcli.svg\n[npm-link]: http://badge.fury.io/js/%40reactgo%2Fcli\n\n![Cap 2020-11-16 12-51-16-569](https://user-images.githubusercontent.com/10962668/99211114-f29b9a80-280a-11eb-804c-2cdc26180d3d.png)\n\n![2020-11-15 14-39-12](https://user-images.githubusercontent.com/10962668/99179817-646cd900-2764-11eb-8fd4-c3591b6dce61.gif)\n\n## Features:\n- ~~isomorphic~~ [**universal**](https://medium.com/@ghengeveld/isomorphism-vs-universal-javascript-4b47fb481beb#.4x2t3jlmx) Rendering\n- [**Redux**](https://github.com/reactjs/redux) Predictive state containers.\n- [**Redux Thunk**](https://github.com/reduxjs/redux-thunk) for asynchronous action dispatch.\n- Server-side rendering with [**React Router**](https://github.com/reactjs/react-router) 5.x. Having server-side rendering allows you to pre-render the initial state of your components when a user (or search engine crawler) requests a page.\n- Integrating Redux with React Router with [**Connected React Router**](https://github.com/supasate/connected-react-router)\n- Asynchronous Data Fetching on server-side rendering(SSR)\n- Server side authentication + Redirecting for components\n- Hot reloading using [**hot-loader/react-dom**](https://github.com/hot-loader/react-dom)\n- Time travel using [**Redux-Devtools Chrome Extension**](https://github.com/zalmoxisus/redux-devtools-extension)\n- [**Webpack 5**](https://github.com/webpack/webpack) for both development and production bundles. It's (in my opinion) the best bundler for JS, CSS, LESS, images, and lots more!\n- [**emotion**](https://emotion.sh/docs/introduction) allows for CSS-in-JS. Say goodbye to conflicts (most of them) and global scope\n\n- **Unit Testing** with jsdom, mocha, sinon \u0026 enzyme\n\t- Reducers\n\t- Components ([Enzyme](http://airbnb.io/enzyme))\n\t- Synchronous and Asynchronous Actions\n\n- Express 4.x server with a ton of middleware\n- Mongoose for MongoDB\n- Sequelize for Postgres or MySQL\n- Procfile to enable deployment to Heroku \u0026 Docs on Salt configurations + Deployment for Digital Ocean\n\n\n## Motivation\n\nThe motivation is simple: best practices and a wonderful development experience. Our ultimate goal is to provide a boilerplate for building non-trivial applications that are secure, performant and free of bugs. Believing a mixture of React.js, Webpack and Node was the best way to accomplish this, we created react-webpack-node.\n\nreactGo also works great as a learning tool for anyone interested in learning how to implement a large React application, or those who want a modern setup ASAP.\n\nWe've had extensive community additions to this boilerplate over time as practices have evolved, and are always interested in hearing new ideas or contributions.\n\n## Why Redux\n\nWe're really big fans of this implementation of flux for state management. The main principles of having:\n- a single store\n- state being read-only (you have to express an intent to mutate being creating actions)\n- mutations written as pure functions\n\nmake it very fun and easy to write **predictable** code! There's a ton of reasons why, but you should head to the [Redux docs](http://redux.js.org/index.html) to dive in!\n\nOr if you are more of a *visual learner* watch the free egghead video series narrated by the creator of redux:\n\n1. [Getting Started](https://egghead.io/series/getting-started-with-redux)\n2. [Building Idiomatically](https://egghead.io/series/building-react-applications-with-idiomatic-redux)\n\n#### Data Flow\n\nA simplistic representation of data flow from server to client is:\n\n```\nExpress app.use() receives a request\n-\u003e Calls a pre-built webpack file for the server\n-\u003e Runs matching of routes in react-router for server(with react-router-config)\n-\u003e Makes async data fetching request\n-\u003e Renders Route component to string\n-\u003e Construct HTML file (with Meta, Link tags using helmet)\n-\u003e Browser receives html file with initial state\n-\u003e Client side React.JS kicks in and initializes with given state\n-\u003e Continues where it left off\n-\u003e Everyone is happy :)\n```\n\nMore TBD\n\n## Instructions\n\n#### Database\n\nWe currently support MongoDB, MySQL and Postgres, as well as the ability to not use any database. [Learn](docs/databases.md) about how to configure your app.\n\n#### Development\n\nYou have to install ReactGo CLI to set up development environment.\n\n```bash\n# Install ReactGo CLI first\n# Your terminal have to be located at reactGo project.\nnpm i -g @reactgo/cli\n# After installation, move to the directory you wanna clone ReactGo\ncd /somewhere/you/want/to/clone\n# Run CLI and choose which stack you wanna use\nreactgo\n``` \n\nThe next process is outlined [here](docs/development.md).\n\n#### Building the application\n\n```bash\n# Build the application for development\nnpm run build\n\n# Build the application for production\nnpm run build:dev\n```\n\n#### Running the application\n\n```bash\n# Run in development mode (with hot-reloading)\nnpm run dev\n\n# Run in production mode\nnpm start\n```\n\n#### Unit Tests\n\nTesting with:\n- `mocha` as the test framework\n\t- We find all the files we need that have a `-test.js` suffix in the `/app` directory.\n- `jsdom` as my test environment\n\n```bash\n# Run test once\nnpm test\n\n# Run in watch mode\nnpm test:watch\n```\n\nWe have unit tests for async (redux) actions, reducers, and stateless components with [enzyme](http://airbnb.io/enzyme).\n\n#### Deployment\n\nCurrently we support [Heroku](docs/deployment/Heroku.md) and [Digital Ocean](docs/deployment/DigitalOcean.md) and [AWS](docs/deployment/aws.md)\n\n## Check out what people have done\n\nWe have a [list](/docs/apps.md) of projects that have been created with this boilerplate. Check\nthem out to see what can be done or to get some inspiration.\n\n## How to Contribute:\n\nBest way to keep up to date is check the [issues](https://github.com/reactGo/reactGo/issues). I really welcome improvements for **all aspects** of an app.\n\n1. Any suggestions/improvements/bugs can be in the form of Pull Requests, or creating an issue.\n2. Coding guidelines:\n - [Airbnb's Style Guide](https://github.com/airbnb/javascript)\n - [bendc's frontend guidelines](https://github.com/bendc/frontend-guidelines)\n3. If you wanna change codes and make some PR, you have to follow following steps.\n```bash\n# Install ReactGo CLI\n# Your terminal have to be located at reactGo project.\nnpm i -g\n# Run CLI and choose which stack you wanna change\nreactgo -d\n# Then app and server folders will be symlinked from original ones that you chose.\n# Change whatever you want, but don't touch app and server folders. Those are just symlinks.\n# Commit and push after done.\n``` \n\n**Easter Eggs** :egg:\n\nThis boilerplate has gone through an evolution\n```\nReact.js -\u003e Facebook Flux -\u003e Alt -\u003e Redux(thunk -\u003e saga -\u003e toolkit)\n                                 -\u003e MobX(in mobx branch)\n```\n\nLicense\n===============\nMIT\n","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FreactGo%2FreactGo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FreactGo%2FreactGo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FreactGo%2FreactGo/lists"}