> > > > > > >
AI Frontier Post
A news-website homepage floating above a desk, headline cards radiating outward as a small cursor curates them into a ranked hotspot list
AIHOT is the engine behind aihot.news, published under the MIT license — illustration generated for this article.

Every morning the AI industry publishes a thousand stories and maybe ten that matter. Feed readers hand you the thousand; AIHOT hands you the ten. AIHOT (KKKKhazix/AIHOT, MIT) is a self-hosted website framework that finds its own hot topics and writes its own daily digest: it pulls from six source types, has an LLM pre-screen and then independently score every candidate twice, clusters coverage of the same event, ranks by heat, and publishes a daily edition — the same engine running the live site aihot.news. It went from zero to nearly 6,700 GitHub stars in under two weeks. This walkthrough boots your own instance in about half an hour and shows you how to turn it into a hotspot site for your industry.

The design is the whole pitch: AIHOT treats source curation as a knowledge-management problem. Six source types — RSS, web lists, JSON APIs, X accounts, WeChat public accounts, and content pushed in by your own scripts — are split into three tiers (official first-party, official accounts and quasi-official, media and individuals), each with its own admission threshold, and scrape frequency adjusts automatically with output. A story that survives pre-screening gets scored twice against the same rubric, gets a rewritten title and summary, and is clustered with other coverage of the same event: an LLM decides whether two stories are the same story, a follow-up, or two different things, with a second model able to re-review the decision (GROUP_REVIEW_MODEL). Heat is computed per event, not per article: each independent source counts once inside a 48-hour window, halving after 24 hours, so one outlet publishing ten takes on the same story does not move the needle — what ranks is what a lot of people are actually talking about.

What you’ll need

Step 1 — clone and generate your config

git clone https://github.com/KKKKhazix/AIHOT.git myhot
cd myhot
node scripts/init-env.ts --llm-key <your-model-api-key>

init-env writes your .env from a template, configured for DeepSeek by default. If you want Qwen, Zhipu, or another OpenAI-compatible provider, the .env.example file shows exactly which three values to change (LLM_BASE_URL, LLM_MODEL, LLM_EXTRA_JSON). Using a reasoning model that thinks before answering? Also set LLM_REASONING_TOKENS so the reasoning pass does not eat the output budget. The repo ships as a template, so the author suggests clicking Use this template and cloning your own copy if you plan to keep it; a straight clone is fine for a first try.

Step 2 — boot the stack

docker compose up -d --build

Open http://localhost:3000. The admin panel lives at /admin — the password is the ADMIN_PASSWORD init-env put in your .env. Within a couple of minutes the site starts filling with content, processed from the 18 public overseas AI news sources bundled as demos. The README warns you not to mistake these for the real thing: the repository deliberately ships without the live site’s source list and operating data — the demo feeds exist so you can see the pipeline working before you rewire it.

Step 3 — watch the selection pipeline work

In the admin panel you can manage sources, trial a scrape, and inspect the diagnostics of every pipeline step. Here is what each item goes through, in the README’s own order:

  1. Dedup and pre-screen. A new item is checked for duplicates, then a fast pass discards the obviously uninteresting.
  2. Double scoring. Anything possibly important is scored twice against the same rubric, independently. Passing the per-tier threshold is what admits it to the curated set.
  3. Writing. Titles are rewritten, summaries lead with the answer, and a recommendation reason is attached. Foreign-language originals get full translations; the model is explicitly restrained from inventing companies into headlines.
  4. Clustering. Coverage of the same event is merged: candidate matches are found by vector similarity (or text overlap when no vector service is configured), then the model judges same-story vs. follow-up vs. different story, with a final review pass before writing.
  5. Heat ranking. Events, not articles, are ranked — rising fast compared to six hours ago gets marked as climbing, newcomers get marked new.
  6. Editions. A daily digest compiles at 08:00, a weekly digest on Mondays at 10:00, and a monthly one on the 1st at 10:30 — configurable in site/site.ts under EDITION_TIMES.
Three glowing pipeline stages: feeds funneling into a neural scoring node, then merging into clustered event bubbles
Sources are pre-screened, scored twice against a public rubric, then clustered into events ranked by heat. Illustration generated for this article.

Step 4 — make it your industry’s hotspot

This is the part the author — a designer who rebuilt the codebase with AI half a year after picking it up, and open-sourced it because lawyers, HR people, and finance folks kept asking for their own industry version — actually designed for. Nearly everything lives in two folders, site/ and industry/, and the knowledge-heavy pieces are plain Markdown you can edit without touching code:

The author’s recommended shortcut is to hand the whole repo to a coding agent (Claude Code or Codex) with this instruction:

Please read AGENTS.md and docs/customize.md, and turn this site into a hotspot site for the [YOUR INDUSTRY] industry.
I care about: ... (the sources you want to watch, what counts as hot for you, what doesn't — be specific).
When done, run npm run typecheck, npm test and node scripts/smoke.ts, and tell me what decisions are left for me.

The most valuable thing to get right is the scoring rubric (industry/prompts/selection-score.md) and the thresholds: label a couple hundred items yourself, run scripts/eval-selection.ts to see how well the current settings match your judgment, and iterate. The docs folder has a full calibration guide (docs/: sources, selection and calibration, event grouping, digest evaluation, deployment, architecture).

A desk with a code editor beside a browser showing a freshly launched news site homepage
Swap the sources and the rubric for your own industry’s and the same engine becomes your industry’s hotspot site. Illustration generated for this article.

What you built

Your own hotspot news site: an ingestion engine over six source types, a double-scored LLM curation pipeline with fully public prompts and thresholds, event clustering with cross-source heat ranking, and daily, weekly, and monthly digests — plus the same content exposed for machines: RSS (curated, all, full-text, digests), a public API, an MCP endpoint, /api/v1/agent, an openapi-v1.json spec, and llms.txt. One stack, one site, readable by people and agents alike.

Honest limitations

Still: the gap between “I follow the AI industry” and “I run the hotspot site my industry reads every morning” used to be a full newsroom. AIHOT closes it to a config file, a rubric, and a Docker command. That is worth an afternoon.