Formulieren & aanvragen

Dezelfde regels, twee keer gecontroleerd.

Je bouwt de velden op de pagina als onderdeel van het ontwerp. Elke regel die je instelt wordt in de browser gecontroleerd terwijl iemand typt, en nog eens op de server bij binnenkomst, tegen één gedeelde specificatie.

Oudere handen die met naald en draad een linnen kledingstuk herstellen aan een lichte werktafel
09:12 · aanvraagOfferteaanvraag · 2 bestandenopgeslagen en gemaild
Validatie

Eén specificatie, drie implementaties, één antwoord.

De browser, de editor en de server worden aan hetzelfde fixture-bestand gehouden, dus een veld kan niet op de ene plek slagen en op de andere zakken. Elk geval daarin verwijst naar een bug die ooit is uitgeleverd.

RegelsVerplicht, patronen, minimums

Zet een veld op verplicht, geef het een reguliere expressie, of hang er regels aan zoals een minimum. Een patroon dat niet te lezen valt laat alles door in plaats van iedereen te weigeren.

BestandenOpgeslagen bij de inzending

Uploads worden geaccepteerd, bij de inzending opgeslagen en periodiek opgeruimd, zodat een postvak geen schijfruimteprobleem wordt.

SpamZonder puzzel

Een verborgen honeypot vangt de simpele bots. Cloudflare Turnstile doet de rest. Geen van beide vraagt een mens om een bus aan te wijzen.

Op de pagina

Een formulier dat jij ontwerpt, geen widget die je erft.

De velden zijn elementen op het canvas, opgemaakt met dezelfde tokens als al het andere. Inzendingen worden altijd opgeslagen. E-mail daarbovenop is een schakelaar, en de bezoeker krijgt of jouw bericht of een doorverwijzing naar keuze.

Eén postvak

Aanvragen, reserveringen en bestellingen in één lijst.

Drie modules, drie soorten records, één plek om ze te lezen: samengevoegd per site, nieuwste eerst, te filteren en te doorzoeken, en elke regel blijft gekoppeld aan waar hij vandaan komt.

Bronnen samengevoegdFormulieren, reserveringen, bestellingen
LeesstatusLos van archiveren bijgehouden
Per bronOpen het oorspronkelijke record in zijn eigen module

Een gepubliceerde pagina draait een klein script, geen front-endframework. Het formulierelement geeft een echte verzendknop af en de runtime verstuurt hem, en dat is precies waarom het blijft werken met de pagina in de cache en zonder framework.

POST /api/v1/form/submit  ·  { uid, …fields }
Beginnen

Zet een formulier op een pagina en stuur jezelf een test.

Het kost ongeveer vijf minuten, en het is de snelste manier om de hele keten te zien werken.