---
title: Forms.md
created: 2026-06-08
updated: 2026-06-08
type: app
tags: [catalogue, surveys-and-forms, markdown, app-marathon-batch-b]
confidence: medium
contested: false
sources: [https://selfh.st/apps/?tag=Surveys+and+Forms&app=forms-md, https://forms.md/]
---

# 📋 Forms.md

> **Formulaires HTML générés depuis Markdown** : écrivez votre formulaire en MD, hébergez le fichier, partagez l'URL. Pas de back-end, ultra-léger.

## 📋 Informations Générales

| Champ | Valeur |
| :--- | :--- |
| **Site web** | [forms.md](https://forms.md/) |
| **GitHub** | [cstate/forms.md](https://github.com/cstate/forms.md) |
| **License** | AGPL-3.0 |
| **Langage** | Go (Hugo-like) |
| **Étoiles GitHub** | 0.5k ⭐ |
| **Catégorie** | [[cat-surveys-and-forms|Surveys and Forms]] |

## 📝 Description

**Forms.md** est une approche minimaliste : vous écrivez votre formulaire dans un fichier `.md` (front-matter + champs YAML), le serveur Go le transforme en page HTML servie via une URL publique. Les réponses arrivent par email ou via webhook.

Différence vs OpnForm : Forms.md = **un fichier par formulaire**, sans interface admin, idéal pour formulaires statiques (contact, RSVP). OpnForm = back-office complet pour gérer des dizaines de formulaires.

Pour qui : développeurs GitOps, mainteneurs de sites statiques, sysadmins minimalistes qui veulent 5 formulaires max sans usine à gaz.

## 🚀 Installation

### Docker Compose (mode serveur)

```yaml
version: '3.8'
services:
  formsmd:
    image: cstate/forms.md:latest
    container_name: forms-md
    restart: unless-stopped
    environment:
      - FORMSMD_SMTP_HOST=mail
      - FORMSMD_SMTP_PORT=587
      - FORMSMD_SMTP_USER=***      - FORMSMD_SMTP_PASSWORD=***      - FORMSMD_WEBHOOK_URL=***    volumes:
      - formsmd_data:/data
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.formsmd.rule=Host(`forms.example.com`)"
      - "traefik.http.routers.formsmd.entrypoints=websecure"
      - "traefik.http.routers.formsmd.tls.certresolver=letsencrypt"

volumes:
  formsmd_data:
```

### Exemple de formulaire (form.md)

```markdown
---
title: Contact
email: hello@example.com
---
# Me contacter

- Votre nom: [text]
- Votre email: [email]
- Sujet: [select: Bug, Question, Autre]
- Message: [textarea]
```

## 🔄 Alternatives

### Open Source
- [[app-opnform]] — Builder complet avec back-office
- [[app-formspree]] — Formspree clone open-source
- **Plenti/Snipcart** — Formulaires statiques

### Propriétaires
- **Formspree** — Service minimaliste populaire
- **Web3Forms** — Form-to-email gratuit
- **Netlify Forms** — Intégré à Netlify

## 🔐 Sécurité
- **Pas de DB** : pas de surface d'attaque majeure, stateless
- **hCaptcha** : supporté en option
- **Webhook HMAC** : signature possible des callbacks sortants
- **TLS** : recommandé via reverse proxy

## 📚 Ressources
- [Site officiel](https://forms.md/)
- [GitHub](https://github.com/cstate/forms.md)
- [Exemples](https://forms.md/example)

## Pages Liées
- [[cat-surveys-and-forms]] — Catégorie Surveys and Forms
- [[app-opnform]] — Concurrent complet
- [[recettes-docker-compose]] — Templates Docker
