尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Friendly bets for friends and family. Make a group, create a bet like "When will X give birth?", and everyone claims a timeslot. Closest guess takes the pot. Points only, no money.
npm install
cp .env.example .env
npm run dev
.env.example points at the Supabase project. The publishable key is safe to expose; it only allows what the RLS policies permit.
The schema lives in supabase/migrations. In short:
groups, group_members, group_invites: private groups are joined with an invite link, public ones by anyone logged in.bets: a question with a timeslot grid (answer_config), a fixed buy-in and a closing time.wagers: one claimed slot per person per bet; each slot can only be claimed once.group_leaderboard: net points per member, over resolved bets.Placing wagers, joining groups and resolving bets go through database functions (place_wager, join_group, resolve_bet, …) so the rules are enforced in one place.
To regenerate the TypeScript types after a schema change:
npx supabase gen types typescript --project-id djqhwqogbcgahawabylz > src/lib/database.types.ts
Strings live in messages/en.json and messages/da.json. Use them with m.key() from #lib/paraglide/messages.js. The language comes from a cookie (set by the language picker), then the browser's language, then English. URLs are the same in every language.