Skip to content
Aaron Tribou edited this page Apr 2, 2018 · 2 revisions

Welcome to the react-template wiki!

Our deepest apologies for the state of the documentation in this repository. The goal is to address each of the features that this framework offers in an approachable, well-documented way. Until that goal is achieved, here is a long list of all the features!

A Universal Platform App

Share your business logic across web, iOS, Android, and desktop.

  • react PWA web app served by Hapi.js
  • react-native app (iOS and Android)
  • electron app
  • Storage abstraction across platforms
  • Container-component model for shared containers and business logic across platforms

Performance

  • A Progressive Web App (PWA) with offline asset caching by default via Service Workers and offline-plugin lifecycle hooks
  • CSS classes injected into the head of server-rendered web pages for best performance
  • webpack image support for url-loader
  • Webpack manifest support
  • Webpack vendor modules automatically split into separate chunks
  • React touch/tap event support

Styling

  • material-ui integration with server-side theme support
  • Electron icon support
  • postcss with precss for SASS-like syntax including mixins
  • CSS modules
  • Config variables shared across JS and CSS
  • sanitize.css defaults for web

Routing

  • react-router with centralized routes
  • Modal support for URL params and location.state

Authentication

  • RequireAuth helper component for redirects and protected content on a public page
  • Authentication helpers including login/logout and cookie storage of the auth token for server rendering

SEO

  • Server-side rendering
  • react-helmet integration with server-side support
  • Easy server-side API call support for SEO via async/await

Application State

  • redux
  • Selectors by reselect for memoized views
  • redux-form for advanced form logic
  • redux-promise-middleware
  • redux-observable for client-side application side-effects
  • Dynamic env support for rehydrating Node.js runtime environment variables in the browser

Dev Experience

  • Server-side HMR
  • Babel transformation
  • redux-devtools for all platforms
  • API helpers
  • API mock data
  • yarn for package management with offline dependency caching
  • Local Yarn script to avoid a global install

Continuous Delivery

  • jest testing with example tests for react web and react native
  • Code coverage reports
  • eslint with comprehensive ruleset
  • ESLint custom rules including encouraging PureComponents
  • FlowType
  • Automatic npm versioning for protected master branch support
  • CircleCI integration
  • Electron packaging script for Mac, Windows, and Linux distribution
  • Docker support with Alpine Linux build and dev dependency removal
  • rollbar client-side error reporting
  • Health check server route for uptime and version reporting
  • Dynamic robots.txt control via env vars

Security

  • HTTPS redirect support for Heroku and AWS EBS
  • Cross-site scripting and other protections via security headers
  • NPM module security scans and reporting