尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
Australia's marketplace for Riftbound trading cards — a CSFloat-style MVP.
Browse, filter, buy and sell card singles in AUD.
MVP demo. Card data is representative sample data for demonstration purposes
and is not affiliated with or endorsed by Riot Games.
• Next.js 14 (App Router) + TypeScript
• Tailwind CSS — dark, CSFloat-inspired UI
• Prisma + SQLite — local database (prisma/dev.db)
• jose + bcryptjs — cookie session auth
• Self-contained SVG card art (no external image assets needed)檢視完整 README ↗Australia's marketplace for Riftbound trading cards — a CSFloat-style MVP. Browse, filter, buy and sell card singles in AUD.
MVP demo. Card data is representative sample data for demonstration purposes and is not affiliated with or endorsed by Riot Games.
prisma/dev.db)npm install # install dependencies
npm run setup # generate Prisma client, create DB, seed data
npm run dev # start the dev server at http://localhost:3000
The seed creates a ready-to-use account:
[email protected]Sign-in is Google or Discord only — the email/password flow was removed. The seeded accounts exist for their marketplace data (listings, orders, wallet); to sign in as one locally, sign in with an OAuth provider on the same address, or set
googleId/discordIdon the row by hand.
It is pre-loaded alongside 6 seller accounts, 54 cards (the "Origins" set) and ~190 active listings.
A native iOS + Android app lives in mobile/. It's a
Capacitor shell that loads the live site and shows
native Google AdMob ads, so it reuses 100% of this web app and stays in sync
automatically (a website deploy updates every installed app — no store update).
See mobile/README.md for build & store-release steps. The
website is app-aware via src/components/NativeShell.tsx and src/lib/admob.ts.
| Command | Description |
|---|---|
npm run dev | Start the dev server |
npm run setup | Generate client + create DB + seed (first-time setup) |
npm run db:seed | Re-seed (resets all marketplace data) |
npm run db:reset | Drop + recreate the schema, then seed |
npx tsx scripts/import-cards.ts <file.json> | Import real card data (see file header for format) |
prisma/
schema.prisma # User, Card, Listing, Order models
cards.ts # sample Origins card dataset
seed.ts # seeds users, cards and listings
src/
app/ # routes (browse, card/[id], sell, login, profile, api/*)
components/ # CardArt, Navbar, ListingCard, Filters, forms…
lib/ # db, auth, constants, listings query, formatting
scripts/
import-cards.ts # JSON importer for real card data
## Deploying
Production is **not** built on every push. `vercel.json`'s `ignoreCommand`
(`scripts/vercel-ignore-build.sh`) skips any commit whose message lacks the
marker `[deploy]`; the **Production deploy** workflow lands one such commit on
`main` every day at 08:00 UTC, after the morning price import. To release now,
either press *Run workflow* on that workflow or put `[deploy]` in your commit
message. Why: every Vercel build prerenders ~770 database-backed pages and
clears the ISR page cache, and at 10–30 pushes a day that alone was exhausting
a Neon transfer allowance every three days — see `DECISIONS.md`
("Network transfer: the deploy cadence was the burn", 2026-09-11).