Forms
Micropage includes built-in form handling. No custom backend or third-party service is required.
Markup
Add a form to any page section:
form: Contact
input: Name*
input: Email*
textarea: Message
submit: Send
Fields ending in * are required. The form name (e.g. Contact) is used to identify submissions.
Supported field types
| Element | Aliases | Description |
|---|---|---|
input: | textfield: | Single-line text field |
textarea: | text: | Multi-line text field |
select: | – | Dropdown |
checkboxes: | multichoice:, multi-choice: | Multiple choice (all aliases fully supported) |
radios: | choice:, singlechoice:, single-choice: | Single choice (all aliases fully supported) |
submit: | save: | Submit button |
All aliases above are supported and not deprecated. Use the canonical names in new markup for consistency.
Spam protection
Forms include:
- a hidden honeypot field
- server-side schema validation (only fields defined in markup are accepted)
Using the Web App
Add a form block in the Edit tab and publish. Submissions appear in the Form Submissions tab automatically.
Using the CLI
View submissions:
micropage submissions list
Show a single submission:
micropage submissions show <id>
Notifications
Micropage can notify you when a submission is received.
| Plan | Notification type |
|---|---|
| Pro | Daily email digest of submission counts |
| Pro+ | Instant email per submission + daily digest |
| Pro+ | Webhook — POST to a URL you configure |
Webhook notifications (Pro+)
Configure a webhook URL in Settings → Forms. When a submission is received, Micropage sends a POST request to that URL with the submission data as JSON.
Payload:
{
"id": "uuid",
"project_id": 123,
"form_name": "Contact",
"page_url": "/",
"form_index": 0,
"payload": { "name": "Jane", "email": "[email protected]" },
"submitted_at": "2026-04-02T12:00:00Z"
}
The request includes an X-Micropage-Submission-Id header containing the submission UUID, which you can use to verify the request or deduplicate retries.
Limits
Free accounts have a submission limit per project. Paid plans have higher limits.