尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
Tenant-to-tenant apartment marketplace. NYC. No brokers, no fees — just $100 to connect with the person leaving the place you want.
Market: US / NYC · Languages: English, Spanish · Stack: Next.js 14, Supabase, Stripe, Twilio, Resend.檢視完整 README ↗Tenant-to-tenant apartment marketplace. NYC. No brokers, no fees — just $100 to connect with the person leaving the place you want.
Market: US / NYC · Languages: English, Spanish · Stack: Next.js 14, Supabase, Stripe, Twilio, Resend.
Instead of opening an empty browse page, the homepage is an intake form: seekers describe what they want, we match the first members by hand, and notify them by SMS. This avoids the "empty playground" problem. The intake also works over inbound SMS (Twilio webhook).
ten2ten/
├── src/
│ ├── middleware.ts # locale routing (must live in src/ with the app dir)
│ ├── app/
│ │ ├── layout.tsx # root metadata
│ │ ├── globals.css
│ │ ├── [locale]/
│ │ │ ├── layout.tsx # sets <html lang>
│ │ │ ├── page.tsx # cold-start homepage + intake
│ │ │ ├── browse/ # placeholder (Session 3)
│ │ │ ├── list/ # placeholder (Session 3)
│ │ │ └── account/ # placeholder (Session 2)
│ │ └── api/
│ │ ├── intake/ # POST intake submissions
│ │ ├── stripe/webhook/ # grants credits on payment
│ │ └── twilio/sms/ # inbound SMS intake
│ ├── components/IntakeForm.tsx
│ ├── lib/
│ │ ├── supabase/{client,server}.ts
│ │ ├── credits.ts # the credit ledger logic
│ │ ├── stripe.ts
│ │ ├── twilio.ts # SMS + email (Resend)
│ │ └── cn.ts
│ └── i18n/{config.ts,en.json,es.json}
└── supabase/
├── schema.sql # run first
└── rls-policies.sql # run second
npm install
In your Supabase project (SQL Editor), run in order:
supabase/schema.sqlsupabase/rls-policies.sqlEnable the postgis extension if the schema step doesn't (Database → Extensions → postgis).
Copy .env.example to .env.local and fill it in.
Supabase keys (Settings → API Keys in the dashboard):
sb_publishable_…) into NEXT_PUBLIC_SUPABASE_ANON_KEY, and the Secret key (sb_secret_…) into SUPABASE_SERVICE_ROLE_KEY.anon and service_role from the Legacy API Keys tab.Both work with this code — the new keys are drop-in replacements for the old ones.
npm run dev # http://localhost:3000 (redirects to /en)
npm run build # production build
npm run typecheck
/ → /en redirect./api/intake → saves to intake_requests → sends Twilio confirmation SMS./api/twilio/sms).Run npm run dev as usual. After deleting or renaming a route file (an
app/[locale]/**/page.tsx, layout.tsx, etc.) while the dev server is still
running, Next's .next cache can keep serving stale chunk manifests for the
old route tree — this shows up as layout.css/main-app.js 404s and pages
that hang on their first load instead of rendering or erroring. If you hit
that, stop the server and run:
npm run dev:clean # rm -rf .next && next dev
instead of a plain npm run dev. Do this any time a build step in these
session specs deletes a route (e.g. removing onboarding/ in the signup
merge).
txtBilly/ten2ten GitHub repo to a new Vercel project (auto-detects Next.js)..env.example variables under Settings → Environment Variables.ten2ten.app under Settings → Domains, then update DNS.https://ten2ten.app/api/stripe/webhook and the Twilio SMS webhook to https://ten2ten.app/api/twilio/sms.Note:
[email protected]is pinned. ThesupabaseCLI is not a project dependency — usenpx supabaseif you need it locally.