Docs

How sinbad works

The whole loop, in seven steps. Read it once, then come back to this page when something feels off. We'll be honest about what works and what doesn't.

  1. 01

    Add your product

    Name, one-liner, who it's for, your wedge, and the stage you're at. The more concrete the inputs, the better every AI prompt downstream. You can edit any of it later — nothing is locked.

    Open onboarding
  2. 02

    Match channels

    On the Channels tab, hit Match channels. A Sonnet pass scores every curated channel in our library against your product on a 0-100 fit scale, with one-line reasoning per row. The top 10 are usually obvious; the bottom 10 tell you what to skip.

    How matching works →
  3. 03

    Add the best to your backlog

    Each card has an "Add to backlog" button. That creates a submissions row, which is what the tracker (and the weekly report) work from. Add 5-15 channels for a launch — more is mostly noise.

  4. 04

    Generate posts

    On the Content tab, pick a format and (optionally) a channel. You get three variations per format, each tuned to that platform's voice — HN gets terse, LinkedIn gets the founder-story, Reddit gets lowercase. Edit in place, copy, ship.

  5. 05

    Track results

    Move cards through the kanban as you go: backlog → drafted → submitted → live → closed. Paste the link, record upvotes/comments/signups. The tracker is the source of truth for the weekly report.

  6. 06

    Weekly report

    Every Monday morning you get a digest: what shipped, what scored, what to try next week. Emailed (when SMTP/Resend is configured) and visible in-app. Read it Monday, action it Monday.

  7. 07

    Playbook

    Sonnet generates a phased plan tailored to your product — pre-launch, launch day, week 1, month 1. Tick steps as you ship. Each step deep-links to the right tab so you don't lose context.

The matching prompt, in plain English

For each channel, Sonnet sees: your product profile (one-liner, target user, wedge, stage, voice) and the channel's metadata (audience size, posting rules, best time, notes, our curated score). It returns a fit score from 0–100 and one-to-two sentences of reasoning that name something concrete — audience, format, or rule. Generic “good fit” rationale gets explicitly told off in the system prompt; you should expect honest, somewhat sardonic explanations. The matcher will also score channels low when they're wrong for you, and tell you why.

FAQ

How are channels scored?
Sonnet evaluates audience match, posting-rule fit, brand-voice alignment, stage compatibility, and channel crowding. The reasoning column tells you exactly why a channel got the score it did. Channel `curated_score` is a prior, not a copy.
Can I bring my own channels?
Not yet — the curated 100+ are tuned for our prompts. A custom-channel feature is on the roadmap once we've learned what works at scale.
What counts as one generation?
One Generate-button click on the Content tab = one generation (three variations, one row in post_contents). Channel matching and playbook generation don't count.
Are my drafts private?
Yes. Row Level Security on the database means only you (signed in as the owner) can read your products, posts, submissions, and reports. Service role bypass exists for system tasks (matcher, cron) but never serves user-facing reads.
What models are you using?
Claude Haiku 4.5 for routine work, Claude Sonnet 4.6 for premium generation (channel matching, post drafting, playbooks). System prompts are aggressively cached so we don't pay for the same context twice.

Ready to stop polishing.

Start free →