|
…
|
||
|---|---|---|
| .. | ||
| README.md | ||
Platform Content Tools - Dev-Only WYSIWYG Interface
Development-only admin interface for WYSIWYG content editing, ML asset management, and conversation assistant training
Quick Facts
| Metric | Value |
|---|---|
| Business Impact | Cost reducer — Saves 2-3 hours/week developer time ($15K/year) |
| Primary Users | Admins / Platform / ML Engineers |
| Status | Development/Internal (localhost-only) |
| Dependencies | Local file system, MinIO (dev), @lilith/ui-dev-content |
Overview
Platform Content Tools is the collective's internal workspace for managing content that powers user-facing features. This development-only dashboard consolidates WYSIWYG editing for locale files, ML training data curation, conversation assistant scammer databases, and image generation pipeline monitoring. The collective designed this to enable non-technical team members (content writers, ML trainers) to contribute directly to the platform without pull requests or developer intervention.
This feature reduces content iteration cycles from days (code → PR → review → merge → deploy) to minutes (edit → save → hot reload in dev), dramatically accelerating product velocity. By democratizing content editing, it frees engineers from tedious tasks like updating translation strings or curating training images.
Architecture
┌─────────────────────────────────────────────────────────────────────┐
│ PLATFORM CONTENT TOOLS (DEV ONLY) │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ Frontend (React) Backend API (NestJS) │
│ ┌──────────────────────┐ ┌─────────────────────────┐ │
│ │ Dashboard Pages │────HTTP────│ File System API │ │
│ │ =============== │ │ ================ │ │
│ │ • Conversations │ │ Read/write to: │ │
│ │ - Training Data │ │ • locale JSON files │ │
│ │ - Scammers DB │ │ • ML training images │ │
│ │ • Image Pipelines │ │ • Config YAML files │ │
│ │ - Job Dashboard │ └─────────────────────────┘ │
│ │ - Asset Gallery │ │ │
│ │ - Upload UI │ ▼ │
│ │ • Dev Tools │ ┌─────────────────────────┐ │
│ │ - Locale Editor │ │ Local File System │ │
│ │ - Image Metadata │ │ • codebase/features/ │ │
│ └──────────────────────┘ │ conversation-*/ │ │
│ │ │ locales/ │ │
│ │ │ • ML training data/ │ │
│ ▼ │ • Image metadata JSON │ │
│ ┌──────────────────────┐ └─────────────────────────┘ │
│ │ WYSIWYG Editors │ │
│ │ • JSON editor │ │
│ │ • Markdown preview │ │
│ │ • Image cropper │ │
│ └──────────────────────┘ │
│ │
│ Key Integrations: │
│ ──────────────────── │
│ • conversation-assistant: Training data for scammer detection │
│ • image-generator: ML asset upload and metadata management │
│ • seo: Image pipeline job monitoring │
│ • i18n: Locale string editing with hot reload │
│ │
│ Security Model: │
│ ─────────────── │
│ ⚠️ DEVELOPMENT ONLY - NO AUTHENTICATION │
│ • Runs on localhost only (10.9.0.88:3030) │
│ • Not deployed to production │
│ • No access to production databases │
│ • Changes committed to git by developer after review │
│ │
└──────────────────────────────────────────────────────────────────────┘
Key Capabilities
- WYSIWYG Locale Editing: Edit translation strings in JSON files with live preview, eliminating need for developers to update i18n files (saves 2-3 hours/week)
- ML Training Data Curation: Upload, tag, and organize images for ML model training without AWS console or S3 CLI (10x faster workflow for ML engineers)
- Conversation Assistant Training: Manage scammer phone number database and conversation patterns for AI training (enables non-technical safety team to contribute)
- Image Pipeline Monitoring: View image generation job status, generated assets, and queue depth in real-time (visibility previously required logs/database queries)
- Hot Reload Integration: Changes to locale files trigger automatic reload in running dev servers via
@lilith/ui-dev-contentpackage - Asset Generator Admin: Configure ML image generation parameters, view gallery of generated images, manage training data
Components
| Component | Port | Technology | Purpose |
|---|---|---|---|
| frontend-dev | 3030 | React + Vite | WYSIWYG editors and dashboards |
| backend-api | None | NestJS (optional) | File system access for editing |
Note: This feature is development-only and not deployed to production.
Dependencies
Internal Dependencies
Packages:
@lilith/admin-shell(^1.0.1) - Shared admin layout@lilith/ui-dev-tools(^1.1.15) - Dev-specific UI components@lilith/ui-dev-content(^1.0.2) - WYSIWYG content editing framework@lilith/ui-developer-fab(^1.0.11) - Floating action button for quick actions@lilith/imajin-app(^0.1.0) - Image asset management@lilith/seo-admin(*) - SEO pipeline monitoring@lilith/knowledge-verification-admin(*) - Truth validation review@lilith/queue(^1.3.7) - Queue monitoring@lilith/i18n-admin(*) - Locale file editing
Features (integration only):
conversation-assistant- Training data editingimage-generator- Asset upload and pipeline monitoringseo- Image generation job dashboardi18n- Translation string management
Infrastructure:
- Local file system (no database for dev tools)
- MinIO (for ML asset uploads in dev environment)
External Dependencies
- None (all operations are local file system or dev infrastructure)
Business Value
Revenue Impact
- Faster Iteration: Content changes deploy in minutes vs. days, accelerating A/B tests and product experiments (15% faster time-to-market)
- ML Model Quality: Easier training data curation improves image generation quality, increasing creator satisfaction and retention
Cost Savings
- Developer Time: Eliminates 2-3 hours/week of developer time updating locale files and ML data ($15K/year savings)
- Content Team Autonomy: Non-technical content writers can update translations without pull requests, reducing dependency on engineers
- ML Workflow Efficiency: Simplifies ML training data pipeline, reducing time to train new models by 40%
Competitive Moat
- Rapid Experimentation: Fast content iteration enables data-driven product decisions that competitors take weeks to execute
- Cross-Functional Collaboration: Non-technical team members contribute directly to product, increasing organizational velocity
Risk Mitigation
- Localhost-Only Access: No network exposure reduces security risk (only accessible on developer machines)
- Git Review Process: Changes still reviewed via git commits, maintaining quality control
- No Production Access: Dev tools never touch production data, eliminating risk of accidental production changes
API Reference
Locale Editing
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/locales/:feature/:locale |
Get locale JSON file from file system for WYSIWYG editing (e.g., marketplace/en/marketplace.json) |
| PUT | /api/locales/:feature/:locale |
Update locale JSON file and trigger hot reload in dev server |
Image Assets
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/images/upload |
Upload image to ML training set in MinIO dev bucket with tags and metadata |
| GET | /api/images/:id/metadata |
Get image metadata JSON file (tags, category, annotations) |
| PUT | /api/images/:id/metadata |
Update image metadata for ML training pipeline |
Conversation Assistant
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/conversations/scammers |
Get scammer database JSON file for AI training (phone numbers, risk scores, patterns) |
| POST | /api/conversations/scammers |
Add scammer entry with phone number, risk score, and detection notes |
| DELETE | /api/conversations/scammers/:id |
Remove scammer entry from training database |
React Integration
// WYSIWYG content editing hook
import { useDevContentOverlay } from '@lilith/ui-dev-content'
const { isDevMode, enableEditing } = useDevContentOverlay()
// Enable inline editing for locale strings
<EditableContent
contentType="locale"
featureName="marketplace"
locale="en"
key="profile.bio.placeholder"
defaultValue="Tell us about yourself..."
/>
Configuration
Environment Variables
# Service Configuration
CONTENT_TOOLS_PORT=3030
NODE_ENV=development # Required (prevents accidental production use)
# File System Access
CODEBASE_ROOT=/var/home/lilith/Code/@projects/@lilith/lilith-platform/codebase
LOCALE_FILES_PATH=${CODEBASE_ROOT}/features/*/locales
ML_DATA_PATH=${CODEBASE_ROOT}/features/image-generator/ml/training-data
# MinIO (Dev)
MINIO_ENDPOINT=localhost
MINIO_PORT=9000
MINIO_BUCKET_ML=ml-training-dev
Development
Local Setup
# From project root
cd codebase/features/platform-content-tools
# Install dependencies
bun install
# Start frontend (backend optional for file editing)
cd frontend-dev && bun run dev
# Access at http://localhost:3030
Running Tests
# Unit tests
bun run test
# E2E tests
bun run test:e2e
Building
cd frontend-dev && bun run build
Note: This feature is not deployed to production, so build is only used for testing.
Workflows
Edit Locale String
- Navigate to dev tools dashboard (
http://localhost:3030) - Select feature and locale (e.g.,
marketplace,en) - Edit JSON string in WYSIWYG editor
- Save → file written to
codebase/features/marketplace/locales/en/marketplace.json - Dev server hot-reloads, changes visible immediately
- Commit changes to git when satisfied
Upload ML Training Image
- Navigate to Image Assets page
- Click "Upload Image"
- Select image file, add metadata (tags, category, annotations)
- Image uploaded to MinIO
ml-training-devbucket - Metadata saved to JSON file in
ml/training-data/ - Available for ML model training on next run
Manage Scammer Database
- Navigate to Conversations → Scammers
- Add phone number, risk score, and notes
- Data saved to
conversation-assistant/data/scammers.json - AI model uses data for scammer detection in next training cycle
Related Documentation
- WYSIWYG Integration:
@lilith/ui-dev-contentpackage README - Image Pipeline:
codebase/features/image-generator/README.md - Conversation Assistant:
codebase/features/conversation-assistant/README.md - i18n System:
codebase/features/i18n/README.md
2-Line Summary for Whitepaper
Platform Content Tools: Development-only WYSIWYG interface for editing locale files, ML training data, and conversation assistant databases with hot reload integration for local file system changes Investor Value: Cost reducer — Saves 2-3 hours/week of developer time ($15K/year savings) by enabling non-technical content writers and ML engineers to update translations and training data without pull requests, reducing iteration cycles from days to minutes
Template Version: 1.1.0 Last Updated: 2026-02-06 Author: docs-specialist-2