Gemaakt in Nederland

Open-source platform voor formulieren en dataverzameling, met privacy voorop

Bouw formulieren in de bouwer of via de API, verzamel en beheer de antwoorden, en handel verzoeken van invullers af om hun antwoorden in te zien of te verwijderen. Gebruik het gehost in de EU, of draai het op je eigen servers.

Elk formulier vertelt wie het vraagt, waarom, hoe lang de antwoorden bewaard worden en of AI ze leest, en doorstaat een eerlijkheidscheck voordat het online gaat.

Gratis beginnen: je meldt je aan met je e-mailadres.

Open source onder de Apache 2.0-licentie, met de broncode op GitHub.

  • Duidelijk
  • Privé
  • Toegankelijk
  • Eerlijk
Gevraagd door Stichting VoorbeeldFictiefPagina 1 van 3
Aanmelden voor de cursus

Volledige naam (verplicht)

Waarom we dit vragen: Voor de naam op je cursuscertificaat.

Geboortedatum Optioneel

Waarom we dit vragen: Alleen om de minimumleeftijd van 16 jaar te controleren.

Hoe heb je over de cursus gehoord? Optioneel

  • Via iemand die ik ken
  • Op de website
  • In de nieuwsbrief
Volgende
  • Doel: aanmelding voor de cursus
  • Na 12 maanden verwijderd
  • Geen AI leest je antwoorden
  • Ingelogd: je antwoorden inzien of om verwijdering vragen

Voordat dit formulier online kan

7 van 7 checks geslaagd

Een voorbeeldformulier van een verzonnen organisatie, met de checks die de bouwer deed voordat het gepubliceerd kon worden. Kies een check om te zien waar die naar kijkt.

De publicatiecheck

De bouwer publiceert geen formulier dat invullers zou misleiden of laten vastlopen.

Elk nieuw formulier gaat door zeven checks, elke keer dat je op Publiceren drukt. Klopt er een niet, dan zegt de bouwer wat er niet goed is, waarom het ertoe doet en hoe je het oplost.

CheckWat de invuller merktWat de bouwer je vertelt
Elke vraag zegt wat ze vraagt

Geen lege vraag om naar te raden.

Noemt de vraag zonder titel en vraagt je die te schrijven.

Ieder kiest zelf

Niets is al aangevinkt als ze beginnen.

Noemt de vraag met een vooraf gekozen antwoord en vraagt je dat te wissen.

Niemand loopt vast

Elke verplichte vraag is echt te beantwoorden.

Noemt de verplichte vraag die niet te beantwoorden is: zet Verplicht uit of maak de vraag af.

Persoonlijke vragen zeggen waarom

Een korte reden onder elke vraag naar hun e-mailadres, telefoonnummer of een identiteitsnummer.

Noemt de vraag naar een e-mailadres zonder uitleg en vraagt je een korte regel „Waarom we dit vragen” toe te voegen.

Elk pad heeft een einde

Geen sprong die nergens heen gaat.

Noemt de sprong naar een einde dat niet meer bestaat en vraagt je een ander einde te kiezen.

Invullers zien wie het vraagt

De naam van de organisatie, als ontvanger van hun antwoorden.

Zegt dat je werkruimte nog geen naam heeft en vraagt je die in de instellingen te geven.

Kleuren zijn goed leesbaar

Tekst, knoppen en invoervelden die afsteken tegen de achtergrond (WCAG AA-contrast).

Noemt welke kleuren van het thema slecht leesbaar zijn en stelt kleuren voor die wel goed leesbaar zijn.

Gebouwd volgens Nederlandse en Europese normen

Duidelijk, privé, toegankelijk en eerlijk. Afgedwongen in het product, niet beloofd in een beleid.

Elk formulier heeft een privacypaneel dat invullers in gewone woorden vertelt wat er met hun antwoorden gebeurt. Wat erin staat, is wat het product doet.

Je privacy

Stichting Voorbeeld stelt deze vragen.

Waarom
Om je aan te melden voor de cursus.
Hoe lang
Je antwoorden worden na 12 maanden verwijderd.
AI
Geen AI leest je antwoorden.
Waar
Opgeslagen in de EU.
Je rechten
Als je inlogt om te antwoorden, kun je je antwoorden inzien en vragen om verwijdering.
Het privacypaneel van het voorbeeldformulier, zoals de invuller het ziet.
  • Duidelijk

    Gewone taal op B1-niveau, met een taalcheck in de bouwer.

    Alles rondom de vragen in het Nederlands en het Engels: knoppen, meldingen en het privacypaneel.

    In de bouwer: tips voor gewone taal (B1) onder elke vraag terwijl je die schrijft.

  • Privé

    Gehost in de EU. Antwoorden worden versleuteld opgeslagen, en een formulier met een bewaartermijn verwijdert ze als die afloopt.

    AI leest antwoorden alleen als de werkruimte het heeft aangezet en AI-inzichten voor het formulier aanstaan, en het formulier vertelt invullers dan welke AI-provider ze leest.

    In de publicatiecheck: persoonlijke vragen zeggen waarom.

  • Toegankelijk

    Gebouwd volgens WCAG 2.1 AA: toetsenbord, schermlezers, contrast en zichtbare focus.

    Formulieren die op een telefoon net zo goed werken als op een computer.

    Elk formulier heeft een zichtbare focusrand, en een formulier met slecht leesbare themakleuren kan niet online.

  • Eerlijk

    Optionele vragen zijn gemarkeerd, toestemmingsvakjes staan uit en er zijn geen afteltimers.

    Eerlijke standaardinstellingen worden gecontroleerd voordat een formulier online kan.

    In de publicatiecheck: niets vooraf gekozen, niemand loopt vast, geen doodlopende paden.

Voor organisaties

Alles wat een team nodig heeft, zonder dat je privacy officer een uitzondering hoeft te maken.

Van het eerste concept tot het laatste verwijderverzoek, in één werkruimte waar je IT-afdeling achter kan staan.

Voor wie formulieren maakt

  • AI-formulierassistent

    Beschrijf het formulier dat je nodig hebt en controleer het concept. Optioneel: de assistent staat uit tot een beheerder van de werkruimte hem aanzet; tot dan weigert de server elk AI-verzoek. Op een eigen server moet ook een AI-provider ingesteld zijn.

  • PDF-import

    Maak van een invulbare of platte pdf een toegankelijk webformulier, klaar om te checken en te publiceren. Gescande pdf’s worden alleen gelezen als AI aanstaat, met een provider die afbeeldingen kan lezen.

  • Elke inzending op een eigen pagina

    Open een inzending op een pagina die eruitziet als het formulier, zoek op e-mailadres, en exporteer naar CSV met de ID van de inzending, het tijdstip van insturen en de verborgen velden, met spreadsheetformules onschadelijk gemaakt.

Voor IT

  • Single sign-on

    Inloggen via Microsoft Entra ID, Keycloak of elke SAML- of OIDC-provider, en leden bijhouden met SCIM. Single sign-on wordt per installatie aangezet. Wil je het op bettercollected.com? Vraag het ons.

  • Je eigen domein

    Publiceer formulieren op het domein van je organisatie, zodat invullers zien wie het vraagt.

Voor de privacy officer

  • Rollen die passen

    Eigenaar, Beheerder, Bewerker, Beoordelaar, Kijker en Privacyfunctionaris. Een werkruimte kan meerdere eigenaren hebben.

  • Verwijderverzoeken

    Invullers die hebben ingelogd om te antwoorden, kunnen vragen hun antwoorden te verwijderen. Je ziet elk verzoek en handelt het af.

  • Antwoorden uit het zicht

    De privacyfunctionaris handelt verwijderverzoeken af zonder antwoorden te zien. Browsers bewaren de antwoorden die ze tonen niet, en ontvangstnummers en gezochte e-mailadressen komen niet in de logbestanden van de applicatie.

Voor ontwikkelaars

Werk met je formulieren vanuit je eigen systemen.

Een REST API, SDK’s, een opdrachtregeltool en een MCP-server, allemaal via werkruimtesleutels met een beperkt bereik. Of draai het hele platform zelf.

REST API, SDK’s en CLI

  • Formulieren als code

    Maak, controleer en publiceer formulieren en lees antwoorden via de REST API, met getypte clients voor TypeScript en Python en een opdrachtregeltool die een formulier naar een bestand haalt, laat zien wat er verandert en het terugzet.

MCP-server

  • Voor AI-assistenten die je vertrouwt

    Laat een AI-assistent via MCP aan je formulieren werken. Hij gebruikt dezelfde sleutels, met een beperkt bereik. Elke actie wordt aan de sleutel toegeschreven en gelogd.

Zelf hosten

  • Draai het zelf

    Installeer het met Docker op je eigen servers, met PostgreSQL als enige database. De broncode is openbaar onder Apache 2.0, en een beheerportaal toont de status van elke dienst.

Vragen

Veelgestelde vragen

Is bettercollected open source?
Ja. De broncode staat openbaar op GitHub onder de Apache 2.0-licentie, en je kunt bettercollected op je eigen servers draaien.
Waar worden formulieren en antwoorden opgeslagen?
Op bettercollected.com in de EU: de applicatieservers, de databases en de bestandsopslag. Antwoorden worden versleuteld opgeslagen en, als het formulier een bewaartermijn heeft, verwijderd als die afloopt. Staan AI-inzichten aan voor een formulier, dan gaan de antwoorden ook naar de AI-provider die het formulier noemt. Host je het zelf, dan blijven de antwoorden op je eigen servers, en gaan ze alleen naar een AI-provider als je die instelt en AI-inzichten aanzet.
Leest AI de antwoorden?
Alleen als je het aanzet. AI staat in elke werkruimte uit tot een beheerder het aanzet, en tot dan weigert de server AI-verzoeken. AI-inzichten in de antwoorden van een formulier moeten ook voor dat formulier aangezet worden, en het formulier vertelt invullers dan welke AI-provider hun antwoorden leest.
Wat kunnen invullers doen?
Ze zien wie het vraagt, waarom en hoe lang hun antwoorden bewaard worden. Wie heeft ingelogd om te antwoorden, kan later op een eigen pagina in je werkruimte inzien wat hij heeft gestuurd en vragen om verwijdering; een formulier kan hun ook een ontvangstnummer geven. Je ziet elk verwijderverzoek en handelt het af.
Is er een API?
Ja: een REST API met SDK’s voor TypeScript en Python, een opdrachtregeltool en een MCP-server, allemaal met werkruimtesleutels met een beperkt bereik. Zie de documentatie voor ontwikkelaars.
Kan ik bestaande formulieren importeren?
Je kunt invulbare en platte pdf-formulieren importeren, en gescande als AI aanstaat met een provider die afbeeldingen kan lezen. De import uit Google Forms leest alleen (hij wijzigt niets in Google Forms) en wordt uitgefaseerd; versie 5.0 haalt hem weg. De import uit Typeform is in versie 4.1 verwijderd. Zie koppelingen (Engels).

Beginnen

Je volgende formulier kan het formulier zijn dat mensen vertrouwen.

Maak een gratis account, bouw een formulier en zie het de check doorstaan. Alles rondom de vragen is er in het Nederlands en het Engels.