TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Weekly radar of trending AI repos on GitHub: a Next.js 16 site over the Notion archive my Claude Code routines write, each repo with a one-line summary and a sharp take.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
A single-user, mobile-friendly dashboard over the GitHub and AI-blog Claude Code
routines in ai-assistant. It reads their Notion archive tables
directly, renders them as a browsable, filterable web UI, and writes a loot item's
triage state back to Notion in place:
Loot status is editable from the UI and persists straight back to Notion
(PATCH /v1/pages/{id}); the rating is read-only display. Reads use
POST /v1/data_sources/{id}/query. Both run server-side only — the Notion token
never reaches the browser.檢視完整 README ↗A weekly radar of trending GitHub repos, AI first, each with a one-line summary and a sharp take.
A read-mostly Next.js site over the Notion archive that a set of Claude Code routines writes every week. The site never calls GitHub itself.
| Page | Source table | Shows |
|---|---|---|
/ | Trending + Blog + Loot | Dashboard: the top five hot repos, the latest blog posts, and, for the signed-in owner only, one summary card per loot ledger |
/trending, /trending/[id] | Trending Archive | Weekly trending repos, AI first, filterable by category, with 新上榜 / 在榜週數 badges; one page per repo |
/blog, /blog/[id] | Blog Archive | AI and agent blog posts grouped 官方 / 個人, each with a summary and a 點評, newest first |
/ask | none (radar-rag) | Ask the radar: questions in Chinese or English, answered from the Trending and Blog archives with citations that link to the detail pages here |
/api/latest-week | Trending Archive | JSON: the latest week's top three repos (repo, link, stars/week, momentum, summary, take), ranked like the dashboard; feeds the owner's GitHub profile README |
/loot/[target], /loot/[target]/[id] | Loot Ledger (claude / copilot / opencode / codex) | Owner only. Config assets worth stealing into each coding agent's setup, grouped by status, with an editable status |
The site is in Traditional Chinese. Every per-repo signal it shows, and the rule
that produces it, is in docs/signals.md.
flowchart LR
Routines["Claude Code routines<br/>(private repo)<br/>weekly / daily"]
Notion[("Notion<br/>archive tables")]
Server["Next.js server<br/>reads cached 600 s"]
Pages["Public pages<br/>/ · /trending · /blog"]
Ask["/ask<br/>(browser)"]
Rag["radar-rag<br/>POST /ask"]
Gate{"/loot/*<br/>password gate"}
Owner["Owner"]
Routines -->|"write rows"| Notion
Notion -->|"data_sources query"| Server
Notion -->|"POST /sync (weekly)"| Rag
Server --> Pages
Ask -->|"question + Turnstile token"| Rag
Server --> Gate
Gate --> Owner
Owner -->|"set loot Status"| Server
Server -->|"PATCH page"| Notion
Status from the UI. It
is a password-gated Server Action that patches that one Notion page and busts
that ledger's cache, so a reload shows the new value.The agents upstream, how their writes are bounded, and what broke in production are written up in docs/case-study.md.
The same Trending Archive and Blog Archive also feed radar-rag,
a Java / Spring AI service that answers questions over them, in Chinese or English, with
citations back to the rows it used. The site's /ask page is its front end. The page's
browser code calls radar-rag directly, while the site's server still reads only Notion.
The dashboard, /trending, /blog and /api/latest-week are public. /loot/* sits behind a
single-password gate, because the Vercel free tier cannot password-protect a
production deployment, so the gate lives in the app:
proxy.ts redirects any /loot/* request without a valid session
to /login. The loot pages check the session again before reading a ledger,
so a request the proxy matcher misses still gets no data.Signed out, the dashboard renders without the loot summary and the nav has no Loot tab, so anonymous visitors never receive loot data.
[!NOTE] This is a personal dashboard. It renders tables that a private set of routines fills, so a fresh clone has nothing to show until you point it at Notion tables with the same schema. The columns each page reads are the
*_PROPSmaps inlib/data.ts; a page whose first row lacks one of them shows an error naming the column rather than rendering blanks.
ntn_.lib/config.ts's TABLES into it.
Open each one in Notion → ••• → Connections → add the integration. An
unshared table returns 404..env.example to .env.local:
NOTION_TOKEN=ntn_xxx # the integration secret from step 1
APP_PASSWORD=... # the password you type to log in
AUTH_SECRET=... # high-entropy key that signs the session cookie
Generate AUTH_SECRET with:
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
All three are required. With AUTH_SECRET unset the gate fails safe:
every /loot/* route redirects to /login and no login can succeed. An
unset secret must never mean "open". The public pages keep working..nvmrc, which CI reads too:
npm run dev
Open http://localhost:3000 and log in with APP_PASSWORD.Import the repository at https://vercel.com/new, set the same three environment variables, and deploy. To lock the public pages down as well, turn on Vercel Deployment Protection.
| Symptom | Check |
|---|---|
| A page shows a data error instead of its list | Read the message. "Missing expected property" names a column that page reads and its Notion table lacks: add and backfill the column in Notion first, because the reader cannot invent it. |
| A Notion edit doesn't show up | Reads are cached for 600 seconds. On npm run dev, delete the whole .next directory, not just restart, before concluding the change failed. |
| One tab's data error says the table could not be found | That table is not shared with the integration (step 2). |
/loot keeps bouncing to /login | AUTH_SECRET or APP_PASSWORD is unset in this environment. The server log says which; the login page deliberately does not. |
npm run lint && npm run build && npm test
CI runs exactly these three on every push and pull request (a pull request
that touches only .md files or docs/ skips them), and needs no
environment variables: every route renders on demand, so the build never reads
Notion. CONTRIBUTING.md has the traps worth knowing first;
AGENTS.md and NEXT16-BREAKING-CHANGES.md
have the rest.
MIT.
Unofficial personal project. Not affiliated with, endorsed by, or sponsored by GitHub, Notion, Vercel or Anthropic.