/ Platformoverzicht

Epistola rendert PDF's. Uw producten doen de rest.

Templates, databindings en een renderingengine die Common Ground-standaarden respecteert — alles open source.

/ Alles wat u nodig heeft om PDF's te renderen

Epistola doet templates en rendering — niets anders.

Houd workflows in de producten die uw zaken orkestreren terwijl Epistola focust op perfecte output.

Templates

Template-levenscyclus

Varianten, onveranderlijke versies en concept/publiceren/gearchiveerd-statussen per tenant met audittrails en schemamigraties.

Meer informatie

Ontwerpen

Visuele editor

Drag-and-drop blokken met conditionele logica, loops, live PDF-preview en inline expressiechips.

Meer informatie

Logica

Expressie-engine

Gebruik flexibele expressies om totalen te berekenen, waarden te formatteren en conditionele logica toe te passen. Definieer invoervariabelen per template.

Meer informatie

Rendering

Directe PDF-renderer

Render PDF/A- en PDF/X-outputs direct — geen HTML-conversiestap. Verwerkt 10.000+ documenten per minuut op eenvoudige hardware.

Meer informatie

Operaties

Multi-tenant governance

Rolgebaseerde toegang, omgevingspromoties (staging/productie) en standaardthema's per tenant houden teams geïsoleerd.

Meer informatie

Levering

API + jobs

OpenAPI 3.1 REST-eindpunten voor enkele of batchrenders met adaptieve jobgrootte, webhooks en opslagadapters.

Meer informatie

/ Templatesysteem

Hoe Epistola-templates georganiseerd blijven

Varianten, onveranderlijke versies, JSON Schema's en omgevingsactivaties leven allemaal in de suite zodat integraties eenvoudig blijven.

Schema

JSON Schema Draft 2020-12

caseNumber
string required
decisionDate
string(date-time) ISO 8601
citizen.name
string minLength 2
citizen.address
object street, postalCode

Voorbeelden

  • citizen-approved.json default happy path
  • citizen-rejected.json conditional clauses
  • business-appeal.json variant attributes

Template

Openbare Besluitbrief

Templateslugs zijn tenant-scoped. Varianten erven schema + thema maar houden hun eigen onveranderlijke versiegeschiedenis.

nl-standard

nlcitizen
v7 draft onveranderlijk
v6 published onveranderlijk

en-business

enbusiness
v4 published onveranderlijk

Generatieverzoeken kunnen `variantId` overslaan. Geef attributen op zoals `language=nl` of `brand=business` en de resolver scoort elke variant, kiest de beste match en valt terug naar de standaard als niets aan de vereiste criteria voldoet.

Variantresolver

Attribuutintentie → verplicht filter → optionele scoring → terugvalbeveiliging

  1. 1

    Intentie beschrijven

    Aanroepers sturen attributen met verplichte vs optionele vlaggen.

    • language=nl
    • brand=citizen
  2. 2

    Filteren op verplicht

    Elke variant die een verplicht attribuut mist valt direct af.

    • nl-standard ✓
    • en-business ✗
  3. 3

    Optionele matches scoren

    Optionele matches + specificiteit leveren punten op.

    • nl-standard → score 12
    • default → score 0
  4. 4

    Selecteren & terugvallen

    Hoogste score wint; standaardvariant blijft het vangnet.

    • Chosen: nl-standard v7
    • Fallback: default variant

Audittrail

Publiceren vergrendelt de themasnapshot + schemahash zodat elk verzoek jaren later kan worden gereproduceerd.

Omgevingen

Activeer per fase

Staging onveranderlijke pointers
  • nl-standard v7 draft
  • en-business v4
Production onveranderlijke pointers
  • nl-standard v6
  • en-business v3

Promoveer door de actieve versiepointer te wisselen; rollbacks zijn direct omdat oudere versies gearchiveerd blijven.

Thema's

Cascade over tenants → templates → varianten

  • Tenantstandaard: Gemeente sans + amber palet
  • Templateoverschrijving: watermerk + sectiespacing toevoegen
  • Variantaanpassing: en-business wisselt tweetalig koplettertype

Validatie

Schema + voorbeeld replay vóór render

Renderverzoeken falen snel als de payload afwijkt van het JSON Schema. Benoemde voorbeelden worden automatisch afgespeeld in CI om variantversies te beschermen voordat ze productieomgevingen bereiken.

/ Feature-verdieping

De Epistola Suite in de praktijk

Direct uit de referentie-implementatie: hoe templates evolueren, feedback wordt gerouteerd en assets beheerd blijven.

Levenscyclus

Templates, varianten, versies, omgevingen

  • Elke tenant bezit templateslugs met onbeperkte varianten getagd op geografie, merk of doelgroep.
  • Varianten hebben onveranderlijke versienummers met een concept → gepubliceerd → gearchiveerd levenscyclus en auditgeschiedenis.
  • Omgevingen (staging, productie, aangepast) activeren specifieke versies zodat u veilig kunt testen of terugdraaien.
  • De variantresolver inspecteert verzoekattributen (bijv. language=nl) en kiest automatisch de beste match, met terugval naar de standaard als niets past.

Contracten

Dataschema's en uitvoerbare voorbeelden

  • Elk template wordt geleverd met een JSON Schema Draft 2020-12 datacontract dat vóór rendering wordt gevalideerd.
  • Benoemde voorbeeldpayloads staan naast het schema voor directe preview en regressiefixtures.
  • Schemamigraties houden conceptversies gesynchroniseerd wanneer velden wijzigen tussen releases.

Feedback

Ingebouwde reviews met screenshots

  • De zwevende feedbackknop opent een modal die URL, gebruikerscontext en consolelogs vastlegt.
  • Sleep of plak screenshots — assets worden automatisch geüpload en gerenderd in de feedbacktijdlijn.
  • Optionele GitHub-sync spiegelt issues bidirectioneel zodat engineers kunnen triagen waar ze werken.

Thema's

Tenant- en varianttheming

  • Herbruikbare themapakketten definiëren typografie, kleurtokens en pagina-instellingen (A4, Letter, marges).
  • De themacascade respecteert tenantstandaarden, templateoverschrijvingen en dan variantspecifieke aanpassingen voor speciale gevallen.
  • Blokniveau-presets maken het eenvoudig om branded tabellen, headers en nadrukpatronen af te dwingen.

Assets

Tenant-assetbeheer

  • Upload PNG, JPG, SVG of WebP tot 5 MB via drag-and-drop met automatische thumbnailing.
  • Assets leven per tenant met zoek-, verwijder- en directe referenties in de template-editor.
  • Raw eindpunten serveren geoptimaliseerde binaries aan de renderer zodat logo's scherp blijven in elke PDF.

/ DocOps-architectuur

Editor → templateservice → renderer: één documentgeneratielane.

Epistola Suite gaat onbeschaamd over generatie, niet over analytics of AI-inzichten. Auteurs ontwerpen templates, ontwikkelaars automatiseren de render-API en platformteams draaien de Helm-stack — alles gericht op het produceren van conforme PDF's.

Zakelijke auteurs

Sleep blokken, beheer schema-voorbeelden en bekijk PDF's met inline expressie-evaluatie.

  • Blokbibliotheek: tekst, tabellen, kolommen, clausules, kop- en voetteksten
  • Ongedaan maken/opnieuw + autosave-stacks
  • Inline expressietester

Ontwikkelaars

Versiebeheer van templates in Git, Testcontainers-suites draaien en de OpenAPI-render-API aanroepen vanuit orkestratoren.

  • API-commando's voor template- + thema-automatisering
  • Adaptieve batchjobs met jobstatussen en metrics
  • Webhooks + opslagadapters (S3, Azure, DMS)

Platform ops

Deploy Helm-charts met Keycloak/OIDC, monitor renders en promoveer versies tussen omgevingen.

  • Multi-tenant isolatie + RBAC-lidmaatschappen
  • Omgevingen per tenant (staging/productie)
  • Prometheus/OTel-metrics + healthprobes

/ Gebouwd voor integratoren

Laat orkestratie waar het al leeft.

Epistola stelt een beveiligd renderoppervlak beschikbaar dat past in Common Ground en maatwerkplatforms zonder workflowherschrijvingen.

  • JSON Schema Draft 2020-12 validatie vóór render
  • Onveranderlijke templateversies per omgeving en tenant
  • OpenAPI 3.1 eindpunten + adaptieve batchjob-webhooks

50-200 ms

rendervenster (iText)

/ Volgende stap

Geïnteresseerd in wat Epistola voor uw product kan betekenen?

Plan een gesprek en stel al uw vragen.

Hoe wilt u contact opnemen? *