尚未检测到更新。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.