Giter Club home page Giter Club logo

kabuki-motion's Introduction

npm version

Deploy

New in v0.0.4: Redux!

After working with both redux and alt, I found redux more difficult to use, but providing specific advantages. Redux's reducers provide a consistent and scalable place for the data juggling logic that alt leaves unorganized in various data stores. In the long term, redux is more scalable because it has better separation of concerns.

Motivation

Kabuki-motion is a starter project for publishing a single-page web app with web animators in mind. It creates both a react/flux development environment and live production server.

The react application comes pre-built with one-directional flux architecture and example components that make use of the React-Motion library.

The aim of this repo is to incorporate the best practices to building non-trivial apps with Reactjs v0.14 that include Heroku support.

Other boilerplates that include Heroku support also require the MongoDB addon, which is free now, but may not be in the future. This library does not require any Heroku addons.

| React + Redux + WebPack + Heroku |

Demo Site

http://kabuki.venicetexas.com/

The Technology Stack

Server

  • Heroku
  • Node
  • Express

Development Environment

  • Webpack
  • Babel
  • Sass
  • ESLint
  • Uglifiy

Client

  • React v0.14
  • Flux Architecture with Redux
  • React-Motion for preformant animation

Installation

  1. install node.js
  2. in a new terminal window, run git clone https://github.com/bishopZ/kabuki-motion.git
  3. cd kabuki-motion
  4. npm install
  5. npm run build this will build the files one time
  6. npm start to run the server in development mode
  7. Goto http://localhost:5000 in your browser

Running the Local Development Environment

  1. npm run watch to run webpack in watch mode
  2. in a new terminal window, run npm start to run the server in development mode
  3. Goto http://localhost:5000 in your browser

Or run npm run production to run the server in production mode, without linting and source maps. The raw framework is about 250k, everything else is content.

Running the Server on the Web

  1. install the heroku toolbelt
  2. heroku create
  3. heroku apps:rename newname
  4. git push heroku master
  5. heroku open

Directories

/client contains the react files that construct the site. Run webpack while editing these files to see your changes live in the browser. /client/App.jsx is the main point of entry for the React application.

/public contains the public, static resources served by the server, and the rendered application javascript and css files.

/server contains files related to the node server. /server/app.js creates the node server. /server/routes.js creates the node server's routing. /server/view.ejs is the HTML view for the React single-page application.

How to Contribute

  1. Any suggestions/improvements/comments/bugs can be in the form of a Pull Requests or Github issue.
  2. Coding guidelines:

Credits

react-motion - a spring that solves your animation problems

react-webpack-node - Alt, Immutable, React, Sass, Webpack, Node, MongoDB, Heroku

react-flux-starter - Flux, React, Less, Gulp, Node, Heroku

License

MIT

kabuki-motion's People

Contributors

bishopz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

kabuki-motion's Issues

Global CSS Naming

When the repo was first created one of the features it had was appending hash values to style class names created with inline styles. It was disabled in v0.0.4 because I wasn't sure it was needed. It seemed like extra complexity.

Having just watched a talk about it at the Denver React meetup - it clearly needs repaired.

webpack does not reload eslint

running npm run watch doesn't not reload eslint when fixing lint errors.

In order for eslint errors to refresh you have to re run npm run watch

Move to Babel stage 1

loader: "babel-loader?stage=0",

Given that this is meant to be a very stable and available boilerplate, it should be running at a safer babel level.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.