NOMVEX APPS / TEMPLATES Mini-app templates Pick a template, try the form with test entries, export them as CSV and copy the config to share it. Need something else? Describe a custom app.
Templates Appointment booking Table booking Quote request Click and collect order Association registration Tryout sign-up Volunteer roster Equipment loan tracker Match-day checklist
For a salon, a practice, a tradesperson or any service: service, date, time and contact. · 8 fields
Form preview · Appointment booking * required. Test entries stay in this browser, nothing is sent. Use made-up data.
Test entries · 0 No entries for this template yet.
Export CSV Clear all
Try it on my phone Scan the code or send the link: the template opens with no account. The config sits at the end of the link (after #), which the browser never sends to the server.
Share this template The config describes the fields and rules, with no entries. Another club can paste it below to reuse the template.
Copy the config Download (.json)
Show the config {
"kind": "nomvex.app-template",
"version": 1,
"template": {
"id": "appointment",
"version": 1,
"name": {
"fr": "Prise de rendez-vous",
"en": "Appointment booking"
},
"description": {
"fr": "Pour un salon, un cabinet, un artisan ou tout service : prestation, date, heure et contact.",
"en": "For a salon, a practice, a tradesperson or any service: service, date, time and contact."
},
"fields": [
{
"key": "customer",
"type": "text",
"label": {
"fr": "Nom du client",
"en": "Customer name"
},
"required": true,
"minLength": 2,
"maxLength": 80
},
{
"key": "service",
"type": "text",
"label": {
"fr": "Prestation souhaitée",
"en": "Requested service"
},
"required": true,
"minLength": 2,
"maxLength": 80
},
{
"key": "date",
"type": "date",
"label": {
"fr": "Date",
"en": "Date"
},
"required": true
},
{
"key": "time",
"type": "time",
"label": {
"fr": "Heure",
"en": "Time"
},
"required": true
},
{
"key": "contact_email",
"type": "email",
"label": {
"fr": "E-mail",
"en": "Email"
},
"required": true,
"format": "email",
"maxLength": 120
},
{
"key": "contact_phone",
"type": "tel",
"label": {
"fr": "Téléphone",
"en": "Phone"
},
"format": "phone",
"maxLength": 20
},
{
"key": "notes",
"type": "textarea",
"label": {
"fr": "Remarques",
"en": "Notes"
},
"maxLength": 500
},
{
"key": "consent_contact",
"type": "checkbox",
"label": {
"fr": "J’accepte d’être recontacté·e au sujet de ce rendez-vous",
"en": "I agree to be contacted about this appointment"
},
"required": true,
"mustBeTrue": true
}
]
}
} Import a config Import