Hoe het werkt
Een slide die weet wat hij is
De meeste programma’s behandelen een slide als een canvas: een rechthoek waar je vakjes op legt, daar waar het goed uitkomt. Deckyard behandelt hem als een record met een type. Het klinkt als een technisch detail. Het is de reden dat al het andere op deze site kan bestaan.
- 34
- slidetypes, elk met eigen velden
- 1
- gepubliceerd schema, uit de code gegenereerd
- 0
- kleuren of lettertypen in je inhoud
Waar een deck echt begint
Niemand begint een presentatie in een presentatieprogramma. Je begint met een rapport dat iemand anders schreef, een spreadsheet met de echte cijfers, een notitie op je telefoon van een gesprek van dinsdag, en een map foto’s die niemand fatsoenlijk heeft benoemd.
Dat is het ruwe materiaal, en het heeft drie vervelende eigenschappen: het ligt op vier plekken, het staat in vier formaten, en de interessante delen zitten verstopt in zinnen. Elk deck begint ermee dat iemand dat er stilletjes uit zit te halen.
1Waar je mee begint
Kwartaalrapportage Q3 - Limonadekraam De Zonnezijde
1. Achtergrond. De Kraam is in 2021 opgericht bij besluit van het huishouden. In 2022 ging zij haar eerste strategische samenwerking aan, met de naastgelegen taartverkoop. In 2024 zijn de werkzaamheden opgeschort wegens weersomstandigheden. In 2025 is de exploitatie hervat onder herzien bestuur.
2. Prestaties. In de verslagperiode zijn 412 bekers verstrekt, een toename van 18 procent ten opzichte van het vergelijkbare kwartaal.
| 1 | Maand | Bekers |
|---|---|---|
| 2 | juni | 96 |
| 3 | juli | 141 |
| 4 | augustus | 175 |
voor het jaarbericht, niet vergeten
mw albers van nr 14 zei zaterdag dat het niet de slechtste limonade was die ze ooit had gedronken
mooi citaat?? op een slide zetten
Kies hieronder een slidetype en de bron waar het uit put komt naar voren. Ander materiaal, andere slide, dezelfde stapel.
Iemand moet daar slides van maken
Van oudsher ben jij die iemand, om elf uur ’s avonds, cijfers overtikkend uit een spreadsheet in tekstvakken. Die cijfers staan nu op twee plekken, en één ervan begon te verouderen op het moment dat je plakte.
Het alternatief is niet "laat een robot het doen". Het is dat de slide een vastgelegde vorm heeft, zodat alles wat hem vult - jij, een script, een agent - eerst tegen die vorm gecontroleerd wordt.
2Er structuur van maken
Dit is de stap waar iedereen overheen leest. Het kan op drie manieren, en het punt is niet welke je kiest: het is dat er in alle drie de gevallen een slide uitkomt die als data is opgeslagen, en dat alle drie tegen hetzelfde slidetype worden gecontroleerd.
Kies een type
- Titel
- Tijdlijn
- Grafiek
- Citaat
- Beeld
Vul het moment in
- date 2025
- title Exploitatie hervat
- text Onder herzien bestuur.
+ moment toevoegen
En dit is de slide
Opgeslagen als
{ "date": "2025", "title": "Exploitatie hervat" } Je kunt dat moment gewoon op de slide intikken of in de velden, net wat je prettiger vindt. Het verschil met een tekenprogramma zit niet in waar je typt, maar in wat er bewaard blijft. Een tekenprogramma bewaart een tekstvak waar toevallig 2025 in staat. Dit bewaart een moment dat een datum heeft. En omdat het type weet hoe een tijdlijn eruit hoort te zien, is de opmaak al voor je gedaan.
De automatisering die iemand bouwde
- Trigger Elke eerste maandag, 06:00 "firedAt": "2025-09-01T06:00"
- Tool call Cijferregister · haal vorige maand op { "maand": "september", "bekers": 188 }
- Alleen als Die maand nog niet op de slide staat anders · stoppen, niets bij te werken
- Actie Deckyard · slide in de teambibliotheek bijwerken Het verzoek dat hij stuurt staat hiernaast.
Wat het de vorige keer stuurde
PUT /api/v1/presentations/{id}/slides/{slideId} { "type": "chart-slide", "content": { "chartType": "bar", "data": "maand,bekers\n…\naugustus,175\nseptember,188" } }
200 OK · slide bijgewerkt, vier maanden op de grafiek
En dit is de slide
Opgeslagen als
"data": "… augustus,175\nseptember,188"
De cijfers zijn een kolom in het record, dus een automatisering kan er een maand aan toevoegen. De slide staat in de teambibliotheek, dus de volgende presentatie die hem ophaalt heeft vorige maand er al in staan. En die schrijfactie gaat door dezelfde validatie als die van een mens: een grafiek die de editor weigert, weigert de API ook.
Wat de mens vraagt
Zet dit op een slide: 2021 opgericht, 2022 samenwerking met de taartverkoop, 2024 opgeschort, 2025 hervat.
Een tijdlijnslide toegevoegd met die vier momenten, in die volgorde.
Wat de agent eerst moet vragen
- get_slide_types()
- timeline-slide - voor een reeks momenten. items[] van (date, title, text), 2 tot 10, de volgorde draagt betekenis.
- add_slide({ type: "timeline-slide", … })
En dit is de slide
Opgeslagen als
{ "date": "2025", "title": "Exploitatie hervat" } De agent kan geen opmaak verzinnen, want er valt geen opmaak te verzinnen. Hij vraagt wat er bestaat, krijgt te horen wat een tijdlijn nodig heeft, en vult dat in. Het resultaat staat in de huisstijl voordat iemand ernaar gekeken heeft.
Alle drie komen ze bij dezelfde poort: het record wordt gecontroleerd tegen zijn slidetype. Wat een mens niet mag opslaan, mag een integratie ook niet, en andersom. Daar zit de controle - niet in het handmatig doen.
Controle komt niet voort uit het handmatig doen. Die komt uit het type.
Wat een slidetype precies is
Een slidetype is een klein, uitgesproken contract. Een tijdlijn verklaart dat hij een reeks momenten bevat, elk met een datum en een titel, minstens twee en hoogstens tien, en dat de volgorde betekenis draagt. Een citaat verklaart dat het iemand nodig heeft om aan toe te schrijven, en weigert zonder.
In geen van die verklaringen komt een kleur, een lettertype of een positie voor. Dat is de tweede helft van het idee: de inhoud draagt de betekenis, het thema draagt het uiterlijk, en die twee raken elkaar nooit. Daarom kan dezelfde slide kloppen voor een gemeente én voor een designstudio, zonder dat er één woord verandert.
3De slide zelf
Wat het betekent
Hoe het eruitziet
De slide als data timeline-slide
- title string max 120
- items items required ordered min 2 max 10 date · title · text
ordered: true - de volgorde is hier de betekenis, geen opmaakkeuze. Daarom wordt dit voor een screenreader een genummerde lijst, en mag niets verderop de items herschikken.
De slide als data chart-slide
- title string required max 120
- chartType enum required bar · line · pie
- data csv required
data: csv (required) - de cijfers staan als data in het record, niet als plaatje van een grafiek. Daarom kan dit veld aan de spreadsheet gekoppeld blijven in plaats van eruit gekopieerd te zijn.
De slide als data quote-slide
- quote string required max 400
- authorName string required max 80
- authorTitle string required max 120
authorName is required - een citaat zonder bronvermelding is in dit formaat geen geldige slide. Het type houdt een journalistieke norm vast die anders afhangt van wie er toevallig haast had.
De slide als data image-slide
- image image
- alt string max 180
- imageRole enum content · decorative
- caption string max 160
imageRole: content | decorative - het formaat vraagt waar het beeld voor is. Noem het decoratief en screenreaders slaan het over; noem het betekenisvol en het vraagt om alt-tekst. Een canvas kan die vraag niet stellen, want daar is een afbeelding alleen pixels op een coördinaat.
Beweeg over een veld om het materiaal op te laten lichten waar het uit komt.
Wat daaruit volgt
Het bruikbare aan deze keuze is niet dat hij elegant is. Het is dat vier losse beloftes dezelfde belofte blijken te zijn, vier keer uitgesproken.
-
Omdat de velden een type hebben
kan een slide fatsoenlijk worden voorgelezen.
Een tijdlijn wordt een genummerde lijst, een tabel houdt zijn koprij, een afbeelding zegt of hij decoratief of betekenisvol is. Toegankelijkheid is geen lijstje meer dat iemand achteraf afvinkt, maar een eigenschap van het formaat.
-
Omdat de velden een type hebben
kan alles ze vullen.
Een veld met een vastgelegde vorm is een aansluiting. Je datawarehouse, je beeldbibliotheek, een script of een agent kunnen hem vullen, en ze worden allemaal op dezelfde manier gecontroleerd. Niemand tikt een tabel over, en het cijfer op de slide klopt met het cijfer bij de bron.
-
Omdat de vormgeving elders woont
bezit de organisatie het uiterlijk.
De huisstijl zit in themetokens, niet in het deck. Een deck kan niet off-brand raken, want hij draagt geen huisstijl bij zich. Zet de achtergrond en het logo vast en zelfs een oud deck rendert binnen de huidige stijl.
-
Omdat het allemaal één schema is
overleeft het formaat de applicatie.
Het JSON Schema wordt gegenereerd uit dezelfde velddefinities die de editor en de validatie lezen, dus het kán niet afdrijven van de implementatie. Iemand anders kan een lezer, een converter of een renderer bouwen zonder het ons te vragen. Dát betekent open hier.
Voor een groot deel van de organisaties die dit lezen is de eerste van die vier geen extraatje, maar iets waarover ze verantwoording afleggen. Die heeft dus een eigen pagina: wat de projectie echt oplevert, veldtype voor veldtype, en wat het niet oplost.
Wat de structuur doet voor toegankelijkheidHetzelfde deck, twee manieren om het te bewaren
Dit is geen betoog dat canvassen slecht gemaakt zijn. Het is dat een tekening geen vragen over zichzelf kan beantwoorden, en een record wel.
| Slide als canvas | Slide als record | |
|---|---|---|
| Wat een slide is | Vormen op coördinaten | Benoemde velden met een type |
| Voorgelezen door een screenreader | Gokwerk, op tekenvolgorde | Echte koppen, lijsten en tabellen |
| Geopend op een telefoon | Krimpt tot het onleesbaar is | Herschikt als document |
| Gevuld vanuit een ander systeem | Zet een tekstvak neer en hoop | Vul de velden, word gevalideerd |
| Huisstijl wijzigen | Elke slide met de hand opnieuw | Wissel het thema, inhoud blijft |
| Over tien jaar | Hopen dat het programma hem nog opent | Gedocumenteerde JSON tegen een publiek schema |
Makkelijker te zien dan te lezen
De sandbox is de Deckyard-editor in je browser, zonder installatie en zonder account. Maak een tijdlijn, wissel het thema, kijk wat je gebouwd hebt. AI, uploads en publiceren staan er uit, want hij is openbaar en anoniem.