Build and run AI-native influencer personas with an opinionated control room.
façade is a full-stack system for creating virtual creators, planning content, reshaping character arcs, and managing sponsor relationships from one dashboard.
Most influencer tools optimize for posting.
façade optimizes for narrative continuity.
- Create creators with an identity, tone, audience, and goals.
- Keep a living life story as a first-class state object.
- Schedule content with timeline and calendar views.
- Trigger Divine Intervention to rewrite a creator's story, clear future content, and regenerate the plan.
- Manage sponsor records and attach sponsored context to content workflows.
- Frontend: Next.js 15 + React 19 + Tailwind CSS
- Backend: FastAPI + SQLAlchemy + APScheduler
- Database: SQLite (
backend/storage/accounts.db) - AI: Google Gemini client (
google-genai) - Media/imagery: Pillow-based generation pipeline
frontendcollects onboarding data and control actions.- API proxy routes (
/api/backend/*) forward requests to FastAPI. backend/app.pyorchestrates influencer CRUD, scheduling, sponsors, and life-story operations.- Background tasks regenerate plans and maintain posting cadence.
- Local storage persists records, schedules, and generated assets.
-
Influencer detail upgrade
- Timeline + calendar browsing in a single profile view.
- Local fallback handling when backend is unavailable.
-
Divine Intervention
- Endpoint:
POST /influencer/{influencer_id}/divine-intervention - Rewrites life story with intensity (
subtle,moderate,major). - Clears future schedules and regenerates upcoming content.
- Endpoint:
-
Sponsor Studio
- UI page for browsing/adding sponsors and searching by name/industry.
- Backend endpoints for sponsor create/list/match and video sponsor assignment.
.
├── backend
│ ├── app.py
│ ├── managers/
│ ├── api/
│ ├── database/
│ └── storage/
└── frontend
└── src/
cd backend
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cp .env.example .envSet GEMINI_API_KEY in backend/.env.
Run:
python app.pyBackend default: http://localhost:8000
cd frontend
npm install
npm run dev -- --host 127.0.0.1 --port 5174Frontend default: http://127.0.0.1:5174
Optional env:
BACKEND_URL=http://127.0.0.1:8000
POST /sorcerer/initcreate influencer from onboarding wizardGET /influencerslist influencersGET /influencer/{id}fetch influencerGET /influencer/{id}/videosfetch scheduled contentPOST /schedule/intervalplan recurring contentPOST /schedule/bulkcreate dated content plansPOST /influencer/{id}/divine-interventionrewrite story + regenerate schedulePOST /sponsorscreate sponsorGET /sponsorslist sponsorsPOST /sponsor/matchmatch sponsor to influencerPOST /video/{id}/add-sponsorattach sponsor to scheduled content
- This repository currently includes a local SQLite DB file under
backend/storage/. - Some generation and publishing behavior is API-key or credentials dependent.
- If backend is unreachable, parts of the frontend now surface graceful fallback states.