BestBlogs.dev: an AI-curated reading layer on top of RSS, with a CLI and OpenAPI v2
bestblogs.dev - 汇集顶级编程、人工智能、产品、科技文章,大语言模型摘要评分辅助阅读,探索编程和技术未来
At a glance
- What is it?
- BestBlogs.dev is an AI-driven reading assistant that scores and summarises content from RSS, Newsletter, Twitter, YouTube and Podcast sources. The repository is mostly documentation, OPML lists and API specs, so adoption is about the service and its endpoints rather than self-hosting the code.
- Who is it for?
- BestBlogs.dev fits readers who want a scored, bilingual feed without maintaining their own filtering pipeline, and developers who want a hosted discovery API behind an X-API-KEY header. It does not fit anyone who needs to self-host the curation logic, since the repository ships documentation, OPML files and API specs rather than the service itself.
- Can I use it commercially?
- Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
- Is it still maintained?
- Yes. The repository last received commits 72 days ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 17, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
The reading fatigue BestBlogs.dev targets
The README opens with a specific complaint: subscribing to 200 RSS sources and wanting to close the reader every morning. The project's answer is to move filtering to the source, using an AI first pass plus human editorial review to build what it calls a public quality pool that every visitor shares. Each item carries a six-dimension score covering topic selection, content, depth, usefulness, innovation and expression. That score is the product's central claim, and it is also the part you cannot inspect from the repository, because the scoring pipeline runs on bestblogs.dev rather than in the code published on GitHub.
The audience is narrow but clearly stated. It is for readers who follow both Chinese and English sources and do not want to wait for a translated summary of an English original. The README describes immersive two-way translation and an AI reading companion for articles, tweets, podcasts and video. It is not for someone who wants a plain feed reader with no ranking, since the ranking is the whole point.
How the public quality pool and personal space connect
The product is split into two layers that draw from the same pool. The public curation layer needs no login and contains a daily brief, a weekly selection, topic explainers and a content square with featured and latest views. The personal space is login-gated, with Pro unlocking the full workflow: a personalised daily brief delivered as text and email, a unified three-column workbench for the five source types, an AI reading companion with bookmarks and highlights, and an evening review page.
The five source types are RSS, Newsletter, Twitter, YouTube and Podcast. According to the README, pasting a YouTube, Xiaoyuzhou or WeChat public account link is recognised automatically and added as a subscription. Interest profiling is explicitly not manually tunable: the README states that preferences are driven by explicit behaviour such as follows, reading and a custom number of items per domain. That is a deliberate constraint, and it means you cannot correct a bad recommendation by adjusting weights. You change it by reading differently, which is slower feedback than most recommender interfaces offer.
Installing the CLI and running a first discover command
The README's quick start offers three paths. Browsing bestblogs.dev needs nothing. The command line path is for developers and agent users. The CLI installs globally from npm, then authenticates with an API key generated on the settings page, then runs discovery and reading commands. The README gives this block:
npm install -g @bestblogs/cli
bestblogs auth login # 输入 API Key(在设置页生成)
bestblogs discover today # 今天最值得读的内容
bestblogs read deep <id> # 深度阅读一篇After login, `bestblogs discover today` should return the day's highest-scoring items, and `bestblogs read deep <id>` takes an identifier from that output for a longer read. Note that the CLI is not in the repository's top-level listing, which includes a cli/ directory but no published package manifest at the root, so treat the npm package as the supported distribution channel rather than something you build from source.
For agent users there is a second path, installing skills for Claude Code, Codex or Cursor:
npx @bestblogs/skills # 一键安装所有 Skills
# 安装后在 Claude Code 或 Codex 中直接说:「今天 BestBlogs 有什么值得读的?」The skills directory exists in the repository, so this is the one integration where the published files and the documented command line up. If you only want the feed, skip both and import one of the OPML files listed in the README.
RSS endpoints and the OPML source lists
The RSS layer is the most concrete thing in the repository, and it is where the documentation is strongest. BestBlogs exposes scoped feeds rather than one firehose. The README lists a whole-site feed, a featured-only feed, a programming article feed, an English AI feed with a minimum score, a newsletter feed and a daily brief feed. The English AI example uses `minScore=90`, which is the clearest sign that the six-dimension score is queryable rather than decorative. A separate document, BestBlogs_RSS_Doc.md, is referenced for the remaining parameters, and the README does not reproduce them, so read that file before assuming a filter exists.
The OPML files are a different kind of asset. The repository ships BestBlogs_RSS_ALL.opml with 400 sources, plus splits for articles (170), podcasts (30), videos (40) and Twitter (160). A second set under opml/ covers 551 sources: 375 WeChat public accounts converted through wechat2rss, 57 Xiaoyuzhou podcasts and 119 YouTube channels. You can import these into any reader without using BestBlogs at all. The README's own suggestion is to import them and then follow the sources on BestBlogs so the AI does the first pass, which is honest about where the value sits: the lists are a loss leader for the scoring service.
OpenAPI v2, authentication and what the repository actually contains
The v2 API is documented across six files under openapi/, covering authentication, intake and interest profiling, discovery, reading, capture, and topics. The base URL is `https://api.bestblogs.dev/openapi/v2` and authentication is a header, `X-API-KEY: <your_key>`, with the key generated on the settings page. The README notes that OpenAPI v2 access is available on both Free and Pro, which matters because it means the API is not paywalled behind the subscription.
The topics endpoints are the most interesting for anyone building on top: `GET /openapi/v2/topics` for a list and `GET /openapi/v2/topics/{slug}` for detail with structured fields across four types, citations and more. The README truncates at that point, so the shape of the structured fields is only in the openapi/ files.
Here is the limit worth stating plainly. The top-level repository entries are documentation, OPML data, images, posts, flows and API specs. There is no server code, no deployment manifest and no licence file in the listing. TypeScript is the primary language, but what is published reads as the public face of a hosted product, not a codebase you run. The README does not document self-hosting, and the license is unknown, so you cannot assume any right to reuse the code beyond reading it.
Quotas, the Free and Pro split, and where it is the wrong tool
The Free tier is described as a standalone product rather than a trial: the entire public curation layer is open, and basic reading capture with bookmarks, highlights and history is included. Pro adds the personalised daily brief, the evening review, custom views, a tenfold increase in followed sources, and tenfold daily quotas for the AI companion and immersive translation, going from 3 to 30 uses per day. Trial length differs by account age: 7 days for new users and 14 for existing ones. The README also says the specific quota numbers are adjusted dynamically by the backend, so the 3 and 30 figures are a snapshot, not a contract.
The clearest failure mode is the personalisation model. Because interest preferences are driven by behaviour and the README says manual weight adjustment is not offered, a new account with little reading history has little signal, and the first personalised brief is the moment the system has least to work with. The README claims the first brief arrives within 15 minutes of activating Pro, which sets an expectation about latency but says nothing about how good that first brief will be.
The second limit is the one that decides most engineering evaluations. If your requirement is to run the curation pipeline inside your own infrastructure, on your own model, with your own scoring rubric, BestBlogs is the wrong tool. The scoring logic is not in the repository.
Alternatives and the actual difference in approach
The natural comparison is a self-managed RSS reader such as FreshRSS or Miniflux, optionally paired with a summarisation step you write yourself. The difference is where the judgement lives. A self-hosted reader gives you the raw feed and leaves ranking, translation and summarisation to you or to a model you call. BestBlogs gives you a pre-ranked pool produced by an AI first pass plus editorial review, and lets you filter it by score through query parameters such as `minScore=90`. You trade control of the scoring pipeline for not having to build and tune one.
The second alternative is a topic-tracking tool in the TrendRadar style, which aggregates trending items across platforms rather than maintaining a curated source list with per-item scores. That approach surfaces what is popular right now; BestBlogs surfaces what its scoring model rates as worth deep reading, which can be older and less viral. The OPML files are the bridge between the two worlds: they are useful even if you never open bestblogs.dev, because 551 categorised sources with a WeChat conversion path are tedious to assemble by hand.
Maintenance, upgrade cost and licence position
The repository is not archived and the last push was on 2026-07-08, so there has been recent activity, but the README's own version marker is v2.4.0 and no releases were retrieved, which means version tracking happens in the VERSION file and the changelog/ directory rather than through GitHub releases. If you depend on the CLI or the API, those are versioned by the hosted service, and the README warns that quota numbers are adjusted server-side. An upgrade can therefore change your effective limits without any change to the repository you are watching.
On licensing, the position is simply unknown from what is published. No licence file appears in the top-level listing, and the README does not state terms for the code, the OPML files or the API documentation. The OPML files and the API are usable through the service, but do not assume you can redistribute the repository contents. That is a question for the maintainers, not something to infer.
Editorial conclusion
BestBlogs.dev fits readers who want a scored, bilingual feed without maintaining their own filtering pipeline, and developers who want a hosted discovery API behind an X-API-KEY header. It does not fit anyone who needs to self-host the curation logic, since the repository ships documentation, OPML files and API specs rather than the service itself. Before adopting, check the current Free and Pro quotas, confirm the npm packages @bestblogs/cli and @bestblogs/skills resolve, and read BestBlogs_RSS_Doc.md for the full query parameters, because the README only lists a handful of examples and the licence file is not present in the repository listing.
Frequently asked questions
What is BestBlogs.dev?
It is an AI-driven reading assistant that collects content from RSS, Newsletter, Twitter, YouTube and Podcast sources and ranks it with a six-dimension score covering topic selection, content, depth, usefulness, innovation and expression. The public curation layer is readable without logging in, and the personal space with a personalised daily brief is part of the Pro tier.
How do I install the BestBlogs CLI?
The README gives `npm install -g @bestblogs/cli`, followed by `bestblogs auth login` with an API key generated on the settings page. After that, `bestblogs discover today` returns the day's items and `bestblogs read deep <id>` opens one for a longer read.
Can I self-host BestBlogs.dev?
The README does not document self-hosting. The repository's top-level entries are documentation, OPML files, images, posts and API specifications, with no server code or deployment manifest, so the scoring and curation pipeline runs on the hosted service rather than in the published code.
Community notes