Velvet

Sign in to manage your persona, your content and your platforms.

Velvet

Choose a new password. This link works once and expires.

Velvet

The persona defines her voice and her limits. Examples weigh far more than adjectives: the model follows them very closely. Write real ones, not descriptions.

Identity
Voice
Never
Languages
A language added here must also be added to the server guardrails (handoff.ts) and to detection (language.ts), otherwise its fans bypass the filters with nothing to signal it.
Offer types
Which categories can be offered, and to whom. The actual inventory lives in the Content tab.
Blocked terms per platform
The only guaranteed net: if a draft contains one of these words it goes to human review instead of being suggested.

The sellable inventory. Velvet does not let the model choose: it filters on tier and tags first, then asks only for the pitch. The price is a fact, never something the model invents.

TitleKindTagsPriceFrom tierActive

No content yet. Add the first one below.

Add content

Where Velvet is wired in, and how.

OnlyFans

No public API. Velvet reads the page through the extension and suggests a draft; the human sends. Nothing to connect here.

Fansly

Works the same way as OnlyFans.

Fanvue

Official API: the server can send, but it still goes through review.

Opens the OAuth consent flow. Needs the app credentials in server/.env.

The Velvet browser extension cannot carry your session cookie: its content script runs on OnlyFans' own page. It authenticates with a key instead — one per browser, revocable. A key is shown once and never again.

LabelCreatedLast used

No key yet.

New key

Mockup. Accounts, roles and per-creator isolation are in place. Still missing before public exposure: rate limiting on sign-in, password reset, and expired-session cleanup.