aethex-forge/replit.md
sirpiglr 4077fac4c9 Move the feed page to the community section and add redirects
Update client-side routing and vercel.json to redirect the /feed endpoint to /community/feed, and integrate the Feed component into the Community page.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 9203795e-937a-4306-b81d-b4d5c78c240e
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: a87bc4c4-2f36-45ef-9537-d97890015ee4
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
2025-12-03 03:11:57 +00:00

184 lines
7.5 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)
-**Discord-to-Feed Integration**: Messages from Discord FEED channel sync to AeThex community feed
- Bot listens to configured channel (DISCORD_MAIN_CHAT_CHANNELS env var)
- Posts display with purple Discord badge and channel name
- Supports images/videos from Discord messages
- Real-time updates via Supabase subscriptions
-**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