{"id":18486103,"url":"https://github.com/zhongzhi107/universal-react-starter-kit","last_synced_at":"2025-09-17T16:32:39.858Z","repository":{"id":72115435,"uuid":"79635386","full_name":"zhongzhi107/universal-react-starter-kit","owner":"zhongzhi107","description":"Universal React Starter Kit is an universal web application framework using koa, react, redux and webpack.","archived":false,"fork":false,"pushed_at":"2017-10-05T03:39:24.000Z","size":1086,"stargazers_count":13,"open_issues_count":1,"forks_count":6,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-03T21:28:20.287Z","etag":null,"topics":["code-splitting","i18n","koa","offline","progressive-web-app","pwa","react","redux","router","seo","universal","webpack"],"latest_commit_sha":null,"homepage":"https://zhongzhi107.github.io/universal-react-starter-kit/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zhongzhi107.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"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":"2017-01-21T09:08:20.000Z","updated_at":"2017-09-11T02:32:26.000Z","dependencies_parsed_at":"2023-04-26T12:49:08.575Z","dependency_job_id":null,"html_url":"https://github.com/zhongzhi107/universal-react-starter-kit","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhongzhi107%2Funiversal-react-starter-kit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhongzhi107%2Funiversal-react-starter-kit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhongzhi107%2Funiversal-react-starter-kit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhongzhi107%2Funiversal-react-starter-kit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zhongzhi107","download_url":"https://codeload.github.com/zhongzhi107/universal-react-starter-kit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233408226,"owners_count":18671814,"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":["code-splitting","i18n","koa","offline","progressive-web-app","pwa","react","redux","router","seo","universal","webpack"],"created_at":"2024-11-06T12:47:52.116Z","updated_at":"2025-09-17T16:32:34.487Z","avatar_url":"https://github.com/zhongzhi107.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://github.com/zhongzhi107/universal-react-starter-kit/blob/master/static/images/touch/logo_144.png?raw=true\" width=\"144\" alt=\"Universal React Starter Kit\" /\u003e\n\u003ch1\u003eUniversal React Starter Kit\u003c/h1\u003e\n\u003c/div\u003e\n\nUniversal React Starter Kit is an universal web application framework using [koa](https://koajs.com/), [react](https://github.com/facebook/react), [redux](https://github.com/reactjs/redux) and [webpack](https://github.com/webpack/webpack).\n\n[![Build status](https://ci.appveyor.com/api/projects/status/xmypn7o4togy04c1?svg=true)](https://ci.appveyor.com/project/zhongzhi107/universal-react-starter-kit)\n[![Dependency Status](https://david-dm.org/zhongzhi107/universal-react-starter-kit.svg)](https://david-dm.org/zhongzhi107/universal-react-starter-kit)\n[![devDependency Status](https://david-dm.org/zhongzhi107/universal-react-starter-kit/dev-status.svg)](https://david-dm.org/zhongzhi107/universal-react-starter-kit#info=devDependencies)\n[![Known Vulnerabilities](https://snyk.io/test/github/zhongzhi107/universal-react-starter-kit/badge.svg)](https://snyk.io/test/github/zhongzhi107/universal-react-starter-kit)\n[![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/zhongzhi107/universal-react-starter-kit/master/LICENSE)\n\n## Features\nReally starter boilerplate with the most popular technologies:\n\n* [x] [Universal](https://medium.com/@mjackson/universal-javascript-4761051b7ae9#.aug1ngj77) rendering, dynamic routing, async redux reducers, async data fetching and code-splitting.\n* [x] [React](https://facebook.github.io/react/) as the view.\n* [x] [React Router](https://github.com/reactjs/react-router) as the router.\n* [x] [Redux](https://github.com/reactjs/redux)'s futuristic [Flux](https://facebook.github.io/react/blog/2014/05/06/flux.html) implementation.\n* [ ] [Immutable-js](https://facebook.github.io/immutable-js/) provides persistent data collections which increase efficiency and simplicity.\n* [x] [koa](https://koajs.com/) server.\n* [x] [Webpack 2](https://webpack.js.org/) for bundling and [**\"Tree-Shaking\"**](http://www.2ality.com/2015/12/webpack-tree-shaking.html) support.\n* [x] [Babel](https://babeljs.io/) for ES6 and ES7 transpiling.\n* [ ] [React Hot Loader 3](https://github.com/gaearon/react-hot-loader) to tweak React components in real time.\n* [x] [redux-thunk](https://github.com/gaearon/redux-thunk) as the middleware to deal with asynchronous action.\n* [x] [react-router-redux](https://github.com/reactjs/react-router-redux) to keep your router in sync with Redux state.\n* [x] [react-helmet](https://github.com/nfl/react-helmet) to manage title, meta, styles and scripts tags on both server and client.\n* [x] [webpack-isomorphic-tools](https://github.com/halt-hammerzeit/webpack-isomorphic-tools) to allow require() work for statics both on client and server.\n* [x] [Webpack Dev Middleware](http://webpack.github.io/docs/webpack-dev-middleware.html) serves the files emitted from webpack over the Express server.\n* [x] [Webpack Hot Middleware]() allows you to add hot reloading into the Express server.\n* [ ] [react-addons-shallow-compare](https://facebook.github.io/react/docs/shallow-compare.html) for a performance boost, it works perfectly with immutable data structure.\n* [x] [morgan](https://github.com/koa-modules/morgan) the HTTP request logger for server side debugging.\n* [x] [Redux Devtools Extension](https://github.com/zalmoxisus/redux-devtools-extension) for next generation developer experience.\n* [x] [ESLint](http://eslint.org/) to maintain a consistent javascript code style (Airbnb's code style).\n* [x] [StyleLint](http://stylelint.io/) to maintain a consistent css/less code style.\n* [x] CSS and LESS support with [PostCSS] (https://github.com/postcss/postcss-loader) for advanced transformations (e.g. autoprefixer). [CSS Modules](https://github.com/css-Modules/css-Modules) enabled.\n* [x] Image (with [image-webpack-loader](https://github.com/tcoopman/image-webpack-loader) for optimizing) and Font support.\n* [x] Split vendor's libraries from client bundle.\n* [x] No other view engines, just javascript based HTML rendering template.\n* [x] Shared app config between development and production.\n* [x] 404 error page and redirect handling.\n* [ ] [karma](https://karma-runner.github.io/1.0/index.html), [mocha](https://mochajs.org/), [enzyme](https://github.com/airbnb/enzyme), [chai](http://chaijs.com/) and [sinon](https://github.com/sinonjs/sinon) as the integrated solution for writing unit tests.\n* [ ] Testing code coverage support.\n* [ ] [Happypack](https://github.com/amireh/happypack) for build performance.\n* [x] Auto open chrome window when service start.\n* [ ] Code splitting\n  * [ ] Extract text plugin with code splitting\n  * [ ] Code splitting for redux-modules\n* [x] Progressive Web Application ready, with offline support, via a Service Worker.\n* [x] Optimized configuration file structure\n* [ ] [webpack-dashboard](https://github.com/FormidableLabs/webpack-dashboard)\n* [ ] Quick scaffolding - Create components, containers, routes from the CLI!\n* [x] [DllPlugin](http://webpack.github.io/docs/list-of-plugins.html#dllplugin) to improve compiler performance\n\n## Requirements\n\n* [node](https://nodejs.org/en/) \u003e= 7.6\n* [npm](https://www.npmjs.com/) \u003e= 5.0\n\n\n## Getting Started\n\n  ```\n  git clone https://github.com/zhongzhi107/universal-react-starter-kit my-project\n  cd my-project\n  cp profiles/local.env .env\n  yarn\n  yarn serve\n  ```\n\n  Or, if you aren't using [yarn](https://yarnpkg.com/):\n\n  ```\n  git clone https://github.com/zhongzhi107/universal-react-starter-kit my-project\n  cd my-project\n  cp profiles/local.env .env\n  npm install\n  npm run serve\n  ```\n\n  Now the app should be running at http://localhost:3000/\n\n  ## Commands\n  ```\n  # Build the project\n  yarn build\n\n  # Build the project with CDN_ROOT\n  CDN_ROOT=//mycdn.com/ yarn build\n\n  # Test\n  yarn test\n\n  # JavaScript \u0026\u0026 CSS lint\n  yarn lint\n\n  # CSS lint\n  yarn lint:style\n\n  # JavaScript lint\n  yarn lint:js\n\n  # Build \"dll\" bundles\n  yarn dll\n  ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhongzhi107%2Funiversal-react-starter-kit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzhongzhi107%2Funiversal-react-starter-kit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhongzhi107%2Funiversal-react-starter-kit/lists"}