ClipOps
Analytics command center
Add Account
DashboardAccountsContent LibraryPostsInsightsSettings
Quick entry
+ New content asset+ Log published post
PrivacyTerms
ClipOps

Settings

Environment, integrations and demo data.

Database
Set DATABASE_URL in .env.local to switch to Supabase / Postgres. Without it ClipOps uses an embedded PGlite database in ./.data.
Mode
Postgres (DATABASE_URL)
Accounts
1
Posts
3
Snapshots
3
Migrations
Applied manually (npm run db:migrate:prod); AUTO_MIGRATE=false
Analysis layer
Pre-post and post-mortem analyses are modular. Rule-based mode is always available.
Active provider
Rule-based (no API key found)
Enable AI
Set ANTHROPIC_API_KEY (preferred) or OPENAI_API_KEY (+ OPENAI_BASE_URL) in .env.local and restart.
Fallback
If an AI call fails the rule-based provider answers instead, so the workflow never blocks.
Predictions
Baseline quantile model; returns “insufficient data” until 20 posts have a 24h snapshot.
Auto-sync connectors
Official OAuth + APIs only — no scraping. Connect accounts from each account page once the credentials below are set.
TikTokcredentials set
Env vars
TIKTOK_CLIENT_KEY, TIKTOK_CLIENT_SECRET
Redirect URI
https://clipops.clipsmith.org/api/oauth/tiktok/callback
Scopes
user.info.basic, video.list
Setup
TikTok for Developers → app → Login Kit (web) + Display API; add the redirect URI; request user.info.basic and video.list.
Instagramcredentials missing
Env vars
INSTAGRAM_APP_ID, INSTAGRAM_APP_SECRET
Redirect URI
Legal
Public pages referenced in the TikTok and Meta developer app configuration.
Privacy Policy
/privacy
Terms of Service
/terms
Contact
streamscene@clipsmith.org
Account statuses
What each status means. Change it from the account page.
Active
Posting on a regular schedule. Counts fully toward totals and insights.
Testing
Trial account — still finding its format. Fully tracked, but treat its numbers as experiments.
Archived
No longer posting. Kept for history; excluded from “needs attention” and new-post defaults.
Danger zone
Both actions delete every account, clip, post and snapshot in the database. Each requires typing a confirmation phrase. CLI equivalents: npm run db:reset / npm run db:seed.
Reset to demo data

Deletes every account, clip, post and snapshot, then re-seeds the StreamScene demo.

Wipe all data

Deletes everything and leaves the database empty. Only do this if you are starting over.

https://clipops.clipsmith.org/api/oauth/instagram/callback
Scopes
instagram_business_basic, instagram_business_manage_insights
Setup
Meta for Developers → app → Instagram API with Instagram Login; professional (Business/Creator) account; add the redirect URI; instagram_business_basic + instagram_business_manage_insights.
YouTube auto-sync is not implemented yet. Scheduler: in development a ticker runs due syncs every 60s while `next dev` runs; deployments call POST /api/sync/run-due with x-cron-secret, or run npm run sync:worker. Tokens are stored AES-256-GCM encrypted with TOKEN_ENCRYPTION_KEY.