{"id":13452666,"url":"https://github.com/cheeaun/hackerweb","last_synced_at":"2025-03-23T21:34:33.095Z","repository":{"id":1053467,"uuid":"2585883","full_name":"cheeaun/hackerweb","owner":"cheeaun","description":"A simply readable Hacker News web app","archived":false,"fork":false,"pushed_at":"2024-04-22T03:38:32.000Z","size":8952,"stargazers_count":1226,"open_issues_count":28,"forks_count":133,"subscribers_count":36,"default_branch":"master","last_synced_at":"2024-10-28T19:38:40.771Z","etag":null,"topics":["css","hacker-news","hacker-news-client","hacker-news-reader","javascript","web-app"],"latest_commit_sha":null,"homepage":"http://hackerwebapp.com/","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cheeaun.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null},"funding":{"github":["cheeaun"],"custom":["https://www.buymeacoffee.com/cheeaun","https://revolut.me/cheeaun","https://donate.stripe.com/9AQeVfbr40ZB9nGaEF","https://paypal.me/cheeaun"]}},"created_at":"2011-10-16T11:55:47.000Z","updated_at":"2024-10-21T10:35:09.000Z","dependencies_parsed_at":"2024-04-20T07:44:48.117Z","dependency_job_id":null,"html_url":"https://github.com/cheeaun/hackerweb","commit_stats":{"total_commits":764,"total_committers":14,"mean_commits":54.57142857142857,"dds":"0.054973821989528826","last_synced_commit":"c2ac5a6e948650a39d755e77afc9167c8894635f"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheeaun%2Fhackerweb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheeaun%2Fhackerweb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheeaun%2Fhackerweb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheeaun%2Fhackerweb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cheeaun","download_url":"https://codeload.github.com/cheeaun/hackerweb/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245174751,"owners_count":20572774,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["css","hacker-news","hacker-news-client","hacker-news-reader","javascript","web-app"],"created_at":"2024-07-31T08:00:19.747Z","updated_at":"2025-03-23T21:34:32.403Z","avatar_url":"https://github.com/cheeaun.png","language":"CSS","readme":"HackerWeb\n=========\n\nA simply readable Hacker News web app. \u003chttp://hackerwebapp.com/\u003e\n\nAbout\n-----\n\nThis project started as one of my silly mini-projects. I create this initially to try out iOS 5+ Mobile Safari's new `-webkit-overflow-scrolling: touch` CSS support. I need some sort of content for scrolling, so why not [Hacker News](https://news.ycombinator.com/)' stories? I'm also trying something called [Fake it 'til you make it](http://snook.ca/archives/conferences/fake-it) which I make the web app looks (and feels) like a native mobile app. In this case, like a native iOS app. If the web app is loaded on non-iOS devices, it'll switch to the 'web' theme which is like a generic theme for other browsers and platforms.\n\nRead my two-part blog post on how I built this web app:\n\n- [How I built the Hacker News mobile web app](http://cheeaun.com/blog/2012/03/how-i-built-hacker-news-mobile-web-app) ([HN thread](https://news.ycombinator.com/item?id=3662709))\n- [How I built the Hacker News mobile web app, Part 2](http://cheeaun.com/blog/2012/03/how-i-built-hacker-news-mobile-web-app_26) ([HN thread](https://news.ycombinator.com/item?id=3756771))\n\nAlso read my introductory post, [Introducing HackerWeb](http://cheeaun.com/blog/2012/12/introducing-hackerweb).\n\nTechnical stuff\n---------------\n\nThis web app works best on iOS 5+ Mobile Safari (iOS theme) and other modern browsers (web theme). It uses these wonderful scripts:\n\n- [Hogan.js](https://github.com/twitter/hogan.js) - logic-less templating\n- [Amplify.Store](http://amplifyjs.com/api/store/) - client-side storage\n- ruto.js - `location.hash` router\n- iOS\n\t- [Tappable](https://github.com/cheeaun/tappable) - touch-friendly tap events\n\t- [Tween.js](https://github.com/sole/tween.js) - simple tweening engine\n- Web\n\t- ibento.js - simple event delegation\n\t- [classList.js](https://github.com/eligrey/classList.js) - shim for `element.classList`\n- Vanilla JavaScript - everything else\n\nAlso uses the [unofficial Hacker News API](https://github.com/cheeaun/node-hnapi/).\n\nDevelopment stuff\n--------------------\n\n### Prerequisites\n\n```\ngit clone git://github.com/cheeaun/hackerweb.git\ncd hackerweb/\nnpm install\n```\n\n### [Grunt](http://gruntjs.com/) tasks\n\n- `grunt templates` - Compile templates in `templates/*` to generate `assets/js/templates.js`\n- `grunt uglify` - Concat and minify JavaScript files in `assets/js/*` to generate `js/*`\n- `grunt watch` - Watch the templates and scripts, run `templates` and `uglify` tasks when they're changed\n- `grunt embedImage` - Embed images into CSS files. This will parse CSS files in `assets/css/*` and change this (any lines with `url()`):\n\n\t```\n\tbackground-image: url(PATH); /* embedImages:url(PATH) */\n\t```\n\n\t... into this:\n\n\t```\n\tbackground-image: url(data:DATAURI); /* embedImages:url(PATH) */\n\t```\n\n- `grunt connect` - Run a local dev server. Arguments:\n\t- `--port=XX` - specify a custom port number\n\n- `grunt server` - Run both `watch` and `connect` tasks at the same time\n\nContributing and Feedback\n-------------------------\n\nFeel free to fork, file some issues or [tweet your feedback](https://twitter.com/cheeaun) to me.\n\nDo check out these awesome contributions as well:\n\n- [Bookmarklet to switch between HackerNews and HackerWeb](https://gist.github.com/duncansmart/4672084) by [duncansmart](https://github.com/duncansmart)\n- [HNmobile Bookmarklet](http://neocoder.github.com/hnmbookmarklet/) by [neocoder](https://github.com/neocoder)\n- [Hacker News Menu Tab](http://www.guidefreitas.com/2012/03/hacker-news-menu-tab.html) ([GitHub](https://github.com/guidefreitas/HNewsTab)) by Guilherme Defreitas\n\nLicense\n-------\n\n[MIT](http://cheeaun.mit-license.org/).\n\nOther similar apps\n------------------\n\nThis is the not the first third-party app for Hacker News. Others have tried doing the same thing, despite some slight differences. I've compiled [a list of apps here](https://github.com/cheeaun/awesome-hacker-news).\n","funding_links":["https://github.com/sponsors/cheeaun","https://www.buymeacoffee.com/cheeaun","https://revolut.me/cheeaun","https://donate.stripe.com/9AQeVfbr40ZB9nGaEF","https://paypal.me/cheeaun"],"categories":["CSS","Overview"],"sub_categories":["Hacker News"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcheeaun%2Fhackerweb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcheeaun%2Fhackerweb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcheeaun%2Fhackerweb/lists"}