React-Semantic.UI-Starter


Demo: reatty.now.sh Temporarily unavailable:(
What is this?
Fullstack isomorphic boilerplate with server-side rendering and lazy-loading for your new Progressive Web App.
Quick intro
TL;DR: You're always free to use your own UI framework. The starter is "UI-framework-agnostic".
UI framework comparison here.
What's inside?

Frontend:
Build (Webpack):
- Webpack 3:
- Babel (stage-0),
- HMR, devServer, hotMiddleware,
- i18n support with i18n-webpack-plugin
- Check your code with Eslint and Stylelint (that you can uncomment inside
postcss.config.js)
- Offline-plugin, favicons-webpack-plugin, webpack-manifest-plugin, preload-webpack-plugin, webpack-bundle-analyzer, compression-webpack-plugin, webpack-common-shake.
Server:
Other:
Usage
Install:
git clone --depth=1 https://github.com/Metnew/react-semantic.ui-starter.git
cd react-semantic.ui-starter
npm install
Development:
npm run dev
npm run frontend_dev
npm run server_dev
Build:
npm run build
npm run frontend_build
npm run server_build
Run:
npm run start
Deploy:
If you use now on OSS(free) plan - you will run out of memory on npm run build. I recommend you to disable some non-critical plugins (ModuleConcatenationPlugin, SriPlugin, FaviconsWebpackPlugin). Demo that was deployed to "now"
Test:
npm run test
Lint:
eslint-loader is already included in webpack, but if you want to lint code without webpack:
npm run lint:styles
npm run lint:scripts
Docs:
Powered by ESDoc.
npm run docs
ENV vars:
ENV vars are very important for configuration.
Client ENV vars:
GA_ID: Your Google analytics ID.
BASE_API: /api/v1 by default. App uses this path for requests with relative urls
SENTRY_PUBLIC_DSN: Your Sentry public DSN.
APP_LANGUAGE: en by default. Build app with this language. Check /i18n folder and i18n-webpack-plugin.
ANALYZE_BUNDLE: Run webpack-bundle-analyzer after build.
Server ENV vars:
PORT: Port on which your app run.
JWT_SECRET: JWT_SECRET :smile:
BASE_API: App uses this path for requests with relative urls.
SENTRY_PUBLIC_DSN: Your Sentry public DSN.
SENTRY_DSN: Your Sentry full(private) DSN for server-side error handling.
APP_LANGUAGE: Language of your app.
DIST_PATH: (by default: /dist/client/<APP_LANGUAGE>). Path where server search for the index.html of your built app.
How it works?
Some guides are already finished, some aren't. I update branch very often, so improved docs and explanations will be very soon.
Nearest future:
- SSR with HMR on client and server from one process. (next.js-like HMR)
- Better docs
- Semver
- CLI app
Something very important:
Have a question? Ask! :wink:
Any help is highly appreciated because the project still has only one maintainer (ha-ha, yeah it's me :smiling_imp:).
PRs and issues are always welcome.
Author
Vladimir Metnew vladimirmetnew@gmail.com
LICENSE
MIT