Wijzigingslogboek
Elke release, elke functie, elke fix, in één scrolbaar logboek.
2026-04-26, Volledige ISO/AIM/GS1-renderconformiteit op elk codetype
- Elke QR / 2D / 1D barcode getoetst aan zijn maatgevende norm.
includetextvan bwip-js staat per bcid standaard op false, dus EAN/UPC/ITF-14 werden geleverd zonder de leesbare tekstbalk die ISO 15420 §5.1.2 + GS1 §5.4.4 verplichten.includetext: true+guardwhitespace: trueingesteld voor de hele EAN/UPC-familie, plusincludetext: truevoor ITF-14, Code 128, Code 39, Code 93, Codabar, VIN. - EAN-13-stille zones zijn nu asymmetrisch volgens ISO 15420 Bijlage A (bij scale=4
paddingleft: 44= 11 modules,paddingright: 28= 7 modules). EAN-8 / UPC-A / UPC-E gebruiken de symmetrische enveloppen die hun specs noemen. PDF417 + AAMVA-rijbewijs krijgen stille zones van 2 modules volgens ISO 15438 §5.5; Data Matrix krijgt 1 module volgens ISO 16022; Aztec krijgt aanbevolen 1 module (nul is toegestaan door ISO 24778 maar breekt scanners die de rand raken). - QR's
QUIET_ZONE_MODULESopgehoogd van 2 → 4, de volledige spec van ISO/IEC 18004 §6.3.7. De 2-module-shortcut was een industriecompromis dat op sommige industriële laserscanners faalt bij GS1 Digital Link-prefixdetectie. Micro QR + rMQR worden nu geleverd met een stille zone van 2 modules (qreangeeft alleen het kale raster, dus we voegen het handmatig toe inrenderMicroQRResult). - ECC-niveaus vastgezet: Aztec op 23% (standaard van ISO 24778), PDF417 op niveau 5 (GS1-minimum voor transport en logistiek). Vastzetten tegen toekomstige drift van bwip-js.
- Nieuwe referentiepagina: /standards/barcode-rendering/. Referentie per symbologie over stille zones, HRI, ECC en controlecijfers voor alle 17 typen, met primaire-bronlinks naar elke aangehaalde ISO/AIM/GS1-norm.
2026-04-26, Aangescherpte staging-first deploygate
- Productie-deploys voor sites met staging vereisen nu dat de meest recente staging-deploy exact bij de huidige commit hoort (schone working tree aan beide kanten). Het 24-uursvenster van de vorige gate liet niet-gerelateerde productie-deploys meeliften op verouderde staging-historie. SHA-gevolgd, fail-closed, de override blijft
CF_DEPLOY_SKIP_STAGING_FIRST=1. - Preflight-check in
cf-deploy.pyvoorCLOUDFLARE_API_TOKEN, faalt direct met een hintsource ~/.envrcin plaats van wrangler zijn cryptische "non-interactive environment"-fout te laten geven. - Inhoudverificatie na elke deploy: haalt de live-URL op en bevestigt dat de cache-buster overeenkomt met wat zojuist in
dist/is gestempeld. Vangt de bugklasse "verkeerde CNAME" / "edge serveert verouderde cache" / "verkeerde branch", die de 200-OK health-check stilletjes zou missen.
2026-04-25, Mobiele UX-herziening: peek-voorbeeld-header, bottom-sheet voorbeeld, vaste Download-CTA
- Vaste peek-voorbeeld-header bovenaan de pagina op telefoons (≤768px). Toont altijd een live miniatuur van de QR plus een statusregel, "Vul het formulier hieronder in" in rust, "Je QR is klaar · Tik om te downloaden" zodra een code is gerenderd. Pulseert eenmaal wanneer de QR voor het eerst geldig wordt zodat gebruikers het opmerken. Lost het langlopende probleem op dat mobiele bezoekers niet doorhadden dat het resultaat onder de vouw werd gerenderd.
- Een tik op de peek-balk (of de nieuwe vaste Download-knop onderaan) opent het voorbeeld als een bottom sheet, downloadknoppen op volledige breedte verticaal gestapeld, sluiten met omlaag swipen of op de achtergrond tikken, safe-area-padding voor de iOS home-indicator.
- Soft-toetsenbordafhandeling: een visualViewport-listener zet
body.kb-openwanneer het toetsenbord verschijnt, de peek-balk krimpt tot een dunne pil, en gefocuste invoervelden scrollen naar het midden zodat het toetsenbord nooit verbergt wat de gebruiker typt. - Tap-target-veegoperatie bij ≤640px: type-kiezer tegels van 14×8 / 0.78rem opgehoogd naar 16×10 / 0.82rem met minimale hoogte 56px, paneeltabs en primaire knoppen minimaal 44px, exportknoppen in het sheet over volledige breedte gestapeld met minimaal 48px.
- De viewport-meta krijgt
interactive-widget=resizes-contenten de twee100vh-regels zijn gemigreerd naar100dvhvoor een voorspelbare lay-out in mobiele browsers met dynamische werkbalken. - De oude scroll-naar-voorbeeld FAB is verwijderd, de peek-balk plus vaste CTA dekken dezelfde taak directer af. Service worker-cache verhoogd naar v132. Nieuwe strings vertaald naar alle 25 talen.
- CSS-hygiëne: 203 single-value space-declaraties in
style.cssvia codemod gemigreerd naar--space-N-tokens. Pure refactor, geen visuele wijziging. - Plafond inline-styles 89 → 85: vier
style="text-transform:uppercase"-attributen op de AAMVA- / Code 39- / Code 93- / VIN-inputs vervangen door de bestaande klasse.input-uppercase.
2026-04-19, N16-conformiteitssweep (45 pagina's), N3 batch 2, regressiefixes, N3-staart, AAMVA-disclosure, Expert-state-persistentie, a11y-audit
- Volledige N16-conformiteitssweep: alle 34 landingspagina's voor betalingsschema's bevatten nu compliance-checklists + "wanneer dit niet te gebruiken"-blokken. De vierde pass (19 pagina's) dekt de rest: Alipay + WeChat Pay (PBoC + SAFE), Boleto (BACEN + FEBRABAN), Mercado Pago (zevenlanden-toezichthoudermatrix), Payconiq (NBB + PSD2), EPC/Girocode (EPC069-12 + ZAG), Apple Wallet + Google Wallet (developer-program + FTC Endorsement + GDPR-locatie), Kakao Pay + Naver Pay + LINE Pay (Koreaanse FSC + Japanse FSA + Taiwan FSC + BOT), GCash + Maya (BSP EMI + AMLC + QR Ph + SEC PH), JPQR (METI + FSA Qualified-Invoice), FPS HK (HKICL + HKMA + SFC Alert List), DuitNow (PayNet + BNM + LHDN e-Invoice), M-PESA (Safaricom + CBK + eTIMS + CMA), MoMo (SBV + AMLID + GDT e-Invoice), PayID (NPP + RBA + APRA + AUSTRAC + ASIC). Samen met de drie eerdere passes (AAMVA / Reviewpagina's / Coupon / Review Funnel / App Store / PayPal / Crypto / UPI / SEPA + Venmo / Cash App / Swiss QR-bill / PIX / PromptPay / EMVCo / TWINT + Bizum / PayNow / iDEAL / BLIK / Interac / MB WAY / Swish / Vipps), zijn dat 45 compliance-geblokkeerde landingspagina's, elk betalingsschema op de site heeft nu lokale-toezichthouderverwijzingen, handelaarsclassificatieregels, fiscale/factureringsverplichtingen, raamwerk consumentenbescherming en een "geen beleggingsuitnodiging"-vangrail die naar de juiste effectentoezichthouder wijst. Eerste sub-batch (7): Venmo (AUP / F&F-misbruik / 1099-K / Early Warning-rapportage), Cash App (Cash for Business / Bitcoin & Investing-gereguleerde oppervlakken / Regulation E / CFPB-fraudewaarschuwing), Swiss QR-bill (SIX v2.3 / QR-IBAN-regels / MWSTG / 10-jaar OR Art. 958f-bewaarplicht), PIX (BACEN-resolutie 103/2021 / PJ vs PF / MED-terugbetalingsvenster / sticker-overlay-fraude / CVM-beleggingsvlag), PromptPay (BOT-regels / THB 1,8 mln BTW-drempel / AMLO-rapportage / grensoverschrijdende valuta-disclosure), EMVCo (ISO 18245 MCC / acquirer-KYC / nationale FIU bij AID-mismatch), TWINT (FINMA/AMLA / MROS / KIG-consumentenbescherming). Tweede sub-batch (8): Bizum (Bizum Negocios / SEPBLAC / factura / CNMV), PayNow (MAS Payment Services Act / STRO-rapportage / SGQR / PDPA), iDEAL (gelicentieerde acquirer / DNB / PSD2 13-maanden geschilvenster / CBF-goede doelen / ACM-handhaving), BLIK (Polski Standard Płatności / KNF / GIIF-rapportage / faktura VAT / RODO), Interac (Interac for Business / FINTRAC / PIPEDA / Quebec Bill 96 / CAFC-fraude), MB WAY (SIBS / Banco de Portugal / UIF / CMVM / GDPR), Swish (Getswish AB / Finansinspektionen / Skatteverket kassaregister / Swish-bedrägerier), Vipps (Vipps MobilePay AS / Finanstilsynet / Økokrim / Bokføringsloven / advarselsliste). Sluit aan bij de bestaande compliance-blokken op AAMVA, Google/Yelp/TripAdvisor Review, Coupon, Review Funnel, App Store, PayPal, Crypto, UPI, SEPA. Totale dekking nu: 26 landingspagina's.
- Vijf extra authoritypagina's voor standaarden (N3 batch 2), AAMVA-rijbewijs, eSIM-activering (LPA), EMVCo-handelaarsQR, Micro QR / rMQR, ZATCA-e-factuur. De hub heeft nu 8 live referentiepagina's die de kernspecs dekken.
- Twee regressies opgelost: (1) homepage scrollde automatisch naar beneden bij laden omdat
showCategory()-initscrollIntoView({block:"nearest"})aanriep op de categoriechip, vervangen door handmatige horizontalescrollLeftzodat paginascroll nooit wordt aangeraakt. (2) Type-zoekopdracht voor "paym" gaf nul resultaten omdat het filter alleen substrings van label + data-type controleerde, DRY-fix hergebruikt nu dezelfde CAT_SEARCH + TYPE_SEARCH-synoniemtabellen die het commandopalet gebruikt. - N3-staart: nieuwe gecombineerde referentiepagina /standards/non-qr-2d/ voor Aztec (ISO/IEC 24778) + PDF417 (ISO/IEC 15438) + Data Matrix (ISO/IEC 16022). Vergelijkingstabel zij-aan-zij, native-scanner ondersteuningsmatrix over iOS Camera / Android / Google Lens / industriële imagers / luchthavenpoorten / DMV-lezers / pharma DPM-lezers, kies-de-juiste-gids (Aztec voor instapkaarten, PDF417 voor lange ASCII-papier, Data Matrix voor DPM/pharma, QR voor consumentenfooncamera's). Standaardenhub heeft nu alle 9 pagina's live, 0 concept.
- AAMVA-formulier progressieve disclosure (N19.3-vervolg): 25-input-formulier opgesplitst in Verplicht (jurisdictie / licentie / doctype / familie / voornaam / geboortedatum), Aanbevolen ingeklapt-open (tweede naam + straat + plaats/staat/postcode + uitgifte-/vervaldatums), Expert-tuning ingeklapt (geslacht/oog/lengte + klasse/beperkingen/aantekeningen). Past bij het patroon op TOTP, HOTP, Aztec, PDF417, Swiss QR, EMVCo, GS1, SEPA.
- Expert-tuning state blijft over bezoeken bewaard (N19.3-vervolg): wanneer je het Expert-gedeelte op een formulier opent, wordt de open status opgeslagen in
localStorage.qrExpertSectionsOpenper type. De volgende keer dat je dat type kiest, staat Expert al open. Gedelegeerdetoggle-listener op.field-section[data-level="expert"], geen bedrading per formulier. - Interne toegankelijkheidsaudit (N8): handmatige WCAG 2.2 AA-pass tegen de homepage, /print-size/, de nieuwe /standards/-hub + 9 authoritypagina's, en de 45 betalingsschema-landingspagina's. Geverifieerd geslaagd op skip-link target, focus-visible, formulierlabels, knopnamen, ARIA-rollen, contrast AAA primair / AA+ gedempt. Een sprong in koppenniveau opgelost (drie
<h4>-subkoppen binnen vCard/MECARD extra-fields gepromoveerd naar<h3>voor een schone outline). Volledige bevindingen gepubliceerd op /accessibility/. - Publieke corpus-ZIP (N2-vervolg): /proof/corpus.zip, gebundelde fixtures JSON + CSV + methodologie + README, ~4 KB, opnieuw opgebouwd bij elke deploy. Scanvloten kunnen nu het volledige corpus in één bestand downloaden in plaats van de repo te klonen. Gelinkt vanaf /proof/corpus/ met een prominente Download-knop.
- Scannervloot-attestatielogboek (N2-vervolg): nieuwe docs/SCANNER_ATTESTATION.md, gedateerd logboek per rij van handmatige apparaat-/OS-/app-verificaties. Geseed met 10 rijen voor iPhone 15 Pro op iOS 18.3, Pixel 8 op Android 14, Zebra DS8100, Google Authenticator, 1Password. Groeit met elk apparaat dat we verifiëren.
- In-generator preview-realisme (N19.6): compacte 4-chip-toggle onder het live QR-voorbeeld, Standaard / Telefoon / Mono / Laag contrast. Past CSS-filters toe op het voorbeeld (schaal voor Telefoon, grijswaarden voor Mono, verlaagd contrast voor Laag contrast) zodat ontwerpers zien hoe de QR zich gedraagt op verschillende substraten zonder de generator te verlaten. Geen effect op de gecodeerde payload, downloads of klembordkopie.
- Meer semantische validators (N19.4-uitbreiding): HOTP-secret Base32 + counter niet-negatief-integer-check; eSIM SM-DP+ moet een kale FQDN zijn (geen https://, veelvoorkomende telefoonprovisioning-breker); eSIM Matching ID weigert
$-tekens (botsing met LPA-veldscheidingsteken). - Progressieve disclosure uitgebreid naar UPI en Crypto (N19.3-uitbreiding): UPI-bedrag + notitie gegroepeerd als Aanbevolen; crypto-bedrag + label gegroepeerd als Aanbevolen. SIP, MMS, PromptPay en Lightning bekeken en plat gelaten, te weinig velden om baat te hebben bij disclosure.
- Kwaliteitsauditsweep over SEO, prestatie, beveiliging, link-integriteit en codekwaliteit (i18n-pass uitgesteld). Service worker
cache.put-schrijvingen draaien nu binnenevent.waitUntilzodat ze niet halverwege navigatie kunnen worden weggelaten; cache opgehoogd naar v121. Print-dialoog van bedrijfskaart overgeschakeld vandocument.writenaar eenBlob-URL. Click-handlers voor delen en kaartdownload omsloten in try/catch zodat afwijzingen als toasts naar voren komen in plaats van stilletjes te falen. Magic-numbertijden (auto-open van design-card hash, GIF-frame-rendering, gap dual PNG-download, print-blob-revoke) geëxtraheerd naar benoemde constanten. Latente CSS-bug opgelost:.card-text-row-input-selectors matchten alleen[type="text"], maar de HTML-minifier verwijdert het standaardtype="text"-attribuut,input:not([type])toegevoegd zodat BCD-tagline + bijschrift-inputs hun styling in productie behouden. Twee gratuite!important-declaraties verwijderd; lawaaiige i18nconsole.warnstilgelegd. CLAUDE.md bijgewerkt, taalpagina's worden vooraf gerenderd naarsite/{lang}/, niet geleverd via_redirects-rewrites.
2026-04-18, Authoritypush: /standards/-hub + 3 standaardpagina's, /proof/corpus/, Reviewer #6-afronding, N19.1 workflow-eerst Geavanceerd
- Simple-modus krijgt een subtiele "96 meer typen in Geavanceerd"-hint onder het 8-tegelraster. Op de link klikken zet de modusschakelaar om zodat gebruikers niet terug omhoog hoeven te scrollen. Simple blijft op 8 tegels; Geavanceerd blijft het ontdekkingspad voor de lange staart.
- Pro CTA-bullets herschreven om weer te geven wat daadwerkelijk is geleverd: codes met wachtwoordbescherming, geplande activering en vervaldatum, heatmap-/weer-/ROI-/cohortanalyse, openbare deelbare statspagina's, codegroepen voor grote portfolio's, webhooks + REST API, multi-team en auditlog, SSO (SAML/OIDC) + SCIM-provisioning. Oude generieke "Scananalyse / API-workflows / Teams"-bullets zijn weg.
- "Opslaan in Pro"-hint onder de generator noemt nu wachtwoordbescherming, geplande activering, heatmap- en ROI-analyse en openbare statspagina's in plaats van alleen "scananalyse".
- Progressieve disclosure op veldzware geavanceerde generators (N19.3): TOTP, HOTP, Aztec, PDF417, Swiss QR en EMVCo klappen hun expertknoppen (algoritme/cijfers/periode, EC-niveau, kolommen/compact, bericht, MCC/AID) onder een Expert-tuning-sectie in. GS1 Digital Link groepeert AI 17/10/21 als Aanbevolen; SEPA scheidt referentie (Aanbevolen) van BIC (Expert-tuning). Ingeklapte Expert-samenvattingen tonen een "expert"-pil zodat power users de extra knoppen zien zonder te klikken.
- Opgeslagen profielen (N19.8): geef een naam aan en sla de huidige veldwaarden van een geavanceerde generator op in localStorage, lijst ze in het paneel Opgeslagen profielen boven de compatibiliteitslegenda, en laad ze met één klik of via het commandopalet (Cmd/Ctrl+K). Opslag is alleen client-side; niets verlaat de browser.
- Authority voor printproductie (N15): /print-size/ bevat nu een substraatgids (8 substraten × groottepenalty × ECC), CMYK-veilige paletregels met annotaties op catalogusniveau CMYK/RGB-only, regels voor outdoor/bewegwijzering (UV-verkleuring, koudeweer-cameragedrag, schuine scanhoeken), een afdrukbaar QA-protocol met 4 controles, en preflight-cijferdefinities in eenvoudige taal ("D = faalt op glanzend bord onder 3 m").
- Compliance-fencing (N16): nieuwe "Compliance-checklist" + "Wanneer dit niet te gebruiken"-blokken op vijf reviewer-gemarkeerde landingspagina's, App Store (Apple 5.2 / Play-policy / TestFlight-distributie), PayPal (AUP / F&F-misbruik / 1099-K / MSB-classificatie), Bitcoin & Crypto (FATF Travel Rule / FinCEN/FCA-registratie / Howey-test-blootstelling / OFAC), UPI (NPCI-circulaire / GST / anti-fraude overlay-scams / SEBI op investerings-QR's), SEPA (EPC069-12-conformiteit / PSD2-recht op terugkeer / waarschuwing geen recurring-mandaat). Sluit aan bij de bestaande compliance-blokken op AAMVA, Google / Yelp / TripAdvisor Review, Coupon, Review Funnel.
- Recente typen in het commandopalet (N19.7): de laatste 8 typen die je hebt gekozen verschijnen eerst wanneer Cmd/Ctrl+K opent met een lege query; bij een gedeeltelijke query krijgen recente typen een kleine rangschikkingsbonus zodat "tot" betrouwbaar naar je meestgebruikte OTP-flow springt. Ook gemarkeerd met een "Recent"-categoriechip zodat de boost zichtbaar is, niet magisch. Alleen in localStorage bijgehouden.
- Simple-modus polish (N6): Simple verbergt nu ook het paneel Opgeslagen profielen (geen beginnersconcept) en het Batch-tabblad. Reeds verborgen items ongewijzigd (type-zoeken, branchepresets, compat-legenda, categorietabbladen, compat-chips).
- Vier-pijlers vertrouwensstrip (N7): de bovenaan-pagina-claimstrip ingedikt van 5 items naar 4, elk met expliciet pijlerlabel, "Echt gratis, geen aanmelding, geen betaalmuren", "Privacy-first, 0 uitgaande verzoeken, live verifieerbaar", "Productieveilig, compatibiliteit getest april 2026", "Geen vendor lock-in, statische backup-QR, exporteer altijd". De link Vergelijking-bijgewerkt is uit de strip gehaald (het is een geloofwaardigheidssignaal, geen pijler) maar staat nog wel in de nav + footer.
- Beslissende "Gebruik dit als / Niet gebruiken"-callouts (N19.11) bovenaan veldzware geavanceerde formulieren, Data Matrix, Aztec, PDF417, TOTP, HOTP, eSIM, GS1. Oranje-geaccentueerd, twee clausules, vóór elke veldinvoer. Vervangt het patroon waarbij verklarende prose onderaan stond en gebruikers het pas lazen nadat ze klaar waren met typen.
- Capaciteitsbanner (N19.9) op het Stijlpaneel voor niet-QR-symbologieën, expliciete chip + titel ("Geen styling, alleen kale barcode") + beschrijving, ter vervanging van de oude enkele paragraaf-hint met iets dat in één oogopslag zichtbaar is.
- Semantische validatie (N19.4): TOTP Base32-secret-validator, Swiss QR IBAN CH/LI-prefix + 21-tekens lengtecheck, SEPA IBAN mod-97-controlesom (vangt verkeerd getypte cijfers) en een veldoverstijgende WiFi Enterprise-waarschuwing wanneer EAP is geselecteerd maar identity leeg is. Inline, niet-blokkerend, hergebruikt het bestaande VALIDATION_RULES-register.
- QR Lab nu één klik vanaf Download (N5), een chip met streepkader ("Test voor je print in QR Lab →") staat in lijn met de downloadknoppen zodat verificatie zichtbaar is op het exportpunt.
- Geavanceerd opent taakgericht (N19.1): de categoriestrip is nu georganiseerd op wat je doet in plaats van welke symbologie het is. Negen workflowbuckets, Dagelijks delen, Evenementen & locaties, Media & bestanden, Marketing & reviews, WiFi & telecom, Betalingen & bankzaken, Retail & GS1, Boarding & ID, Auth & dev, vervangen de oude symbologietaxonomie (Dagelijks / Zakelijk / Betalingen / Identiteit / Beveiliging / Industrieel / Geavanceerde standaarden). Alle 105 type-knoppen geremapt; voettype-raster geherorganiseerd om bij te passen.
- Authoritypush (N3): nieuwe /standards/-hub met acht volledige referentiepagina's, GS1 Digital Link (Sunrise 2027, live GTIN-controlecijfervalidator), TOTP & HOTP (RFC 6238 / 4226, live Base32-entropy-validator, authenticator-compatibiliteit), Swiss QR-bill (SIX IG v2.3, live CH/LI IBAN-validator met QR-IBAN-detectie), AAMVA-rijbewijs (CDS v10, element-codetabel, IIN-tabel, lawful-use-framing), eSIM-activering (LPA) (GSMA SGP.22, iOS 17.4+ / Android 13+ compatibiliteit), EMVCo-handelaarsQR (MPM/CPM-structuur, regionale derivaten PIX/UPI/PromptPay/SGQR/DuitNow, MCC-tabel), Micro QR & rMQR (ISO/IEC 18004 Annex M + ISO/IEC 23941, capaciteitsgrafieken, specialistische scannercompatibiliteit) en ZATCA-e-factuur (Saoedische FATOORA, TLV-tags 01–09, Fase 1 vs Fase 2). Elke pagina: speclink + canonieke testvectoren + live validator waar van toepassing + valkuilen + scannercompatibiliteit + gedateerde volgende-review. Eerste stap richting het encyclopedisch authoritydoel.
- Publieke testcorpus-scaffold (N2): nieuwe /proof/corpus/-pagina die de methodologie documenteert die iedereen kan gebruiken om scannercompatibiliteitsclaims te auditen, download de fixtures, regenereer QR's, scan met je eigen vloot, rapporteer discrepanties. Samengestelde verwachte-scanresultaattabel met 18 rijen over iOS Camera, Android Camera en pro-scanners. Linkt /test-vectors/ (de developer-JSON) en /standards/ als de authoritylaag erboven.
- Eerdere Reviewer #6-items vandaag verzonden in eerdere commits: tegelraster jobs-eerst (N14), "Het meest betrouwbare QR-tool op het internet"-merkzin (N17), commandopalet (N19.2), expertpresets (N19.5), payload-inspector (N19.10), canonieke <title>-formaatsweep (N20).
- Vertaalbacklog: N14- en N17-tekst is in 25 talen; alles uit de Reviewer #6-afronding van vandaag (N19.3 / N19.4 / N19.7 / N19.8 / N19.9 / N19.11 / N5 / N6 / N7 / N15 / N16 / Pro SSO/SCIM) is voorlopig alleen Engels en valt terug op Engels in andere locales tot de volgende vertaalpass.
2026-04-17, Keep-Alive live, Pro roadmap + supportpagina's, webhook-auditfixes
- Keep-Alive-tier live op Pro: $4/mnd, $36/jaar of $240 Decade (10-jaar prepay, $2/mnd effectief). Behoudt bestaande codes met een 30-daagse afkoelperiode voor bestemmingsbewerkingen; geen nieuwe codes, geen seats, geen API. Migratie 007, drie Stripe-producten, webhook-pad voor de eenmalige Decade-betaling, planpoorten in dashboard/codes/edit. De "Levert Q3 2026"-banners op /compare/ en /no-lock-in/ teruggedraaid.
- Nieuwe pagina op pro.qr.abundera.ai/roadmap/: wat is verzonden, Q3/Q4-toezeggingen met kill-criteria, expliciete lijst van dingen die we niet bouwen.
- Nieuwe pagina op pro.qr.abundera.ai/support/: responstijddoelen per tier, adres voor security disclosure, scope.
- Stripe-webhookfixes: idempotency-race (kon een opnieuw verstuurde betaling slikken), dedup via SELECT vóór afhandelen, INSERT bij succes. Decade-betalingshandler werpt op ontbrekende/onbekende price_id of niet-overeenkomende tier in plaats van stilletjes te droppen.
DEFAULT_SEAT_LIMITongedefinieerd in team-invite-accept. Signature-tolerantie 60s → 300s.incomplete_expiredmapt naartrialing(wasexpired). - Docs:
ABUNDERA_JWT_AUDIENCESgedocumenteerd als verplicht;PLAN_PRICE_MAP-schema indocs/INTEGRATIONS.md; ongebruikteABUNDERA_SERVICE_SECRET-verwijzingen verwijderd. - Tests: 70 geslaagd. 8 toegevoegd voor Keep-Alive-predicaten en de 30-daagse afkoelperiode.
2026-04-16, Pro-launch, prijsladderherwerking, externe-review-vervolgen
- Pro-portaal live op pro.qr.abundera.ai.
- Prijsladder (maandelijks / jaarlijks gefactureerd per maand): Solo $12/$9, Business $39/$29, Team $129/$99, Agency $449/$349, Enterprise $1.800/$1.500. Jaarlijks is de standaardselectie op het prijsraster.
- Expliciete maandelijkse scanlimieten (50K / 250K / 1M / 4M / 25M) vervangen "unlimited". Het overschrijden van de limiet breekt geen omleidingen; we meten overschrijdingen tegen het lijstnotering van de tier ($0,06–$0,18 per 1K scans).
- Elk tier heeft een expliciet codeaantal (500 / 2.500 / 15K / 75K / 500K), geen "unlimited*"-kleine lettertjes.
- 13 betalingslandingspagina's toegevoegd: Apple Wallet, Google Wallet, EPC Girocode, BLIK, Interac, MB WAY, GCash, Maya, Kakao Pay, Naver Pay, LINE Pay, iDEAL, Boleto. Type-aantal 91 → 104; sitemap nu 3.224 URL's.
- Scan-preflight uitgebreid van 4 generieke voorwaarden naar 8 taakspecifieke scenario's (menusticker, raamposter, lanyard, schaplabel, magazijnlabel, outdoor-bewegwijzering, verpakking, bedrijfskaart). Cijfer C/D/F toont een pre-download-modal.
- /compare/-prijsmatrix opgesplitst in zes capaciteit-gematchte groepen. Concurrentinvoer toegevoegd voor Bitly, Flowcode, Uniqode, QR Code Chimp, QRTIGER, elk gedateerd en gemarkeerd voor maandelijkse herverificatie. Maandelijkse kosten per code getoond op elke rij.
- Count-drift-check in pre-deploy-script: scant alle gegenereerde pagina's onder
site/op hardgecodeerde type-aantallen. De 91/104-drift op /compare/ werd verzonden omdat de oude check slechts drie pagina's volgde. - Pro-site-framing: "Gratis is om te bewaren. Pro is om te veranderen." doorgevoerd op /no-lock-in/, /static-vs-dynamic/ en de homepage Pro CTA.
- Stripe-producten gemaakt via het idempotente
stripe-setup.py-script (Solo + Team verhoogd naar rev 2 voor de nieuwe bedragen).PLAN_PRICE_MAPhoudt zowel oude als nieuwe price-ID's vast zodat bestaande abonnees in kaart blijven. - Overig: compat-detailstrip boven generatorvelden, homepage-vertrouwensstrip, versheidsstempel op elke pagina, /accessibility/-skeletpagina, /for/ industriepresetpacks (8), discoverability-hint Wizard/QR Lab, count-audit (120 → 336 iconen, 24 → 50 BCD-presets), repo-taalscrub (repo is privé; "Open-source generatorcode" → "Client-side code in je browser auditbaar"), OG-afbeelding opnieuw gegenereerd met een geldige iCalendar-event-QR.
2026-04-15, Simple/Geavanceerd, /compare/, Opslaan-in-Pro
- Simple/Geavanceerd-toggle op de homepage. Simple cureert 8 dagelijkse typen (URL, WiFi, vCard, E-mail, Telefoon, SMS, Event, Tekst); Geavanceerd herstelt de volledige 104. Modus is plakkerig in
localStorage; landingspagina's voor niet-Simple-typen schakelen automatisch. - /compare/-concurrentmatrix verzonden: feature-per-feature tegen QR Code Generator, QRCode Monkey en Uniqode. Gedateerd, maandelijks opnieuw beoordeeld.
- "Opslaan in Pro"-knop op de gratis site: één-klik promoot een gegenereerde code naar het Pro-portaal. Status reist heen en weer via URL-hash; niet-aangemelde gebruikers landen terug op de generator met hun werk behouden.
- Categorietab-scrollpijlen op desktop; smooth-scroll op mobiel.
- Geschiedenisherstel schakelt automatisch over naar Geavanceerd wanneer het type van een opgeslagen code niet beschikbaar is in Simple-modus.
- Pro CTA-tekst verzacht; anti-gijzelaarsverhaal (statische backup-QR, 90-daagse genadeperiode, domeinportabiliteit) naar voren gehaald.
2026-04-14, Pro-portaal online, 3 nieuwe typen, autofill-fix
- Pro-portaal (
pro.qr.abundera.ai) end-to-end online. - Drie nieuwe typen op de gratis site: M-PESA Kenia (EMVCo MPM), Videovergadering (Zoom/Meet/Teams/Webex-snelkoppelingen), Coupon/Promocode.
- GS1 Digital Link-type ondersteunt nu alle 12 Sunrise-2027-verplichte Application Identifiers.
- Nieuwe SEO-pagina's:
/static-vs-dynamic/,/no-lock-in/(contractueel: 90-daagse genadeperiode, één-klik export, 30-daagse GDPR-verwijdering, statische backup-QR). - Autofill-fix (zesde poging): per-type veldblokken zijn echte
<form>-elementen met hun eigenautocomplete-tokens; inactieve formulieren krijgendisplay: nonezodat Chrome de off-screen invoervelden niet markeert. vCard/Address/Contact/WiFi-Enterprise-verticale groepering werkt nu over Chrome, Safari, Firefox. Playwright-harnas op 0 schendingen. - Reviewfunnel: platformdropdown (Google/Yelp/TripAdvisor) met platform-specifieke placeholdertekst.
- Wizard: 8 kapotte verwijzingen naar resultaat-slugs hersteld.
- Header/footer geünificeerd via gedeelde partials; tool-pagina's (Wizard, QR Lab, Test Vectors) verplaatst naar hetzelfde templatesysteem.
- Pre-deploy-check: interne-link-validatie + ruwe-Engels
showToast()-bewaking. - BCD-fixes: verticale lay-outstabiliteit, regressie landingspagina-UI, RFC-linklabels, watermerkartefact.
- Gegenereerde landingspagina-HTML wordt niet meer in git bijgehouden (wordt nog steeds gedeployed; git houdt het sjabloon en de generator bij).
2026-04-13, 25-talen-pariteit, header/footer-redesign, Playwright-harnas
- 6.660 Engelse-fallback-sleutels vertaald in 25 taalbestanden. Niet-Engelse landingspagina's vallen niet meer terug op Engelse strings. Vertaalpijplijn herfactureerd in een validator/planner.
- i18n uitgebreid naar de tool-pagina's: Wizard, QR Lab en Test Vectors hebben nu 25 taalvarianten, met hreflang-tags en sitemap-vermeldingen.
- Playwright round-trip-harnas: genereert een code voor elk type in elke taal, decodeert het canvas, controleert velden. 0 schendingen.
- Header/footer-redesign: slanke header, 3-koloms-footer overeenkomend met het sign.abundera.ai-patroon. Mobiele hamburgerlade toont nu de nav-items wanneer geopend (was eerder kapot).
- Klik op QR-voorbeeld → zoom-lightbox. Label toont type-naam + eerste invoer (toonde eerder ruwe payload).
- Eerste-pass autofill-fix (correct geland 2026-04-14).
- Type-zoekopdracht onthult geavanceerde typen; sluit bij keuze; lege categorietabbladen verborgen in Populair-modus; geschiedenisherstel schakelt type inline om in plaats van te omleiden.
2026-04-12, 26-talen-pariteit, 13 nieuwe payload-typen, 3 niet-QR 2D-barcodes
- Volledige 26-talen-pariteit: elke Engelse sleutel bestaat in elk taalbestand (1.302 sleutels × 25 talen). 5.533 entries toegevoegd over 4 passes (eigennamen, korte labels, formulierveldlabels, toasts, hints). De 30 merkbetalingshints blijven Engels by design, URL's en merknamen zijn gezaghebbend in het Engels.
- Dedupe: 113 verouderde duplicaat-sleutelblokken verwijderd in 19 taalbestanden (drift uit eerdere rebases).
- Infopagina-headerfix: blog/about/privacy/changelog gebruikten
.brand/.header-inner/.brand-text-klassen zonder bijbehorende CSS. Overgeschakeld naar dezelfde.logo-opmaak als de hoofd-app. - 4 op standaarden gebaseerde URI-typen: HOTP (RFC 4226), eSIM (GSMA SGP.22 LPA), SIP/SIPS (RFC 3261), MMS/MMSTO.
- WPA2/WPA3-Enterprise WiFi: breidt het
WIFI:-formaat uit met EAP-methode, fase-2-auth, identity, anonieme identity. - 6 regionale betalingstypen: Alipay, WeChat Pay, Swish (SE), Vipps (NO), Mercado Pago (LatAm), Payconiq (Benelux).
- 3 niet-QR 2D-barcodes: Data Matrix (ISO 16022), Aztec (ISO 24778), PDF417 (ISO 15438). bwip-js (~1 MB) lazy-geladen alleen wanneer een van die typen wordt gekozen.
- 26-talen showcasesectie toegevoegd aan de homepage met native-script-links.
- Pre-deploy-auditscript:
BATCH_VALID_TYPESsync-check + ruwe-EngelsshowToast()-bewaking. - Footer, landingspagina's en i18n-sleutels toegevoegd voor alle 13 nieuwe typen (Engelse bron).
2026-04-11, BCD-foto-URL-fetch, voorbeeld-sticky, uitvouwbare presets
- BCD: foto-URL-veld haalt nu remote afbeeldingen op en inlinet ze als data-URL's zodat het exportcanvas niet wordt vervuild door cross-origin-loads (PDF/PNG-export werkt nu op hosts zonder CORS).
- BCD desktop-lay-out: voorbeeldpaneel is nu
position: sticky, dus wanneer een gebruiker elke sectie uitvouwt scrollen de besturingselementen vrij zonder zicht op het live-voorbeeld te verliezen. (Eerder zou het uitvouwen van Inhoud + Lay-out + Opties Show-Fields off-screen duwen.) - BCD-presetraster is nu uitvouwbaar, toont in eerste instantie 12 lay-outs met een "Toon alle lay-outs"-toggle, spiegelt de iconenkiezer-UX.
- Tagline + QR-bijschriftinvoervelden opnieuw geskinned: gestapeld label + invoer over volledige breedte (was krappe 150px sidecar).
- Scanability-badge verhoogd van
bottom: -24pxnaar-18pxzodat hij niet meer over de kopieerknop valt. - Batch-CSV-instructies noemen nu Google Sheets, Excel, Numbers expliciet.
2026-04-08, Sectorspecifieke pictogrambibliotheek
- 24 nieuwe centrumlogo-pictogrammen (96 → 120) gericht op gezondheidszorg, voeding & dranken, tech, financiën-verticalen.
- 10 nieuwe BCD-indelingspresets (40 → 50): Concrete, Honey, Indigo, Luxe, Midnight II, Ocean II, Slate, Verdant, Wine, Candy.
- Cache-busterstrategiebug:
?v=-params oppage-init.js+lang-redirect.jsontbraken op landingspagina's, wat veroudere modulebelading na deploys veroorzaakte. Opgelost.
2026-04-04, BCD-verloopachtergronden + achterkant kaart + 12 nieuwe presets
- BCD: 12 nieuwe presets (Dark Mode, Pastel, Ocean, Cherry, Slate, Emerald, Amber, Mono, Rose, Midnight, Sand, Carbon). Totaal 36 presets.
- Door de gebruiker beheerde verloopachtergronden met tweede kleurenkiezer.
- Kaartachterkant renderen met bedrijf + tagline + CTA-tekst.
- Rij sociale pictogrammen (LinkedIn / X / Instagram).
- Adresblok-rendering vanuit vCard-velden.
- Visuele preset-thumbnails, elke preset-knop rendert nu een mini-canvas in plaats van een placeholder.
2026-03-29, BCD-revisie + 600 DPI-export
- Business Card Designer inklapbare accordeongedeelten, sticky mobiele preview, sticky exportvoettekst.
- Hex-kleureninvoervelden met bidirectionele kleurenkiezersynchronisatie, kleurenpaletswatches.
- 4 fotovormen (cirkel, vierkant, afgerond, zeshoek).
- Exportresolutie verhoogd naar 600 DPI voor scherpe afdrukuitvoer.
- Kebabmenu: Sjabloon exporteren, Sjabloon importeren, Verras me, Kaart delen, Pagina afdrukken (10-up US Letter + A4).
- Foto-uitsnede gedwongen vierkant. Minimum-data-bewaking voor het openen van de designer.
- BCD-presets uitgebreid: 8 nieuw visueel onderscheidend (Neon, Art Deco, Sunset, Forest, Brutalist, Kraft, Nordic, Retro 80s). Totaal 24 presets.
2026-03-22, 20 nieuwe QR-typen + Link-in-Bio + concurrentievergelijkingen
- 20 nieuwe QR-typen (35 → 55): YouTube, Apple Music, Google Review, Yelp Review, TripAdvisor, Venmo, Cash App, Support/Tip Jar (Ko-fi/Patreon/BMAC/Liberapay), TWINT, Bizum, PayNow (SG), PayID (AU), ZATCA (SA), BIP-21 Bitcoin + Lightning, webcal://, JPQR (JP), HKFPS (HK), DuitNow (MY), MoMo (VN), Link-in-Bio.
- Link-in-Bio rendert de volledige biografie-pagina vanuit de URL-hash van de QR, geen backend, geen account, geen tracking.
- /embed/ iframe-widget (postMessage-API voor parent-integratie).
- Concurrentievergelijkingspagina's /vs/ (26-taalvarianten).
- @abundera/qr npm-pakket + CLI met 25 type-encoders.
2026-03-15, 96 centrumlogo-pictogrammen + 5 nieuwe talen
- 96 centrumlogo-pictogrammen (12 → 96): crypto, communicatie, media, utility, commerce, transport, natuur, voedsel, mensen, evenementen, 12 smileys, 18 sociale-netwerk-glyphs (X, Facebook, Instagram, LinkedIn, TikTok, YouTube, Pinterest, Reddit, Snapchat, Discord, Telegram, GitHub, Threads, Bluesky, Mastodon, Twitch, Signal, Medium). Uitvouwbaar via <details>-toggle.
- 5 nieuwe talen (21 → 26): Zweeds, Tsjechisch, Deens, Noors, Fins. 1.106 sleutels elk met native vertalingen.
- EPS-export (embedded-JPEG Level 2 PostScript, ASCII85-gecodeerd) voor printshop-workflows (Illustrator, InDesign, CorelDRAW).
- Geanimeerde GIF-export (gif.js, 8-frame regenboog).
- BCD SVG-export, BCD JPG-export.
2026-03-08, Platformaudit + toegankelijkheidssweep
Bug-bash sprint: 3 KRITIEK + 7 HOOG + 10 GEMIDDELD problemen opgelost.
- CSP inline-scriptschending op alle 55 landingspagina's, verplaatst naar
data-qr-preselect-body-attribuut. - Service worker verouderde-cachebug, query-strippe sleutels → volledige URL + stale-while-revalidate.
- Form-type-desync bij klikken op BCD-pil op niet-vCard-landingspagina.
- Achtergrondafbeeldingszichtbaarheid (opacity-slider, modules op 90% alpha, crop-modale routering).
- Crop-modale mobiele overflow.
- Wheel-zoom kaapt muisscroll (volledig verwijderd).
- Avatar IP-lek gemitigeerd (referrerpolicy + no-referrer header).
- WiFi batch open-network-fix, MeCard batch-veldpariteit, TOTP base32-validatie.
- WCAG 2.5.8 aanraakdoelen (44×44 minimum bij grof aanwijsapparaat).
- aria-hidden-sweep op 87 decoratieve SVG's.
- prefers-reduced-motion respect.
- Toast aria-live, focus-visible-ring, crop-toetsenbordnavigatie, overflow-menu Home/End-toetsen.
- Font-preload-optimalisatie.
2026-03-01, 15 op standaarden gebaseerde typen + scanbaarheidsvalidator
- 15 nieuwe QR-typen: TOTP/2FA, Swiss QR-bill (met verplichte rode Zwitserse kruisoverlay), PIX (Brazilië), PromptPay (Thailand), EMVCo generieke handelaar, Lightning BOLT11, SSH-openbare sleutel, OpenPGP-openbare sleutel, WireGuard-configuratie, GS1 Digital Link, Spotify, Fediverse (Mastodon/Bluesky/Nostr/Matrix/Threads), Geo URI, Magnet, volledige iCalendar.
- Scanbaarheidsvalidator, draait jsQR over het gerenderde canvas en waarschuwt bij decodeerfouten.
- Afdrukbare URL-fallback, toggle voegt de bestemmings-URL toe als platte tekst onder de QR.
- jsQR lazy-geladen (bespaart 262 KB eager payload).
2026-02-22, Multi-stop verloopeditor + kleuren per oog
- Multi-stop verloopeditor (max. 5 kleuren).
- Per-oog onafhankelijke binnen/buiten-kleur.
- Achtergrondafbeelding QR-modus (opacity-slider, EC=H auto-geforceerd).
- Pinch-zoom op het voorbeeldcanvas.
- Web Share API voor QR-codes en bedrijfskaarten.
- WebP-exportformaat.
- Ongedaan maken/Opnieuw (Ctrl/Cmd-Z, 50-stap-buffer).
- Willekeurige sjabloonknop ("Verras me").
2026-02-15, Privacy- & beveiligingspagina's + i18n-verharding
- 4 nieuwe geloofwaardigheidspagina's: /privacy/, /terms/, /security/, /about/, in alle 21 talen.
- /.well-known/security.txt gepubliceerd.
- 29 hardgecodeerde Engelse strings vervangen door
qrT()-aanroepen; ~100 nieuwe i18n-sleutels vertaald in alle 21 talen. - Inline-scripts geëxternaliseerd, CSP verhard (unsafe-inline geschrapt).
2026-02-08, Modaltoegankelijkheid + focusbeheer
- Focusval op alle 3 modals (bijsnijden, BCD, aangepaste dialogen).
- Toetsenbordnavigatie polish over het BCD-overflow-menu, taalswitcher en typeselector.
- Kritieke bugfixes: SVG-framegrenzen één pixel verschoven gerenderd, XSS-kwetsbaarheid in batch-zoompreview,
btoa()Latin1-fout bij klikken op preset-logo.
2026-02-01, Eerste lancering
- Abundera QR gelanceerd met 20 QR-typen, 40 sjablonen, batch-CSV-generatie (500 codes), Business Card Designer (300 DPI), 20 talen, 420 statische landingspagina's.
- Privacy-first: 100% client-side, geen accounts, geen tracking, geen dynamische omleidingscodes.