Generate
The template-driven content generation screen — where you turn prompts into polished output.
The Generate page is where most of your time will be spent. It's a two-pane layout: the template form on the left, the AI output on the right.
Layout
┌───────────────────────────┬───────────────────────────┐
│ │ │
│ Template form │ AI output │
│ │ │
│ • Template name + desc. │ • Streams in as it runs │
│ • Input fields │ • Copy / Download │
│ • Provider + model badge │ • Save to History │
│ • Generate button │ • Save as Document │
│ │ • Regenerate │
│ │ │
└───────────────────────────┴───────────────────────────┘On mobile the panes stack vertically.
Picking a template
There are three ways to land on Generate:
- From Templates, click Use template
- From Dashboard quick actions
- Directly via URL:
/generate?template=<id>(e.g./generate?template=blog-post)
If you land on Generate without a template selected, you'll see an empty state with a Browse templates CTA.
Filling the form
Each template defines its own fields. Example — for Blog Post:
- Topic (text, required)
- Tone (select: Professional / Casual / Friendly / Authoritative / Humorous / Inspirational)
- Target Audience (text, optional)
Required fields are marked with a red asterisk. The Generate button is disabled until all required fields have values.
Generating
Click Generate. The prompt is built by replacing {field} placeholders in the template's prompt with your values, and the request is sent to /api/generate.
While generating:
- The button shows a spinner and says "Generating..."
- The output pane shows a loading placeholder
- You can't re-click Generate until the current run completes
When the run completes, the content appears in the output pane rendered as Markdown.
Active provider and model
A small badge at the top of the form shows which provider and model will be used:
Google · gemini-2.5-flashTo change them, go to Settings. The selection is per-provider (see Models).
Output actions
Above the AI output, five action buttons:
Copy
Copies the raw Markdown to your clipboard. A toast confirms the copy.
Download
Downloads the output as a .md file named <template-id>-<timestamp>.md.
Save to History
Pushes the output into the generations array in the store. It'll appear on the Dashboard's "Recent generations" list and the History page.
Save as Document
Creates a new document in the Editor with this content and the template name as the title. Great when you want to refine and polish the output.
Regenerate
Re-runs the same prompt. Useful when the first output isn't quite right. The previous output is replaced — if you want to keep it, save it first.
Errors
If something goes wrong, you'll see a toast with a friendly message:
| Toast | What it means |
|---|---|
| "No API key configured..." | The active provider has no key. Go to Settings. |
| "Rate limit exceeded..." | The provider is throttling you. Wait or switch provider. |
| "Invalid API key..." | The key is wrong, revoked, or for another provider. |
| "Model not available..." | The model is not enabled on your account. |
| "Something went wrong." | Catch-all. Check the browser console for details. |
For more, see Troubleshooting.
Tips for better output
- Fill more fields, not fewer. Audience and tone dramatically shape quality.
- Regenerate 2–3 times. Pick the best one; don't expect the first try to be perfect.
- For long-form, use a "Pro" model. Claude Sonnet or GPT-4o.
- For short-form, use a fast model. Llama 3.1 8B Instant or GPT-4o-mini.
- Save to Documents, then refine. Use the Editor's AI actions to polish output without regenerating from scratch.
Next: Editor →