Skip to content

Commit da42881

Browse files
committed
docs: add CLAUDE.md for project guidance and setup instructions
1 parent 9eb8f81 commit da42881

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed

CLAUDE.md

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# CLAUDE.md
2+
3+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4+
5+
## Project Overview
6+
7+
This is a Sanity Studio instance for Eventua11y, managing content for the eventua11y.com website. It's a headless CMS built with Sanity v3 that handles accessibility-focused event data.
8+
9+
## Common Commands
10+
11+
### Development
12+
- `npm run dev` - Start development server
13+
- `npm run start` - Start production server
14+
- `npm run build` - Build the studio
15+
- `npm run deploy` - Deploy to Sanity hosting
16+
- `npm run deploy-graphql` - Deploy GraphQL schema
17+
18+
### Code Quality
19+
- Prettier is configured with: semi: false, printWidth: 100, bracketSpacing: false, singleQuote: true
20+
- ESLint uses @sanity/eslint-config-studio v5.0.2
21+
22+
## Architecture
23+
24+
### Multi-Environment Setup
25+
The studio is configured for two environments in `sanity.config.js`:
26+
- **Production** (`/production`): dataset 'production', project ID '2g5zqxo3'
27+
- **Development** (`/test`): dataset 'test', project ID '2g5zqxo3'
28+
29+
### Schema Structure
30+
Content types are defined in `/schemas/` and exported via `/schemas/index.js`:
31+
- `event` - Core event schema with complex conditional fields
32+
- `course` - Course/training content
33+
- `provider` - Event providers/organizers
34+
- `person` - Speaker profiles
35+
- `collection` - Event collections
36+
- `book` - Resource books
37+
38+
### Key Plugins
39+
- `@sanity/cross-dataset-duplicator` - Event duplication between environments
40+
- `sanity-plugin-country-state-select` - Location selection
41+
- `sanity-plugin-recurring-dates` - Recurring event dates
42+
- `@sanity/vision` - GROQ query testing
43+
- `@sanity/google-maps-input` - Geographic data entry
44+
45+
### Event Schema Complexity
46+
The event schema (`/schemas/event.js`) has sophisticated conditional logic:
47+
- Parent/child event relationships
48+
- Conditional field visibility based on event type
49+
- Theme vs normal event types
50+
- Attendance mode affects location field visibility
51+
- Call for speakers with closing dates
52+
- Scheduled vs unscheduled events
53+
54+
### Content Relationships
55+
- Events can reference speakers (person type)
56+
- Events can have parent-child relationships
57+
- Cross-dataset duplication for events between environments

0 commit comments

Comments
 (0)