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
184 lines
7.5 KiB
Markdown
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
|