rekit/rekit
IDE and toolkit for building scalable web applications with React, Redux and React-router
repo name | rekit/rekit |
repo link | https://github.com/rekit/rekit |
homepage | http://rekit.js.org |
language | JavaScript |
size (curr.) | 23385 kB |
stars (curr.) | 4176 |
created | 2016-08-02 |
license | MIT License |
Rekit 3.0 is out: https://medium.com/@nate_wang/rekit-3-0-531742d0c2c9?sk=5bfe6383ae43d6b18063a070abd79d34
NOTE: below content is not updated for the new 3.0. Read the article above for more information.
🎉 Rekit Now Creates Apps By Create-react-app
🔥 Introducing Rekit Studio: a real IDE for React and Redux development
🎉 Using Rekit Studio in an Existing React Project
Try Rekit 3.0 with a desktop app: https://github.com/rekit/rekit-app/releases
Or see the guide for a web version: https://github.com/rekit/rekit/issues/201
Rekit is a toolkit for building scalable web applications with React, Redux and React-router. It’s an all-in-one solution for creating modern React apps.
It helps you focus on business logic rather than dealing with massive libraries, patterns, configurations etc.
Rekit creates apps bootstrapped by create-react-app and uses an opinionated way to organize folder and code. It’s designed to be scalable, testable and maintainable by using feature oriented architecture, one action per file pattern. This ensures application logic is well grouped and decoupled.
Besides creating apps, Rekit provides powerful tools for managing the project:
- Rekit Studio: the real IDE for React, Redux development.
- Command line tools: besides Rekit Studio, you can use command line tools to create/rename/move/delete project elements like components, actions etc. It has better support for Rekit plugin system.
Below is a quick demo video of how Rekit works:
The demo contains two parts, which are examples in Redux’s official website:
- Create a simple counter in 1 minute!
- Show the latest reactjs topics on Reddit using async actions.
Live Demo
You can also see the live demo at: http://demo.rekit.org
Installation
npm install -g rekit
This will install a global command rekit
to the system. Rekit is developed and tested on npm 3+ and node 6+, so this is the prerequisite for using Rekit.
Usage
Create a new application
rekit create <app-name> [--sass]
This will create a new app named app-name
in the current directory. The --sass
flag allows to use sass instead of default less as the CSS transpiler. After creating the app, you need to install dependencies and start the dev server:
cd app-name
npm install
npm start
It then starts two express servers by default:
- Webpack dev server: http://localhost:6075. Just what create-react-app starts.
- Rekit Studio: http://localhost:6076. The IDE for Rekit projects.
To change the ports dev-servers running on, edit the rekit
section in package.json
:
{
...
"rekit": {
"devPort": 6075,
"studioPort": 6076,
...
}
...
}
Packages
This repo contains multiple packages managed by yarn workspaces.
Packages | Description |
---|---|
rekit-core | Provide core APIs such as create components, rename actions, etc… |
rekit | CLI wrapper of rekit-core, create apps by cloning repo from rekit-boilerplate-cra |
rekit-studio | Dedicated IDE for Rekit development, uses rekit-core to manage project too. |
rekit-plugin-redux-saga | Use redux-saga instead of redux-thunk for async actions. |
rekit-plugin-selector | Support selectors by Rekit cli. |
rekit-plugin-apollo | Support graphql by Apollo. |
Key Features
- It’s production-ready but not a starter kit.
- Zero additional configuration needed after creating an app.
- Dedicated IDE for Rekit development.
- Command line tools to manage actions, reducers, components and pages.
- Bootstrapped by create-react-app, all your knowledge about it still works.
- Use Webpack 3 for bundling.
- Use Babel for ES2015(ES6)+ support.
- Use React hot loader for hot module replacement.
- Use Redux for application state management.
- Use React-router for routing and it’s configured with Redux reducer.
- Use Webpack dll plugin to improve dev-time build performance.
- Use Less or Sass as CSS transpilers.
- Use jest, enzyme for testing.
- Support Redux dev tools.
Documentation
License
MIT