Discord Activity Setup & Deployment Guide
Overview
AeThex can be embedded as a Discord Activity, allowing users to access the platform directly within Discord servers. This guide covers the setup, configuration, and deployment process.
What is a Discord Activity?
A Discord Activity is an embedded application that runs within Discord. It allows users to:
Access AeThex features directly in Discord
Share their experience with server members
Collaborate in real-time without leaving Discord
Architecture
Discord Server
↓
Discord Activity (https://aethex.dev/discord)
↓
AeThex Frontend + Backend
↓
Supabase + DevConnect DBsPrerequisites
Discord Application: Application ID
578971245454950421Domain:
https://aethex.dev(must be a proper domain, not IP)SSL/HTTPS: Required for Discord Activities
Cloudflare: Configured to allow traffic to aethex.dev
Configuration Files
1. Discord Manifest (code/public/discord-manifest.json)
code/public/discord-manifest.json)This file tells Discord how to handle the AeThex Activity:
Key Configuration Points:
instance_url: Where Discord Activity iframe loads (MUST be domain, not IP)redirect_uris: OAuth callback endpoint (MUST match Discord app settings)scopes: What Discord permissions the Activity requests
2. Code Configuration
Frontend Pages (code/client/pages/):
DiscordActivity.tsx- Main Activity page mounted at/discordDiscord OAuth callback handler at
/discord/callback
Context (code/client/contexts/DiscordContext.tsx):
Manages Discord user session
Handles OAuth flow
Exposes Discord user data to components
Routes (code/client/App.tsx):
3. HTML Configuration (code/index.html)
code/index.html)The Discord SDK is loaded in the HTML head:
This must be present for Discord Activity to initialize.
Local Testing
Prerequisites
Node.js 18+
npm or yarn
Running AeThex dev server
Steps
Start the dev server:
Access locally via tunnel (if testing Discord Activity):
Use a tool like
ngrokto expose localhost to DiscordOr use Discord's local testing tools
Test routes:
Activity:
http://localhost:5173/discord(becomes domain in production)Callback:
http://localhost:5173/discord/callback
Local Testing Limitations
⚠️ Note: Discord Activities require HTTPS and a proper domain. Local testing with IP addresses will fail with Cloudflare Error 1003.
Local testing workarounds:
Use
ngrokwith a tunnel URLUse Discord's local testing documentation
Test OAuth flow after deploying to staging
Deployment
Production URLs (MUST use domain, not IP)
Activity URL:
https://aethex.dev/discordOAuth Redirect:
https://aethex.dev/discord/callbackManifest:
https://aethex.dev/public/discord-manifest.json
Deployment Checklist
Cloudflare Configuration
Critical: Cloudflare blocks direct IP access (Error 1003). Ensure:
DNS record for
aethex.devpoints to correct server/CDNCloudflare allows traffic to your origin
SSL/TLS encryption is enabled
No IP-based redirect rules that block Activity iframe
Environment Variables
No special environment variables needed for Discord Activity. The configuration is done via:
code/public/discord-manifest.jsonDiscord Application settings
code/client/contexts/DiscordContext.tsx
OAuth Flow
High-Level Flow
Implementation Details
DiscordActivity.tsx handles:
Discord SDK initialization
OAuth trigger and callback handling
Activity UI rendering
DiscordContext.tsx manages:
Discord user state
Token storage
Session lifecycle
API calls use Discord access token for:
User identification
Guild information
Activity-specific operations
Error Handling
Cloudflare Error 1003: Direct IP Access Not Allowed
Cause: Accessing Activity via IP address instead of domain
Solution:
Error Message in UI: Users will see a helpful error message explaining:
The issue (Cloudflare blocking IP access)
How to fix it (use domain instead)
Troubleshooting steps
Discord SDK Error
Cause: Discord SDK not loaded or manifest invalid
Solution:
Verify Discord SDK script in
code/index.htmlCheck manifest is accessible at
/public/discord-manifest.jsonVerify Discord Application ID:
578971245454950421
Testing Checklist
Functional Tests
Security Tests
Browser Tests
Troubleshooting
Activity Won't Load
Error: Blank white screen in Discord Activity
Debug Steps:
Open browser DevTools in Discord
Check Console for errors
Check Network tab for failed requests
Verify domain is accessible (test in regular browser tab)
Verify Cloudflare isn't blocking traffic
Common Causes:
IP address used instead of domain (Cloudflare Error 1003)
Discord SDK script failed to load
Manifest file not accessible
CORS policy violation
OAuth Not Working
Error: OAuth flow doesn't complete or redirect fails
Debug Steps:
Check Discord Application settings - redirect URIs match exactly
Verify OAuth callback route exists:
/discord/callbackCheck browser console for authorization error codes
Verify Discord Application permissions (identify, email, guilds)
Common Causes:
Redirect URI mismatch between manifest and Discord app
Discord Application doesn't have "Identify" scope enabled
Activity not installed in Discord server
User Can't See Guild Information
Error: Guild list is empty or shows no servers
Debug Steps:
Verify "guilds" scope is in OAuth config
Check user actually has permission in those guilds
Verify Discord OAuth token has guilds scope
Deployment to Production
Step 1: Build
This creates optimized bundles in dist/ directory.
Step 2: Verify Configuration
Step 3: Deploy
Using your deployment provider (Netlify, Vercel, custom):
Step 4: Verify in Production
Access
https://aethex.dev/discordin browserCheck DevTools Console for errors
Try Discord Activity in actual Discord server
Test OAuth flow end-to-end
Step 5: Add to Discord
In Discord Developer Portal:
Go to Application Settings
Add Activity URL:
https://aethex.dev/discordSet OAuth2 Redirect URIs to:
https://aethex.dev/discord/callbackPublish Application
Users can now install AeThex Activity in servers
File Structure
Related Documentation
IP Governance:
code/docs/IP-GOVERNANCE-FRAMEWORK.md- Data ownership and licensingOnboarding:
code/client/pages/Onboarding.tsx- User onboarding flowAuthentication:
code/client/contexts/AuthContext.tsx- Primary auth system
Support
For issues or questions:
Check this guide for common troubleshooting
Check Discord Developer Docs: https://discord.com/developers/docs/activities/building-an-app
Check browser console for specific error messages
Verify domain/DNS configuration with Cloudflare
Version History
v1.0.0 (Current)
Discord Activity foundation
OAuth 2.0 integration
Cloudflare Error 1003 handling
Multi-user support
Last Updated: 2024 Maintained by: AeThex Engineering Team
Last updated
