Starter kit for universal full–fledged React apps. One stack for browser, mobile, server.
You don't have to start with everything. Este is perfect even for plain static pages. You can gracefully add any platform later. Este mission is simple: Help startups to deliver minimal valuable product asap with the state of the art real-time universal app stack.
Pokud máte zájem o školení JavaScript, React.js, nebo Este.js, podívejte se na javascript-skoleni.cz.
Contact me, if you are looking for a technical cofounder.
Techniques
- universal architecture with immutable app state
- code shared across platforms (browser, server, native mobile)
- server side rendering or server-less pre-rendering to HTML files
- universal internationalization
- universal crash reporting
- universal data fetching
- universal forms with universal validation
- universal components with universal styles
- stateless functional UI with dynamic typed styles
- flowtype FTW
- vanilla hot reloading makes everything hot reloadable
- Firebase integration (este.firebaseapp.com)
- email and facebook login
- declarative queryFirebase higher order component for Firebase imperative API
- users presence
Libraries
- redux
- redux-observable
- ramda
- react-intl
- redux-persist
- formatjs
- jest Painless JavaScript Testing.
- raven-js Crash reporting client for Sentry.
- fela Universal, Dynamic & High-Performance Styling in JavaScript
- And much more. Explore the repository.
Prerequisites
Optional
- Facebook SDK for iOS In order to make Facebook login work on iOS
- Facebook SDK for Android In order to make Facebook login work on Android
- firebase-cli
npm install -g firebase-tools
- firebase-bolt
npm install -g firebase-bolt
- react-native-cli
npm install -g react-native-cli
If you are using different node versions on your machine, use nvm to manage them.
Create App
git clone
cd este-app
yarn (or npm install)
Start Development
- run
gulp
- point your browser to localhost:3000
- build something beautiful
React Native: Getting Started
Dev Tasks
gulp
run web app in development modegulp ios
run iOS app in development modegulp android
run Android app in development modegulp -p
run web app in production modegulp -f
run web app in development mode, but only browser source rebuilds on file changesgulp jest
run jest testsgulp jest-watch
continuous test running for TDDgulp eslint
eslintgulp eslint --fix
fix fixable eslint issuesgulp messages-extract
extract messages for translationgulp messages-check
check missing and unused translationsgulp messages-clear
remove unused translationsgulp favicon
create universal favicon
Production Tasks
gulp build -p
build app for productionnpm test
run all checks and testsnode src/server
start app, remember to set NODE_ENVgulp to-html
render app to HTML for static hosting like Firebasegulp deploy-heroku
deploy Heroku appgulp deploy-firebase
deploy Firebase appgulp deploy-firebase-database
deploy Firebase database only
Customize Este App
- set name in
package.json
- set locales, firebaseUrl, sentryUrl, etc. in
src/server/config.js
- change
src/common/app/favicons/original/favicon.png
, thengulp favicon
andgulp -p
- modify your FB app_id e.g. for iOS
Links
Tips
- Recommended editor is Atom. Check settings.
- Install nuclide.io, enable "Use the Flow binary included in each project".
Credit
Made by Daniel Steigerwald and the community.