Skip to content
HackerNews clone built with React, ReactRouter & Redux, with full page server-side rendering
JavaScript CSS Shell HTML
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
build feat: migrate to react-loadable, start to use react hooks Jul 7, 2019
public
server chore: bump compatible dependencies, upgrade eslint-config-1stg usage Jul 7, 2019
src fix: temporarily support redirecting on server Jul 15, 2019
.gitignore bump webpack@4 usage, remove react-hot-loader for now Mar 8, 2018
.travis.yml first blood Dec 31, 2017
LICENSE Initial commit Dec 31, 2017
README.md
jsconfig.json feat: migrate to react-loadable, start to use react hooks Jul 7, 2019
package.json chore(deps): update dependency rimraf to ^2.7.1 Aug 19, 2019
postcss.config.js chore: bump dependencies, update babel/eslint/postcss usage Sep 5, 2018
yarn.lock chore(deps): update dependency rimraf to ^2.7.1 Aug 19, 2019

README.md

react-hackernews

Travis David David Dev code style: prettier

HackerNews clone built with React, ReactRouter & Redux, with full page server-side rendering

react-hackernews
Live Demo

Features

Note: in practice, it is unnecessary to code-split for an app of this size (where each async chunk is only a few kilobytes), nor is it optimal to extract an extra CSS file (which is only 1kb) -- they are used simply because this is a demo app showcasing all the supported features. In real apps, you should always measure and optimize based on your actual app constraints.

  • Server Side Rendering
    • react + react-router + redux working together
    • Server-side data pre-fetching
    • Client-side state & DOM hydration
    • Automatically inlines CSS used by rendered components only
    • Preload / prefetch resource hints
    • Route-level code splitting
    • custom dynamic title for SEO
  • Progressive Web App
    • App manifest
    • Service worker
    • 100/100 Lighthouse score
  • Experience
    • Hot-reload in development
    • CSS extraction for production

Inspired by

vue-hackernews-2.0

react-server-renderer / vue-server-renderer

react-async-component / react-async-bootstrapper

react-style-loader / vue-style-loader

Architecture Overview

screen shot 2016-08-11 at 6 06 57 pm

Build Setup

Requires Node.js 7+

# install dependencies
npm install # or yarn

# serve in dev mode, with hot reload at localhost:4000
yarn dev

# build for production
yarn build

# If you care about node_modules size
yarn run prune

# serve in production mode
yarn start

License

MIT

You can’t perform that action at this time.