# Discord Activity SPA Compliance Checklist
This checklist ensures your Discord Activity meets Discord's Single-Page Application (SPA) requirements.
## ✅ Code Compliance
### Activity Component (code/client/pages/Activity.tsx)
- [ ] **No React Router Navigation**
- [ ] No `useNavigate()` hook
- [ ] No `navigate()` calls
- [ ] No `` components
- [ ] **No Internal Page Navigation**
- [ ] All internal navigation removed
- [ ] Routes like `/creators`, `/opportunities`, `/settings` don't exist in Activity
- [ ] If accessing main app features, use `window.open(url, "_blank")`
- [ ] **Proper Error Handling**
- [ ] Graceful error state display
- [ ] Loading state handled properly
- [ ] "Not in Discord" state shows helpful message instead of crashing
- [ ] **PostMessage Communication**
- [ ] Activity uses Discord SDK (DiscordActivityContext)
- [ ] SDK handles all Discord communication
- [ ] No direct iframe communication attempted
### Manifest Configuration (code/public/discord-manifest.json)
- [ ] **Discord Proxy Domain Only**
- [ ] `rpc_origins` contains ONLY: `"https://578971245454950421.discordsays.com"`
- [ ] No external domains listed
- [ ] No `aethex.dev` in rpc_origins
- [ ] **Valid JSON Structure**
- [ ] `id` matches Discord app ID: `"578971245454950421"`
- [ ] `version` is set: `"1"`
- [ ] `name` describes the Activity
- [ ] `description` explains Activity purpose
- [ ] **No External Interactions Configured**
- [ ] If `interactions` present, URL points to Discord proxy domain
- [ ] No external API endpoints in manifest
### Context/SDK Setup (code/client/contexts/DiscordActivityContext.tsx)
- [ ] **Proper SDK Initialization**
- [ ] SDK imported: `@discord/embedded-app-sdk`
- [ ] `DiscordSDK` instantiated with client ID
- [ ] `sdk.ready()` awaited before using SDK
- [ ] `sdk.authenticate()` called after ready
- [ ] **Correct OAuth Flow**
- [ ] Uses `sdk.commands.authorize()` for OAuth
- [ ] Exchanges code for token via `/api/discord/activity-auth`
- [ ] Token used to authenticate with SDK
- [ ] User data fetched after authentication
- [ ] **Proper Error Handling**
- [ ] Errors logged with `[Discord Activity]` prefix
- [ ] User-friendly error messages displayed
- [ ] No silent failures
- [ ] Console logs helpful for debugging
## ✅ Navigation Compliance
### Link Handling
- [ ] **All External Links Use window.open()**
```typescript
// ✅ CORRECT