Vivere Channel — Launch Checklist

Your Step-by-Step Launch Roadmap

Check off each step as you complete it. Progress saves automatically — come back any time and pick up exactly where you left off.

0
Steps Done
0
Total Steps
0
Your Actions
9
Phases
Loading your progress…
✓ Agent Done Already completed — no action needed
Manual Requires your action
Next Up Your current next step
0

Review & Confirm

Read the strategy docs before building anything

Agent Done
Channel strategy document built
The full channel strategy — 5 series, platform plan, monetization ladder — is in the preview page.
↗ vivere-channel-preview.pages.dev
Agent Done
3 pilot scripts written and review-ready
PE01 (Plain English), HA01 (Human + AI), BV01 (Built by Vivere — Top It Off). All in media-channels/vivere-web/scripts/
Manual
Read all 3 pilot scripts and approve for production
Review tone, hook strength, and scene descriptions. Make any edits to scripts before voice generation begins.
Manual
Decide: your real voice OR ElevenLabs AI voice?
Real voice = more trust for B2B, zero cost, requires recording setup. AI voice = consistent, scalable, $22/mo ElevenLabs Creator plan. Either works — just decide before Phase 3.
1

Platform Accounts

All manual — can't be delegated. Create in this order.

YouTube First — everything else mirrors it
Manual
Create YouTube channel — handle: @vivereweb
Log into the Google account you want to own this channel. Go to YouTube → Create channel. Claim @vivereweb handle immediately — handles go fast.
Manual
Upload YouTube profile image — 800×800px
Vivere logo on navy background. Must be square. This image will also be used on Instagram and TikTok — design it once.
Manual
Upload YouTube channel banner — 2560×1440px
Safe zone for all devices: center 1546×423px. Use Vivere navy + teal palette. Include tagline: "Real people. Real sites. Powered by AI."
Manual
Set YouTube audience to "Not made for kids" — at channel level
CRITICAL: Go to YouTube Studio → Settings → Channel → Advanced Settings → Audience. Set "Not made for kids." Doing this per-video instead is NOT enough for monetization eligibility.
Manual
Write YouTube About section
"Real people building real sites — powered by AI. Vivere Web covers web development, digital marketing, and the honest take on AI tools for small businesses. New videos weekly. vivereweb.com"
Manual
Copy YouTube Channel ID → paste into channels.json
YouTube Studio → Settings → Channel → Advanced Settings → Channel ID. Paste it into the youtube_channel_id field in Vivere/media-channels/channels.json.
Instagram
Manual
Create Instagram — @vivereweb (Business account)
Create as Business account (not Personal or Creator). Business unlocks analytics, scheduling via Blotato, and the swipe-up link in Stories once eligible.
Manual
Set Instagram profile pic to match YouTube — same 800×800 image
Consistency across platforms builds instant recognition. Bio: "Custom web dev + AI tools for small biz. Western CO + beyond. 🔗 vivereweb.com"
TikTok
Manual
Create TikTok — @vivereweb (Creator account)
Creator account gives access to TikTok Analytics and the Creator Marketplace. Match profile picture. Bio can mirror Instagram bio.
LinkedIn
Manual
Create LinkedIn Company Page — "Vivere Web"
This is a Company Page (not your personal profile). Connect it to your personal LinkedIn. This is where $4,750+ web build clients make decisions — treat it seriously.
Facebook
Manual
Create Facebook Page — "Vivere Web"
Local reach for Grand Junction / Colorado community groups. Match profile image. Link to vivereweb.com in About section.
Blotato — Cross-post hub
Manual
Authorize Blotato OAuth on all platforms
In Blotato: New Account → OAuth authorize each platform (YouTube, Instagram, TikTok, LinkedIn, Facebook). Must be done one at a time with actual account login.
Manual
Record all Blotato numeric account IDs in channels.json
CRITICAL: In Blotato, each account has a numeric ID (not the handle). Find these in Blotato account settings. Paste into channels.json fields: blotato_youtube_id, blotato_instagram_id, blotato_tiktok_id, blotato_linkedin_id, blotato_facebook_id. Wrong ID = posting to wrong account silently.
2

Infrastructure

Folder structure, brand files, pipeline setup

Agent Done
Channel folder structure created
Vivere/media-channels/vivere-web/ with scripts/, UPLOAD_READY/ subfolders. channels.json at root.
Agent Done
brand.json created
Voice register, image style suffix, CTAs, sign-off phrases, content guardrails — all locked in media-channels/vivere-web/brand.json
Agent Done
channels.json created
Master channel registry at media-channels/channels.json. Ready for you to fill in Blotato IDs after Phase 1.
Agent Done
vivere-web-brand.md created (brand bible)
Complete brand bible: audience, voice register, 5 series definitions, platform notes, all critical rules. Reference this for every scripting session.
Agent Done
upload-log.md created
Log every upload here the day it's scheduled. Columns: date, episode, title, platform, scheduled time, 48h metrics.
Manual
Install pipeline dependencies
From the explainer-engine folder: run pip install -r requirements.txt. Requires Python 3.11+ and ffmpeg installed. Verify with: python produce.py --help
Manual
Set up .env file with all API keys
Copy .env.example → .env. Fill in: ElevenLabs API key, fal.ai API key, Blotato API key, Cloudflare R2 keys, Google OAuth credentials. Never commit .env to git.
Manual
Set up Google Cloud project + YouTube Data API v3
console.cloud.google.com → New Project → Enable "YouTube Data API v3" → Create OAuth 2.0 credentials → Download as client_secret.json → place in explainer-engine root.
3

Brand Lock

Voice and visual identity — permanent decisions

Manual
Audition 3 ElevenLabs voices on the actual PE01 script
Do NOT use demo text — use the real PE01 hook ("Your website passed Google's speed test. So why do people keep leaving?"). Test each voice on speakers AND earbuds. The earbuds test is what matters for mobile viewers.
Manual
Lock voice ID in brand.json — this decision is permanent
Once the channel is live and has published videos, the voice ID NEVER changes. Listeners recognize the voice. Update brand.json: "voice_id": "[your chosen ID]" — replace the TBD placeholder.
Manual
Generate Vivere channel art using brand style suffix
Use the art_style_suffix from brand.json in your image prompts. Generate: YouTube banner background, profile graphic variant, and a "thumbnail template" frame for Shorts.
Manual
Generate 3 candidate music tracks for PE01
Use Stable Audio via fal.ai. Prompt: "confident and warm background music, professional, forward-moving energy, no lyrics, 60-90 seconds". Pick one that fits the Plain English series tone.
4

Website Pre-Launch

vivereweb.com must be ready before the first video drops

Agent Done
"Stay Ahead of the Algorithm" newsletter section added
Email capture with "Get Insights →" CTA and "free website audit" secondary link. Positioned before the final CTA band on index.html.
Agent Done
Follow strip added — YouTube / Instagram / TikTok / LinkedIn buttons
Teal-accent strip between newsletter and CTA band. Currently links to # placeholders — update in Step p4-5 below.
Agent Done
Social icon row added to footer contact column
YouTube, Instagram, TikTok, Facebook, LinkedIn icons in the footer. LinkedIn already links live. Others use # placeholder.
Manual
Set up newsletter platform — Beehiiv (recommended) or ConvertKit
Beehiiv free tier: beehiiv.com. Create publication "Vivere Insights". Get your form embed URL / API endpoint. ConvertKit alternative: convertkit.com, also free to start.
Manual
Replace Formspree placeholder with real newsletter form endpoint
In vivereweb.com/index.html, find the form action: "https://formspree.io/f/REPLACE_ME" — replace with your Beehiiv or ConvertKit form URL. Or ask the agent to do this once you have the URL.
Manual
Add real social URLs to the follow strip and footer icons
After Phase 1 accounts are created, update the # placeholder hrefs in index.html with the real channel/page URLs. Or paste them here and ask the agent to do the code edit.
Manual
Deploy vivereweb.com to staging → review → production
Staging: wrangler pages deploy . --project-name vivereweb --branch staging. Review at staging.vivereweb.pages.dev. Production: wrangler pages deploy . --project-name vivereweb --branch main --commit-dirty=true
5

PE01 Production — Pilot Video

Plain English ep 1: "What is a Core Web Vital?" — proves the full pipeline

Agent Done
PE01 script written — hook, 3 beats, payoff, metadata, fact-check table
Full script at media-channels/vivere-web/scripts/PE01-core-web-vitals.md. All facts verified. Recommended title: "The 3 Numbers That Decide If Your Site Ranks"
Manual
Generate PE01 voice recording from locked voice ID
If ElevenLabs: paste each beat of the script into ElevenLabs UI or use API. Output: voice.mp3. Place in queue/PE01/. If real voice: record, edit in Audacity or Descript, export as MP3.
Manual
Generate 4 scene images with brand style suffix
Scene 1: Hook — dark background, teal text overlay. Scene 2: LCP/CLS/INP graphic cards. Scene 3: Mobile slow-loading screen. Scene 4: Side-by-side PageSpeed scores (42 vs 97). Each: 9:16, Flux Pro 1.1 via fal.ai (~$0.05 each).
Manual
Build queue/PE01/ folder with all assets
Required files: captions.txt (one line per beat), config.py (scene-to-time mapping), voice.mp3, scene01.png through scene04.png, music.mp3.
Manual
Render pilot video
Run: python produce.py PE01 --channel vivere-web. Output goes to review/PE01_[title].mp4. Do NOT move to UPLOAD_READY until Quality Audit Gate is passed.
Manual
Test captions on actual mobile phone screen
Load review/PE01_*.mp4 on your phone. Check: captions inside safe zones (not cut by UI chrome). Word-wrap working. Text readable at arm's length. This is easy to miss and kills a Shorts video.
6

Quality Audit Gate

Joseph sign-off required before anything moves to UPLOAD_READY

Quality — watch the video with fresh eyes
Manual
Hook lands in the first 3 seconds
Does the first line immediately create a question in the viewer's mind? If you'd keep scrolling, the hook needs revision.
Manual
Promise fully paid off before the CTA
The hook question must be answered BEFORE you ask for anything. Bait-and-switch kills audience trust permanently.
Manual
One clear idea, no tangents
Could you describe this video in one sentence? If it takes two sentences, it's trying to do too much.
Manual
Brand consistent — looks and sounds like Vivere
Palette: navy + teal. Voice register: direct, plain-spoken, confident. No jargon without explanation. Would a client recognize this as Vivere content?
Manual
Audio: clean, normalized, pacing is right
Listen on earbuds. No background noise, no clipping, no awkward pauses. Voice should feel unhurried but never slow.
Accuracy — before you publish anything publicly
Manual
All factual claims in PE01 verified
Check the fact-check table in the PE01 script. Key claim: Google uses Core Web Vitals as a ranking signal (verified). PageSpeed score shown is from a real Vivere client site (verified).
Metadata
Manual
Title: curiosity hook + key topic word, under 70 characters
Recommended: "The 3 Numbers That Decide If Your Site Ranks" — 50 chars. Verify it triggers curiosity AND includes "site" or "ranking" for search.
Manual
Description: 1-2 sentences, vivereweb.com link, no keyword stuffing
"Core Web Vitals explained in plain English — and why they decide whether your site shows up on page one or page four. Free audit: vivereweb.com/assessment"
Manual
Hashtags: #shorts + 2–3 topic tags only
#shorts #webdesign #smallbusiness — no more than 3-4 total. Over-tagging looks spammy and YouTube deprioritizes it.
7

First Publish

PE01 goes live — one upload, four platforms

Manual
Move PE01_final.mp4 to UPLOAD_READY/ folder
NEVER upload from review/ or queue/. Only files in UPLOAD_READY/ are cleared for publishing. This is your safety gate.
Manual
Upload to Blotato — select accounts by numeric ID (not handle)
Blotato → New Post → select YouTube, Instagram, TikTok using the numeric Blotato account IDs from channels.json. Upload the MP4 from UPLOAD_READY/.
Manual
Paste PE01 metadata into Blotato
Title, description, hashtags — copy from the Metadata section in PE01-core-web-vitals.md. Set pinned comment: "Free audit — no strings: vivereweb.com/assessment"
Manual
Schedule: YouTube + Instagram same day · TikTok 01:00 UTC next day
TikTok's algorithm favors overnight scheduling (UTC) for US audiences. YouTube and Instagram can publish simultaneously at your target time.
Manual
Post on LinkedIn — adapted text-first version
LinkedIn gets its own post, not a video cross-post. Take Beat 2 from PE01: "Most small business websites fail at least one Core Web Vital. When they do, Google quietly buries them." — expand to 3-4 paragraphs, post as text with optional video attachment.
Manual
Log upload in upload-log.md
Add a row to media-channels/vivere-web/upload-log.md immediately. Columns: date, PE01, title, platforms, scheduled time. Leave metrics columns blank — fill in at 48 hours.
Manual
Send first newsletter — same week as first video
Issue #1: "This week I posted our first video — here's the web concept it covers + one thing I think most small business owners get wrong about their site." Short, personal, direct. Include video link.
8

48-Hour Read & Decision

The data tells you whether to keep going or revise

Manual
Return at 48 hours — log metrics in upload-log.md
YouTube Studio → Analytics → PE01. Record: hook retention (0–3s %), average view duration, views, new subscribers. These numbers are your pipeline signal.
Manual
If hook retention > 50%: format works → move to HA01
More than half the viewers stayed past the hook. The structure is sound. Produce HA01 next using the same pipeline. Increase to 3 videos/week cadence.
Manual
If hook retention < 50%: identify the drop-off beat
YouTube shows exactly where viewers left. If they leave at 0–3s: hook needs rewrite. If they leave at a specific beat: that section is too slow or confusing. Revise before HA01.
Manual
Check subscriber conversion rate
In YouTube Studio: Content → PE01 → Impressions → Subscriptions gained. This tells you if the CTA is converting. Under 0.5% of views = CTA needs work.
9

BV01 Client Permission + Full Cadence

Unlock the client showcase series and scale to 3×/week

Agent Done
BV01 script written — Top It Off Smoothie Cafe
Full script at media-channels/vivere-web/scripts/BV01-top-it-off.md. Held from UPLOAD_READY pending client permission (Step p9-2).
Manual
Get written permission from Top It Off owner
Three things to confirm: (1) OK to use business name + @topitoffgj handle in public video. (2) OK to show website screenshots before/after. (3) OK to paraphrase their result ("calls started coming in") — or get an exact quote to use with attribution.
Manual
Produce BV01 using same pipeline as PE01
Voice → 4 scene images (old site screenshot, new site scroll, PageSpeed 97 screenshot, quote card) → queue/BV01/ → render → quality audit → UPLOAD_READY. Tag @topitoffgj on Instagram post.
Manual
Begin 3×/week cadence once 3 videos are live
Schedule: Mon = Plain English, Wed = Human+AI or New Rules, Fri = Built by Vivere or Meet the Client. Use network.py status to track runway of scheduled content.
Manual
Reach out to remaining clients for showcase permission
GVEC, Mimi's Sweet Treats, The Yard, Jireh Cafe — each is a BV episode. Start with the client you have the strongest relationship with. Each showcase = earned reach into their audience.
Milestone Tracker
500 + 3M
YPP Fan Funding Tier
500 subscribers AND 3M Shorts views in 90 days — OR — 3,000 watch hours. Unlocks memberships and Super Thanks.
1k + 10M
Full YouTube Ad Revenue
1,000 subscribers AND 10M Shorts views — OR — 4,000 watch hours. Full monetization, mid-roll ads, Shorts fund.
250+
Newsletter Sponsors
250 email subscribers unlocks outreach to local B2B sponsors. First sponsored send typically $50–$200 for a hyper-local list.