• Stars
    star
    121
  • Rank 284,093 (Top 6 %)
  • Language
    JavaScript
  • License
    Other
  • Created over 7 years ago
  • Updated about 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

πŸ—ž Preact Hacker News

preact-hn

A Preact port of ReactHN - a React & react-router-powered implementation of Hacker News using its Firebase API.

This is mostly made possible thanks to nwb --preact. We need both Preact and preact-compat to get this all working. WebPageTest comparison of the React and Preact versions.

react-hn screenshot

Live version: https://preact-hn.appspot.com

Build differences:

React:

βœ” Building React app

File sizes after gzip:

  dist/vendor.511483ef.js              114.19 KB
  dist/app.8b44e34e.js                 9.69 KB
  dist/sw-toolbox.js                   5.84 KB
  dist/css/style.css                   1.8 KB
  dist/PermalinkedComment.7106819e.js  1.56 KB
  dist/UserProfile.60e03f1c.js         618 B
  dist/core.js                         590 B
  dist/runtime-caching.js              511 B
  dist/NotFound.c4c69d8e.js            214 B
  dist/build/vendor.js                 186 B
  dist/service-worker.js               131 B

Preact:

βœ” Building Preact app

File sizes after gzip:

  dist/vendor.4833966e.js              79.34 KB
  dist/app.8b44e34e.js                 9.68 KB
  dist/sw-toolbox.js                   5.84 KB
  dist/service-worker.js               4.24 KB
  dist/css/style.css                   1.8 KB
  dist/PermalinkedComment.7106819e.js  1.56 KB
  dist/UserProfile.60e03f1c.js         618 B
  dist/core.js                         590 B
  dist/runtime-caching.js              511 B
  dist/NotFound.c4c69d8e.js            214 B
  dist/build/vendor.js                 186 B

Features

  • Supports display of all item types: stories, jobs, polls and comments
  • Basic user profiles
  • Collapsible comment threads, with child counts
  • "Realtime" updates (free via Firebase!)
  • Last visit details for stories are cached in localStorage
  • New comments are highlighted:
    • Comments since your last visit to an item
    • New comments which load while you're reading an item
    • New comments in collapsed threads
  • Automatic or manual collapsing of comment threads which don't contain any new comments
  • Stories with new comments are marked on list pages
  • Stories can be marked as read to remove highighting from new comments
  • "comments" sections driven by the Changed Items API
  • Story listing pages are cached in sessionStorage for quick back button usage and pagination in the same session
  • Configurable settings:
    • auto collapse - automatically collapse comment threads without new comments on page load
    • show reply links - show "reply" links to Hacker News
    • show dead - show items flagged as dead
    • show deleted - show comments flagged as deleted in threads
  • Delayed comment detection - so tense! Who will it be? What will they say?

Feature requests are welcome!

Building

Install dependencies:

npm install

npm scripts

  • npm start - start development server
  • npm run build - build into the public/ directory
  • npm run lint - lint src/
  • npm run lint:fix - lint src/ and auto-fix issues where possible
  • npm run precache - generates Service Worker in public/ directory

MIT Licensed

More Repositories

1

critical

Extract & Inline Critical-path CSS in HTML pages
JavaScript
9,959
star
2

backbone-fundamentals

πŸ“– A creative-commons book on Backbone.js for beginners and advanced users alike
JavaScript
9,294
star
3

essential-js-design-patterns

Repo for my 'Learning JavaScript Design Patterns' book
HTML
4,254
star
4

es6-tools

An aggregation of tooling for using ES6 today
3,954
star
5

basket.js

A script and resource loader for caching & loading files with localStorage
JavaScript
3,362
star
6

es6-equivalents-in-es5

WIP - ES6 Equivalents In ES5
2,533
star
7

puppeteer-webperf

Automating Web Performance testing with Puppeteer πŸŽͺ
JavaScript
1,775
star
8

a11y

Accessibility audit tooling for the web (beta)
JavaScript
1,705
star
9

tmi

TMI (Too Many Images) - discover your image weight on the web
JavaScript
1,639
star
10

timing.js

Navigation Timing API measurement helpers
JavaScript
1,500
star
11

critical-path-css-tools

Tools to prioritize above-the-fold (critical-path) CSS
1,141
star
12

getUserMedia.js

Shim for getUserMedia(). Uses native implementation for modern browsers and a Flash fallback for everyone else.
JavaScript
908
star
13

critical-path-css-demo

Above-the-fold CSS generation + inlining using Critical & Gulp
ApacheConf
532
star
14

backbone-boilerplates

Backbone.js stack boilerplates demonstrating integration with Express, Ruby, PHP, Grails and more.
JavaScript
488
star
15

webpack-lighthouse-plugin

A Webpack plugin for Lighthouse
JavaScript
290
star
16

sublime-fixmyjs

SublimeText package for FixMyJS
Python
250
star
17

learning-jsdp

Learning JavaScript Design Patterns: 2nd Edition - The Examples
HTML
240
star
18

predictive-fetching

Improve performance by predictively fetching pages a user is likely to need
238
star
19

storage-on-the-web

πŸ—ƒ Comparing storage options for the open web in 2016
225
star
20

visibly.js

A cross-browser Page Visibility API shim
JavaScript
221
star
21

sublime-build-systems

Sublime Text build systems
202
star
22

yeoman-examples

A repo of up to date examples using Yeoman
JavaScript
202
star
23

oust

Extract URLs to stylesheets, scripts, links, images or HTML imports from HTML
JavaScript
176
star
24

cssprettifier-bookmarklet

A bookmarklet for prettifying your CSS
JavaScript
174
star
25

polymer-boilerplate

A Polymer.js template for building fast, robust web apps using Web Components
JavaScript
166
star
26

pubsubz

Another Pub/Sub implementation
JavaScript
164
star
27

backbone-mobile-search

A Backbone.js + jQuery Mobile sample app using AMD for separation of modules, Require.js for dependency management + template externalisation and Underscore for templating
JavaScript
154
star
28

prism-js

A Polymer element for syntax highlighting with Prism.js
HTML
149
star
29

starter

A simple, git-clone friendly starting point for personal projects.
JavaScript
145
star
30

memoize.js

A faster JavaScript memoizer
JavaScript
143
star
31

largescale-demo

Scalable JS architecture demo for #jqcon
JavaScript
138
star
32

psi-gulp-sample

Sample Gulp project using PSI
JavaScript
126
star
33

network-emulation-conditions

Network emulation / throttling conditions (2G, 3G, 4G, Wifi etc) ☎️
JavaScript
108
star
34

bubblesort

Bubble Sort implementation with O(n^2) complexity.
JavaScript
106
star
35

polymer-filters

Polymer filters for formatting values of expressions.
JavaScript
105
star
36

angular1-dribbble-pwa

Angular 1 Dribbble Progressive Web App demo
JavaScript
102
star
37

ember-progressive-webapp

Ember.js Zuperkulblog PWA (built with FastBoot and ember-cli)
JavaScript
97
star
38

memory-mysteries

V8 memory mysteries (sample app)
CSS
84
star
39

smaller-pictures-app

Smaller Pics Progressive Web App
JavaScript
82
star
40

x-instagram

[Deprecated] A Polymer element for querying the Instagram API (Note: not yet updated to Polymer 0.5.x)
JavaScript
76
star
41

x-imager

Responsive images using Imager.js and Polymer
74
star
42

backbonejs-gallery

A Backbone, Underscore and jQuery Templates based image gallery (early early beta)
JavaScript
72
star
43

todomvc-angular-4

Angular 4.x TodoMVC implementation
TypeScript
66
star
44

socketchat

SocketChat - a beginners chat app using SocketStream
CSS
63
star
45

github-watchers-button

An Embeddable GitHub 'Watchers' Button For External Pages
JavaScript
63
star
46

gulp-uncss-task

[Deprecated] Use gulp-uncss instead please.
JavaScript
63
star
47

yt-jukebox

A YouTube Jukebox element built with Polymer & Yeoman
JavaScript
61
star
48

critical-path-angular-demo

Above-the-fold CSS generation + inlining using Critical, Gulp & Angular
JavaScript
60
star
49

native-media-resizing

Draft proposal for browser-level media resizing
59
star
50

catclock

Polymer + Material Timer/Countdown/Countdown app (alpha)
JavaScript
56
star
51

recursive-binarysearch

Recursive Binary Search with O(log N) complexity
JavaScript
56
star
52

selectionsort

Selection sort with O(n^2) time complexity
JavaScript
56
star
53

polymer-grunt-example

Polymer + Grunt
JavaScript
56
star
54

microtemplatez

Another compact micro-templating solution
JavaScript
55
star
55

page-er

A Polymer element for paginating model data
CSS
53
star
56

google-slides

⚑ An offline-enabled Polymer slide-deck
HTML
53
star
57

flickly-wireframe

The jQuery mobile wireframe for Flickly
52
star
58

grunt-uncss-sass-example

An example of using grunt-uncss on a Sass project
JavaScript
52
star
59

sparkle-trail

<sparkle-trail> Polymer element - useful as a pre-loader
CSS
51
star
60

cssdiet

(WIP) - A DevTools extension for multi-page unused CSS auditing
JavaScript
46
star
61

backbone-koans-qunit

Backbone Koans for QUnit
JavaScript
44
star
62

github-client

Angular GitHub client for Firefox OS
JavaScript
44
star
63

a11y-webapp

A11y WebApp built with Polymer (WIP)
JavaScript
44
star
64

video-js

A Polymer element for Video.js
CSS
42
star
65

generator-webapp-uncss

Yeoman generator with grunt-uncss
JavaScript
42
star
66

lottie-animation-demo

Network-aware adaptive loading with Lottie Web
JavaScript
41
star
67

spine.bitly

(Demo app) A Spine.js Bit.ly client for shortening URLs and archiving references to these links offline.
JavaScript
39
star
68

backbone-aura

Backbone Aura
38
star
69

es2015-todomvc-chrome

ES2015 TodoMVC app that works without a transpiler
JavaScript
38
star
70

critical-css-weather-app

Critical-path CSS optimized weather app
JavaScript
37
star
71

polymer-blog

A tutorial app for generator-polymer
JavaScript
33
star
72

generator-boilerplate

A simple Yeoman generator using Git submodules to clone over a boilerplate hosted elsewhere on GitHub
JavaScript
31
star
73

npm-and-polymer-demo

Demo of Polymer + Paper elements working off npm3
HTML
31
star
74

jquery-roundrr

A jQuery plugin for plotting interactive content galleries in a circle form
JavaScript
30
star
75

polymer-localforage

A Polymer element for Mozilla's localForage (async storage via IndexedDB or WebSQL)
HTML
30
star
76

devtools-timeline-model-browser

Browser-friendly helper for parsing DevTools Timeline traces into structured profiling data models
JavaScript
29
star
77

mustache-for-chromeapps

A special build of mustache that works in Chrome Apps under CSP
JavaScript
28
star
78

addyosmani

GitHub README
27
star
79

tmdb-viewer-load-more

Accessibility-friendly version of TMDB Viewer (load-more)
JavaScript
25
star
80

active-route

Active view routing for Polymer extending <template>
CSS
25
star
81

webapp-scaffold

Polymer webapp scaffold element
CSS
25
star
82

typeahead-country

A Polymer element for autocompleting country names
24
star
83

react-interop

React + Polymer + X-Tag interop
JavaScript
24
star
84

vue-cli-todomvc

TodoMVC built using the Vue.js 2.0 CLI 🍰
JavaScript
22
star
85

polymer-browserify-vulcanize

Polymer + Browserify + Vulcanize
JavaScript
22
star
86

es6-starter

A minimal starting point for using ES6 today.
JavaScript
21
star
87

faster-video

A Polymer element for <video> with playback speed controls
JavaScript
21
star
88

js-shapelib

A minimalist JavaScript library for drawing objects around a Circle or Ellipse
JavaScript
19
star
89

element-query

Element queries with Polymer (experimental fork)
CSS
19
star
90

clientside-sample-buildfile

A Client-side ANT Build File Example
19
star
91

parsely

A small utility for parsing URLs of all types.
JavaScript
18
star
92

video-player

A themeable Polymer video element
JavaScript
16
star
93

page-router

Declarative URL routing for Polymer elements.
CSS
16
star
94

polymer-eventemitter

A Polymer event emitter element with support for wildcards, many and once.
JavaScript
15
star
95

lighthouse-reports

Quick module for getting Lighthouse reports in JSON form
JavaScript
15
star
96

generator-es6

An ES6.now project generator for Yeoman.
JavaScript
14
star
97

aura

A scalable, event-driven JavaScript architecture for developing widget-based applications. Works with Backbone.js and other frameworks.
14
star
98

jquery-googleviewer-plugin

A compact Google Viewer plugin
14
star
99

medium-backups

HTML
13
star
100

css3-transition-fallbacks

CSS3 Transition Fallback demos
13
star