Skip to content

Starter kit for isomorphic applications using React/Relay and Material-UI

Notifications You must be signed in to change notification settings

sonofadiddly/isomorphic-material-relay-starter-kit

Repository files navigation

Isomorphic Material Relay Starter Kit (IMRSK)

The purpose of IMRSK is:

  • To server as boilerplate for projects involving react/relay and materual-ui.
  • To host examples of using those technologies.
  • To implement some common functionality like user authentication using react/relay.
How to try Link
Live Demo http://isomorphic-material-relay.herokuapp.com/
Run locally Local Setup
Run on Heroku Heroku Setup

Underlying technologies

Technology Description
React Library for building SPA.
Material UI Library for implementing Material Design in React. All user interface in this kit is built exclusively with Material UI components.
Relay A Javascript framework for building data-driven react applications.
GraphQL A query language created by Facebook in 2012 for describing the capabilities and requirements of data models for client‐server applications
Express GraphQL A Node.js express library that allows the creation of GraphQL servers
Isomorhic Relay Adds server side rendering support to React Relay. IMRSK fully utilizes this library, while waiting for facebook/relay#589. The eventual goal is to have full isomorphism with authentication.
JWT Java Web Tokens is and industry standard RFC 7519 method for representing claims securely between two parties.
React Helmet Reusable React component will manage all of your changes to the document head with support for document title, meta, link, script, and base tags.
Babel Compiles ES6/ES7 to ES5. Allows using features from ES6 and ES7 today.
Webpack Bundles npm packages and the application Java Script into a single file. Includes hot reloading via react-transform-hmr. Also, Webpack can bundle any required CSS.
Node.js Event-driven, non-blocking I/O runtime based on JavaScript that is lightweight and efficient.
npm Scripts Glues all this together in a handy automated build.

Features

Feature Details
SPA The IMRSK is a Single Page Application. It has all the advantages that come with SPA, while using isomorphism and the Relay features allows to offset practically all negatives that come with this approach.
Isomorphism The kit is designed to be fully isomorphic. This allows for very quick rendering when the users first access a page in the application. All content is designed to be accessed in an isomorphic way allowing the use and sharing of links to any part of the SPA.
SEO The combination of isomorphism with the use of the react helmet allows all the content in the application to be SEO ready. Samples will be added to the kit later.
ES6, ES7 The IMRSK uses features of ES6 and ES7 extensively. All rect components are implemented as ES6 classes.
JWT Tokens Currently JWT tokens are used for authentication, although there is an issue related to isomorphism.
HTTP Only cookies The HTTP only cookies are currently the safest way to handle authentication in a web application. The JWT tokens are stored in HTTP only cookies making it harder for attackers to access.
Material Design Expanding upon the "card" motifs that debuted in Google Now, Material Design makes more liberal use of grid-based layouts, responsive animations and transitions, padding, and depth effects such as lighting and shadows.
Responsive Design Mainly through the features of the Material UI library, the examples in IMRSK work well on different form factors, ranging from desktop browsers to mobile phones

More details

Final word of caution

This project in its current state is for educational purposes only and is not guaranteed to be suitable for production deployment.

About

Starter kit for isomorphic applications using React/Relay and Material-UI

Resources

Stars

Watchers

Forks

Packages

No packages published