Hotline Houston — planned
- TypeScript 98.2%
- HTML 1.4%
- CSS 0.4%
| client | ||
| server | ||
| .env.example | ||
| .gitignore | ||
| package.json | ||
| README.md | ||
Hotline Houston
AeThex support and communication platform. Real-time messaging, ticket management, and service status monitoring built on the AeThex stack.
Stack
| Layer | Technology |
|---|---|
| Frontend | React 18, Vite, TailwindCSS, React Router, TanStack Query |
| Real-time | Socket.io (client + server) |
| Backend | Express, TypeScript, Zod |
| Database | Supabase (PostgreSQL) via Drizzle ORM |
| Auth | Supabase Auth + JWT middleware |
Project Structure
hotline-houston/
├── client/ # React 18 frontend (Vite, port 5173)
├── server/ # Express + Socket.io API (port 3001)
├── .env.example # Required environment variables
└── package.json # Monorepo root
Running Locally
Prerequisites
- Node.js 20+
- npm 10+
- A Supabase project
Setup
# 1. Install all dependencies
npm install
# 2. Copy and fill in environment variables
cp .env.example .env
# 3. Start both client and server in dev mode
npm run dev
The client will be available at http://localhost:5173 and the API at http://localhost:3001.
Available Scripts
| Script | Description |
|---|---|
npm run dev |
Start client and server concurrently |
npm run build |
Build both client and server |
npm start |
Start the production server |
Environment Variables
See .env.example for all required variables.
| Variable | Description |
|---|---|
SUPABASE_URL |
Your Supabase project URL |
SUPABASE_ANON_KEY |
Supabase anonymous/public key |
DATABASE_URL |
PostgreSQL connection string (from Supabase) |
JWT_SECRET |
Secret for signing/verifying JWT tokens |
PORT |
Server port (default: 3001) |
AeThex Design System
- Background:
#0A0A0A - Surface:
#111111 - Primary (Red):
#DC2626 - Accent (Gold):
#F59E0B