PrintNook
PrintNook genereert gelinieerd papier, ruitjespapier, planners, kalenders en sudoku's als schone, printklare PDF's. Het opbouwen van de PDF gebeurt in de browser: geen eigen backend, geen database, geen account.
Bekijk live →
De uitdaging
"Lined paper" en "graph paper" worden volgens ons zoekwoordonderzoek samen bijna 200.000 keer per maand gezocht, maar het bestaande aanbod bestaat grotendeels uit downloadsites vol advertenties, PDF's van onbekende herkomst en tools die je eerst laten registreren. Wie een vel ruitjespapier nodig heeft, wil geen funnel doorlopen. De inhoudelijke lat ligt bovendien hoger dan hij lijkt: een raster dat op papier niet klopt in millimeters is waardeloos, en een sudoku met meerdere oplossingen is geen sudoku.
Onze aanpak
We bouwden vijf PDF-routines die het document in de browser opbouwen met jsPDF, dat op millimeters is ingesteld zodat printen op 100 procent schaal maatvast blijft. Elke generator heeft een live preview naast de knoppen, zodat je je instelling ziet landen voordat je downloadt. Daaromheen zetten we een eigen design-systeem ("Warm Stationery"), 18 programmatisch gerenderde printable-pagina's voor de long-tail, en de SEO-plumbing: canonicals, JSON-LD per paginatype, een sitemap en een OG-afbeelding via next/og.
Het resultaat
De site staat live op printnook.co: 31 statische pagina's, dertien vaste routes plus achttien vooraf gerenderde printable-pagina's. Er is geen eigen backend, dus de instellingen die je kiest en de PDF die je maakt gaan niet naar een server van ons. De vier toolpagina's dekken acht papiersoorten, weekplanners, gedateerde maandkalenders en sudoku's in vier moeilijkheidsgraden. Een vijfde generator levert vijf gestructureerde sheets en staat op de printable-pagina's zelf. Het domein is jong en de posities moeten zich nog zetten. De technische en inhoudelijke basis ligt er.
Resultaat
5 PDF-generatoren, 31 statische pagina's, geen eigen backend
Waarom een site over printbaar papier
Sommige zoekopdrachten zijn zo alledaags dat je vergeet hoe groot ze zijn. Volgens ons zoekwoordonderzoek wordt "lined paper" wereldwijd zo'n 72.000 keer per maand gezocht en "graph paper" 122.000 keer. Samen bijna 200.000 keer per maand, voor twee soorten papier. Iemand zit achter een printer, heeft een vel gelinieerd of geruit papier nodig, en zoekt het gewoon op. Het is geen complexe behoefte. Het is een behoefte van tien seconden.
Wat je dan vindt, is zelden een oplossing van tien seconden. Het aanbod bestaat grotendeels uit downloadportalen die je door advertentielagen sturen, PDF's van onbekende herkomst waarvan je pas na het printen ziet dat de maatvoering niet klopt, en generatoren die eerst een account willen. De zoekvraag is simpel, de afhandeling is dat niet. Dat gat tussen de vraag en het antwoord is precies waar een kleine, scherpe site iets kan betekenen.
PrintNook is onze poging om die afstand terug te brengen tot bijna niets. Je landt op een pagina, je ziet meteen het vel dat je zoekt, je stelt eventueel de rasterafstand of de marge bij, en je hebt een PDF. Geen registratie, geen wachtrij, geen tussenpagina. De hele site is gebouwd rond het idee dat het antwoord op een triviale vraag ook triviaal te bereiken hoort te zijn.
Warm Stationery: een eigen visuele taal
De site heeft een eigen design-systeem, geen template en geen CSS-framework. We noemden het "Warm Stationery". De achtergrond is zacht papier (#fbfaf7), de tekst is grafietinkt (#33312e), en er is één warm accent: terracotta (#d1603d), met een diepere variant voor hover-staten en een lichte tint voor vlakken. Work Sans doet het typografische werk. Veel meer kleuren zijn er niet, en voor dit onderwerp misten we ze ook niet.
Die keuze is niet decoratief. Het onderwerp van deze site is papier, en de interface hoort niet luider te zijn dan het product dat eruit rolt. Een felle SaaS-esthetiek zou hier vloeken met een vel gelinieerd papier. Het gelinieerde motief keert daarom terug in de hero, en de previews staan in kaarten met een flauwe pagina-schaduw, zodat het scherm hetzelfde register aanhoudt als de printer. Datzelfde motief loopt door tot in de OG-afbeelding, die is opgebouwd uit vlakken en lijnen in plaats van uit een ingeladen lettertype.
De stylesheet is met de hand geschreven en staat in één bestand, opgebouwd uit custom properties. De typografie schaalt vloeiend mee met het scherm via een clamp-gebaseerde schaal, dus voor tekstgroottes zijn geen media-query-sprongen nodig. Volledig zelfgeschreven is de CSS in de bundel niet: Work Sans komt via next/font binnen en brengt zijn eigen gegenereerde stijlen mee, en een enkel component regelt een maat of een minimumhoogte via een inline style. Het gaat ons om het uitgangspunt, niet om de zuiverheid: er zit geen framework in dat we niet gebruiken.
De PDF wordt in je browser gemaakt, niet op onze server
De vijf generatoren bouwen hun PDF ter plekke op met jsPDF, in de browser van de bezoeker. Er is geen eigen backend: geen API-routes, geen server-acties, geen database. Wat je instelt en wat je maakt gaat daardoor niet naar een server van ons, want die is er niet. De enige keer dat er iets over de lijn gaat, is bij je eerste download: jsPDF wordt bewust pas op dat moment ingeladen, dus de browser haalt die bibliotheek dan eenmalig op. Daarna is het instant, en je gegevens zitten er niet bij.
De maatvastheid zit in de PDF zelf. jsPDF wordt aangemaakt met millimeters als eenheid, dus het papier wordt uitgetekend in echte millimeters en niet in pixels die achteraf worden omgerekend. Print je op 100 procent schaal, dan komt een raster van 5mm er ook als 5mm uit. Voor isometrisch papier, hexagonraster en muziekbalken is dat het verschil tussen bruikbaar en waardeloos. De previews naast de knoppen zijn een tweede tekenroutine in SVG en houden hun eigen niveau van getrouwheid aan: de papier-preview rekent in dezelfde millimeters als het gekozen formaat, terwijl de preview bij sudoku, planner en sheets de indeling toont in plaats van de exacte maatvoering. Ze laten zien wat je krijgt, niet hoe groot het wordt.
De sudoku-generator laat het beste zien waar deze aanpak toe leidt. Hij vult eerst een geldig 9x9-rooster, verwijdert dan cijfers in willekeurige volgorde en telt na elke verwijdering hoeveel oplossingen er overblijven. Maakt een verwijdering een tweede oplossing mogelijk, dan gaat het cijfer terug. Zo houdt de generator vast aan puzzels met één oplossing. De teller stopt overigens zodra hij er twee heeft gevonden, want meer hoef je niet te weten om te concluderen dat het zo niet werkt. De moeilijkheidsgraad stuurt op een streefaantal overgebleven cijfers, van 40 bij easy tot 24 bij expert, met de oplossing op pagina twee. Dat rekenwerk draait op het apparaat van de bezoeker.
Vijf generatoren, achttien pagina's, één datamodel
De site heeft vier toolpagina's: papier (/paper), planner en kalender (/planner), sudoku (/sudoku) en schrijfoefenpapier (/handwriting). De papiergenerator alleen al dekt acht soorten: gelinieerd, ruitjes, stippenraster, isometrisch, muziekbalken, Cornell-notities, schrijflijnen en hexagonraster. Papierformaat (A4 of Letter), oriëntatie, marge en lijnkleur zijn bij alle acht instelbaar. De rasterafstand ook, met muziekbalken als logische uitzondering: daar regel je in plaats daarvan het aantal notenbalken per pagina, want een notenbalk heeft zijn eigen vaste interne maatvoering. De schrijfoefenpagina is trouwens geen aparte generator maar dezelfde papiertool met de stijl vastgezet, wat precies is wat het moet zijn.
Er is nog een vijfde generator, en die staat niet op een eigen toolpagina. Hij rendert vijf gestructureerde sheets (maaltijdplanner, habit tracker, to-do-lijst, budgetplanner en takenschema) en is te bereiken via de bijbehorende /printable/*-pagina's. In totaal staan er 18 printable-pagina's onder /printable/[type], vooraf gerenderd uit één dataset. Elke entry beschrijft zijn eigen H1, meta-titel, meta-beschrijving, intro, gebruikssituaties en FAQ, plus welke tool en welke voorinstelling erbij hoort. Zo landt iemand die "5mm graph paper" zoekt op een pagina die dat onderwerp echt behandelt, met de generator er direct onder en het juiste raster al ingesteld. Omdat de lijst met geldige slugs vastligt bij de build, levert een adres dat er niet in staat een echte 404 op in plaats van een poging tot renderen.
Die scheiding is bewust. De vier toolpagina's mikken op generator-intent ("sudoku puzzle generator", "printable paper generator"), terwijl de /printable/*-pagina's de "free printable X"-vragen bedienen. Daardoor concurreren ze niet met elkaar om dezelfde zoekopdracht. En omdat alles uit één datamodel komt, kost een nieuwe long-tail-pagina geen nieuwe code: één entry in de dataset levert de route, de vermelding in de sitemap, de metadata en de JSON-LD tegelijk op.
Vindbaarheid als onderdeel van de bouw
Alle 31 pagina's, de dertien vaste routes plus de achttien programmatische, worden statisch gegenereerd en serveren vanaf de edge zonder runtime. Titel, meta-beschrijving en canonical staan per pagina apart ingesteld. De OG-afbeelding wordt via next/og gerenderd op 1200x630 in de Warm Stationery-kleuren en wordt door de hele site gedeeld, dus een link die iemand deelt ziet er hetzelfde uit als de site zelf. Dat is een bewuste afweging: één sterk beeld dat klopt, in plaats van een variant per pagina die vooral onderhoud oplevert.
De structured data is per paginatype gekozen in plaats van overal hetzelfde blok. De generatoren melden zich als WebApplication, de overzichtspagina als CollectionPage, en de printable-pagina's dragen hun FAQ als FAQPage plus een breadcrumb die de weg terug naar het overzicht beschrijft. Bij de gidsen hangt het af van wat er staat: twee ervan zijn opgebouwd rond echte vragen en dragen een FAQPage, terwijl de gids over papierformaten een naslagstuk is en zich als Article meldt. In de printables-dataset staan 36 FAQ-vragen, geschreven om echte vervolgvragen te beantwoorden en niet om een schema-veld te vullen.
Er zitten ook kleinere beslissingen in die je pas na verloop van tijd terugziet. De sitemap laat lastModified bewust weg, omdat elke deploy anders elke URL zou stempelen met de builddatum en crawlers dat signaal dan terecht gaan negeren. De long-tail-helft van die sitemap komt rechtstreeks uit de printables-dataset en kan dus niet uit de pas lopen met de routes; de dertien vaste routes staan als korte, handmatig bijgehouden lijst in hetzelfde bestand, wat bij dit aantal een bewuste keuze is en geen tekortkoming. Verder lopen de meta-beschrijvingen van de printable-pagina's door een clamp-functie die op een woordgrens knipt en een hangend functiewoord als "to" of "and" van het eind haalt, zodat een ingekorte beschrijving niet halverwege een zin afbreekt. Voor het aanmelden van nieuwe URL's staat er los daarvan een IndexNow-script in de repo, dat we handmatig draaien en dat buiten de site-runtime valt.
Waar het nu staat, en wat het laat zien
De eerste commit dateert van 2 juli 2026. De site draait op Next.js 16 met de App Router, React 19 en TypeScript in strict-modus, met een lege next.config: er is geen buildtruc nodig om dit statisch te krijgen, het is statisch van ontwerp. De runtime-afhankelijkheden zijn op één hand te tellen: jsPDF, Next, React en React-DOM. Daarnaast staan er vier devDependencies voor de types en de compiler, en verder niets. jsPDF wordt dynamisch geïmporteerd, dus de PDF-bibliotheek wordt pas geladen als iemand daadwerkelijk een vel gaat maken.
Er zit geen analytics en geen tracking in de site. De advertentie- en consent-componenten die in de codebase staan, zijn bewust slapende plaatshouders: ze renderen niets zolang de bijbehorende omgevingsvariabele niet aanstaat, en er wordt geen extern script geladen. Alleen het contactformulier stuurt iets naar buiten, naar een endpoint buiten deze site. Mocht monetisatie later aan de orde zijn, dan ligt de plek daarvoor klaar, inclusief het uitgangspunt dat er eerst een echte consent-oplossing moet staan.
Het domein is jong en de posities moeten zich nog zetten. Dat is bij dit type site normaal, en we sturen liever op wat we kunnen controleren: de kwaliteit van het antwoord, de snelheid, de dekking van de long-tail en de technische hygiëne. Voor een opdrachtgever is dit vooral een bewijsstuk. PrintNook is van begin tot eind eigen werk van FusionStudios: de nichekeuze en de zoekwoordstrategie, het merk en het design-systeem, de rekenkundige kern van de generatoren, en de vindbaarheid. We bouwen dit soort sites niet alleen op, we onderhouden ze ook, en dat betekent dat we uit ervaring weten wat er na de oplevering nog gebeurt.
Klaar om jouw merk te laten groeien?
Vertel ons over je project. We denken graag met je mee, vrijblijvend.
Vrijblijvend. Je hoort binnen één werkdag van Jamey.