/react-starter-kit

ReactJS / Flux Starter Kit - a skeleton for an isomorphic web application (SPA) built with Facebook's React.js library and powered by Flux architecture. It also uses ES6 Harmony, JSX, Gulp, Webpack, BrowserSync, Jest, Flow... Demo:

Primary LanguageJavaScriptMIT LicenseMIT

React / Flux  Starter Kit

Build Status Dependency Status devDependency Status Tips Gitter

This project template is a skeleton for an isomorphic web application (SPA) based on Facebook's React library and Flux architecture. You can use it to quickly bootstrap your web application projects. All the parts of this project template are easily replaceable.

Facebook React Starter Kit

Demo: http://reactjs.kriasoft.com

Architecture

This project uses the original Flux architecture utilizing a unidirectional data flow.

Directory Layout

.
├── /build/                     # The folder for compiled output
├── /docs/                      # Documentation files for the project
├── /node_modules/              # 3rd-party libraries and utilities
├── /src/                       # The source code of the application
│   ├── /actions/               # Action creators that allow to trigger a dispatch to stores
│   ├── /assets/                # Static files which are copied to ./build on compile
│   ├── /components/            # React components
│   ├── /constants/             # Enumerations used in action creators and stores
│   ├── /content/               # Website content (plain HTML or Markdown, Jade, you name it)
│   ├── /core/                  # Core components (Flux dispatcher, base classes, utilities)
│   ├── /stores/                # Stores contain the application state and logic
│   ├── /styles/                # CSS styles (deprecated, put CSS into components' folders)
│   ├── /templates/             # HTML templates for server-side rendering, emails etc.
│   ├── /app.js                 # Client-side startup script
│   └── /server.js              # Server-side startup script
│── gulpfile.js                 # Configuration file for automated builds
│── package.json                # The list of 3rd party libraries and utilities
│── preprocessor.js             # ES6 transpiler settings for Jest 
└── webpack.config.js           # Webpack configuration for bundling and optimization

Getting Started

Just clone or fork the repo and start hacking:

$ git clone -o upstream https://github.com/kriasoft/react-starter-kit.git MyApp
$ cd MyApp
$ npm install -g gulp           # Install Gulp task runner globally
$ npm install                   # Install Node.js components listed in ./package.json

How to Build

$ gulp build                    # or, `gulp build --release`

By default, it builds in debug mode. If you need to build in release mode, add --release flag.

How to Run

$ gulp                          # or, `gulp --release`

This will start a lightweight development server with LiveReload and synchronized browsing across multiple devices and browsers.

How to Deploy

$ gulp deploy                   # or, `gulp deploy --production`

You can deploy to different destinations by adding a corresponding flag. For example --production or --staging etc. See the 'deploy' task in gulpfile.js.

How to Update

You can always fetch and merge the recent changes from this repo back into your own project:

$ git checkout master
$ git fetch upstream
$ git merge upstream/master
$ npm install

How to Test

Run unit tests powered by Jest with the following npm command:

$ npm test

Test any javascript module by creating a __tests__/ directory where the file is. Name the test by appending -test.js to the js file. Jest will do the rest.

Learn More

Support

Have feedback, feature request or need help? Contact me on codementor.io/koistya.

Copyright

Source code is licensed under the MIT License (MIT). See LICENSE.txt file in the project root. Documentation to the project is licensed under the CC BY 4.0 license. React logo image is a trademark of Facebook, Inc.