NYCRAVES Development Guide
Complete patterns and conventions for the NYCRAVES NYC rave events app.
What This Skill Covers
- •UI Design System - Brutalist dark-mode aesthetic
- •Component Patterns - Structure, naming, exports
- •Architecture - Data fetching, caching, utilities
- •Next.js 16 - Cache Components, Server/Client patterns
Core Principles
- •Consistency over creativity - Match existing patterns exactly
- •Server Components by default - Only use
'use client'when necessary - •Centralized utilities - Never duplicate functions across files
- •Centralized constants - Import from
lib/constants/, don't hardcode - •Barrel exports always - Every folder needs
index.tswith named exports - •Cache everything - Data functions use
'use cache'+cacheTag+cacheLife
Quick Reference
Creating a New Component
- •Place in
/components/[domain]/ - •Add
'use client'only if using hooks/browser APIs - •Define TypeScript interface for props
- •Follow design tokens from design-tokens.md
- •Match structure from component-patterns.md
- •Add named export to domain's
index.ts
Creating a Data Function
- •Place in
/lib/data/[domain].ts - •Add
'use cache'directive - •Add
cacheTag('[domain]')for invalidation - •Add
cacheLife('hours')or'days' - •Export from
lib/data/index.ts
See architecture-patterns.md for full examples.
Creating a New Utility
- •Check if similar function exists in
lib/utils.ts - •If reusable (2+ files), add to
lib/utils.ts - •Add JSDoc comment explaining purpose
- •Import from
@/lib/utilseverywhere
Reference Files
Load these as needed for detailed patterns and examples:
- •design-tokens.md - Typography, colors, spacing, borders, interactive states
- •component-patterns.md - File organization, component structure, common UI patterns, page layouts
- •architecture-patterns.md - Data fetching, caching, utilities, constants, import order, anti-patterns