尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
A small web app for a family — or a team, or any circle of people: everyone keeps
a list of things they'd like, and everyone else can quietly claim an item to buy
so two people don't turn up with the same gift.
The rule the whole app is built around:
Your own list never tells you that something on it has been claimed.
Everyone else sees it. You don't.
With one deliberate exception, and only if you go looking: a wish somebody has
reserved can no longer be deleted or edited by its owner, and the refusal says
so. It never says who reserved it.檢視完整 README ↗A small web app for a family — or a team, or any circle of people: everyone keeps a list of things they'd like, and everyone else can quietly claim an item to buy so two people don't turn up with the same gift.
The rule the whole app is built around:
Your own list never tells you that something on it has been claimed. Everyone else sees it. You don't.
With one deliberate exception, and only if you go looking: a wish somebody has reserved can no longer be deleted or edited by its owner, and the refusal says so. It never says who reserved it.
npm install
npm run db:start # local Supabase stack in Docker
npm run dev # in another terminal
Then open localhost:3000, sign in, and create a group — you are its admin. The first run needs a Google OAuth client; Local development has the four-step version.
Everything lives in docs/, in three layers:
Running it: Local development · Production · Database · Deployment.
Working on the code? CLAUDE.md is the short version.
Next.js 16 (App Router) · React 19 · TypeScript · Tailwind CSS 4 · Radix UI primitives · next-intl · Supabase Postgres · Supabase Auth (Google)
Every read and write happens on the server with the service_role key. Row level
security is on for every table with no policies at all, because the one rule
above cannot be expressed as one — the reasoning is
here.