Personal app. Web first, then an iPhone client.
| Client | Stack | Status |
|---|---|---|
| Web | TanStack Start on Cloudflare Workers | In progress |
| iPhone | Expo (iOS) | Next, after a minimal web app |
Web UI uses shadcn/ui (Tailwind is required by shadcn) and StyleX for layout. Those stay on web. Expo will be a separate React Native app that talks to this Worker over HTTP, not a wrap of the website.
When we add Expo, keep shared logic behind /api/* routes (see GET /api/health) so both clients can use the same backend. Don't put mobile-needed behavior only in TanStack Start server functions or browser-only code.
npm install
npm run devApp runs at http://localhost:3000.
npm run build
npm run preview
npm run deploydeploy needs a logged-in Wrangler session (npx wrangler login) or Cloudflare CI credentials.
GET /api/health is a CORS-enabled JSON endpoint the iPhone app can call later.
npx shadcn@latest add button