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
微信扫一扫