Skip to content

Commit 107a125

Browse files
authored
Add CLAUDE.md file (#12)
1 parent e3778e7 commit 107a125

1 file changed

Lines changed: 62 additions & 0 deletions

File tree

CLAUDE.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
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 the Austin JavaScript meetup events presentation system. It's a React + TypeScript + Vite application that uses Reveal.js to create slide presentations for monthly meetup events. The slides are organized by month and include splash screens, agendas, and closing slides.
8+
9+
## Commands
10+
11+
### Development
12+
- `pnpm dev` - Start development server with hot reload
13+
- `pnpm build` - Build for production (runs TypeScript compiler + Vite build)
14+
- `pnpm lint` - Run ESLint to check code quality
15+
- `pnpm preview` - Preview the production build locally
16+
17+
### Package Management
18+
Uses pnpm (version 10.6.3+) as the package manager. Always use `pnpm` commands instead of npm/yarn.
19+
20+
## Architecture
21+
22+
### Presentation System
23+
- Built on Reveal.js for creating slide presentations
24+
- Main app (`App.tsx`) initializes Reveal.js with plugins (Highlight, Notes)
25+
- Slides are React components imported and rendered within the Reveal.js deck
26+
- Uses ref-based integration to manage Reveal.js lifecycle
27+
28+
### Slide Organization
29+
- **Splash slide** (`src/slides/splash.tsx`) - Welcome screen with Discord QR code, shirt promotion, and sponsors
30+
- **Monthly agenda slides** (`src/slides/agenda-YYYY-MM.tsx`) - Event agenda for specific months
31+
- **Thanks slide** (`src/slides/thanks.tsx`) - Closing slide
32+
33+
### Key Components
34+
- **Sponsors component** (`src/components/Sponsors.tsx`) - Displays event sponsors
35+
- **QR Code integration** - Uses Shoelace's `SlQrCode` component for Discord and donation links
36+
37+
### Styling
38+
- SCSS-based styling system in `src/styles/`
39+
- Custom theme for Reveal.js presentations
40+
- Responsive quadrant layout for splash screen
41+
42+
## Adding New Monthly Events
43+
44+
1. Create new agenda slide: `src/slides/agenda-YYYY-MM.tsx`
45+
2. Import and add to slide deck in `App.tsx`
46+
3. Follow existing pattern with emoji indicators for lightning talks (⚡️) and main talks (🎤)
47+
48+
## Technology Stack
49+
50+
- **React 19** with TypeScript
51+
- **Vite** for build tooling and development server
52+
- **Reveal.js** for presentation framework
53+
- **Shoelace** web components (specifically QR codes)
54+
- **SCSS** for styling
55+
- **ESLint** with TypeScript and React plugins
56+
57+
## Development Notes
58+
59+
- Uses React Strict Mode - Reveal.js initialization includes double-initialization prevention
60+
- Proper cleanup of Reveal.js instance in useEffect return function
61+
- TypeScript configured with separate app and node configurations
62+
- Hot module replacement enabled in development

0 commit comments

Comments
 (0)