Progressive Web Apps experiment
JavaScript CSS HTML VimL
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
.eslintrc React Router & eslint Jun 28, 2016
.gitignore Remove build dir (change the deployment process) Jul 10, 2016
.nvimrc React Router & eslint Jun 28, 2016
.travis.yml Init from plain-react Jun 23, 2016 Update Jul 14, 2016
bower.json Repo list Jun 27, 2016
dev-server.js Init from plain-react Jun 23, 2016
index.html Init from plain-react Jun 23, 2016
package.json 0.1.24 Jul 22, 2016
sw-precache-config.json Change handler for runtimeCaching to fastest Jul 13, 2016

Build status Dependencies Dev dependencies Coverage Status


GitHub Explorer is a Progressive Web App that helps you explore GitHub user repositories. This project is created for technology demonstration purpose, experiment how a web app "looks and behaves" like a native app.

Live demo:

(currently no desktop layout available yet :-(, so please view this on mobile for better experience)

...or watch the GIFs below:

Overview App Shell (not a GIF) Material animation
gh-e image gh-e-1

Scored 88/100 in Lighthouse (auditing and performance metrics for Progressive Web Apps):



  • Change people beliefs on web apps by make it as much "native" as possible with cool technologies like ReactJS and Progressive Web Apps.

Tech stack:

  • ReactJS for UI
  • RxJS for data flow and basic app architecture
  • Web App Manifest for add to home screen, splash screen...
  • Service Worker for offline usage (sw-precache)
  • Animation Performance with FLIP and best practices from this High Performance Animations Blog Post
  • Application Shell Architecture for better user experience
  • Babel for ES6 syntax
  • Webpack for bundle
  • Karma for testing (no test case yet)
  • React Router Page Transition to make material transition effect possible.
  • ...and more, please check package.json

This project is bootstraped from plain-react - a simple boilerplate to start a simple ReactJS application.

TODOs: a potentially technical blog post about this coming soon.


Initial dev setup Make sure you have NodeJS v6 or above.

npm install 
npm start 

http://localhost:8763 should now be live with Hot Module Replacement.

Production build

npm install 
npm run build 

Production code placed at build


npm test

Coverage report placed in ./coverage/ directory

Other commands

  • npm lint: linting.


/* TEAM */

    Company: Silicon Straits Saigon

    Developer: Trung Dinh Quang
    Contact: trungdq88 [at], quangtrung [at]
    From: Ho Chi Minh City, Vietnam

    UX/UI Designer: Huynh Anh Quan
    Contact anhquan [at]
    From: Ho Chi Minh City, Vietnam

    Animation Designer: Van Cong Bang
    Contact congbang [at]
    From: Ho Chi Minh City, Vietnam

/* THANKS */

    The Inspectocat Icon: Jason Costello 
    From: San Francisco, CA