studio defines the content schema. astro-app consumes it at build time via GROQ queries.
astro-app embeds stega metadata in rendered strings so Sanity Studio’s Presentation tool can map visible elements back to their schema fields.
The root workspace orchestrates both: npm run dev starts both dev servers via concurrently, and npm run test builds astro-app before running Playwright.
# Build only the Astro appnpm run build --workspace=astro-app# Deploy only Sanity Studionpx sanity deploy --workspace=studio
Install a dependency into a specific package:
# Add a dependency to astro-app onlynpm install some-package --workspace=astro-app# Add a dev dependency to the root (shared tooling)npm install -D some-tool
Never run npm install inside a child package directory. Always run it from the repo root so the workspace hoisting stays consistent and both lockfiles remain in sync.