When I first got the request to create ID cards for a school, I didn’t think much of it.
It sounded straightforward: design a template, fill in the names, add photos, export, done.
But then the school shared the number of students: 10,000+.
That’s when I realized this wasn’t just a design task. This was a test of endurance.
My Photoshop Struggles
To be honest, I’m not a designer. I’ve only touched Photoshop a handful of times.
Every time I did, it felt too heavy, too complicated, and too slow for me.
Still, I gave it a try for this project. Big mistake.
- Photoshop would crash time and again, especially when I tried to batch process.
- It was resource-hungry, eating up my computer’s memory.
- Simple edits felt like moving mountains because I didn’t know all the shortcuts.
I quickly realized: Photoshop wasn’t for me.
Why I Prefer Canva
Instead of Photoshop, I always preferred Canva.
It’s quick, clean, and doesn’t overwhelm me with thousands of tools I’ll never use. In minutes, I can put together something that looks professional without needing advanced design skills.
For smaller projects, Canva worked perfectly. But for 10,000+ IDs, even Canva couldn’t save me. Manually duplicating, typing, and replacing photos would still take weeks.
I needed something else.
The Moment I Decided to Build

That’s when it clicked:
Instead of trying to be a designer or relying on tools that weren’t built for bulk work,
why not build my own solution tailored for this exact problem?
I imagined a system that could:
- Take student data from an Excel/CSV file.
- Use a Canva-designed template as the visual base.
- Automatically merge names, roll numbers, classes, and photos.
- Export everything into print-ready PDFs or individual image files.
The Challenges I Faced

Of course, the idea was simple. The execution? Not so much.
- Dynamic text placement: Names weren’t consistent lengths. I had to write logic to keep them aligned.
- Photo resizing and cropping: Every student photo came in a different size and aspect ratio. Some were passport-style, some were selfies. I had to normalize them so they looked clean on every card.
- Performance: Processing 10,000+ images could choke a script. I had to optimize loops and memory usage so it wouldn’t crawl.
- Print formatting: Schools wanted A4 sheets with multiple IDs per page. That meant learning how to generate layouts that were printer-ready.
- Simplicity: I didn’t want this to be “just for me.” I needed a simple UI so others could run it without touching code.
How I Built It

I decided to stitch the solution together with Python:
- PIL (Pillow) for working with images — resizing photos, placing logos, aligning text.
- ReportLab for creating multi-ID PDFs ready for printing.
- Tkinter for a lightweight desktop interface.
- Canva for creating beautiful templates I could drop into the system.
I also added logging to catch errors, so if something broke mid-batch, I’d know exactly why.
The result was my own custom ID card automation tool.
What This Meant for Me
This wasn’t just about finishing one project. Building this tool changed how I approached my work.
- What used to take weeks now takes minutes.
- I no longer depend on heavy software that slows me down.
- I can take on larger projects without worrying about scalability.
- Most importantly, I turned a repetitive, frustrating task into a smooth, one-click process.
The school was amazed at how fast I delivered. But honestly, I was just as amazed myself.
Lessons I Learned
Looking back, here’s what I took away from this experience:
- Photoshop isn’t always the answer. It’s incredible for design, but bloated and unreliable for automation.
- A bit of code can save countless hours. My script was only a few hundred lines, but it replaced weeks of manual work.
- Design + automation is unstoppable. Canva gave me professional-looking templates, and Python gave me speed and scale.
- Sometimes the best tool is the one you build yourself.
What’s Next
Right now, my tool runs as a desktop app. But I see room to grow:
- A web platform where schools can upload their student data and get instant downloads.
- Options for custom branding — logos, colors, backgrounds.
- Expanding beyond ID cards to certificates, report cards, and event badges.
This project started with frustration, but it’s turned into something far bigger: a foundation for future automation.
Final Thought
When I look back at those days of Photoshop crashing again and again, it feels almost funny now. What once felt like an impossible problem ended up being the push I needed to build something better.
By creating my own tool, I didn’t just solve a technical headache. I gave myself the power to scale, to save time, and to say yes to bigger opportunities.
Now, generating 10,000+ IDs in minutes is just another day at work.
And the next time I hit a wall with heavy, unreliable software, I know exactly what I’ll do:
stop fighting it — and build my own solution.