React Starter Kit — isomorphic web app boilerplate (Node.js, Express, GraphQL, React.js, Babel, PostCSS, Webpack, Browsersync)

Overview

React Starter Kit — "isomorphic" web app boilerplate  

React Starter Kit is an opinionated boilerplate for web development built on top of Node.js, Express, GraphQL and React, containing modern web development tools such as Webpack, Babel and Browsersync. Helping you to stay productive following the best practices. A solid starting point for both professionals and newcomers to the industry.

See getting started guide, demo, docs, roadmap  |  Join #react-starter-kit chat room on Gitter  |  Visit our sponsors:

Hiring

Getting Started

Customization

The master branch of React Starter Kit doesn't include a Flux implementation or any other advanced integrations. Nevertheless, we have some integrations available to you in feature branches that you can use either as a reference or merge into your project:

You can see status of most reasonable merge combination as PRs labeled as TRACKING

If you think that any of these features should be on master, or vice versa, some features should removed from the master branch, please let us know. We love your feedback!

Comparison

 

React Starter Kit

React Static Boilerplate

ASP.NET Core Starter Kit

App type Isomorphic (universal) Single-page application Single-page application
Frontend
Language JavaScript (ES2015+, JSX) JavaScript (ES2015+, JSX) JavaScript (ES2015+, JSX)
Libraries React, History, Universal Router React, History, Redux React, History, Redux
Routes Imperative (functional) Declarative Declarative, cross-stack
Backend
Language JavaScript (ES2015+, JSX) n/a C#, F#
Libraries Node.js, Express, Sequelize,
GraphQL
n/a ASP.NET Core, EF Core,
ASP.NET Identity
SSR Yes n/a n/a
Data API GraphQL n/a Web API

Backers

React Starter Kit? Help us keep it alive by donating funds to cover project expenses via OpenCollective or Bountysource!

lehneres Tarkan Anlar Morten Olsen Adam David Ernst Zane Hitchcox

How to Contribute

Anyone and everyone is welcome to contribute to this project. The best way to start is by checking our open issues, submit a new issue or feature request, participate in discussions, upvote or downvote the issues you like or dislike, send pull requests.

Learn More

Related Projects

  • GraphQL Starter Kit — Boilerplate for building data APIs with Node.js, JavaScript (via Babel) and GraphQL
  • Membership Database — SQL schema boilerplate for user accounts, profiles, roles, and auth claims
  • Babel Starter Kit — Boilerplate for authoring JavaScript/React.js libraries

Support

License

Copyright © 2014-present Kriasoft, LLC. This source code is licensed under the MIT license found in the LICENSE.txt file. The documentation to the project is licensed under the CC BY-SA 4.0 license.


Made with by Konstantin Tarkus (@koistya) and contributors

Comments
  • Which Flux implementation should I use?

    Which Flux implementation should I use?

    opened by koistya 75
  • Bootstrap implementation

    Bootstrap implementation

    You are writing about Bootstrap but I don't see implementation of this frontend framework inside your starter-kit app htmls/css/less files. This is not just installing bootstrap but also changes in current layout.

    1. Are you going to use it in new version?
    2. Am I right - to use bootstrap,jquery or other frontend/view libraries with React we should use Bower?

    Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

    opened by sebgos 56
  • sequelize dependency error 'Please install sqlite3 package manually'

    sequelize dependency error 'Please install sqlite3 package manually'

    Got this error.

    /Users/corto/mega/MyApp/node_modules/sequelize/lib/dialects/sqlite/connection-manager.js:24
        throw new Error('Please install sqlite3 package manually');
              ^
    Error: Please install sqlite3 package manually
        at new ConnectionManager (/Users/corto/mega/MyApp/node_modules/sequelize/lib/dialects/sqlite/connection-manager.js:24:11)
        at new SqliteDialect (/Users/corto/mega/MyApp/node_modules/sequelize/lib/dialects/sqlite/index.js:12:28)
        at new Sequelize (/Users/corto/mega/MyApp/node_modules/sequelize/lib/sequelize.js:233:18)
        at Object.<anonymous> (/Users/corto/mega/MyApp/build/webpack:/data/sequelize.js:13:19)
        at __webpack_require__ (/Users/corto/mega/MyApp/build/webpack:/webpack/bootstrap 6d1086b2a4d5e521e79e:19:1)
        at Object.module.exports.Object.defineProperty.value (/Users/corto/mega/MyApp/build/webpack:/data/models/index.js:10:1)
        at __webpack_require__ (/Users/corto/mega/MyApp/build/webpack:/webpack/bootstrap 6d1086b2a4d5e521e79e:19:1)
        at Object.<anonymous> (/Users/corto/mega/MyApp/build/webpack:/core/passport.js:18:1)
        at __webpack_require__ (/Users/corto/mega/MyApp/build/webpack:/webpack/bootstrap 6d1086b2a4d5e521e79e:19:1)
        at Object.<anonymous> (/Users/corto/mega/MyApp/build/webpack:/server.js:21:1)
        at __webpack_require__ (/Users/corto/mega/MyApp/build/webpack:/webpack/bootstrap 6d1086b2a4d5e521e79e:19:1)
        at /Users/corto/mega/MyApp/build/webpack:/webpack/bootstrap 6d1086b2a4d5e521e79e:39:1
        at Object.<anonymous> (/Users/corto/mega/MyApp/build/webpack:/webpack/bootstrap 6d1086b2a4d5e521e79e:39:1)
        at Module._compile (module.js:409:26)
        at Object.Module._extensions..js (module.js:416:10)
        at Module.load (module.js:343:32)
    

    OSX 10.11 x64 No matter - node v4 or v5 still got this error

    opened by dmitryverkhovtsev 42
  • How to call child component method from parent?

    How to call child component method from parent?

    Child.js

    import s from './Child.css';
    
    class Child extends Component {
     getAlert() {
        alert('clicked');
     }
     render() {
      return (
        <h1 ref="hello">Hello</h1>
      );
     }
    }
    
    export default withStyles(s)(Child);
    

    Parent.js

    class Parent extends Component {
     render() {
      onClick() {
        this.refs.child.getAlert() // undefined
      }
      return (
        <div>
          <Child ref="child" />
          <button onClick={this.onClick.bind(this)}>Click</button>
        </div>
      );
     }
    }
    
    antipattern 
    opened by devk1d 41
  • Use react-router; client- and server side rendering

    Use react-router; client- and server side rendering

    Use react-router instead of react-routing library.

    As per #345

    Update. Here is a live version with react-router https://limitless-wave-36322.herokuapp.com/


    This change is Reviewable

    opened by okendoken 40
  • Use react-router

    Use react-router

    How do you feel about using react-router instead of a custom basic routing approach? It seems to be getting super popular and the fact that it's build for react makes me like it a lot more anyways

    Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

    question 
    opened by jakecraige 36
  • Convert from react-routing to react-router

    Convert from react-routing to react-router

    Has anyone done this recently? I see that around Sept of 2014 it switched from director to react-router and now it's on react-routing. There doesn't seem to be a lot of documentation around that, furthermore, most people seem to be using react-router instead.

    Is anyone else in the same boat I am? I'd rather use something that has a bit more community around it if possible.

    Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

    help wanted 
    opened by thehashrocket 32
  • Page delay on first load on publish (locally too).

    Page delay on first load on publish (locally too).

    Hello, i have published page and saw there is delaya on initial load the page and i do not mean in data load from database. I just used pingdom and saw there is delay. If check ur demo site demosite You will see the orange one wait 153ms. In my site it is 4.08 sec. test

    Also like ur and mine first page is too big In ur Demosite -> 4.4 MB because of Script 1.33 MB In my site -> 5.1 MB script 2.15

    Also is normal for vendor.js be 1.6MB? Any suggestion or guideline where to look or check this better?

    opened by epozsh 24
  • ESLint: Unable to resolve path to module

    ESLint: Unable to resolve path to module

    We have solution for absolute path, like this:

    import MyComponent from 'src/components/MyComponent'
    

    It is work fine for yarn start, but for yarn lint:

    Unable to resolve path to module 'src/components/MyComponent'     import/no-unresolved
    

    I have solution for my other project (no RSK) with WebStorm:

    1. project_dir - Mark Directory as > Resource Root

    2. yarn add eslint-import-resolver-webpack -D

    3. config/default.js

    ...
    	resolve: {
    		// We can now require('file') instead of require('file.jsx')
    		extensions: ['', '.js', '.jsx', '.scss'],
    		alias: {
    			src: path.resolve(__dirname, '../src')
    		}
    	},
    ...
    
    
    1. .eslintrc.js
    
    /* global __dirname */
    
    const path = require('path');
    
    ...
    	settings: {
    		'import/resolver': {
    			webpack: {
    				config: path.join(__dirname, '/config', 'default.js')
    			}
    		}
    	}
    ...
    
    

    How to solve this issue for RSK? Please help me.

    opened by comerc 24
  • Any help / turorials on how the router works in this specific kit?

    Any help / turorials on how the router works in this specific kit?

    It seems to be that the router in this project isn't configured the same standard way all the tutorials and documentation out there do.

    e.g. server.js uses a dispatch event, I can't find any sample code elsewhere that uses this method, even in the API docs for react-router.

    server.get('*', async (req, res, next) => {
        ...
    
        await Router.dispatch({ path: req.path, context }, (state, component) => {
          data.body = ReactDOM.renderToString(component);
          data.css = css.join('');
        });
    
        const html = ReactDOM.renderToStaticMarkup(<Html {...data} />);
        res.status(statusCode).send('<!doctype html>\n' + html);
    
      ...
    });
    

    I'm trying to configure the router to load routes lazily in a similar way to this example project.

    In that huge-apps example code you can asynchonouly chose which routes to load in a route config

    module.exports = {
      path: 'course/:courseId',
    
      getChildRoutes(location, cb) {
        require.ensure([], (require) => {
          cb(null, [
            require('./routes/Announcements'),
            require('./routes/Assignments'),
            require('./routes/Grades')
          ])
        })
      },
    
      ...
    }
    

    I can't figure out how to apply the same thing to the way routing is done in this starter kit, anyone got similar experiences or can share their knowledge?

    Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

    ready 
    opened by AlastairTaft 24
  • implement auth with the Flux based router

    implement auth with the Flux based router

    @koistya mind giving an example of how to setup an auth flow with the current setup? One of the biggest perks of switching to react-router is the out of box support for auth by using nested routes. thanks! ref #21

    Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

    enhancement help wanted 
    opened by frankleng 24
  • feat: Shared modules example

    feat: Shared modules example

    This is just a quick demo branch demonstrating the usage of a shared module (Yarn package) — core that is referenced in the front-end app (app). When you run the app locally (via yarn start) and make changes to the core package, Vite picks up changes from the referenced package (core) without a need to compile it first, as well as pulling just the changed file.

    example 
    opened by koistya 0
Releases(v0.4.0)
  • v0.4.0(Aug 28, 2015)

    • Remove Gulp in favor of custom JavaScript-based build automation scripts
    • Integrate react-routing and history npm modules
    • Remove Flux actions, stores to reduce unnecessary overload
    • Refactor the way content pages (About Us, Privacy etc.) are loaded into the app
    • Add basic version of an "isomorphic" HTTP client based on superagent (see src/core/HttpClient.js)
    • Remove LESS in favor of plain CSS via PostCSS, cssnext
    • Get rid of Uglifyjs warnings during build in release mode
    • Remove Database.js file to reduce overload and simplify server-side rendering
    • Compile static files into the build/public folder
    • Add a couple of RESTful API sample routes based on Express (see src/api/*.js)
    • Pre-render critical CSS on the initial page load to deal with FOUC
    • Render the top level component to <div id="app"></div> instead of document.body
    • Improve server-side rendering logic
    • Improve documentation
    • Update dot files with project settings for text editors and IDEs
    Source code(tar.gz)
    Source code(zip)
  • v0.3.3(Apr 16, 2015)

    • Update Babel to 5.0: http://babeljs.io/blog/2015/03/31/5.0.0/
    • Remove Use Strict Directive from .js files since Babel inserts them automatically
    • Update deployment script. See deploy task in gulpfile.js
    • Update other npm modules
    Source code(tar.gz)
    Source code(zip)
  • v0.3.2(Apr 8, 2015)

    • Add React style guide (see ./docs)
    • Update React to 0.13; update other npm modules
    • Update React components to use ES6 class-based syntax
    • Add a higher-order React component sample (see App/AppViewport)
    • Replace JSHint with ESLint
    • Add JSCS config file
    • Update .gitattributes and .gitignore files
    • Update favicon.ico and other icons
    Source code(tar.gz)
    Source code(zip)
  • v0.3.1(Feb 25, 2015)

  • v0.3.0(Feb 9, 2015)

Owner
Kriasoft
Here on GitHub we share our experience with web infrastructure, scalable web application design, and DevOps.
Kriasoft
Single Page Application with React, React Router, PostCSS, Webpack, Docker and Docker Compose.

spa-store Single Page Application with React, React Router, PostCSS, Webpack, Docker and Docker Compose. Contributing Feedback Roadmap Releases Check

Luis Falcon 2 Jul 4, 2022
This is a starter file with base SvelteKit skeleton configurations with Open Props, Jit Props, and PostCSS configured.

create-svelte Everything you need to build a Svelte project, powered by create-svelte; Creating a project If you're seeing this, you've probably alrea

Brittney Postma 4 Jul 22, 2022
React/Express/Webpack Boilerplate

React Boilerplate The following repo contains a very basic setup git clone https://github.com/asieke/React-Express-Boilerplate.git cd React-Express-Bo

Alex Sieke 5 Dec 30, 2022
A complete set up of the React application with Typescript, Webpack 5, Babel v7, SSR, Code Splitting and HMR.

Getting Started with react-final-boilerplate Clone the code npm install You are good to go with React Application. Open http://localhost:3000/ and you

null 24 Dec 22, 2022
Starter kit with Next.js, Chakra-UI, Framer-Motion in Typescript. Internationalization, SEO, Components, Theme (dark/light) and more...

Typescript Next.js Chakra-UI Framer-Motion Starter Kit Start with a powerful template ⚡️ Table of contents Getting started Paths & Files Useful depend

Alexandre Gossard 40 Jan 7, 2023
Chrome-extension-react-boilerplate - Simple Chrome extension React boilerplate.

Simple Chrome extension React boilerplate This is a simple chrome extension boilerplate made in React to use as a default structure for your future pr

Younes 6 May 25, 2022
experimental project for babel-plugin-mutable-react-state

Goalist Mutable React Example This example is an attempt to work with babel-plugin-mutable-react-state on a simpler project to see how complicated wou

Reaper 1 Jun 7, 2022
Webpack is an open-source JavaScript module bundler. This includes basic setup files to help me not redo all the setups for webpack when starting a new project.

Webpack Setup Webpack is an open-source JavaScript module bundler. It is made primarily for JavaScript, but it can transform front-end assets such as

Nemwel Boniface 14 Jun 23, 2022
This is a simpler project than the full webpack source code, and you can understand the design ideas in webpack through it

my-webpack 这是一个简化版的webpack,旨在于理解webpack的设计原理以及webpack当中 loader和plugin的区别,运行方式。 运行步骤如下(方案一): 切换到my-webpack目录,运行npm install 切换到test目录,运行npm install 在tes

null 14 Sep 30, 2022
Babel Plugin Lite Regenerator

Babel Plugin Lite Regenerator intro This babel plugin is a ported version of TypeScript generator transform. It can transform async and generator func

Shi Meng 6 Jul 8, 2022
a babel plugin that can transform generator function to state machine, which is a ported version of typescript generator transform

Babel Plugin Lite Regenerator intro This babel plugin is a ported version of TypeScript generator transform. It can transform async and generator func

Shi Meng 6 Jul 8, 2022
Starter Antd 4.0 Admin App Mern( Node.js / React / Redux / Ant Design ) Crud & Auth , Dashboard

Starter Antd Admin (Crud & auth) Mern App (Express.js / React / Redux / MongoDB) App built for DigitalOcean MongoDB Hackathon CRM Starter Mern Antd Ad

Salah Eddine Lalami 208 Jan 8, 2023
The chat app built with microservice architecture, the app using: Lerna, pm2, GraphQL

Microservice Chat App A microservice app! Built With Lerna pm2 Graphql Sequelize Socket.io About The Project Here's why: I want learn socket.io and mi

A.Samet Palitci 26 Aug 27, 2022
Simple React Social Network, built with React,Node,Express,MongoDB and Tailwind

Full stack react social network application A mini social network application built with React,Typescript, Redux, Node, Express, MongoDB, and Tailwind

Albenis Kërqeli 31 Dec 19, 2022
boilerplate for react-firebase app

Goal of the project Everytime there is an idea about web app side project, significant amount time is spent on building boilerplate code. Especially g

Ephraim Park 4 Dec 8, 2022
This project is a React Native Boilerplate that can be used to kickstart a mobile app.

Meta Point People: Mounir Dhahri This is an Artsy OSS project. Don't know what Artsy is? Check out this overview and more, or read our objc.io on team

Artsy 4 Jul 6, 2022
React - Express app with Typescript

Mongo, Express, React, Node, Typescript ##Usage Instructions ###To run the app, Install global dependencies with npm install -g gulp bower react-tools

Daniel Nikravesh 7 Apr 14, 2022
React-app - Building volume rendering web app with VTK.js,react & HTML Using datasets provided in vtk examples (head for surface rendering and chest for ray casting)

SBE306 Assignment 4 (VTK) data : Directory containing Head and Ankle datasets Description A 3D medical viewer built with vtk-js Team Team Name : team-

Mustafa Megahed  2 Jul 19, 2022
A frontend Framework for building B2B applications running in the browser on top of REST/GraphQL APIs, using ES6, React and Material Design

react-admin A frontend Framework for building data-driven applications running in the browser on top of REST/GraphQL APIs, using ES6, React and Materi

marmelab 21.2k Dec 30, 2022