{"id":19589885,"url":"https://github.com/reblws/morning-serial","last_synced_at":"2025-06-17T04:33:45.931Z","repository":{"id":93272766,"uuid":"99014387","full_name":"reblws/morning-serial","owner":"reblws","description":"A real-time feed aggregator","archived":false,"fork":false,"pushed_at":"2017-09-11T00:40:55.000Z","size":940,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":5,"default_branch":"dev","last_synced_at":"2025-04-05T00:36:50.386Z","etag":null,"topics":["news-aggregator","news-feed","react-server-render","rethinkdb","rss","rss-aggregator"],"latest_commit_sha":null,"homepage":"https://serial.reblws.me","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/reblws.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"publiccode":null,"codemeta":null}},"created_at":"2017-08-01T15:10:02.000Z","updated_at":"2024-12-18T10:53:50.000Z","dependencies_parsed_at":"2023-03-27T04:40:21.035Z","dependency_job_id":null,"html_url":"https://github.com/reblws/morning-serial","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reblws%2Fmorning-serial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reblws%2Fmorning-serial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reblws%2Fmorning-serial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reblws%2Fmorning-serial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/reblws","download_url":"https://codeload.github.com/reblws/morning-serial/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251138934,"owners_count":21541976,"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":["news-aggregator","news-feed","react-server-render","rethinkdb","rss","rss-aggregator"],"created_at":"2024-11-11T08:21:56.641Z","updated_at":"2025-04-27T12:33:10.171Z","avatar_url":"https://github.com/reblws.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Morning Serial](https://user-images.githubusercontent.com/9971847/29468139-fe1f3e80-8410-11e7-9266-1d425d5ae9bd.png)\n\u003e a real-time news aggregator\n\nMorning Serial provides a chronological view of the latest headlines from a variety of different (mostly tech-oriented) websites. Once the page is loaded, new headlines are inserted in the page as they come out in real-time, giving a fresh look at the latest news without any interaction by the user. It also includes a cryptocurrency ticker.\n\n## Getting Started\n\nThese instructions will get you a copy of the server up and running on your local machine for development.\n\n### Prerequisites\n\n- [Node](https://nodejs.org/) \u003e=8.0.0\n  - Check out [tj/n](https://github.com/tj/n) or [nvm](https://github.com/creationix/nvm) for node versioning\n- [RethinkDB](https://www.rethinkdb.com/) \u003e=2.3\n\nI recommend using something like [direnv](https://direnv.net/) to manage project-specific environment variables.\n\nThe following envrionment variables need to be set (the values in [.envrc.example](.envrc.example) should be fine):\n\n- **PORT**\n  - Port you want the express server to listen on\n- **RETHINKDB_PORT**\n  - The client-driver connection port\n- **RETHINKDB_HOST**\n  - Where the RethinkDB instance is hosted\n- **NODE_ENV**\n  - development or production\n- **HOST**\n  - Hostname of the site, only matters if NODE_ENV=production\n\n### Start\n\n1. Make sure RethinkDB is alive before starting\n    - `$ rethinkdb`\n2. From the project folder, install the required dependencies\n    - `$ npm install` or `$ yarn install`\n3. Start the server\n    - `$ npm run start` or `$ yarn start`\n      - This starts nodemon and webpack in watch mode. The Javascript is automatically rebundled and the server restarted after each save.\n\nThere are two important scripts in the `scripts/` folder: `feed-worker.js` and `dl-favicons.js`. Run these in node to populate the database and download each source's favicons. The favicon script is also available as a script under package.json (`npm run favicons`).\n\n### Deploy\n\n`$ npm run build` or `$ yarn run build`\n\nAfter running the `build` script, the `dist/` folder should be populated with a copy of the server and static assets.\n\nRun the `feed-worker.js` script as a cronjob to continue populating the db with new articles. There's an example file that shows the syntax.\n\n`dist/server.js` contains the code needed to run the Express server.\n\n`dist/assets` contains all static assets needed for the front-end. Can host these files in a CDN, just make sure that `bundle.js` and `server.js` are built in sync to avoid any dissociations between client- and server-rendered markup.\n\n## Contributing\n\nAny and all PRs are welcome. Feel free to raise any issues as well.\n\nIf there's a cool site that you think the site is missing, adding it is easy if they have an ATOM/RSS feed. Just add the site in the `/src/data/types.js` file with the name of the site in CamelCase as the key and a dash-separated name as the value. Then add a new file in the `/src/data/sources` folder, and instantiate a new member of the Feed class ([example](/src/data/sources/ars-technica.js)).\n\nMost of the front-end is built with React and is found in the [view](/src/view) folder. The CSS is built with PostCSS plugins (import, [cssnext](http://cssnext.io/), and [short](https://github.com/jonathantneal/postcss-short)), so use as many features from the latest CSS spec as you want.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details\n\n## Acknowledgements\n\n- [CryptoCurrency Market Capitalizations](https://coinmarketcap.com/) powers the cryptocurrency ticker\n- [cryptocoins](https://github.com/allienworks/cryptocoins) free cryptocurrency SVGs\n- [HK Grotesk](https://www.fontsquirrel.com/fonts/hk-grotesk) a free, good-looking grotesk\n- [Zilla Slab](https://github.com/mozilla/zilla-slab) display font\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freblws%2Fmorning-serial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freblws%2Fmorning-serial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freblws%2Fmorning-serial/lists"}