尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗UntitledOne makes it easy to share music projects, discuss versions, and annotate audio with precise timestamps. Built for speed, simplicity, and modularity on a modern web stack.
src/
├─ app/ # Next.js App Router (server-first)
│ └─ (routes)/… # feature routes (e.g., dashboard, project, auth)
├─ components/ # Atomic Design + shadcn/ui
│ ├─ atoms/ ├─ molecules/ ├─ organisms/ ├─ templates/ └─ ui/
├─ hooks/ # custom hooks
├─ i18n/ # next-intl (messages/, routing)
├─ lib/ # api/, supabase/, env.ts, utils.ts
├─ stories/ # Storybook
├─ types/ # Supabase schema types (generated)
└─ styles/ # globals.css, tailwind.css (optional)
UntitledOne supports multiple locales via next-intl. Translation files live in src/i18n/messages/.
en, fr, nl{locale}.json file and wiring it in src/i18n/request.tsCreate a .env.local with:
SUPABASE_URL=
SUPABASE_ANON_KEY=
SUPABASE_SERVICE_ROLE_KEY=
SUPABASE_DB_URL=
RESEND_API_KEY=
NEXT_PUBLIC_SITE_URL=
This project uses npm as the package manager.
node -v # Node.js 18+
npm -v
Clone and install:
git clone https://github.com/sandeeeerr/untitledone.git
cd untitledone
npm install
Configure env (see above), then start dev:
npm run dev
# http://localhost:3000
npm run test # unit tests (Vitest)
npm run cypress:open # E2E (Cypress)
Common scripts:
npm run dev # dev server
npm run typecheck # TypeScript
npm run lint # ESLint
npm run format # Prettier
npm run gen:types # generate Supabase DB types
npm run storybook # Storybook
Recommended: deploy on Vercel.
# Configure environment variables in Vercel dashboard
# Then push to main or create a Production Deployment
UntitledOne helps audio creatives share work, version files, and give time-based feedback in a calm, focused interface. The goal is to reduce friction in collaboration while keeping decisions traceable through an activity timeline.
en, fr, nl via next-intl; localized dates and messages| Token | Light (HSL) | Dark (HSL) |
|---|---|---|
| background | 0 0% 100% | 240 10% 3.9% |
| foreground | 240 10% 3.9% | 0 0% 98% |
| primary | 220 90% 56% | 220 80% 60% |
| secondary | 240 4.8% 95.9% | 240 3.7% 15.9% |
| accent | 240 4.8% 95.9% | 240 3.7% 15.9% |
| destructive | 0 84.2% 60.2% | 0 62.8% 30.6% |
| border/input | 240 5.9% 90% | 240 3.7% 15.9% |
| ring | 240 5.9% 10% | 240 4.9% 83.9% |
See GitHub Projects: https://github.com/sandeeeerr/untitledone/projects
Contributions are always welcome! Please follow Conventional Commits and our guidelines.
See CONTRIBUTING.md for ways to get started.
Please read the Code of Conduct
How are secrets handled?
NEXT_PUBLIC_* variables are used client-side.Can I use my own Supabase project?
supabase/migrations/, then npm run gen:types.Report vulnerabilities privately via SECURITY.md.
Distributed under the MIT License. See LICENSE for more information.
Author: Sander de Vries — open an issue for questions/feedback
Project Link: github.com/sandeeeerr/untitledone
Core scripts to keep quality high:
npm run lint # ESLint
npm run typecheck # TypeScript
npm run test # Unit tests (Vitest)
npm run cypress:open # E2E locally