feat: add asset preferences, video research, and Remotion ad assets
- Add thumbs-down feedback modal and preference API endpoint - Add AI UGC video platforms research doc - Add ReflectAd Remotion composition with public flow assets - Add gemini-ad-designer and poster-ad-designer pipeline skills - Add research_reflect_v1.1 pipeline script Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
import Database from 'better-sqlite3';
|
||||
import { randomBytes } from 'crypto';
|
||||
|
||||
const db = new Database('prisma/data/marketing.db');
|
||||
|
||||
const id = randomBytes(12).toString('hex').slice(0, 25);
|
||||
|
||||
const config = {
|
||||
goal: "app_downloads",
|
||||
keyMessage: "Reflect v1.1 goes beyond mood tracking. Guided reflections powered by CBT and ACT therapy frameworks help you understand why you feel the way you do — not just log it. AI-generated reports turn weeks of check-ins into actionable insights you can share with your therapist. Weather tracking reveals how your environment shapes your emotions. All private, all on-device.",
|
||||
socialProof: "Loved by thousands of mindful users on iOS. Featured for beautiful design with 12 curated themes.",
|
||||
targetAudience: "Adults 18-45 interested in mental wellness, self-reflection, journaling, and therapy. Secondary: therapists and counselors looking for client homework tools. People who've tried mood trackers before but found them too shallow.",
|
||||
visualDirection: "warm",
|
||||
competitorApps: "Daylio, Pixels Year in Mood, Moodfit, Bearable",
|
||||
variations: 5,
|
||||
useTrendReport: true,
|
||||
screenshots: [],
|
||||
};
|
||||
|
||||
const stmt = db.prepare(`
|
||||
INSERT INTO Campaign (id, name, status, platforms, config, appId, createdAt, updatedAt)
|
||||
VALUES (?, ?, ?, ?, ?, ?, datetime('now'), datetime('now'))
|
||||
`);
|
||||
|
||||
stmt.run(
|
||||
id,
|
||||
"Reflect v1.1 — Guided Therapy & AI Insights Launch",
|
||||
"draft",
|
||||
JSON.stringify(["instagram", "tiktok"]),
|
||||
JSON.stringify(config),
|
||||
"reflect001"
|
||||
);
|
||||
|
||||
console.log("Created campaign:", id);
|
||||
db.close();
|
||||
@@ -0,0 +1,179 @@
|
||||
import Database from 'better-sqlite3';
|
||||
|
||||
const db = new Database('prisma/data/marketing.db');
|
||||
|
||||
const brandIdentity = `# Brand Identity: Reflect
|
||||
|
||||
## 1. Brand Personality
|
||||
Reflect is a quiet, meditative companion for your inner world. We create space for self-awareness without judgment — helping users notice their emotional patterns and grow through gentle observation, not productivity pressure.
|
||||
|
||||
Core traits:
|
||||
- Meditative — calm, unhurried, intentional
|
||||
- Elegant — beautiful design is the product, not decoration
|
||||
- Introspective — curious about feelings, never prescriptive
|
||||
- Non-judgmental — every mood is valid, no "bad" days
|
||||
- Private — your feelings are yours alone
|
||||
|
||||
## 2. Tone & Voice
|
||||
| Attribute | Guidance |
|
||||
|-----------|----------|
|
||||
| Register | Soft, poetic, like a journal entry |
|
||||
| Energy | Calm and still, never urgent |
|
||||
| Humor | Warm and gentle, never sarcastic |
|
||||
| Confidence| Reassuring, inviting |
|
||||
| Length | Short, breathing sentences with whitespace |
|
||||
|
||||
Write like this: "A quiet space for your inner world."
|
||||
Not like this: "Track your moods with our powerful analytics dashboard!"
|
||||
|
||||
## 3. CTA Patterns
|
||||
- Soft, inviting language — never pushy
|
||||
- Approved CTAs: "Begin reflecting", "Try Reflect free", "Start your journal", "Download Reflect"
|
||||
- Never use: "Buy now", "Don't miss out", "Limited time", "Act fast"
|
||||
|
||||
## 4. Emoji Usage
|
||||
- Approved: 🌿 ✨ 🌙 💫 🪷 🫧
|
||||
- Max per post: 2
|
||||
- Never start a caption with an emoji
|
||||
- Prefer no emoji over forced emoji
|
||||
|
||||
## 5. Hashtag Strategy
|
||||
- Primary (always include): #Reflect #MoodTracking
|
||||
- Secondary (rotate): #MentalWellness #DailyCheckIn #EmotionalHealth #Mindfulness #SelfAwareness #MoodJournal #InnerPeace
|
||||
- Never use: #Follow4Follow #Grind #Hustle
|
||||
|
||||
## 6. Brand Colors
|
||||
- Primary: #3d5a4c (sage green — calm, grounded)
|
||||
- Accent: #c4956b (warm bronze — human warmth)
|
||||
- Background: #f5f1eb (warm cream — soft, inviting)
|
||||
- Dark mode: #141210 (deep charcoal — restful)
|
||||
- Mood palette: Red (horrible) → Orange (bad) → Blue (average) → Yellow (good) → Green (great)
|
||||
|
||||
## 7. Typography
|
||||
- Headlines: Cormorant Garamond (serif, italic, weight 300-500) — poetic, editorial
|
||||
- Body: Outfit (sans-serif, weight 300-600) — clean, modern
|
||||
- Style: generous whitespace, breathing room between elements
|
||||
|
||||
## 8. Visual Aesthetic
|
||||
- Japanese minimalism meets modern iOS
|
||||
- Soft rounded corners (24-28px radius)
|
||||
- Subtle grain texture overlays
|
||||
- Floating, breathing animations
|
||||
- Light/dark mode with warm tones in both
|
||||
- 12 curated themes (Zen Garden, Synthwave, Celestial, Editorial, Mixtape, Bloom, Heartfelt, Minimal, Luxe, Forecast, Playful, Journal)`;
|
||||
|
||||
const productInfo = `# Product & Campaign Knowledge: Reflect
|
||||
|
||||
## 1. Product Overview
|
||||
| Attribute | Details |
|
||||
|-----------|---------|
|
||||
| Product Name | Reflect |
|
||||
| Category | Mental Wellness & Mood Tracking |
|
||||
| Target Audience | Introspective adults 18-45 who value mental wellness, self-reflection, and beautiful design |
|
||||
| Brand Positioning | A quiet space for your inner world — the most beautiful mood journal on iOS |
|
||||
| Platforms | iOS, watchOS, widgets, Live Activities |
|
||||
| Company | 88 Oak Apps |
|
||||
| Bundle ID | com.88oakapps.reflect |
|
||||
|
||||
## 2. Key Features
|
||||
| Feature | Benefit | Proof Point |
|
||||
|---------|---------|-------------|
|
||||
| Daily Mood Check-In | One tap to log how you feel on a 5-point scale | Horrible → Bad → Average → Good → Great with custom color coding |
|
||||
| AI-Powered Insights | Understand emotional patterns you can't see yourself | Uses on-device Apple Intelligence — private, no data leaves your phone |
|
||||
| 12 Curated Themes | Every check-in feels intentional and personal | Zen Garden, Synthwave, Celestial, Editorial, Mixtape, Bloom, Heartfelt, Minimal, Luxe, Forecast, Playful, Journal |
|
||||
| Multiple Visualizations | See your mood from every angle | Day view (chronological), Month view (calendar grid), Year view (aggregate stats) |
|
||||
| Apple Watch Companion | Log moods from your wrist | Complications and standalone app |
|
||||
| Widgets & Lock Screen | See your mood at a glance | Home screen widgets, Lock Screen widgets, Live Activity mood streaks |
|
||||
| iCloud Sync | Your journal everywhere | Automatic CloudKit syncing across all Apple devices |
|
||||
| HealthKit Integration | Connect mood to physical health | Optional sync to Apple Health |
|
||||
| Biometric Security | Private by default | Face ID / Touch ID lock |
|
||||
| Full Customization | Make it yours | 4 color schemes, 7 icon packs, multiple view styles |
|
||||
|
||||
## 3. Campaign Direction
|
||||
- Goal: Drive app downloads on iOS
|
||||
- Key message: A quiet space for your inner world. Track your mood daily, see patterns emerge, and understand yourself better — all in the most beautiful journal on iOS.
|
||||
- Social proof: Loved by thousands of mindful users
|
||||
- Visual direction: Warm, meditative, editorial — cream backgrounds with sage green and bronze accents. Showcase the stunning theme system.
|
||||
- Hero screenshots: Day view with mood entries, month calendar grid, theme showcase
|
||||
- Target: Adults 18-45 interested in mindfulness, journaling, mental health, self-improvement, and beautiful app design
|
||||
|
||||
## 4. Competitive Advantages
|
||||
- Stunning design with 12 cohesive themes (not just color swaps — each theme changes icons, layouts, animations, and mood entry styles)
|
||||
- AI insights powered by on-device Apple Intelligence (100% private)
|
||||
- Full Apple ecosystem: iPhone, Watch, widgets, Lock Screen, Live Activities, Siri, Shortcuts, Control Center
|
||||
- Privacy-first: data stays on your devices and iCloud, developers never see mood data
|
||||
- One-tap simplicity: no friction, no overthinking
|
||||
|
||||
## 5. Competitors
|
||||
- Daylio — functional but dated design, no AI insights, no Apple Watch
|
||||
- Pixels Year — year-only view, no daily detail, no themes
|
||||
- Moodfit — clinical feel, too many features, overwhelming
|
||||
- Bearable — symptom tracker disguised as mood app, complex
|
||||
|
||||
## 6. Subscription Model
|
||||
- 30-day free trial (full feature access)
|
||||
- Monthly subscription
|
||||
- Yearly subscription (best value)`;
|
||||
|
||||
const platformGuidelines = `# Platform Guidelines
|
||||
|
||||
## 1. Platform Overview
|
||||
| Platform | Content Type | Primary Tone | Hashtags |
|
||||
|----------|-------------|--------------|----------|
|
||||
| Instagram | Feed posts, Stories, Reels | Meditative, editorial, beautiful | Required (3-5) |
|
||||
| TikTok | Short video ads | Authentic, gentle, relatable | Required (3-5 trending) |
|
||||
| Nextdoor | Neighborhood posts, display ads | Warm, wellness-focused | None |
|
||||
|
||||
## 2. Instagram
|
||||
### Specs
|
||||
| Format | Dimensions | Aspect Ratio |
|
||||
|--------|-----------|--------------|
|
||||
| Feed Post | 1080x1080 px | 1:1 |
|
||||
| Story/Reel | 1080x1920 px | 9:16 |
|
||||
|
||||
### Caption Guidelines
|
||||
- Poetic hook in first line (before "more" truncation)
|
||||
- Structure: Reflective hook → Feature value → Soft CTA → line break → Hashtags
|
||||
- Max 2200 chars, aim for 100-200
|
||||
- Tone: like a journal entry, not a sales pitch
|
||||
|
||||
### Visual Style
|
||||
- Warm cream backgrounds (#f5f1eb) or deep dark (#141210)
|
||||
- Sage green (#3d5a4c) and bronze (#c4956b) accents
|
||||
- Cormorant Garamond serif for headlines
|
||||
- Generous whitespace — let the design breathe
|
||||
- Showcase app themes and mood visualizations
|
||||
- Phone mockups in clean, minimal settings
|
||||
|
||||
## 3. TikTok
|
||||
### Specs
|
||||
| Format | Dimensions | Length |
|
||||
|--------|-----------|--------|
|
||||
| Video Ad | 1080x1920 px (9:16) | 9-15s sweet spot |
|
||||
|
||||
### Style Rules
|
||||
- Soft, contemplative feel (not aggressive trend-chasing)
|
||||
- Gentle text overlays with serif typography
|
||||
- Hook: relatable emotional moment in first 2 seconds
|
||||
- Show the beauty of the app — theme switching, mood logging, calendar views
|
||||
- Ambient music, not trending audio (unless it fits the meditative brand)
|
||||
|
||||
## 4. Nextdoor
|
||||
### Specs
|
||||
| Format | Dimensions |
|
||||
|--------|-----------|
|
||||
| Spotlight Ad | 1200x1200 px |
|
||||
| Display Ad | 1200x628 px |
|
||||
|
||||
### Style Rules
|
||||
- Warm, wellness-focused tone
|
||||
- No hashtags
|
||||
- Frame as self-care / daily ritual
|
||||
- CTA: "Try Reflect free" or "Start your mood journal"
|
||||
- Connect to seasonal wellness ("As the seasons change, check in with yourself")`;
|
||||
|
||||
const stmt = db.prepare('UPDATE App SET brandIdentity = ?, productInfo = ?, platformGuidelines = ? WHERE slug = ?');
|
||||
stmt.run(brandIdentity, productInfo, platformGuidelines, 'reflect');
|
||||
|
||||
console.log('Updated Reflect with all details');
|
||||
db.close();
|
||||
Executable
+31
@@ -0,0 +1,31 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
echo "Starting Marketing Command Center..."
|
||||
echo ""
|
||||
|
||||
# Start all services
|
||||
docker compose up -d
|
||||
|
||||
echo "Waiting for services to start..."
|
||||
sleep 5
|
||||
|
||||
# Set up database
|
||||
docker compose exec app npx prisma db push
|
||||
docker compose exec app npx prisma db seed
|
||||
|
||||
echo ""
|
||||
echo "========================================="
|
||||
echo " Marketing Command Center is ready!"
|
||||
echo "========================================="
|
||||
echo ""
|
||||
echo " Dashboard: http://localhost:3000"
|
||||
echo " Postiz: http://localhost:5000"
|
||||
echo ""
|
||||
echo " Login with your ADMIN_EMAIL / ADMIN_PASSWORD"
|
||||
echo " from your .env file."
|
||||
echo ""
|
||||
echo " Next steps:"
|
||||
echo " 1. Connect your Instagram + TikTok accounts in Postiz"
|
||||
echo " 2. Create your first campaign in the dashboard"
|
||||
echo ""
|
||||
Reference in New Issue
Block a user