Generate MarkForms with AI
Copy the prompt below and paste it into ChatGPT, Claude, or any AI assistant. Then ask it to create a MarkForm for your use case — it will output valid MarkForm markdown you can paste directly into the editor.
Preview prompt content
You are an AI assistant that helps users modify forms using the MarkForm markdown syntax.
## Your Response Format
ALWAYS respond with valid JSON in this exact format:
{
"action": "update" | "question" | "error",
"message": "Brief description of what you did or are asking (max 100 chars)",
"markdown": "The complete updated form markdown (only if action is 'update')",
"question": "A simple clarifying question (only if action is 'question')"
}
## When to use each action:
- **"update"**: When you can confidently make the requested change. Include the full updated markdown.
- **"question"**: When the request is ambiguous or you need more info. Ask ONE simple question.
- **"error"**: When the request is impossible or doesn't make sense.
## MarkForm Syntax Reference
### Structure
- `# Title` - Form title
- Description text after title
- `## Section` - Section headers
- Question label on line before `?[type]`
- Append `*` for required questions
### Question Types
- `?[short](placeholder)*` - Short text
- `?[paragraph](placeholder)` - Long text
- `?[email](placeholder)*` - Email with validation
- `?[phone](placeholder)` - Phone number
- `?[number](min-max)` - Number with range
- `?[url](placeholder)` - URL input
- `?[date]` - Date picker
- `?[time]` - Time picker
- `?[radio]{Option1|Option2|Option3}*` - Single choice
- `?[checkbox]{Option1|Option2|Option3}` - Multiple choice
- `?[dropdown]{Option1|Option2|Option3}*` - Dropdown
- `?[scale](1-5){Low label|High label}*` - Linear scale
- `?[slider](0-100){Low|High}` - Slider
- `?[rating](5){Label}` - Star rating
- `?[rank]{Item1|Item2|Item3}*` - Ranking/ordering
- `?[grid-radio](Rows: R1|R2)(Cols: C1|C2|C3)*` - Radio grid
- `?[grid-checkbox](Rows: R1|R2)(Cols: C1|C2|C3)` - Checkbox grid
- `?[file]{pdf|docx}(10MB)*` - File upload
- `?[signature]*` - Signature capture
- `?[location]` - Location picker
### Media Blocks
```
:::media

:::
:::media{grid: 2}


:::
```
## Guidelines
1. Keep messages SHORT - just describe what you did in a few words
2. When in doubt, ASK - don't guess what the user wants
3. Preserve existing form structure unless asked to change it
4. Make minimal changes - don't add extra questions or sections
5. If adding a question, put it in a logical place (end of relevant section)
## Examples
User: "add an email field"
Response: {"action":"update","message":"Added email field at the end","markdown":"...full markdown..."}
User: "add a rating"
Response: {"action":"question","message":"Need more details","question":"What should the rating be for? (e.g., 'overall experience', 'product quality')"}
User: "make it better"
Response: {"action":"question","message":"Can you be more specific?","question":"What would you like me to improve? (e.g., add questions, reorganize sections, change question types)"}
User: "delete everything"
Response: {"action":"error","message":"Can't delete the entire form","question":null}Basic structure
Every MarkForm starts with a title using #, followed by an optional description. Questions have a label on one line and a definition on the next line starting with ?[type]. Use ## for section headers. Append * to make any question required.
# Form Title Description text goes here. ## Section Header Question label ?[type](params){options}*
All 20 question types
Short answer
Single-line text input. Optional placeholder in parentheses.
?[short](placeholder)*Paragraph
Multi-line text area for longer responses.
?[paragraph](placeholder)Multiple choice
Radio buttons — respondent picks one option.
?[radio]{Opt A|Opt B|Opt C}*Checkboxes
Checkboxes — respondent can select multiple options.
?[checkbox]{Opt A|Opt B|Opt C}Dropdown
Dropdown select menu — respondent picks one.
?[dropdown]{Opt A|Opt B|Opt C}*Linear scale
Numeric scale with min/max values and optional endpoint labels.
?[scale](1-5){Low|High}*Radio grid
Table of radio buttons. One selection per row.
?[grid-radio](Rows: A|B)(Cols: X|Y|Z)*Checkbox grid
Table of checkboxes. Multiple selections per row.
?[grid-checkbox](Rows: A|B)(Cols: X|Y)Date
Date picker input.
?[date]*Time
Time picker input.
?[time]File upload
File upload with optional type restrictions and size limit.
?[file]{pdf|docx}(10MB)Ranking
Drag-to-reorder ranking of options.
?[rank]{First|Second|Third}*Location
Searchable country dropdown picker.
?[location]*Email input with built-in validation. Optional regex pattern in braces with a hint message after |.
?[email](you@example.com){pattern|hint}*Phone
Phone number input. Optional regex pattern in braces with a hint message after |.
?[phone](+1 555-0000){pattern|hint}*Number
Numeric input with optional min/max range.
?[number](0-100)*URL
URL/website input with validation.
?[url](https://example.com)Rating
Star rating selector with optional max value and label.
?[rating](5){How satisfied?}*Slider
Range slider with optional min/max and endpoint labels.
?[slider](0-100){Low|High}Signature
Signature capture field for drawn signatures.
?[signature]*Full example
A complete feedback survey using multiple question types.
# Customer Feedback Survey We'd love to hear about your experience. ## About You What is your name? ?[short](Enter your full name)* What is your email? ?[short](you@example.com)* ## Your Experience How would you rate our service? ?[scale](1-5){Very poor|Excellent}* Which features did you use? ?[checkbox]{Dashboard|Reports|API|Mobile App} What department did you interact with? ?[dropdown]{Sales|Support|Engineering|Billing}* How would you rank these aspects by importance? ?[rank]{Speed|Quality|Price|Support}* Rate each area ?[grid-radio](Rows: Speed|Quality|Support)(Cols: Poor|Average|Good|Excellent)* ## Additional Feedback Any other comments? ?[paragraph](Share your thoughts here...) When did you visit us? ?[date]
MarkForm Settings & Sharing
Control how your MarkForm accepts responses and who can see the results.
Accept / Close Responses
Toggle the Accepting responses switch in MarkForm settings to open or close your MarkForm. You can also schedule an automatic close date and time — responses will stop being accepted after that moment.
Response Visibility
Choose when respondents can see aggregate results.
| Mode | Behavior |
|---|---|
| Hidden | Results are never shown to respondents |
| After close | Results visible only after the MarkForm stops accepting responses |
| Live | Respondents see a live results sidebar after submitting |
Public Share Link
Each MarkForm has a public URL in the format /f/[shareId]. Share this link with respondents. The share ID is automatically generated when you create the MarkForm.
Collaboration
Invite team members to work on MarkForms together in real time.
Inviting Collaborators
Open the MarkForm settings and enter a collaborator's email address. They will receive an invitation link. Invitations expire after 7 days if not accepted.
Real-Time Editing
When multiple editors open the same form, all changes sync instantly via conflict-free CRDTs (Yjs). No save conflicts, no overwriting.
Card Locking
In the Form Editor panel, selecting a question card locks it for other users. This prevents two people from editing the same question at once.
Follow Mode
Double-click a collaborator's avatar in the presence bar to enter follow mode. The editor will continuously scroll to keep their cursor in view.
| Action | Result |
|---|---|
| Click avatar | Jump to their cursor position (one-time) |
| Double-click avatar | Follow their cursor continuously (avatar gets a ring) |
| Click while following | Stop following |
| Type or click editor | Automatically stops following |
Roles
| Permission | Editor | Viewer |
|---|---|---|
| Edit form content | Yes | No |
| See live cursors & presence | Yes | Yes |
| View form & settings | Yes | Yes |
| View responses | Yes | If enabled |
| Manage collaborators | No | No |
Shared with Me
Forms shared with you appear under the Shared with me tab in your dashboard. The form owner controls whether viewers can access responses via the response access toggle.
GitHub Version Control
Back up your forms to a GitHub repository and keep them in sync.
Setup
- 1.Go to Settings > GitHub
- 2.Click Connect GitHub and authorize the app
- 3.Select an existing repository or create a new one
Push & Pull
Use Push to upload your local form changes to GitHub, and Pull to download changes made externally. Forms are stored as markdown files using the naming convention:
forms/{slug}-{idSuffix}.mdSync Status
| Status | Indicator | Meaning |
|---|---|---|
| Synced | Local and remote are identical | |
| Local changes | You have unpushed local edits | |
| Conflict | Both local and remote have diverged | |
| Error | Sync failed — check your connection or permissions |
Conflict Resolution
When a conflict is detected, you can choose to keep local (overwrite remote) or keep remote (overwrite local). A side-by-side diff view helps you compare changes before deciding.
Auto-Sync & History
Enable auto-sync to push changes to GitHub automatically every hour. The commit history view shows all previous versions with diffs — you can restore any prior version with one click.
AI-Powered Editing
Use a built-in AI assistant to modify your form directly in the editor — distinct from the external prompt copy feature above.
Supported Providers
| Provider | Model |
|---|---|
| OpenAI | GPT-4o |
| Anthropic | Claude |
| Gemini |
Setup
Go to Settings > AI and enter your API key for one or more providers. Your keys are stored securely and never shared.
Usage
In the form editor, type a natural language instruction (e.g. "add a required email field to the About You section") and the AI will modify your MarkForm markdown directly. Review the changes in the diff view before accepting.
Response Analytics
View and analyze form responses with built-in charts and tables.
Summary View
The summary tab shows a chart for each question. The available chart types depend on the question type:
| Question type | Chart modes |
|---|---|
| Radio / Dropdown | Bar, Pie, Donut |
| Checkbox | Bar, Pie, Donut |
| Scale | Bar, Line |
| Ranking | Bar, Funnel |
| Location | World map, Scatter map, Bar, Pie |
| Radio grid | Heatmap, Stacked bar, Table |
| Checkbox grid | Heatmap, Stacked bar, Table |
| Short / Paragraph | Text list |
| Date / Time | Text list |
| File upload | Upload count |
| Email / Phone / URL | Text list |
| Number | Text list |
| Rating | Bar, Line |
| Slider | Bar, Line |
| Signature | Signature image |
Table View
Switch to the Table tab to see all responses in a spreadsheet-like grid. Each row is a response and each column is a question.
Chart Mode Switching
Click the chart mode button on any summary card to cycle through available chart types. Your chart preference is saved per-question and persists across sessions.
Tips
- 1.Use the Markdown editor for speed, or switch to Visual mode for drag-and-drop editing. Both stay in sync.
- 2.Separate options with
|inside curly braces:{A|B|C} - 3.The live preview updates as you type — use it to verify your syntax.
- 4.Copy the AI prompt above into any AI chatbot and ask it to generate a form for your use case.
- 5.After saving, share the public link with respondents. Enable show results to responders if you want them to see aggregate results after submitting.
Ready to create a form?
Use the editor or paste AI-generated markdown.
Open Editor