尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證pirokaapp
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Intent-first live map for queer adults. Web/PWA first, native later. Built by XRankFlow Media Group.
Next.js 14 (App Router) · TypeScript · Tailwind CSS (tokens in tailwind.config.ts) · Framer Motion · Three.js (@react-three/fiber, drei) · MapLibre GL · TanStack Query · Zod · Supabase (Postgres + PostGIS + Realtime) · Vercel.
npm install
cp .env.example .env.local # all keys optional in Phase 0
npm run dev # http://localhost:3000
npm run build · npm run lint · npm run typecheck · npm run format
| Route | Screen | Phase |
|---|---|---|
/ | Homepage: live map, chat sign-up, 18+ consent, face age check, log in | 1 ✓ |
/onboarding | 5-step profile setup | 0 shell → 2 |
/app/map | Live map (default tab) | 0 shell → 3 |
/app/pulse | Stats, hotspots, arrivals | 6 |
/app/chats | Smart inbox, threads, local board | 4 |
/app/places | Places · Events · Groups · Testing | 6 |
/app/me | Profile, PIROKA Mode, SafeMeet, album, plan | 2, 5, 8 |
/account/forgot /account/magic /account/reset | Account flows | 1 ✓ |
/help/[slug] | Help center, support, appeals, report, policies | 7 |
App shell: 80px left rail at ≥820px (rail: breakpoint), 66px bottom tab bar below that, with env(safe-area-inset-bottom).
Auth is Supabase Auth (Google, email magic link, anonymous, password). Without NEXT_PUBLIC_SUPABASE_URL + NEXT_PUBLIC_SUPABASE_ANON_KEY the app runs in demo auth (a signed cookie, no real identity) so the whole flow can be walked locally; production builds refuse demo mode unless NEXT_PUBLIC_AUTH_DEMO=1.
Every new account passes the gate before /onboarding and /app/* (enforced in middleware.ts):
POST /api/consent.POST /api/age/verify. Providers in lib/age: yoti, persona (stubs to wire) or local (the on-device UI only, dev). Only age_verified = true is stored, in Supabase app_metadata via the service role.To go live on Supabase: set the keys plus SUPABASE_SERVICE_ROLE_KEY, enable Anonymous sign-ins, configure the Google provider, add <origin>/auth/callback to the redirect allow list, and pick an age provider.
app/ routes (App Router)
components/ shared UI (logo, app nav, providers)
lib/ intent.ts, geo/fuzz.ts (server only), help.ts, i18n.ts, env.ts, supabase/
messages/ en · pt-BR · es catalogs
supabase/ schema.sql (Postgres 15 + PostGIS)
design_handoff/ the design spec — README, FEATURES, BUILD_PLAN, HTML prototypes (source of truth for UI)
Read design_handoff/README.md first. The .dc.html prototypes in design_handoff/design/ are the behavioral spec (open with support.js beside them); design_handoff/standalone/ are single-file offline demos. Build order is design_handoff/starter/BUILD_PLAN.md.
lib/geo/fuzz.ts only.