Feedhub
C 70 completed
Other
web_app / json · small
67
Files
10,982
LOC
2
Frameworks
4
Languages
Pipeline State
completedRun ID
#1547118Phase
doneProgress
0%Started
2026-04-17 04:06:58Finished
2026-04-17 04:06:58LLM tokens
0Pipeline Metadata
Stage
CatalogedDecision
proceedNovelty
53.47Framework unique
—Isolation
—Last stage change
2026-05-10 03:34:14Deduplication group #48134
Repobility · open methodology · https://repobility.com/research/
AI Prompt
Create a unified feed reader web application called FeedHub. It needs to aggregate content from multiple sources—specifically Gmail, KakaoTalk, Telegram, RSS, and Slack—into one chronological timeline. Key features must include source filtering, full-text search across all sources, and the ability to expand/collapse messages for detailed viewing. For media, implement an image lightbox with arrow key navigation and an inline video player for Telegram. The system should support link previews using OG meta cards and allow users to dismiss items. The backend should use Node.js/Fastify with MongoDB, and the frontend should be built with React and Vite.
typescript react vite node.js mongodb web-app feed-reader gmail telegram rss slack
Generated by gemma4:latest
Catalog Information
Create a unified feed reader web application called FeedHub. It needs to aggregate content from multiple sources—specifically Gmail, KakaoTalk, Telegram, RSS, and Slack—into one chronological timeline. Key features must include source filtering, full-text search across all sources, and the ability to expand/collapse messages for detailed viewing. For media, implement an image lightbox with arrow key navigation and an inline video player for Telegram. The system should support link previews using
Tags
typescript react vite node.js mongodb web-app feed-reader gmail telegram rss slack
Quality Score
C
69.5/100
Structure
61
Code Quality
89
Documentation
46
Testing
50
Practices
70
Security
100
Dependencies
80
Strengths
- Good security practices — no major issues detected
Weaknesses
- No LICENSE file — legal ambiguity for contributors
- No CI/CD configuration — manual testing and deployment
- 456 duplicate lines detected — consider DRY refactoring
- 1 'god files' with >500 LOC need decomposition
Recommendations
- Set up CI/CD (GitHub Actions recommended) to automate testing and deployment
- Add a linter configuration to enforce code style consistency
- Add a LICENSE file (MIT recommended for open source)
Languages
Frameworks
Vitest Vite
Symbols
variable326
function112
interface23
method22
constant13
class7
type_alias2
API Endpoints (18)
| Method | Path | Handler | Framework | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Repobility — same analyzer, your code, free for public repos · /scan/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | /api/feed | app.get | Express/Koa | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| DELETE | /api/feed/dismiss | app.delete | Express/Koa | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | /api/feed/search | app.get | Express/Koa | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | /api/kakao/chats | app.get | Express/Koa | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | /api/og | app.get | Express/Koa | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | /api/settings | app.get | Express/Koa | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| PUT | /api/settings | app.put | Express/Koa | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | /api/settings/rss-title | app.get | Express/Koa | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | /api/settings/youtube-channel | app.get | Express/Koa | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | /api/sources | app.get | Express/Koa | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| POST | /api/sync | app.post | Express/Koa | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | /api/telegram/chats | app.get | Express/Koa | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | code | searchParams.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | content-type | headers.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | gmail | connectors.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | gmail | connectors.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | naver | connectors.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | naver | connectors.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Embed Badge
Add to your README:
