About MailMyCertificate
Built from a real organizer workflow — not a startup pitch.
Started as a Python automation script during a college event.
Built because I genuinely needed it.
The Real Story
I was Technical Lead for a GeeksForGeeks college club event. We had 300+ participants who needed certificates.
Google Forms gave us messy spreadsheet data. Names, emails, timestamps — plus plenty of unnecessary fields.
Existing tools felt frustrating. Canva was too manual. Most tools required uploading participant data or charged per certificate.
So I built a Python script overnight. It uploaded blank certificate templates, let me position text with X/Y coordinates, and imported CSV files.
Generated PDFs locally. Then learned SMTP automation to send emails with Gmail app passwords.
Realized every organizer faces this same problem. That eventually became MailMyCertificate.
name,email,timestamp John Doe,john@email.com,2024-03-15 Jane Smith,jane@email.com,2024-03-15 ...
# Position text at X,Y coordinates
draw_text("John Doe", x=150, y=200)
draw_text("Participation", x=150, y=250)
save_pdf("john_certificate.pdf")# Send via Gmail SMTP
server.login(email, password)
server.sendmail(email, recipient, msg)
attach_pdf("john_certificate.pdf")While rebuilding it, I kept a few things non-negotiable.
No participant uploads
I didn't want organizers uploading participant data to random servers just to send certificates.
Runs locally
Everything runs inside the browser so generation stays fast and private.
Built from a real workflow
The tool follows the same workflow I originally used during college events and hackathons.
Less setup, more shipping
No accounts, no dashboards, no unnecessary setup. Upload, generate, send.
Open Source
Tools that handle participant data should be transparent. Every line of code is publicly available — inspect how we handle data, verify our privacy claims, or host your own version.
View on GitHub"I already solved this problem for myself…
then rebuilt it properly for everyone else."