This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is a Sanity-powered content management system for a website, consisting of two main parts:
- Studio (
studio/directory): A Sanity Content Studio for managing content - Web (
web/directory): A Next.js frontend application that displays the content
- Built with Sanity.io CMS
- Uses Sanity's schema system to define content types
- Content types include: reports, pages, footnotes, figures, embeds, etc.
- Configuration in
studio/sanity.jsonandstudio/schemas/
- Next.js 12 application using React 17
- Fetches content from Sanity backend via API in
web/lib/api.js - Main pages include: home page (
index.js), about page, ethics page - Components organized under
web/components/ - Uses Sanity image URL builder for content images
cd studio
yarn start # Start the Sanity Content Studiocd web
yarn dev # Start development server
yarn build # Build for production
yarn start # Start production server
yarn lint # Run linter
yarn storybook # Start Storybookstudio/sanity.json- Sanity project configurationstudio/schemas/- Content schema definitionsstudio/plugins/- Custom Sanity plugins
web/pages/index.js- Main home pageweb/lib/api.js- Sanity client and data fetching functionsweb/components/- React componentsweb/styles/- Global styles
The project manages several content types through the Sanity studio:
- Reports (
report.js) - Main content pieces with title, date, content, etc. - Pages (
page.js) - Static pages - Footnotes (
footnote.js) - Figures (
figure.js) - Embeds (
embedHTML.js) - Block content (
blockContent.js,simpleBlockContent.js)
- The frontend fetches data from a Sanity backend using the project ID "mabo5ysy"
- The project uses a custom layout with grid-based design for reports
- Image URLs are processed through Sanity's image URL builder