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.
MAKING THINGS
REUSABLE WORK
CONNECTED
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
- Open the dashboard and type the campaign in the command bar.
- Press send. The brief opens in Chat as your first message.
- Pick a mode — Single for one image, Campaign for a set.
- Watch the shots arrive; they land on the canvas as they finish.
- 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.
| Step | Question | What it does |
|---|---|---|
| One | What are you building? | Pick a business type, then describe what you sell in a sentence. |
| Two | Who are you selling to? | Describe your target customer — free text, as specific as you like. |
| Three | What'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:
| Group | Page | What it's for |
|---|---|---|
| — | Dashboard | Command bar, recent generations, characters |
| — | Chat | Briefs, planning, generation, the canvas |
| Campaigns | Library | Everything you've generated, newest first |
| Campaigns | Characters | Reusable personas |
| Campaigns | Automations | Saved briefs you can re-run |
| Campaigns | Integrations | Connected accounts and connections |
| Campaigns | Analytics | Coming soon |
| Account | Settings | Account, 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:
- 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.
- 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.
- Count — an explicit number in the text wins; otherwise it defaults to three.
- 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:
| Label | Camera language |
|---|---|
| Hero shot | front eye-level dynamic wide shot |
| Low angle | low-angle upward dramatic perspective |
| Top-down | high-angle top-down 45-degree overview |
| Close-up | close-up side profile macro detail shot |
| Wide scene | wide establishing scene shot |
| Detail macro | extreme 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.
| Mode | One message produces | Extra control |
|---|---|---|
| Chat | A written answer — planning, copy, critique | — |
| Single | One image | — |
| Campaign | A set of images from one brief | Image count, 1 to 7 |
| Video | One moving shot | Length: 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
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
| Model | Good at |
|---|---|
| ChatGPT Image | Powered by OpenAI — the most famous name in AI |
| Google Imagen Pro | The enterprise gold standard from Google for crisp realism |
| Flux 2 Pro | Black Forest Labs' fast drafter — half the cost of Max, for testing concepts |
| Flux 2 Max | Black Forest Labs' best model — the final render at full fidelity |
Video models
| Model | Good at |
|---|---|
| Seedance 2.0 | Hugely popular for viral effects and fast motion |
| Kling AI Turbo | Renowned 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.
| Style | What it changes |
|---|---|
| Auto | No extra art direction |
| UGC | Handheld phone look, real influencer energy |
| Anime | Cel shading, expressive key-frame art |
| Cinematic | Anamorphic, volumetric light, 35mm grain |
| Editorial | Fashion-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:
- You write the brief and send it in Campaign mode.
- donAI writes the plan — subject, aspect, and the shot list — and shows it to you first.
- Each shot generates on its own, in sequence.
- Finished shots land on the canvas as they complete, so you can work with the first one while the last is still rendering.
- Right-click any shot to download it, run an automation on it, or delete it.
Why shots arrive one at a time
@ 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
| Field | What it does |
|---|---|
| Name | Required. This is the handle you @-mention and the label on the card. |
| Reference photo | Required. Every generation that mentions the character ships this photo to the model, pinning the face/outfit across shots. |
| Description | Required. 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
| Field | What it does |
|---|---|
| Name | Required. What appears in the canvas menu — name it like you'd say it out loud. |
| Prompt | The brief. Write it as an instruction with the variable you want to swap first, e.g. "Create a launch image from this product: …". |
| Output kind | Image or video. Decides which model runs the automation. |
| Aspect | 1:1 for feed posts, 9:16 for stories and reels, 16:9 for covers and YouTube. |
| Length | Video 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
| Where | What you get |
|---|---|
| On an image | Download image · Post to automation · Delete node |
| On empty canvas | Clear 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 connectionsAvailable now
| Provider | What connecting it does |
|---|---|
| Publish posts and carousel assets directly to your feed | |
| TikTok | Export videos and campaign visuals into drafts |
| YouTube | Upload video renders and channel thumbnails |
| Notion | Save images, briefs and campaign notes to your workspace |
| Meta Ads | Run ads directly from donAI |
| Shopify | Sync generated media directly to storefront products |
| X | Share 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
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.
| Limit | Value | Notes |
|---|---|---|
| Images per campaign | 7 | Capped by what the image backend accepts per request |
| Reference images per message | 4 | Counted in the composer |
| Video length | 4s, 6s or 8s | Chosen in Video mode |
| Characters | Unlimited | Stored on your device |
| Automations | Unlimited | Stored on your device |
| Projects | Unlimited | Saved 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.
| Keys | Action | Where |
|---|---|---|
| ⌘ S | Save the current project | Canvas |
| ⌘ Z | Undo | Canvas |
| ⇧ ⌘ Z | Redo | Canvas |
| ⌘ Y | Redo | Canvas |
| Delete / ⌫ | Delete the selected node | Canvas |
| Enter | Send the message | Chat |
| ⇧ Enter | New line | Chat |
| ↑ ↓ | Move through the mention list | Chat |
| Enter / Tab | Pick the highlighted mention | Chat |
| Esc | Close the mention list | Chat |
| Enter | Commit a text node you're editing | Canvas |
| Esc | Cancel a rename | Chat |
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.
| What | Where | What that means |
|---|---|---|
| Chats | Your account | Follows you between devices; needs you signed in |
| Projects and generations | Your account | Canvas work and everything in Library |
| Connections | Your account | Each connection is attributed to you, never shared |
| Characters | This browser | Instant, and private to this device |
| Automations | This browser | Same — device-local |
| API keys | This browser | Never leaves the device |
The practical consequence
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.