← All case files

Case file 001Certificates

The problem

“Every student who finishes a course needs a certificate. We make each one by hand.”

Solved

For
Islamic Desk · Seerat ki Dunya & Sarf ki Dunya
Built
Name-on-certificate app + automatic issuing
Stack
React · FastAPI · Pillow · Supabase · Urdu shaping
Result
3,400+ certificates, none made by hand
Before: one name, one certificate, all night3D pixel film · made by me

01 · The pain

One certificate took about 15 minutes. By hand.

Open the design. Type the name. Line it up. Export. Send it. Next student.

Then I built the system. Every square turned over without anyone touching them.

Certificates
0
Hours of manual work
0
8-hour working days
0
Each square is one certificate · 3,400 in total

02 · The fix

Type a name. That’s the whole job now.

This is a small copy of the generator, running right here. The real one does the same thing on a server for every learner who finishes.

Loading fonts…

Try a long name, or switch to Urdu. Click the certificate to move the name.

03 · How it works

Three pieces, and one hard problem.

  1. Design once, click where the name goes

    Upload the certificate artwork, click the spot for the name and the course, pick font, size, colour and alignment. That template is reused for every learner.

  2. A renderer draws each certificate

    A FastAPI service writes the name and course onto the template with Pillow and returns the image. English or Urdu, same template.

  3. An automation does the issuing

    It checks for new completions every 10 minutes and sends each learner their certificate. Nobody opens a design file any more.

The hard part

Image libraries can’t write Urdu.

They draw it letter by letter, left to right, so every name comes out in pieces and backwards. For courses taught in Urdu, that made the certificates unusable.

The renderer reshapes the letters so they join, reorders them right to left, sets them in Nastaliq, and shrinks a long name until it fits instead of running into the border.

ع‌ل‌ی‌ ‌ا‌ح‌م‌د
Straight out of the image library
علی احمد
After reshaping + right-to-left

04 · What changed

The work didn’t get faster. It disappeared.

Certificates issued
3,400+
Per certificate
15 min → seconds
Hours given back
~850

3,400 certificates × 15 minutes = 850 hours, about 106 eight-hour days.