apps/gittensory-ui (the existing main web app, apps/gittensory-ui/package.json) is the real, live stack to mirror for conventions: TanStack Start/Router (@tanstack/react-start, @tanstack/react-router, @tanstack/router-plugin), React 19, Vite, Tailwind v4 + Radix/shadcn primitives, ESLint/Prettier configs matching the monorepo's shared style. The root package.json's workspaces field is already ["apps/*", "packages/*"] (package.json:7-10), so a new apps/gittensory-miner-ui/ package is automatically picked up with no extra registration.
One thing NOT to copy: apps/gittensory-ui deploys as a Cloudflare Worker (wrangler.jsonc, deploy:built: wrangler deploy --config dist/server/wrangler.json) and depends on @lovable.dev/vite-tanstack-config, a Lovable-authored scaffold tool specific to that app's own origin — and this repo's contributing guide explicitly keeps contributions out of **/lovable/**. The miner dashboard is a local, read-only view over a laptop/fleet miner instance's own SQLite state (packages/gittensory-miner/DEPLOYMENT.md's stated invariant: "100% client-side... never requires a hosted Gittensory callback to boot") — it should not default to a Cloudflare Worker deploy target or take on the Lovable tooling dependency; a plain local Vite dev server (or a small static build the CLI can serve) fits the miner's own "no required phone-home" posture better. Flag this as a decision in the PR rather than silently inheriting gittensory-ui's deploy model.
Deliverables
References
apps/gittensory-ui/package.json — the stack/dependency versions and script-naming convention to mirror.
package.json:7-10 (root workspaces array) — confirms no extra registration step is needed beyond adding the directory.
packages/gittensory-miner/DEPLOYMENT.md — the "100% client-side... no required phone-home" invariant this app's deploy model must respect.
- This repo's contributing guide's
**/lovable/** exclusion — this scaffold must not reintroduce that dependency.
apps/gittensory-ui(the existing main web app,apps/gittensory-ui/package.json) is the real, live stack to mirror for conventions: TanStack Start/Router (@tanstack/react-start,@tanstack/react-router,@tanstack/router-plugin), React 19, Vite, Tailwind v4 + Radix/shadcn primitives, ESLint/Prettier configs matching the monorepo's shared style. The rootpackage.json'sworkspacesfield is already["apps/*", "packages/*"](package.json:7-10), so a newapps/gittensory-miner-ui/package is automatically picked up with no extra registration.One thing NOT to copy:
apps/gittensory-uideploys as a Cloudflare Worker (wrangler.jsonc,deploy:built:wrangler deploy --config dist/server/wrangler.json) and depends on@lovable.dev/vite-tanstack-config, a Lovable-authored scaffold tool specific to that app's own origin — and this repo's contributing guide explicitly keeps contributions out of**/lovable/**. The miner dashboard is a local, read-only view over a laptop/fleet miner instance's own SQLite state (packages/gittensory-miner/DEPLOYMENT.md's stated invariant: "100% client-side... never requires a hosted Gittensory callback to boot") — it should not default to a Cloudflare Worker deploy target or take on the Lovable tooling dependency; a plain local Vite dev server (or a small static build the CLI can serve) fits the miner's own "no required phone-home" posture better. Flag this as a decision in the PR rather than silently inheriting gittensory-ui's deploy model.Deliverables
apps/gittensory-miner-ui/scaffold:package.json, TanStack Router + React + Vite + Tailwind, matchingapps/gittensory-ui's dependency versions where practical (React 19,@tanstack/react-router, etc.) so the two apps don't drift on shared tooling versions unnecessarily.apps/gittensory-ui/eslint.config.js/.prettierrc.wranglerdeploy target and no@lovable.dev/*dependency — local dev server only for this issue; note explicitly in the scaffold's README why (the miner's client-side-only invariant).typecheck/lint/test/buildscripts matching the monorepo's existing per-app script naming convention (seeapps/gittensory-ui/package.json'sscriptsblock).References
apps/gittensory-ui/package.json— the stack/dependency versions and script-naming convention to mirror.package.json:7-10(root workspaces array) — confirms no extra registration step is needed beyond adding the directory.packages/gittensory-miner/DEPLOYMENT.md— the "100% client-side... no required phone-home" invariant this app's deploy model must respect.**/lovable/**exclusion — this scaffold must not reintroduce that dependency.