TreeMap
무료 오픈소스 디스크 사용량 시각화 도구로, 사각형 트리맵·중복 파일 탐색·디스크 가득 예측·정리 시 파일을 휴지통으로만 이동한다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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.