Certiva: Turns a PDF template and a spreadsheet into hundreds of certificates, without leaving the browser.

your browser · nothing is uploadedevery rowYour filesPDF templateXLSX or CSV listReadpdf.js rendersxlsx parses rowsField editorplace, map, formatlive previewpdf-libstamps every rowjszipbundles every PDFCertificates.zipone download

How it's built

Everything happens inside your browser: reading the files, placing the text, stamping every certificate and zipping them up.

Stack

React, TypeScript, Vite, Tailwind, React Router · pdf.js, pdf-lib, xlsx, jszip

Hard parts

Nothing leaves the browser

Parsing, rendering, stamping and zipping all run locally, so participant data is never uploaded.

Names that always fit

Each field has a minimum size, so long names shrink to fit instead of spilling out.

One bad row doesn't stop the batch

Failures are collected and reported while every other certificate still generates.

Project
Certiva
Drawn by
Arunan K.
Year
2026
Scale
Not to scale
Sheet
05 / 08

05 / 08 · Personal · 2026

Turns a PDF template and a spreadsheet into hundreds of certificates, without leaving the browser.

Role
Solo project
Built with
React, TypeScript, Vite
Status
Open source

Visit site ↗Source code ↗

Walkthrough coming soon