donAI
Docs

How donAI works, end to end.

From your first brief to the asset it produces. Everything below is written against what the app does today — no roadmap, no maybes.

Getting started

donAI turns a written brief into campaign visuals. You describe what you're selling and who it's for; it plans the angles, writes a prompt per shot, and generates the images or video. Everything else in the app is a way of reusing that work — characters that stay the same person, automations that are the same brief with new variables, and a canvas to arrange the results.

Create an account from Sign up. You can also browse and write first — see guest mode for what changes when you're signed out.

The shortest path to an asset

  1. Open the dashboard and type the campaign in the command bar.
  2. Press send. The brief opens in Chat as your first message.
  3. Pick a mode — Single for one image, Campaign for a set.
  4. Watch the shots arrive; they land on the canvas as they finish.
  5. Right-click any image to download it or run an automation against it.

Writing a brief that works

The planner is a planner, not a mind reader. It reads four things out of what you write — the subject, the count, any style words, and an aspect ratio — then builds the shot list around them. Everything else you write still reaches the model as prompt text, so detail is never wasted.

A brief that lands well names four things:

The product
What it is, in a few words. “A matte-black insulated bottle” beats “our product”.
Who it's for
Age, style, context. It changes the casting, wardrobe and setting more than any other word.
The feeling
Editorial, cinematic, handheld, clinical. This is what the Style menu sets programmatically.
How many
The planner defaults to three; say “five shots” or “make me 4” and it uses your number.

Onboarding

New accounts are asked three questions before they land anywhere. They exist so the first brief you write starts from context instead of a blank box, and they feed the business type and goals into later generation.

StepQuestionWhat it does
OneWhat are you building?Pick a business type, then describe what you sell in a sentence.
TwoWho are you selling to?Describe your target customer — free text, as specific as you like.
ThreeWhat's your main goal?Pick the goals that matter: reach, sales, awareness, launches, and similar.

You can go back a step at any time from the Back button, and Finish setup is the last one. The answers are stored against your account and reused as background context on later runs.

The dashboard

The dashboard is the home screen. It opens with What should we make? and a command bar under it.

The command bar

One field, one action. Whatever you type is handed to Chat as an opening brief — it doesn't generate on the spot, it opens the composer pre-loaded so you can still change the mode and model before spending anything. The New campaign button takes you straight to an empty Chat.

Recent generations

A newest-first strip of everything you've generated, pulled from your projects rather than from a separate feed — so it includes images made on the canvas and from automations, not just chat. The count sits on the right of the heading.

Characters

Up to three of your Characters are shown as sticky notes, ready to @-mention without opening the page. Create more there and the strip rotates.

How the app is laid out

Every signed-in page shares one shell: a bar across the top, a white panel below it, and content in a centred column. The bar is the whole navigation:

GroupPageWhat it's for
—DashboardCommand bar, recent generations, characters
—ChatBriefs, planning, generation, the canvas
CampaignsLibraryEverything you've generated, newest first
CampaignsCharactersReusable personas
CampaignsAutomationsSaved briefs you can re-run
CampaignsIntegrationsConnected accounts and connections
CampaignsAnalyticsComing soon
AccountSettingsAccount, generation defaults, sign out

Guest mode

Signed out, the app still works as a demo: you can write briefs and generate. What you don't get is persistence. Chats are stored per account, so nothing is kept between sessions until you sign in. Characters, automations and the canvas are separate from that — see where everything lives.

Chat

Chat is where briefs become assets. The page is a conversation on the left and a canvas on the right, with the composer pinned along the bottom. The canvas can be hidden if you only want to talk.

The header

The chat name sits at the top. Click it to rename in place — Enter commits, Escape cancels. To the right are Share, and the Switch chat menu, which lists every chat you have and opens chat history.

Message actions

Every assistant message has three small buttons underneath it: Copy puts the text on your clipboard, and the thumb up / thumb down buttons mark the response so you can find the ones that worked.

The composer

Four controls sit in one row under the prompt field, and they never move when you change modes — the bar keeps its shape so you can't lose your place:

  • Mode — the + button. Chat, Single, Campaign or Video, plus attachments.
  • Model — which model draws it. The list swaps to video models when you switch to Video.
  • Style — art direction layered on top of the model.
  • Send — the round black button at the far right.

Enter sends, Shift + Enter starts a new line. While a mention list is open, the arrow keys move through it, Enter or Tab picks, and Escape closes it.

How a brief becomes a plan

Before anything is generated, donAI writes the plan. It runs locally and instantly — no model call — so you see the shot list immediately and can stop before spending a credit.

What it reads out of your text

Four passes, in this order:

  1. Lead noise — “can you create an image of” and similar wrappers are stripped, so the planner works on your subject rather than on the sentence around it.
  2. The subject — what the shots are of. If the brief names no brand or product, this falls back to a neutral stand-in rather than inventing one.
  3. Count — an explicit number in the text wins; otherwise it defaults to three.
  4. Style and aspect — up to three style directives and a ratio, read from the words you used. The default ratio is 4:5.

The shot list

Shots are drawn from a fixed set so a campaign has range instead of six variations of the same frame. Each one carries a human label and the camera language that goes into the prompt:

LabelCamera language
Hero shotfront eye-level dynamic wide shot
Low anglelow-angle upward dramatic perspective
Top-downhigh-angle top-down 45-degree overview
Close-upclose-up side profile macro detail shot
Wide scenewide establishing scene shot
Detail macroextreme macro detail texture shot

A campaign is capped at seven shots. The cap is not arbitrary: the image backend accepts at most four outputs per request, so anything past that has to run as sequential calls, and going wider costs more than the extra frames are worth.

Video briefs

Video swaps the camera vocabulary for movement. One shot, one continuous take — no cuts — drawn from:

Push-in · Orbit · Tracking · Tilt-up · Hero static · Pull-back

Modes

The mode decides what one message means. Switching modes keeps your prompt, your references, and the position of every control.

ModeOne message producesExtra control
ChatA written answer — planning, copy, critique—
SingleOne image—
CampaignA set of images from one briefImage count, 1 to 7
VideoOne moving shotLength: 4s, 6s or 8s

Campaign mode bumps the count to three the moment you select it, so a campaign is never a single frame by accident. The stepper is capped at seven for the reason above.

Mode affects the model list

Image modes use the image models. Video mode swaps the model dropdown to the video models, and keeps whichever one you last used so switching back and forth doesn't reset your choice.

Models

You pick the model per message. The menu shows what each one is actually good at, because the difference between them is real.

The cheap way to work: draft on Flux 2 Pro while you explore ideas — it renders for half of what Max costs — then switch to Flux 2 Max for the one you ship.

Image models

ModelGood at
ChatGPT ImagePowered by OpenAI — the most famous name in AI
Google Imagen ProThe enterprise gold standard from Google for crisp realism
Flux 2 ProBlack Forest Labs' fast drafter — half the cost of Max, for testing concepts
Flux 2 MaxBlack Forest Labs' best model — the final render at full fidelity

Video models

ModelGood at
Seedance 2.0Hugely popular for viral effects and fast motion
Kling AI TurboRenowned for realistic physics — loved by video creators
MiniMax H3 (Hailuo)Hyper-realistic human motion with native audio

Styles

Style is art direction applied on top of whatever model you picked — it isn't a filter and it doesn't change the model. It applies to image and video alike.

StyleWhat it changes
AutoNo extra art direction
UGCHandheld phone look, real influencer energy
AnimeCel shading, expressive key-frame art
CinematicAnamorphic, volumetric light, 35mm grain
EditorialFashion-magazine styling and posing

Choosing a style here is the same as writing the words into the brief — if you already said “cinematic” in your prompt, picking Cinematic changes nothing and that's intentional. They stack, they don't fight.

Reference images

Attach up to four images to a message and the generation uses them as references rather than starting blind. The composer shows a count next to the controls whenever any are attached.

Use them for a look, a product, a character, or a composition you want to keep. When a reference is present the planner accounts for it — a brief with references is treated as a variation on what you supplied, not a fresh idea.

References apply to the message they're attached to. To reuse one across a run, put it in the canvas and run an automation against it instead.

Running a campaign

A campaign is the long path: brief, plan, shots, canvas, delivery. What actually happens, in order:

  1. You write the brief and send it in Campaign mode.
  2. donAI writes the plan — subject, aspect, and the shot list — and shows it to you first.
  3. Each shot generates on its own, in sequence.
  4. Finished shots land on the canvas as they complete, so you can work with the first one while the last is still rendering.
  5. Right-click any shot to download it, run an automation on it, or delete it.

Why shots arrive one at a time

The image backend takes four outputs per request and a campaign can be up to seven, so a run is a queue rather than a single call. Watching them land in order is the honest version of what the backend does — not a spinner pretending otherwise.

@ mentions

Type @in the composer to see what donAI can act on: the apps you've connected and the characters you've created. Pick one and it becomes a chip in the text, and the action runs as part of your message.

Only connected things appear

The list is filtered to what actually works. Mentioning an app you haven't connected would be a dead end, so it doesn't show up. Characters always appear — they live on your device and are always ready.

Chips

A chip carries the full name and the app's logo, so a long character name is never truncated to something you then have to remember. Chips are removed by deleting the text around them, not with a separate cross.

What a mention does

For a character, the profile is injected into the brief — age, build, personality, usual setting — so the same person appears across every shot. For a connected app, it tells the run where the result is going. More on publishing.

Characters

A character is a persona that stays the same person across every shot: same face and outfit, captured from your reference photo. Create one under Characters, then @-mention its name in chat and the description is folded into the brief.

The fields

FieldWhat it does
NameRequired. This is the handle you @-mention and the label on the card.
Reference photoRequired. Every generation that mentions the character ships this photo to the model, pinning the face/outfit across shots.
DescriptionRequired. Who they are and how they look — folded into the brief whenever they're @-mentioned.

Storing and listing them

Characters live in this browser on this device, so they appear instantly and are visible in the full list. The page shows them as simple cards — photo on top, name and description below.

Automations

An automation is a named recipe — a prompt plus how the output should look — so you don't retype the same brief every week. Save one under Automations, then right-click a canvas image and pick Post to automation to run it against that image.

The fields

FieldWhat it does
NameRequired. What appears in the canvas menu — name it like you'd say it out loud.
PromptThe brief. Write it as an instruction with the variable you want to swap first, e.g. "Create a launch image from this product: …".
Output kindImage or video. Decides which model runs the automation.
Aspect1:1 for feed posts, 9:16 for stories and reels, 16:9 for covers and YouTube.
LengthVideo only — the clip duration.

Running one

Right-click any image on the canvas and the menu lists every automation you've saved. The source image is passed straight into the prompt, which is the whole point: the recipe stays fixed and the product changes. The result comes back to the canvas as a new node.

The canvas

The canvas is a free-form workspace next to the chat. Anything generated lands on it, and everything on it can be moved, resized, connected and deleted.

Nodes

Five kinds of node live on the canvas:

  • Images — every generation, from chat, automations or uploads.
  • Campaign plan — the shot list donAI wrote, kept on the canvas so you can read what it decided.
  • Characters — persona notes, so the cast list sits next to the work.
  • Automation runs — what an automation produced, with the automation that made it.
  • Text — anything you want next to the work. Double-click to edit in place; Enter commits.

Moving and resizing

Drag a node to move it. Every node has resize handles on its edges — text nodes scale their type as they grow, so a wider note stays readable rather than truncating.

Connecting nodes

Each node has a handle on both sides. Drag from one to another and donAI draws the link between them — the canvas is a flowchart you build by hand, not a layout it imposes.

The right-click menu

WhereWhat you get
On an imageDownload image · Post to automation · Delete node
On empty canvasClear canvas

Delete is the only destructive item and it turns red on hover, so a mis-click is visible before you commit to it.

Drawing

The canvas takes freehand drawing over the top, in the colour you pick. Useful for marking up a frame or sketching a layout before generating it.

Status messages

Saves, runs and errors report themselves in a small pill that follows your cursor, so a long operation never leaves you guessing whether it worked.

Projects

The canvas saves into projects. The project menu — top left of the canvas — saves the current one, switches to another, or starts a new one, and any project can be renamed in place.

Recent generations on the dashboard and everything in Library are read from these projects, which is why an image made on the canvas shows up in both without being saved twice.

Saving is bound to ⌘ S as well as the menu item, and undo and redo are bound to the usual pairs — see keyboard shortcuts.

Library

Everything you generate lands in Library, newest first, whether it came from chat, the canvas or an automation. It's the same list the dashboard pulls its recent strip from, so the two never disagree.

The library is where you go to compare the same idea across models — generate one brief three times on different models and the results sit next to each other, which is the fastest way to learn what each one is actually for.

Integrations

Connect the accounts donAI can publish through and pull context from. Connect them once, then push campaigns straight out of the canvas instead of exporting and re-uploading.

Browse connections

Available now

ProviderWhat connecting it does
InstagramPublish posts and carousel assets directly to your feed
TikTokExport videos and campaign visuals into drafts
YouTubeUpload video renders and channel thumbnails
NotionSave images, briefs and campaign notes to your workspace
Meta AdsRun ads directly from donAI
ShopifySync generated media directly to storefront products
XShare generated content and canvas updates directly

Not available yet

Claude and ChatGPT are listed but not yet wired. Opening one lets you store an API key against it so the connection is ready when it ships — the key is kept on your device and nothing is sent anywhere until the integration goes live.

How connecting works

Each provider card shows its state — connected, or ready to set up. Clicking one opens a detail panel with the connection button; most providers hand you off to their own authorization page and return you here when you approve. Connections are per-account: nobody else's account is ever connected to yours.

A connected provider can be disconnected from the same panel, which removes the stored connection and nothing else.

Publishing and mentions

Once an account is connected, you can send work to it from chat rather than downloading and uploading by hand.

  • Mention the connected app in a message — @mention it from the composer — and the run knows where the result is going.
  • It then only lists connected apps, so a mention always does something.
  • Disconnecting an app removes it from that list immediately.

One thing at a time

Publish runs are per account, not per workspace. Connect an account on one device and it appears on the others once they refresh.

Plans and limits

donAI runs on Free and paid tiers. Paid plans raise generation limits and unlock priority quality. Current prices and exactly what's included live on the pricing page — that page is the source of truth, this one just points at it.

LimitValueNotes
Images per campaign7Capped by what the image backend accepts per request
Reference images per message4Counted in the composer
Video length4s, 6s or 8sChosen in Video mode
CharactersUnlimitedStored on your device
AutomationsUnlimitedStored on your device
ProjectsUnlimitedSaved against your account

Settings

Settings holds three cards: Account shows the email you signed in with, your current plan and your user ID; Generation shows the defaults new campaigns start from; and Session signs you out.

The user ID is there on purpose — it's what support needs if something about an account goes sideways, and it's the identifier connections are attached to.

Analytics

Analytics is listed in the top bar and marked Soon. It's not a stub you can click into — the entry exists so the shape of the app is honest about where it's going.

Everything you'd want to see is already in the Library and the dashboard's recent strip, so nothing is hidden from you in the meantime.

Keyboard shortcuts

The canvas is built for keyboard work. Shortcuts are ignored while you're typing in a field, so they never eat a keystroke you meant for a prompt.

KeysActionWhere
⌘ SSave the current projectCanvas
⌘ ZUndoCanvas
⇧ ⌘ ZRedoCanvas
⌘ YRedoCanvas
Delete / ⌫Delete the selected nodeCanvas
EnterSend the messageChat
⇧ EnterNew lineChat
↑ ↓Move through the mention listChat
Enter / TabPick the highlighted mentionChat
EscClose the mention listChat
EnterCommit a text node you're editingCanvas
EscCancel a renameChat

On Windows and Linux, use Ctrl wherever this says ⌘.

Where your stuff lives

Two different stores, and it's worth knowing which is which before you go looking for something.

WhatWhereWhat that means
ChatsYour accountFollows you between devices; needs you signed in
Projects and generationsYour accountCanvas work and everything in Library
ConnectionsYour accountEach connection is attributed to you, never shared
CharactersThis browserInstant, and private to this device
AutomationsThis browserSame — device-local
API keysThis browserNever leaves the device

The practical consequence

Characters and automations are device-local on purpose — they appear instantly with no round trip. The cost is that a second browser starts empty. Anything you'd hate to lose should live in an automation rather than a character note.

Troubleshooting

My @ list is empty

It only lists connected apps plus your own characters. Connect something under Integrations first, or create a character under Characters.

My chats aren't saving

Chats are stored per account. You need to be signed in — a guest session can write but nothing is kept when it closes.

My characters disappeared

Characters live in this browser. A different browser, a different device, or a cleared site cache starts with an empty set.

The plan ignores my model choice

Some briefs read like a conversation rather than a generation — “what should I post?” — and the planner answers instead of generating. Say what you want made, or pick Single or Campaign explicitly.

Which models do I get?

The list follows the mode you're in. Switch to Video and the model menu swaps to the video models; switch back and your image choice is still there.

A campaign only produced part of its shots

Shots run sequentially and a run can be interrupted. Everything that finished is already on the canvas and in the Library — send the brief again and say how many you want this time.

Connecting an app did nothing

Connections are per account. Make sure you're signed into the account you expect — the top bar shows the email you're on right above Sign out.

Glossary

Brief
The text you write. One message, one brief.
Plan
What donAI works out from your brief before generating: subject, aspect, shot list. Free and instant.
Shot
One planned frame, with its own label and camera language.
Style
Art direction layered over the model — not a filter, and not a different model.
Character
A reusable persona: appearance, personality, usual setting.
Automation
A saved prompt plus output settings, re-runnable against any image.
Node
Anything on the canvas: an image, text, a plan, a character, an automation run.
Connection
An account you've linked so donAI can publish to it.
Reference
An image attached to a message, used as input rather than just context.

Still stuck? The connections page and your Settings both show the account you're on, which is the first thing worth checking.