Add an HTTP endpoint to the Discord bot to receive posts from the main server and call the Discord API to send these posts as rich embeds to the configured feed channel. Also, update the main server to call this new Discord bot endpoint when a new post is created. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 9203795e-937a-4306-b81d-b4d5c78c240e Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 82d93ef8-d6c2-4d69-96c4-6fa5da4ec508 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/7c94b7a0-29c7-4f2e-94ef-44b2153872b7/9203795e-937a-4306-b81d-b4d5c78c240e/duiWnI1 Replit-Helium-Checkpoint-Created: true
187 lines
7.8 KiB
Markdown
187 lines
7.8 KiB
Markdown
# AeThex - Advanced Development Platform
|
|
|
|
## Project Overview
|
|
AeThex is a full-stack web application built with React, Vite, Express, and Supabase. It's an advanced development platform and community for builders featuring project collaboration, mentorship programs, research labs, and more.
|
|
|
|
## Tech Stack
|
|
- **Frontend**: React 18 + TypeScript
|
|
- **Build Tool**: Vite 6
|
|
- **Backend**: Express.js (integrated with Vite dev server)
|
|
- **Database**: Supabase (PostgreSQL)
|
|
- **Styling**: Tailwind CSS
|
|
- **UI Components**: Radix UI
|
|
- **State Management**: TanStack Query
|
|
- **Routing**: React Router DOM
|
|
|
|
## Project Structure
|
|
```
|
|
├── client/ # React frontend code
|
|
│ ├── components/ # React components
|
|
│ ├── pages/ # Page components
|
|
│ ├── lib/ # Utility libraries
|
|
│ ├── hooks/ # Custom React hooks
|
|
│ └── contexts/ # React contexts
|
|
├── server/ # Express backend
|
|
│ └── index.ts # Main server file with API routes
|
|
├── api/ # API route handlers
|
|
├── discord-bot/ # Discord bot integration
|
|
├── docs/ # Documentation files
|
|
└── shared/ # Shared code between client/server
|
|
|
|
```
|
|
|
|
## Environment Setup
|
|
|
|
### Required Environment Variables
|
|
The following Supabase environment variables need to be configured:
|
|
- `VITE_SUPABASE_URL` - Your Supabase project URL
|
|
- `VITE_SUPABASE_ANON_KEY` - Your Supabase anonymous key
|
|
|
|
Optional variables for full functionality:
|
|
- `VITE_SUPABASE_SERVICE_ROLE_KEY` - Service role key for admin operations
|
|
- Discord-related variables (see `.env.discord.example`)
|
|
- Foundation OAuth variables (see `.env.foundation-oauth.example`)
|
|
|
|
### Development
|
|
```bash
|
|
npm install # Install dependencies
|
|
npm run dev # Start development server on port 5000
|
|
```
|
|
|
|
### Production Build
|
|
```bash
|
|
npm run build # Build all components (API, client, server)
|
|
npm start # Start production server
|
|
```
|
|
|
|
## Replit Configuration
|
|
|
|
### Development
|
|
- The development server runs on **port 5000** (required for Replit's webview)
|
|
- Host is set to `0.0.0.0` to allow Replit proxy access
|
|
- `allowedHosts: true` configured to allow Replit's dynamic proxy hostnames
|
|
- Vite HMR is configured for proper hot reload in Replit environment
|
|
|
|
### Deployment
|
|
- Deployment type: **Autoscale**
|
|
- Build command: `npm run build`
|
|
- Run command: `npm start`
|
|
- The production build serves the client from `dist/spa` and runs the Express server from `dist/server`
|
|
|
|
## Key Features
|
|
- **Multi-Realm System**: Labs, GameForge, Corp, Foundation, Dev-Link
|
|
- **Community Features**: Feed, posts, comments, likes
|
|
- **Creator Network**: Profile passports, achievements, mentorship
|
|
- **Nexus Marketplace**: Opportunities, contracts, commissions
|
|
- **Discord Integration**: Bot commands, OAuth, role management
|
|
- **Ethos Guild**: Music licensing and artist services
|
|
- **GameForge**: Sprint management, team collaboration
|
|
- **Foundation**: Courses, mentorship programs, achievements
|
|
|
|
## Discord Bot Integration
|
|
|
|
### Bot Details
|
|
- **Bot Name**: AeThex#9389
|
|
- **Workflow**: "Discord Bot" runs alongside main application
|
|
- **Health Check**: Port 8044
|
|
|
|
### Slash Commands
|
|
| Command | Description |
|
|
|---------|-------------|
|
|
| `/verify` | Link Discord account to AeThex |
|
|
| `/profile` | View AeThex profile |
|
|
| `/set-realm` | Set preferred realm |
|
|
| `/unlink` | Unlink Discord from AeThex |
|
|
| `/verify-role` | Verify Discord roles |
|
|
|
|
### Database Tables
|
|
- `discord_verifications` - Temporary verification codes (15 min expiry)
|
|
- `discord_links` - Permanent Discord-to-AeThex account links
|
|
|
|
### Required Secrets
|
|
- `DISCORD_BOT_TOKEN` - Bot token from Discord Developer Portal
|
|
- `DISCORD_CLIENT_ID` - Application client ID
|
|
- `SUPABASE_SERVICE_ROLE` - Service role key for database operations
|
|
|
|
## Domain Architecture
|
|
|
|
### Identity Authority
|
|
- **aethex.foundation** - Single Source of Truth (SSOT) for all identity/passport data
|
|
- All platforms are OAuth clients consuming Foundation-issued identities
|
|
|
|
### Domain Routing
|
|
| Domain | Purpose |
|
|
|--------|---------|
|
|
| `aethex.dev` | Main application platform |
|
|
| `aethex.foundation` | Identity authority, passport API |
|
|
| `*.aethex.me` | Creator Passports (wildcard subdomains) |
|
|
| `*.aethex.space` | Project Passports (wildcard subdomains) |
|
|
| `aethex.app`, `.locker`, `.site` | Redirect to aethex.dev |
|
|
| `aethex.studio` | Redirect to aethex.dev/ethos |
|
|
| `aethex.info` | Redirect to aethex.dev/foundation |
|
|
|
|
### Passport API Flow
|
|
```
|
|
user.aethex.me → fetches from https://aethex.foundation/api/passport/subdomain/{user}
|
|
project.aethex.space → fetches from https://aethex.foundation/api/passport/project/{slug}
|
|
```
|
|
|
|
## Discord OAuth Configuration
|
|
|
|
### Discord Developer Portal (OAuth2 > Redirects)
|
|
```
|
|
https://aethex.dev/api/discord/oauth/callback
|
|
https://aethex.foundation/api/discord/oauth/callback
|
|
https://supabase.aethex.tech/auth/v1/callback
|
|
```
|
|
|
|
### Supabase Dashboard (Authentication > URL Configuration)
|
|
- **Site URL**: `https://aethex.foundation`
|
|
- **Redirect URLs**:
|
|
- `https://aethex.dev/**`
|
|
- `https://aethex.foundation/**`
|
|
- `https://supabase.aethex.tech/auth/v1/callback`
|
|
|
|
## Recent Changes (December 3, 2025)
|
|
- ✅ **Bidirectional Discord-Feed Bridge**: Full two-way sync between Discord and AeThex feed
|
|
- **Discord → AeThex**: Messages from Discord FEED channel sync to community feed
|
|
- **AeThex → Discord**: Posts created in AeThex appear in Discord with rich embeds
|
|
- Bot listens to configured channel (DISCORD_MAIN_CHAT_CHANNELS env var)
|
|
- Posts display with purple Discord badge and channel name
|
|
- Supports images/videos from both platforms
|
|
- Loop prevention: Discord-sourced posts don't re-post back to Discord
|
|
- API endpoint: Discord bot exposes `/send-to-discord` for main server to call
|
|
- ✅ **Moved /feed to /community/feed**: Feed is now a tab within the Community page
|
|
- Old /feed URL redirects to /community/feed
|
|
- Added redirect in vercel.json for production
|
|
- ✅ Fixed passport subdomain API to call aethex.foundation (identity authority)
|
|
- ✅ Fixed API paths: `subdomain-data` → `subdomain`, `project-data` → `project`
|
|
- ✅ Restored wildcard rewrites in vercel.json for `*.aethex.me` and `*.aethex.space`
|
|
- ✅ Added missing routes to vercel.json: /community/*, /developers/*, /discord-verify/*, /ethos/*
|
|
- ✅ Added catch-all route for future paths
|
|
- ✅ Fixed Discord verification code input to accept alphanumeric codes (was filtering out letters)
|
|
- ✅ Added step-by-step error tracking to verify-code API for debugging
|
|
- ✅ Configured Discord OAuth redirect URLs for multi-domain setup
|
|
- ✅ Discord bot running on Replit (moved from Railway)
|
|
|
|
## Recent Changes (December 2, 2025)
|
|
- ✅ Configured Vite to run on port 5000 for Replit compatibility
|
|
- ✅ Set up proper host configuration (0.0.0.0) for Replit proxy
|
|
- ✅ Added `allowedHosts: true` to allow Replit's dynamic proxy hostnames
|
|
- ✅ Updated .gitignore to properly exclude environment files
|
|
- ✅ Installed all npm dependencies
|
|
- ✅ Configured deployment settings for Replit autoscale
|
|
- ✅ Fixed server build to output `dist/server/production.mjs` for deployment
|
|
- ✅ Verified application runs without errors in Replit environment
|
|
- ✅ Discord bot (AeThex#9389) running and connected to 7 servers
|
|
- ✅ Created discord_verifications and discord_links database tables
|
|
- ✅ Registered all 5 slash commands with Discord API
|
|
- ✅ Extended auth loading timeout to 30s for slow networks
|
|
- ✅ Fixed /community route with wildcard for nested tabs
|
|
- ✅ Fixed /developers route showing real user data
|
|
|
|
## Notes
|
|
- Supabase credentials must be configured in Replit Secrets for the app to fully function
|
|
- The application integrates an Express backend directly into the Vite dev server for seamless API development
|
|
- Discord bot runs as a separate workflow on port 8044 (health check only)
|
|
- Main application runs on port 5000
|