# forms, written in markdown

Write forms,
don't click them

Type a question, get a question. Versioned in Git, analyzed as answers arrive, editable by your AI agent.

Free forever plan · 30 forms · no credit card

markform.md

# Team Retrospective

How did the sprint go?

?[scale](1-5){Rough|Great}*

What went well?

?[paragraph](Wins...)

Live form

what respondents see

12345

Your AI agent

claude · over MCP

“add an optional comment box at the end”

GitHub

push · pull · diff

v4 ← v3 ← v2 ← v1

Statistics

t(148) = 3.42, p < .01

# versioned in git

Version-control your MarkForms like code

Every edit syncs to GitHub. Browse commit history, compare versions side-by-side, and restore any previous state with one click.

markform.ch/history
Git History

Add rating scale

a3f8c21

Initial version

b2e1d09

Fix typo

9c4a2f1

Add rating scale

a3f8c21 · sarah · 2h ago

Commit version
3# Feedback Survey
4Tell us what you think.
5Any other comments?
6?[paragraph](...)
Current version
3# Feedback Survey
4Tell us what you think.
5How would you rate us?
6?[scale](1-10)*
7?[paragraph](...)
RemovedAdded
acme-corp / markforms

Add rating scale

souhailaS committed a3f8c21

feedback-survey.md
+2-1
+How would you rate us?
+?[scale](1-10)*
-Any other comments?
2 hours ago on main

Push & Pull

Two-way sync keeps your GitHub repo and MarkForm in lockstep.

Visual diff viewer

Side-by-side comparison shows exactly what changed.

One-click restore

Roll back to any previous version instantly.

# one syntax, every form

One syntax, endless MarkForm types

From quick polls to complex multi-section surveys — a few lines of markdown is all it takes.

# Launch Party RSVP Join us on March 15th. ?[radio]{Yes|Maybe|No}* ?[checkbox]{Vegetarian|Vegan} ?[short](+1 name) ?[paragraph](Anything else?)

Launch Party RSVP

Anything else?
# NPS Survey One quick question. How likely to recommend us? ?[scale](0-10){Not at all|Absolutely}* ?[paragraph](Why?) ?[dropdown]{Engineer|Designer|PM|Other}

NPS Survey

012345678910
Not at allAbsolutely
Engineer
# Bug Report Help us squash this bug. Severity ?[dropdown]{Critical|High|Medium|Low}* Steps to reproduce ?[paragraph]* Screenshot ?[file]{png|jpg|webp}

Bug Report

Severity *

Critical

Steps to reproduce *

# reports, exported

Export beautiful PDF reports

One click to download a polished report with charts, maps, and narrative text — perfect for stakeholders. Add :::report blocks to include commentary that appears only in the PDF, not on the live form.

MarkForm source
# Office Location Survey Help us pick the next office. :::report This map shows where employees would prefer the new office. ::: Preferred location ?[location]* Why this area? ?[paragraph]
Exported PDF report

Office Location Survey

Generated report · 42 responses

This map shows where employees would prefer the new office.

Preferred location

larger = more responses
Amsterdam
15 responses
Berlin
12 responses
London
9 responses

Report-only blocks

Add narrative text with :::report that appears only in the exported PDF.

Charts & maps

Every question type renders as a chart — bar charts, scale plots, heatmaps, and map pins.

One-click export

Download a polished PDF from the responses page, ready to share with stakeholders.

# analyzed like a researcher

Analyze responses like a researcher

Run statistical tests directly on your form responses. Get publication-ready results with LaTeX export, APA formatting, and interactive visualizations.

markform.ch/responses/analysis
Variables

Select variables for analysis

Numeric (3)Categorical (2)Ordinal (1)
Numeric
Satisfactionn=156
Experiencen=156
Tenuren=152
Categorical
Departmentn=156
2 variables selected
Analysis Workspace

2 analyses

Independent t-Test(Satisfaction, Department)
t(154) = 2.847, p = .005, d = 0.46
t
2.847
df
154
p
.005
d
0.46
Descriptive Statistics(Satisfaction)
M = 4.23, SD = 0.89, n = 156
n
156
Mean
4.23
Median
4.00
SD
0.89

Distribution

14.05
Min
1
Q1
3.5
Q3
4.5
Max
5

Export Results

2 analyses ready

LLaTeX
MMarkdown
{}JSON
Full Tables
APA Summary
t-Test
Descriptive
Preview

Table 1

Independent t-Test Results

GroupMSDtp
Engineering4.520.76
Sales3.890.942.85.005

Note. Cohen's d = 0.46, 95% CI [0.14, 0.78].

booktabs format

Full test suite

t-tests, ANOVA, chi-squared, correlation, and more.

Effect sizes

Cohen’s d, eta-squared, Cramer’s V included.

LaTeX & Markdown

Export with booktabs formatting and APA style.

Assumption checks

Shapiro-Wilk, Levene’s test, and Q-Q plots.

# written together

Build MarkForms together, in real time

See your teammates' cursors as they type, lock cards so edits don't collide, and follow anyone's cursor with a double-click.

team-retro.md
Me
1AL# Team Retrospective
2Quick pulse check after Sprint 14.
3 
4How did the sprint go?
5?[scale](1-5){Rough|Great}*
6 
7What went well?
Form Editor
AL
Team Retrospective
Quick pulse check after Sprint 14.
How did the sprint go?
Linear Scale · 1 — 5
BK
What went well?
Paragraph · Wins, highlights...
Priority for next sprint?
Dropdown · Speed / Quality / Scope
Click avatar to follow
3 online

Live cursors

See every collaborator’s cursor with their initials floating above it.

Card locking

Editing a question card locks it for others with a colored border badge.

Follow mode

Double-click an avatar to follow their cursor. Click again to stop.

Presence bar

Colored avatars show who’s online. Click to jump to their position.

Conflict-free

Powered by Yjs CRDTs — simultaneous edits without conflicts.

Instant sync

Changes propagate in real time across all connected editors.

# edited by agents

Edit a form by asking your own agent

MarkForm speaks MCP, so Claude or any other MCP client can read your forms, rewrite them and manage their versions. You stay in the editor you already use.

Included on every plan, the free one too.

claude
$ claude mcp add --transport http markform \
    https://markform.ch/api/mcp \
    --header "Authorization: Bearer mf_…"
Added MCP server markform

> add an optional comment box at the end of the retro form

● list_forms
    2 forms
● get_form Team Retrospective
● update_form
    + Anything else?
    + ?[paragraph](Optional)

Added an optional comment box at the end.
The form is still closed, so nobody sees it yet.

Create a token under Settings, Integrations, Agent access. It is shown once.

  • Works with any MCP client.
  • Tokens are scoped and revocable.
  • Versions included.
  • Never publishes without you.

# pricing

Plans for every workflow

Start free. Upgrade when you need permanent share links, more storage, or advanced features.

Free

$0forever

Get started with forms. Share links expire after 3 days.

  • Up to 30 forms
  • 200 MB media storage
  • Basic question types
  • Agent access over MCP

Basic

$39.99/year
Save 16% vs monthly

For individuals who need permanent share links.

7-day free trial included
Cancel anytime

  • Up to 100 forms
  • 2 GB media storage
  • All 20 question types
  • GitHub integration
  • Analytics & statistics
Most Popular

Premium

$79.99/year
Save 17% vs monthly

For individuals who want full access to every feature.

7-day free trial included
Cancel anytime

  • Unlimited forms
  • 20 GB media storage
  • All 20 question types
  • GitHub integration
  • Analytics & statistics
  • Chart export utility
  • Share & collaborate with others

# ready when you are

Ready to ditch the drag-and-drop?

Join developers, designers, and teams who build MarkForms faster by writing them. 100% free, no limits, no credit card.

Get started now