react-semantic.ui-starter

3.0.0 • Public • Published

React-Semantic.UI-Starter

Greenkeeper badge

Demo: reatty.now.sh Temporarily unavailable:(

Sponsor

Build Status Join the chat at https://gitter.im/react-semantic-ui-starter/Lobby bitHound Code bitHound Overall Score

What is this?

Fullstack isomorphic boilerplate with server-side rendering and lazy-loading for your new Progressive Web App.

Quick intro

Why this starter uses react-semantic-ui?

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?

bitHound Dependencies bitHound Dev Dependencies

Frontend:

Build (Webpack):

Server:

Other:

Usage

Install:

# clone repo without full git history 
git clone --depth=1 https://github.com/Metnew/react-semantic.ui-starter.git
cd react-semantic.ui-starter
# You can remove .git folder if you don't want to pull new features or need your own repo 
# to remove folder run: rm -rf .git 
# install dependencies 
npm install

Development:

npm run dev # run both frontend and server in dev mode(using `concurrently`) 
 
npm run frontend_dev # run frontend in dev mode. 
 
npm run server_dev  # run server in dev mode 

Build:

npm run build # build both frontend and server 
 
npm run frontend_build # build frontend 
 
npm run server_build # build server 

Run:

# npm run build - at first build app. 
npm run start # run app. You need already built app for this! 
# then visit localhost:4000 in your browser, if you didn't specify PORT env var 

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 # run tests with Jest, BASE_API env var is required! 

Lint:

eslint-loader is already included in webpack, but if you want to lint code without webpack:

npm run lint:styles  # lint styles with Stylelint 
npm run lint:scripts # lint scripts with ESlint 

Docs:

Powered by ESDoc.

npm run docs # generate docs and `serve` 

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 😄
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?

Most commonly asked questions are here.

Some guides are already finished, some aren't. I update branch very often, so improved docs and explanations will be very soon.

Webpack configuration (not finished)
What's the magic behind npm run dev?
How i18n works?
Testing.
Why this starter uses react-semantic-ui?
How does SSR work? (not finished)
Environment variables and configuration. (not finished)
Starter architecture and design. (not finished)

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! 😉

Any help is highly appreciated because the project still has only one maintainer (ha-ha, yeah it's me 😈). PRs and issues are always welcome.

Author

Vladimir Metnew vladimirmetnew@gmail.com

LICENSE

MIT

Package Sidebar

Install

npm i react-semantic.ui-starter

Weekly Downloads

6

Version

3.0.0

License

MIT

Last publish

Collaborators

  • metnew