TreeMap
무료 오픈소스 디스크 사용량 시각화 도구로, 사각형 트리맵·중복 파일 탐색·디스크 가득 예측·정리 시 파일을 휴지통으로만 이동한다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Five tracks. One focus. Finish them.
A focused songwriting/production tracker built around a single constraint:
only five tracks can be active at a time. Everything else lives in the
backlog. The dashboard tells you what's stuck, what's next, and which one to
open first.README 전문 보기 ↗Five tracks. One focus. Finish them.
A focused songwriting/production tracker built around a single constraint: only five tracks can be active at a time. Everything else lives in the backlog. The dashboard tells you what's stuck, what's next, and which one to open first.
/focus/log).session_activities), ratings, updates the active
bottleneck, and bumps last_worked_at.npm install
cp .env.local.example .env.local
# Fill in the Supabase URL + anon key from your project's API settings
npm run dev
Required environment variables (see .env.local.example):
| Var | Notes |
|---|---|
NEXT_PUBLIC_SUPABASE_URL | Project URL |
NEXT_PUBLIC_SUPABASE_ANON_KEY | Project anon/publishable key |
NEXT_PUBLIC_OWNER_ID | Any UUID — single-user V1 marker |
Schema lives in supabase/migrations/, numbered NNNN_name.sql and applied
in order. Filenames are contiguous and a number is used once — see
"Adding a migration" below.
Use tooling, not the dashboard SQL editor:
supabase link --project-ref <your-project-ref> # once
supabase db push # applies everything outstanding
Pasting migrations into the dashboard by hand is no longer the convention. It
was how this project ran for its first two dozen migrations, and it cost us:
every applied file had to be remembered rather than recorded, so the project's
migration history drifted out of step with the repo (see "Known drift" below).
db push records what it applies, which is the whole point.
Pull request branches get this for free — the Supabase GitHub integration provisions a preview database per PR and applies new migration files to it on every commit, so a migration is exercised against real Postgres before it is merged.
Take the next unused number. Check supabase/migrations/ at the moment you
create the file and re-check before merging: if another PR lands a
migration first, renumber yours. Two files sharing a number leaves the apply
order undefined and lets one of them silently never run.
Because the app deploys on merge but migrations are applied separately, a
shipped build can briefly meet a database without its column. Reads must
degrade rather than throw — see the header of src/lib/migration-errors.ts.
Production's recorded history now matches this directory one-for-one: one row
per file, versioned by the file's NNNN prefix (0001 … 0033), which is
what supabase db push compares against. The next db push should report
nothing to apply and nothing unknown on the remote.
That was not true before. Until 2026-09-04 the recorded versions were
timestamps with no overlap with the filenames, so db push refused to run
(Remote migration versions not found in local migrations directory) and every
migration was pasted in by hand — which is how the record and the schema drifted
apart. The repair was done in one sitting and found three things worth knowing:
analytics_fields) had been skipped entirely — no tracks.genre,
started_at, completed_at, none of its triggers. Nothing in src/ read
them, so nothing was visibly broken. Applied, so the schema matches the repo
rather than the repo being edited to match the accident.tracks.sort_order with
an index, from a migration applied directly to the project on 2026-08-25 for
a "manual priority order" that never shipped. Removed by
0033_drop_stray_track_sort_order.sql (a no-op on databases provisioned from
the repo), so the repo is once again the only source of schema.After confirming every file's effects were present, the
supabase_migrations.schema_migrations rows were replaced with the 33
filename-versioned entries — metadata only, the same thing
supabase migration repair --status applied writes.
Migrations landed since the repair are ordinary: db push applies them and
records the filename version, nothing else to do. The one exception so far is
0034 (track_step_notes), applied on 2026-09-12 through the Supabase MCP
tools, which record a timestamp version; its row was repaired to 0034
straight afterwards, per the rule below, so the record still reads
0001 … 0034 and db push has nothing to apply.
Keep it that way: apply with supabase db push (or, if a migration must be run
from the Supabase MCP tools, name it exactly after the file, e.g.
0034_whatever, and then repair the version to 0034 so the record still
lines up). Never apply a migration to production that is not in this
directory.
Tables: tracks, track_stages, track_finishing_steps, track_variations
(+ _steps), track_step_notes (markdown or image notes on one checklist
row), actions (tasks, track-level or studio-level), sessions,
session_activities (per-activity time + notes), session_types,
track_versions, suno_experiments / suno_candidates, albums,
resources, and the library_* tables. Triggers seed the 5 stages on track
insert and bump tracks.last_worked_at on session insert. The bottlenecks
table and actions.is_primary were dropped in 0024: the next thing to do on a
track is the top of its task list, not a stored flag.
RLS is enabled on every table (0016) but there are no policies: this is a
single-user app, the server reads with the service-role key, and nothing goes
through the anon key except the permissive storage policies in
0003_storage_policies.sql. Adding a second user would mean real auth plus
using (owner_id = auth.uid()) policies.
npm run dev # next dev (Turbopack)
npm run build # production build
npm run start # production server
npm run lint # eslint
npm run typecheck # tsc --noEmit
src/
app/
page.tsx Dashboard
layout.tsx SiteNav + main shell
tracks/
page.tsx Library
new/page.tsx Add Track
[id]/page.tsx Detail (Overview / Notes / Versions)
[id]/edit/page.tsx Edit metadata
focus/[trackId]/page.tsx Focus Mode (timer)
focus/log/page.tsx Production-logging page (post-session)
analytics/page.tsx V1 metrics
actions/ Server Actions (one file per resource)
components/
ui/ Radix-backed primitives
... Feature components
lib/
supabase/{server,browser}.ts
data/{tracks,versions}.ts
recommend.ts Scoring engine
types.ts Domain types + helpers
database.types.ts Supabase schema types (hand-maintained)
supabase/
migrations/ SQL migrations
The PRD's §9 "Future Features" list is deferred: AI suggestions, Ableton project integration, collaboration, smart pattern detection. Add real auth before exposing this beyond a single user.