How it works
๐ Read once How a creator goes from sign-up to posting, and what the admin sets up once; every page's How? bubble has the short version.
Sign-up to first post
you never need API keys: approve access once per platform- Get an account. Today the admin creates it and sets your password; self-service sign-up comes later. Log in at /login.
- Connect TikTok. Accounts page, press Connect TikTok on your brand's tab, approve on TikTok's screen, and you are back. TikTok returns whichever account the browser is signed in to, so sign into the right TikTok account first, or use a private window.
- Connect Instagram and YouTube. For now the admin does these with you (a token from Meta's portal, and Google's consent screen). Buttons for both arrive once Meta and Google have reviewed the app.
- Tell it your voice. On Accounts, fill in each brand's niche and voice notes. Caption suggestions are drafted from these.
- Choose what happens to silent clips. The Silent clips tab on Accounts: send them on silent, or hold them so you can add a library track first.
- Post. Two ways. Post on Instagram as usual and the app picks it up within five minutes ๐ and sends it to that brand's TikTok and YouTube. Or open Compose, upload once, write the caption, tick the accounts, set TikTok's privacy and toggles, and press Post. To send one of your own Reels out again, paste its Instagram link on Compose instead of uploading (own Reels only; the sound is removed unless you keep it), or press Repost on Reposts. To save someone's Instagram or TikTok video to your computer, paste the link on Download.
- Cut a long video into clips. Add a recording on Clipper. It transcribes itself, then suggests the moments that stand on their own ๐. Edit the in and out points, render, and send the ones you like to the queue, or mark a moment yourself if the suggestions miss. Clips come out vertical with the words burned in.
- Improve a draft. Save a draft on Posts; press Improve and the team (Reader, Scout, Writer, Producer, Sound, Jev) writes three options in your voice and scores them. Footage match does the same from any of your videos: who filmed the same thing, who did best, and one plan.
- Watch Home. "Needs you" lists anything waiting on a press, such as a TikTok draft to publish. "Needs audio" holds silent clips if you chose to review them. "Could not be crossposted" lists posts Instagram withheld, with a Fetch button.
- Later. Posts shows every post and where it went. Reports shows each brand across its platforms for the last 7, 28 or 90 days, with the daily AI brief; Insights shows what the numbers say about your posts. Disconnect any account on the Accounts page; ask for your data to be deleted by email.
What to expect from each platform right now
- ๐ต TikTokyour video lands in your TikTok inbox as a draft and you publish it in the app, adding a sound if you like. Captions cannot be attached to drafts; that changes when TikTok approves direct posting, after which posts go straight to your profile with the caption and settings you chose.
- โถ๏ธ YouTubeuploaded as unlisted, first line of the caption as the title. Make it public in YouTube Studio when you are happy, or let the brand's rule do it once the wording is on.
- ๐ท Instagramthe source. Reels using Instagram's licensed music arrive without the file; the app fetches the public Reel instead and removes the music, so add a sound on TikTok and YouTube.
One-time setup
registrations, keys, admin tasksCreators authorise through the app's own developer registrations. These are set once by the admin and shared by every user.
| Platform | Where the app is registered | Keys in the server .env | Who can use it before review |
|---|---|---|---|
| Meta for Developers, an "Instagram API with Instagram Login" app | INSTAGRAM_APP_ID, INSTAGRAM_APP_SECRET | Accounts added as testers in the Meta app's roles. Public use needs Business Verification and App Review. | |
| TikTok | TikTok for Developers, Login Kit + Content Posting API | TIKTOK_CLIENT_KEY, TIKTOK_CLIENT_SECRET (sandbox key until the audit passes, then the production key) | Sandbox target users (up to 10), inbox drafts only, 5 posting users per day. The Direct Post audit lifts this. |
| YouTube | Google Cloud project with the YouTube Data API and an OAuth consent screen | YOUTUBE_CLIENT_ID, YOUTUBE_CLIENT_SECRET | Test users on the consent screen. Public use of the upload scope needs Google's OAuth verification. |
| Captions | Gemini (or DeepSeek, Anthropic) | LLM_PROVIDER, GEMINI_API_KEY, optional LLM_MODEL | No review. Pennies per draft. |
Admin tasks
- Create a user: the Admin page, "Add a user" (email, name, first brand, password). There is no self sign-up. The Admin page also shows who is signed in, failed sign-ins, AI spend, and lets you edit, disable, sign out or delete a user. Levels: owner (everything, including switching AI models and limits), admin (manages premium and member accounts), premium and member (differ only in AI limits).
- Connect Instagram or YouTube for a user: the connect-account script with the brand name; Instagram takes a token from the Meta portal, YouTube opens Google's consent screen.
- Keep the platform registrations consistent: app name, icon, website, terms and privacy URLs must match this site. Redirect URI for TikTok:
/oauth/tiktok/callbackon this domain. - Operate: deploy with the deploy script on the server, nightly verified backups with a monthly restore test, /health reports a stalled worker, Jobs page shows every run, media files expire after 30 days.
- Reviews, in order of value: TikTok Direct Post audit (captions on TikTok, more users), Google OAuth verification (YouTube for the public), Meta Business Verification (Instagram for the public).
The full operator handover lives in the repository under docs.