React app boilerplate with server side rendering, code and styles splitting, multilingual i18n
npm install react-firebase-ssr-boilerplate
-
Install npm dependencies in the root folder.
Run:
npm install
-
Install npm dependencies in the
functions
folder (needed for firebase environment).Run:
cd functions && npm install && cd ../
-
Add your config to
/firebase-config.json
-
Add alias and projectId to
/.firebaserc
-
Add service account data to
/server/site/middleware/service-account.json
-
If you using firestore (if not just skip this step) - uncomment imports and functions in
/site/client/redux/store/index.js
and usefirestoreConnect
where you need, for example in/site/client/pages/ChatPage/Chat/Chat.js
-
After initial installation you can start the project in development mode:
npm run site:dev
-
You can build the project and run it with server side rendering:
- To run without firebase environment:
npm run site:start
- To run with firebase environment:
npm run site:build && cd functions && firebase serve
- To run without firebase environment:
-
Or you can deploy the app to the firebase hosting:
npm run site:build && cd functions && firebase deploy
Based on react-intl. Translation switches on change
store property state.me.locale
.
All translations defines in messages.js
file in the root of each component.
Based on react-loadable and splits code for each page in routes.
Based on mini-css-extract-plugin which splits styles for each page and media-query-splitting-plugin which splits styles by media query (mobile, tabletLandscape, tabletPortrait and desktop).
Based on react-helmet which allows to manage SEO tags (title, meta etc)