Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jounqin/react-hackernews

HackerNews clone built with React, ReactRouter & Redux, with full page server-side rendering
https://github.com/jounqin/react-hackernews

react react-router react-server-render react-ssr redux

Last synced: 3 months ago
JSON representation

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

Awesome Lists containing this project

README

        

# react-hackernews

[![Travis](https://img.shields.io/travis/com/JounQin/react-hackernews/master.svg)](https://travis-ci.com/JounQin/react-hackernews)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/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](https://github.com/vuejs/vue-hackernews-2.0)

[react-server-renderer](https://github.com/JounQin/react-server-renderer) / [vue-server-renderer](https://ssr.vuejs.org)

[react-async-component](https://github.com/ctrlplusb/react-async-component) / [react-async-bootstrapper](https://github.com/ctrlplusb/react-async-bootstrapper)

[react-style-loader](https://github.com/JounQin/react-style-loader) / [vue-style-loader](https://github.com/vuejs/vue-style-loader)

## Architecture Overview

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

## Build Setup

**Requires Node.js 7+**

```bash
# 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