- A blog URL, RSS feed, sitemap, or blog index URL
- A destination subreddit
- An approved Reddit persona with a working browser session
Configuration Model
Each sync config belongs to a workspace and stores:| Field | Purpose |
|---|---|
blog_url | Blog index, feed, sitemap, or landing page to crawl |
subreddit | Destination subreddit, with or without r/ |
persona_id | Optional preferred persona; otherwise an active auth-completed persona is selected |
include_media | Extract inline images and render them into Reddit richtext |
active | Allows daily cron runs and publishing eligibility |
publish_immediately | Queues synced posts for publishing when the config is active |
API-First Flow
Create or update a config:persona_id is optional. Use it to verify a specific workspace account without changing the sync config.
If the requested persona is not active, auth-completed, and browser-ready, the API fails instead of falling back.
verify_media_upload=true uploads Reddit media assets during preflight. Use it only when a human explicitly asks to verify media uploads.
MCP Flow
MCP clients should use the same API actions in this order:get_blog_subreddit_syncspost_blog_subreddit_syncs_id_runwithdry_run=truepost_blog_subreddit_syncs_id_readinesspost_blog_subreddit_syncs_id_publish_preflightonly for a selected synced post
One-Command Cube Acceptance
Run the non-public Cube acceptance verifier:- TypeScript
- Full-content dry-run discovery
- Media extraction
- Mid-sync config-change abort behavior
- Production HTTP API behavior with temporary read/write keys
- Reddit readiness through one GoLogin-backed browser session
- Banned persona exclusion
- Final database cleanup state
--persona-id is optional; when provided, the verifier uses that workspace persona for browser-backed
readiness through the API and fails if the account is not active, auth-completed, and browser-ready.
Use --allow-published when verifying a config that has already completed live publishing.
GoLogin Limit
GoLogin is serialized per workspace API key. The Cube verifier therefore uses one GoLogin-backed readiness check by default. Do not run these at the same time for the same workspace:- Blog sync readiness
- Blog sync publish preflight
- Persona OAuth preflight
- Any other Reddit browser automation using the same GoLogin API key
Public Publish Gate
Public Reddit submission requires explicit human approval. The live publish verifier will not publish unless called with:- The selected synced post is approved
- The destination subreddit is correct
- The persona is approved for the customer
- The config is active and
publish_immediately=true - No other GoLogin-backed job is running for the same workspace
Destination Changes During Sync
The sync fingerprints the config before each run. If the blog URL, subreddit, persona, active state, media setting, publish mode, or max-post setting changes while a run is active, the run aborts before writing or queueing more posts. Queued publish tasks also carry the config fingerprint. If the destination changes before publishing, the task is skipped and the synced item returns to draft state.Expected Cube Acceptance State
After a live acceptance run with--allow-published, Cube should have no queued or failed sync items and should retain media-bearing published items. Before live publishing, a non-public acceptance run should leave published posts: 0.