Read Less is the model for a fully automated news aggregation pipeline that is powered by generative AI!
- Roadmap
- MVP and POC
- v1.0 - Mobile App
- v1.1 - Watch Support and Sorting
- v1.2 - Text-to-Speech
- v1.3 - AI Generated Images + Sentiment Analysis
- v1.4/v1.5 - iPad Support + Smart Search
- v1.6 - Smart Seach + AFINN/VADER Sentiment Analysis
- v1.7 - Localization
- v1.8/v1.9/v1.10 - Duplicate Article Detection
- v1.11 - UI Updates to Match Artifact
- v1.12 - Recaps
- v1.13 - Recap Localization
- v1.14 - Notifications/Newletters
- v1.15/v1.16 - Home Screen Widget
- v1.17 - Bringing Back Accounts
- v1.18 - Word Games and Achievements
- v1.19 - Local News and On Demand Jobs
- v27.0 - Enhanced Discover Page
- v27.1 - Cross-Comparative Article Generation
- v69.69 - Shit is getting realllllll
- v6724.21 - Who the f**k knew we would make it this far?!
- Development - Getting Started
- Contribution
- CLI Cheatsheet
- Automated summarization of news articles in various consumption lengths
- Basic MVP of web and mobile UI that can fetch results and view different length summaries
- Add newsletter on web app for users to receive email progress updates
- User account registration
- Third-party login support
- Access token based login
- Role-Based Access Control (RBAC)
- Remove dependency on redis
- Refactor to static web pages with Next.js for SEO
- Improve pipelines/webscraping backend article generation (not noticeable other than fewer garbage articles that say "Okay, I'll try to be better" or something)
- Add support for interactions (v1) such as upvotes and downvotes (backend)
- upvote/downvote interactions front ent support
- Record views and reading format
- Add support for users to provide feedback about articles
- Add support for users to flag articles as false, low-quality, etc.
- (I already record the metrics to implement this eventually) Bounty/training/feedback program will play an important role in the loyalty and beta test programs (eventually moderation)
- MVP Project and POC
- Advanced search/filters
- By category
- By outlet
- By relevance of wildcards
- By tags
-
Onboarding guide for mobile app - Basic settings/preferences
- Interactions
-
Modify Account Page - User login/signup
- Activity history
- Minor UI touch ups
- Offline bookmarking
- Categories
- Following of categories on (My Stuff Screen)
- Metrics gathering
- Bookmarking and Favorites
- Sharing of articles
- Display mobile app banner on web app
- Update web app manifests to have graphics
-
Adding of comments and messaging support (hopefully will not be a heavy lift as moderation could be outsourced to ChatGPT) -
Adding of following users/friends (see the news articles your friends interact with in realtime)
- Basic text-to-speech
- AI generated images
- Autoload more articles on scroll
- Compact mode + short summaries
- Sloppy AF OpenAI based sentiment analysis scoring
- Topic detection in past 24 hours
- iPad support
- Smart search preparations + highlighting
- Smart search
- AFINN/VADER Sentiment Analysis
- Channels
- Sentiment analysis with every query
- Localization for 30+ languages
- On-demand translation of articles
- UI touch ups
- Apple Watch loads pictures
- Performance improvments
- Improve applinks to show OG images
- Improve share dialog
- AI Duplicate Article Detection
- Onboarding less invasive card stacks
- Major performance updates
- Press and hold to share
- Suck it meta! Come at me bro!
- Introduces daily recaps to the mobile app
- Minor UI improvements and bug fixes
- Localizes daily recaps on the mobile app
- Major UI performance updates
- Adds context menus in intuitive places
- Moves sentiments to always be shown
- Short hold shows summary previews (iOS only for now)
-
Implement ContextMenu native for Android? - Improve localization to happen on-demand seamlessly, to appear already translated (will need to revisit for streaming performance)
- Update publishers to fetch original images assigned to @mkdirsteve
- Improve top stories algorithm to prioritize topics covered in past 24 hours over sibling count
- App Store artwork makeover
-
Add a dislike system for the future "smart" algorithm? - Backend subscription plumbing to emails/sms/push notifications (50% done)
- Add subscription flow to mobile UI
-
Daily (eventually customizable) newsletters with headlines -
Subscription to topics, threads, and/or keywords - Push notifications with Firebase
-
Replace trigger words with actual negative filters
- Home screen widget for iOS
- Home screen widget for Android
-
Add variations to summaries
- Improve backend plumbing to offload much of the client data onto the backend such as followed preferences?
-
2-factor authentication with text and/or authenticator applications - Pros of accounts?
- Account recovery
- Offload preferences on backend
- Backend can employ workers to better provide service
- Syncing of preferences across devices
-
Do accounts really need emails? Only for recovery? -
Could provide user with a private key instead for recovery?
- Anonynmous accounts
- Streaks
- Sharing of streaks
- Notification of lost streaks
- Word games
- Achievements
- Leaderboards
- Sharing of achievements
- Server side syncing of user data?
- Provide local news (needs some kind of optimization for scaling)
- Expose pipeline for users to upload text/documents to be processed
- Allow users to re-request AI images?
- Text notifications
- Conversion of Discover page to match the trending style of "Following" and "For You" in the example of social media apps like Instagram and TikTok
- Use a "smarter" algorithm to better serve users, or nah?
- Cross-comparative comprehensive article generation that accounts for multiple sources writing about the same topic
- Launch of Tier 1 premium membership program
- Adding of In-App subscriptions for premium members and content
- Launching of loyalty and referral program
- On-demand cross comparative summaries of articles by registered users (up to a free credit limit per month)
- Audio options for listening to sources and articles using text-to-speech
- Launch of Tier 2 premium membership program
- News coverage search and metrics for Tier 2 membership
First run the interactive setup script written by chatgpt!
readless $ ./setup.sh
readless $ rless web --local
readless $ rless api --local
readless $ rless scheduler --local
readless $ rless worker --local
To make a contribution, simply make a new PR onto the dev
branch. I will automatically be tagged for review and once I approve you're free to merge it!
It is usually good practice (but not always required) to rebase your branch before you push (line 23 below). Anytime you rebase you will need to use the --force
glag when pushing. I don't use it below, because it should not be a regularly used flag; only when overwriting rebased code.
1 | # cd into server directory
2 | cd ~/git/noodleofdeath/readless/src/server
3 |
4 | # clear any unstaged changes
5 | git reset --hard
6 |
7 | # checkout the dev branch
8 | git checkout dev
9 |
10 | # pull latest changes from dev
11 | git pull --rebase
12 |
13 | # create your new branch with changes
14 | git checkout -b feat/pub-updates
15 |
16 | # stage your file changes
17 | git add .
18 |
19 | # commit your staged changes
20 | git commit -m "feat(sitemaps): adds titties to readless"
21 |
22 | # push your changes to your branch
23 | git push -u origin feat/pub-updates
24 |
25 | # on mac this should open chrome for you to create your PR
26 | open https://github.com/NoodleOfDeath/readless/pulls
27 |
28 | # im curious now. ive never made a PR from CLI
29 | # researching... (6%)... (80%)... (100%)
30 | # oh sickkkk
31 |
32 | # install the hub command
33 | brew install hub
34 |
35 | # show the hub usage
36 | hub --help
37 |
38 | # make pull request after you push (line 23)
39 | hub pull-request
To rebase your branch you simply do the following, where origin/dev
is the branch you want to pull updated code from and merge into your branch.
git fetch && git rebase origin/dev
When your branch is behind the origin branch, rebasing will usually fix the below error. You will never experience this error ever in this project because you will never commit directly to dev
or main
.
thom@mac mobile % git push
To github.com:noodleofdeath/readless.git
! [rejected] dev -> dev (fetch first)
error: failed to push some refs to 'github.com:noodleofdeat
h/readless.git'
hint: Updates were rejected because the remote contains wor
k that you do
hint: not have locally. This is usually caused by another r
epository pushing
hint: to the same ref. You may want to first integrate the
remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --hel
p' for details.