# Studio

> Sanity Studio coding standards, content modeling patterns, and component guidelines. Use this when working on studio code

- Skill: `equinor/studio` (Agent Skill)
- Install (CLI): `npx skillmds@latest add equinor/studio`
- Raw SKILL.md: https://api.skillmd.com/api/skills/equinor/studio/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Web & Frontend
- Author: equinor (https://skillmd.com/u/equinor)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/equinor/studio

---


# Energyvision Studio Instructions

## Tech Stack and Tooling

- Studio app: Sanity 6
- Package manager: `pnpm`
- Lint/format: Biome

## TypeScript and React Rules

- Use `type` aliases (not `interface`) for shared shapes.
- Prefer named exports for types/utilities.
- Use functional components.
- Keep components and Hooks pure; do not mutate props/state.
- Keep one source of truth for each piece of state (lift state up instead of duplicating it).

## Studio Guidelines
- Follow Sanity Studio best practices for content modeling and component development.
- Use existing schemas and components as references for new additions.
- Keep the Studio UI consistent with the established design system.
- Avoid duplicating logic; create reusable components and utilities.
- Ensure proper validation and field-level rules are applied to content models.
- Document any new schemas or components clearly for future maintainers.

## Sanity Sub-Skills

- `sanity-best-practices`: Sanity schemas, GROQ queries, Studio configuration, previews, webhooks, and framework integrations.
- `content-modeling-best-practices`: Content types, field design, references, embedded objects, reuse, and taxonomies.
- `portable-text-conversion`: HTML or Markdown imports and conversion to Portable Text.
- `portable-text-serialization`: Rendering or serializing Portable Text in applications and other output formats.
- `sanity-migration`: Content or CMS migrations into Sanity.
- `sanity-studio-upgrade`: Sanity Studio version upgrades, migration plans, and upgrade troubleshooting.
- `content-experimentation-best-practices`: CMS-managed experiments, variants, success metrics, and experiment analysis.
- `seo-aeo-best-practices`: Metadata, structured data, sitemaps, hreflang, and search or answer-engine optimization.

# Internationalization (i18n)
Managed through the `document-internationalization` plugin in Sanity Studio. Ensure that all new document types are configured for internationalization if they contain translatable content.

- Use Sanity's built-in localization features for content that needs to support multiple languages.
- Keep translations organized and consistent across schemas.
- Avoid hardcoding text; use references to localized content where possible.

