A single-page web app for generating personalized certificates in bulk as PDFs. Everything runs in the browser — no server, no build step.
- Any image template — PNG, JPG, or any format the browser can render
- Visual editor with live preview
- Drag the name anywhere on the certificate
- Sample text input for positioning
- 10 Google Fonts + 4 system fonts (Georgia, Arial, Times New Roman, Courier New)
- Font size (10–1500 px), color, weight, and alignment (left / center / right)
- Auto-shrink max-width so long names stay inside the template
- Bulk generation — paste one name per line; case-insensitive duplicate detection with live counter
- Direct PDF export — uses the File System Access API to write one PDF per name straight to a folder you choose
The app is a 3-step flow:
- Upload — pick your certificate template image.
- Edit — drag the placeholder into position and tweak font, size, color, alignment, and max width. The preview updates live.
- Generate — paste your list of names, choose an output folder, and click Generate Certificates. PDFs are written to disk one at a time.
- Clone the repo.
- Open
index.htmldirectly in a Chromium-based browser (Chrome, Edge, Brave).- You can also serve it locally with any static server (
python -m http.server,npx serve, etc.).
- You can also serve it locally with any static server (
- Follow the on-screen steps.
No install, no dependencies, no API keys.
Folder picking uses the File System Access API, which is supported in Chrome / Edge / Brave and other Chromium browsers. Firefox and Safari are not supported.
- Pure HTML / CSS / vanilla JS — no build step, no bundler
- jsPDF for PDF generation (loaded via CDN)
- Google Fonts for typography
- File System Access API for direct-to-disk folder writing
All processing happens locally in your browser. Certificate templates and name lists are never uploaded anywhere.