Complete guide for building beautiful apps with Expo Router. Covers fundamentals, styling, components, navigation, animations, patterns, and native tabs.
中文简介正在准备中。当前显示原文说明。
First-run setup wizard for a freshly cloned NowStack Mobile. Installs the machine's CLIs, connects every account, wires Convex, creates YOUR own clean Git repo, gathers the product brief, then rebrands the boilerplate into your app. Use for "set up my project", "initial setup", "onboard me", "ns onboard", "I just cloned this", or the very first run.
中文简介正在准备中。当前显示原文说明。
安装前可以查看交给 AI 代理的指令内容。
Run in this order. (Tools come before account logins because connecting an account needs its CLI — this is the user's "accounts + CLIs", sequenced so the logins actually work.)
<step n="1" title="Install the machine's tools" maps="user step 2"> Invoke **`ns-doctor`** — detect + install everything missing (eas, vercel, convex, asc, gpc, fastlane, bun, gcloud; offer Xcode/Android Studio), OS-aware. One confirmation, then install. </step> <step n="2" title="Install project dependencies"> Install node modules in **all three** workspaces so every binary (`expo`, `convex`, `tsc`, `vinxi`) actually resolves — a missing/empty `node_modules` is why `npm run ios` later fails with `expo: command not found`. Run in **root**, **`web-app/`**, and **`mobile-app/`**: ```bash npm install # repo root (Convex backend deps) cd web-app && npm install && cd .. cd mobile-app && npm install && cd .. ``` - **Verify each install for real** — check the exit code AND that the tree landed (`ls mobile-app/node_modules/.bin/expo`). A trailing `echo`/`&&` can mask a failed npm; do not trust a bare "exit 0". - **Mobile peer-deps:** `mobile-app/.npmrc` pins `legacy-peer-deps=true` (Expo + React 19 pull `react-dom` at a newer patch than the pinned `react`, which trips npm's strict peer resolver). Keep that file; do not pass conflicting `--no-legacy-peer-deps`. If `node_modules` is stale, prefer `npm ci`. - Skip a workspace only if its `node_modules/.bin` is already populated. </step> <step n="3" title="Create + connect all accounts" maps="user step 1"> Invoke **`ns-setup-accounts`** — per service: signup (manual), log in via CLI, write the credential to its home, verify. Every account is skippable. Covers Convex, Expo/EAS, Apple, Vercel, Stripe, Google Play, and the **Cloudflare R2** token (auto-provisioned by `ns-setup-r2`'s script + pre-filled token link). Ask up front which surfaces they ship (iOS? Android? web? payments?) to skip whole branches. </step> <step n="4" title="Wire Convex" maps="user step 3"> Ensure a dev deployment exists (`npx convex dev` once → writes `CONVEX_DEPLOYMENT`), the client URLs are in the env files, and the minimum backend secrets are set so sign-in works: `BETTER_AUTH_SECRET` (`openssl rand -base64 32`), `RESEND_API_KEY`, `EMAIL_FROM`, `SITE_URL`. (Mostly handled inside step 3; verify here.) </step> <step n="5" title="Create YOUR own clean Git repo" maps="user step 4"> The clone still points at the boilerplate — give the user their own repo. **`gh` is required** (`gh auth status`).⚠️ Guard: never run this on the canonical boilerplate itself. Refuse if git remote get-url origin is …/Melvynx/nowstack-mobile AND the user is the maintainer / hasn't confirmed this is their fork-to-be. Always show git remote -v and get explicit confirmation first.
Offer two modes:
trash .git (NEVER rm -rf), then git init && git add -A && git commit -m "chore: init from NowStack Mobile".git remote remove origin.Then create + push the new repo (private by default):
gh repo create <project-name> --private --source=. --remote=origin --push
Confirm the name with the user (default: the app slug from step 6/7). </step>
<step n="6" title="Gather the product brief (PRD)" maps="user step 5"> Collect ONE product brief — don't run a long questionnaire if the user already gave the idea. Capture: app idea/positioning, **title**, **slug**, **bundleId** (reverse-domain), company/legal, brand colors, pricing + IAP product ids, domain, admin emails. This feeds step 7. (This is the intake phase of `ns-init-project`.) </step> <step n="7" title="Rebrand the boilerplate into the app" maps="user step 6"> Invoke **`ns-init-project`** — apply the brief: `site-config.ts` + mirror to `convex/siteConfig.ts`, product copy across `web-app/` and `mobile-app/`, onboarding images (`ns-images`), `App.storekit` product id, and backend env. Then optionally `eas init` → `easProjectId` if they'll do store builds. </step> <step n="8" title="Finish" maps="user step 7"> - `npm run check-setup` — must be clean (or only expected warnings). - Summarize: accounts connected / skipped (and what skipping blocks), repo URL, Convex deployment, what's branded. - Hand off the run command: `npm run start-all` (Convex + web + mobile), with `npm run ios` for a dev build (payments/Apple Sign In need it, not Expo Go). - Point at the next milestones: `/ns web deploy`, `/ns ios testflight`, `/ns android beta`. </step> <rules> - Orchestrate, don't duplicate: invoke `ns-doctor`, `ns-setup-accounts`, `ns-setup-r2`, `ns-init-project`, `ns-images` and follow their rules. - **NEVER `rm -rf`** — use `trash` (the git-detach step removes `.git`). - The new-repo step is destructive and outward-facing — its own explicit confirmation, and the boilerplate guard above. - Accounts are skippable; only Convex is required to run the app. - Keep secrets in Convex env / their proper home; never commit credentials. - Skip any step already done (idempotent); re-running the wizard must be safe. </rules>还没有评价。欢迎分享你的使用感受。
无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。
还没有评论。来写第一条吧。
Complete guide for building beautiful apps with Expo Router. Covers fundamentals, styling, components, navigation, animations, patterns, and native tabs.
中文简介正在准备中。当前显示原文说明。
Routes general Convex requests to the right project skill. Use when the user asks which Convex skill to use or gives an underspecified Convex app task.
中文简介正在准备中。当前显示原文说明。
Use when optimizing Convex database read bandwidth, documents-read cost, query indexes, full-table scans, function-level usage dashboard findings, or code that uses .filter(), unbounded .collect(), N+1 reads, or expensive reactive Convex queries.
中文简介正在准备中。当前显示原文说明。
Build reusable Convex components with isolated tables and app-facing wrappers. Use for defineComponent, app.use, ComponentApi, or shared backend modules.
中文简介正在准备中。当前显示原文说明。
Plan safe Convex schema and data migrations. Use for widen-migrate-narrow rollouts, backfills, breaking field changes, table splits, or failed schema deploys.
中文简介正在准备中。当前显示原文说明。
Audit Convex performance for hot reads, write contention, subscriptions, function limits, OCC conflicts, latency, read amplification, and expensive reactive queries.
中文简介正在准备中。当前显示原文说明。