Overview
The Genie Helper dashboard is a React 18 SPA built with Vite, Tailwind CSS, and React Router v6. It provides the main interface for creators to manage their platforms, content, and AI operations. Source:dashboard/ directoryDoc root:
dashboard/dist/ served at geniehelper.com/
Architecture
Routes
Public Routes
/— Home page/pricing— Plan comparison/about— About the platform/register— User registration (invite-gated)/login— Email + password authentication
Authenticated Routes (under /app/*)
/app/dashboard— Main dashboard with stats and quick actions/app/media— Media library with upload, crop, compress, watermark/app/calendar— Post scheduling and content calendar/app/fans— Fan engagement and insights/app/analytics— Performance metrics and growth tracking/app/platforms— Platform connections and cookie management/app/settings— Profile and brand customization
Admin Routes
/admin— Directus + AnythingLLM iframes (admin-only)/view-as— User impersonation for support
dashboard/src/App.jsx:34-82
API Integration
The dashboard communicates with backend services through two proxied endpoints:API Proxies
/api/directus/→:8055— Directus REST API (data layer)/api/llm/→:3001— AnythingLLM (chat + agent + MCP tools)
dashboard/src/utils/api.js exports Axios instances:
creators— Platform connections APImedia— File upload and metadataposts— Scheduled posts CRUDqueue— BullMQ job dispatchplatformSessions— Encrypted cookie storagecollections— Generic Directus collections reader
Authentication
Method: Directus JWT with auto-refreshStorage:
localStorage for persistent sessions, sessionStorage for impersonation tabsFlow: Login →
/api/directus/auth/login → Store token → Redirect to /app/dashboard
Registration: Invite-gated via Alpha invite code validated against AnythingLLM invite API
AI Agent Widget
The dashboard includes a floating AI chat widget on all/app/* routes with full MCP tool access.
Features
- 28 MCP tools: Directus CRUD, Ollama models, Stagehand browser automation
- Workspace agent mode: Connected to
administratorworkspace - SSE streaming: Real-time tool call rendering
- Session isolation: Per-user conversation history
Embed Configuration
Component:dashboard/src/components/AgentWidget/index.jsxEndpoint:
/api/llm/api/genie/stream-chat (proxied to AnythingLLM workspace API)
The embed widget uses the workspace stream-chat API (not the public embed API) because the embed mode doesn’t support MCP tool calling. The API key is kept server-side.
Opening the Chat Programmatically
Other components can trigger the chat widget:dashboard/src/components/AgentWidget/index.jsx:99-108
Theming & Branding
The dashboard supports per-user theme customization stored inuser_personas.brand_* fields.
Component: dashboard/src/components/Brand/ThemeApplier.jsxColors: CSS custom properties injected on mount
Default Theme (“Deep Space Cinema”)
| Variable | Color | Usage |
|---|---|---|
--genie-light | #DBEAFE | Highlights, secondary buttons |
--brand-purple | #401F6B | Primary accent, gradients |
--brand-deep | #1A0B2E | Deep shadows, container backgrounds |
--accent-blue | #0069A8 | Gradient mid-tones |
File Structure
Admin Credentials
These credentials are for development/alpha only. Change before public launch.
| Service | URL | Credentials |
|---|---|---|
| Dashboard | geniehelper.com/app/ | Any registered creator account |
| Admin panel | geniehelper.com/admin | [email protected] |
| Directus | localhost:8055/admin | [email protected] / password |
| AnythingLLM | localhost:3001 | [email protected] / (MY)P@$$w3rd |
Development
Related
- Media Processing — Media worker operations
- AI Agent — AnythingLLM MCP tools
- Platform Scraping — Stagehand automation
