Dashboard
The dashboard is a single-page web application at http://localhost:5055 serving as the unified control center. It is a monolithic HTML file (~400K) with 14 tabs, vanilla JavaScript, and Tailwind CSS via CDN.
Starting the Dashboard
Section titled “Starting the Dashboard”python3 run.py# Open http://localhost:5055No build step required. The dashboard loads from marketing_system/static/dashboard.html.
All 14 Tabs
Section titled “All 14 Tabs”1. Influencers
Section titled “1. Influencers”Filterable Tabulator.js grid of 10K+ crawled influencers.
- Search by handle, bio text
- Filter by label (cat, dog, pet) and follower range
- Filter by outreach status (not_contacted, dm_sent, replied, deal_closed)
- Profile screenshots, outreach history, status progression
2. Analytics
Section titled “2. Analytics”GA4 website analytics integration:
- Sessions, pageviews, traffic sources
- Top pages, user locations
- Chart.js time-series visualizations
3. Strategies
Section titled “3. Strategies”Outreach message templates with {{handle}} variable substitution:
- Create, edit, delete templates
- Preview rendered messages
- Templates stored in
outreach_strategiestable
4. Content
Section titled “4. Content”Video library for upload content:
- CSV import for batch video management
- Per-video metadata and status tracking (ready, drafted, posted, archived)
5. Generate
Section titled “5. Generate”AI video generation:
- KIE AI and OpenAI Sora integration
- Input images + style prompts
- Progress polling and download
6. Bot
Section titled “6. Bot”Quick-launch controls for automation jobs:
- Crawl, outreach, post, engage buttons
- Live log viewer via Server-Sent Events
- Queue controls (start, stop, view logs)
7. Tests
Section titled “7. Tests”Per-phone pytest runner:
- Select device and test files
- Screen recording capture during tests
- Video + log overlay viewer for debugging
8. Scheduler
Section titled “8. Scheduler”24-hour visual timeline:
- Color-coded job bars by type
- Schedule CRUD form (create, edit, delete)
- Recent runs table with status filters
- Per-phone queue status indicators
9. Phone Admin
Section titled “9. Phone Admin”Multi-device management:
- Device list with serial, model, nickname, online status
- WebRTC live streaming per device
- Element overlay for interactive exploration
- Remote tap/type/back controls
10. Content Plan
Section titled “10. Content Plan”LLM agent content planning:
- Run agent (dry run or live): plan N days of posts
- Content plan table with status pills (planned, generating, ready, drafting, posted)
- View agent run history and logs
11. Metrics
Section titled “11. Metrics”Post analytics time-series:
- Views, likes, comments, shares over time
- Per-post drilldown
- Chart.js visualizations
12. Skill Hub
Section titled “12. Skill Hub”Browse, run, and export skills:
- Card grid with expandable detail views
- Action and workflow lists with descriptions
- Device selector and parameter input
- Run button (enqueues to job scheduler)
- Export as ZIP
13. Skill Creator
Section titled “13. Skill Creator”Split-screen LLM skill builder:
- Left: chat with LLM (4 backends: OpenRouter, Claude, Ollama, Claude Code)
- Right: live device stream with numbered element overlay
- Execute proposed actions on device
- Backend/model persisted in localStorage
14. Explorer
Section titled “14. Explorer”App exploration (BFS):
- Searchable package dropdown (130+ installed apps)
- Start/stop controls with depth, states, and settle parameters
- Live progress bar with scrolling log
- State browser with screenshots and element lists
- Previous explorations table
Tech Stack
Section titled “Tech Stack”| Layer | Technology |
|---|---|
| HTML/JS | Vanilla JavaScript (no framework) |
| CSS | Tailwind CSS via CDN |
| Tables | Tabulator.js 6.x (filterable, sortable, paginated) |
| Charts | Chart.js 4.x |
| Video | WebRTC + MJPEG fallback |
| Live Logs | Server-Sent Events (EventSource) |
| Icons | Lucide icons via CDN |
Architecture
Section titled “Architecture”Browser (dashboard.html) | | 14 tabs, lazy-loaded content | localStorage for user preferences vFlask server (port 5055) | | 132+ REST API endpoints (JSON) | SSE for live log streaming | WebRTC signaling relay vSQLite DB (WAL mode) + filesystemTabs are lazy-initialized on first visit. Each tab has its own init function and API polling interval.
Accessing from Another Machine
Section titled “Accessing from Another Machine”The server binds to 0.0.0.0:5055 by default, so you can access the dashboard from any machine on the same network:
http://<server-ip>:5055Note: there is no authentication. Anyone on the network can access all controls.
Related
Section titled “Related”- WebRTC Streaming — live device stream details
- Scheduler — job scheduling system
- Skill Hub — browsing and running skills