尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗AI product photography for real products. One engine, three ways in:
| Surface | Where | Code |
|---|---|---|
| Web app + marketing site + admin | https://your-domain.com | apps/web (Next.js 15) |
| Shopify embedded app | Shopify admin → Apps | apps/web/src/app/shopify + shopify.app.toml |
| iOS and Android app | App Store / Google Play | apps/mobile (Expo SDK 58) |
| Shared rules (presets, prompts, credit maths, GST) | packages/core | |
| Database, ledger, queue | Supabase Postgres | supabase/migrations |
pass / review are delivered; fail is retried, then released with no charge.credit_ledger) with SQL functions so it is atomic and idempotent.Providers sit behind one adapter (apps/web/src/lib/providers). Default order is Gemini → OpenAI → fal. Model IDs, order and per-image cost are editable in Admin → Settings → providers without a deploy. With no keys at all, a clearly labelled sandbox makes placeholder images so the whole flow can be tested.
npm install # web + core (workspaces)
cd apps/mobile && npm install
cp .env.example apps/web/.env.local # fill in
ap-south-1 recommended).supabase/migrations/*.sql in order (or supabase db push).https://your-domain.com/auth/callback.{{ .Token }} so the mobile app can use the 6-digit code.supabase/cron.template.sql with your URL and CRON_SECRET (queue worker every minute + daily checks).apps/web. Add the variables from .env.example.maxDuration), which needs Vercel Fluid compute (default on new projects).PLATFORM_ADMIN_EMAILS, sign in, open /admin.seller: legal name, GSTIN, address, state code, SAC code (confirm with your CA), invoice prefix.RAZORPAY_KEY_ID, RAZORPAY_KEY_SECRET.https://your-domain.com/api/webhooks/razorpay, events: payment.captured, order.paid, payment.failed, refund.processed, payment.dispute.lost. Secret → RAZORPAY_WEBHOOK_SECRET.shopify.app.toml, replace REPLACE_WITH_DOMAIN, then shopify app deploy (sets scopes, URLs and webhooks including the three privacy webhooks).SHOPIFY_API_KEY, NEXT_PUBLIC_SHOPIFY_API_KEY (same value), SHOPIFY_API_SECRET, ENCRYPTION_KEY.shopify_billing.test is true by default; set false in Admin → Settings at launch.apps/mobile/app.json → extra (API URL, Supabase URL/anon key, RevenueCat keys) and the iOS bundleIdentifier / Android package.pocketshoot.credits.5 etc. for iOS, pocketshoot_credits_5 etc. for Android, matching Admin → Pricing), add a webhook to https://your-domain.com/api/webhooks/revenuecat with an Authorization header value of Bearer <REVENUECAT_WEBHOOK_AUTH>.npx eas-cli@latest build --platform all, submit with eas submit. In-app purchases need a development or production build (not Expo Go).npm test # 19 core tests + 18 web tests (ledger SQL in PGlite, image pipeline)
cd apps/web && npx next build
cd apps/mobile && npx tsc --noEmit
| Question | Decision | Change it in |
|---|---|---|
| Charging rule | Reserve on submit, charge only delivered images, 1 free remake per image within 7 days | Admin → Settings → credit_policy |
| Trial | 2 credits per verified email, max 3 per network per 30 days, watermark, 1024px | credit_policy |
| Credit expiry | Paid 12 months, free/bonus 60 days | credit_policy |
| Output resolution | 2048px long edge (website hero 2560px) | packages/core/src/presets.ts |
| Retention | Failed outputs deleted after 30 days | retention |
| Payment gateway | Razorpay (web), Shopify Billing (Shopify), Apple/Google via RevenueCat (mobile) | |
| Pricing | Spec's launch hypotheses (web INR, Shopify USD) | Admin → Pricing |