Make Photo Competitions Simple

Running a photography club competition used to mean juggling spreadsheets, chasing emails, and manually tallying votes. I built Photo Competition Manager to change that.

This free WordPress plugin handles everything your club needs: member management, secure uploads, flexible voting, and beautiful results displays.

This will suit a photography club that uses WordPress for their website and that has a projector for their meetings. If you already run a photo league with projected images or prints but collect votes from your club members using pen and paper you’re the perfect candidate to try this plugin.

This is the very first release of this plugin. It has been used a couple of times to run several test photo competitions and one monthly league competition. However, bugs happen. I would love if your photography club used this plugin but I will need feedback to improve it. Run a couple of test competitions first to get used to how it works.

Getting Started in Minutes

The setup wizard creates all the required pages automatically. Select the pages you need, click a button, and you’re ready to go.

Manage Your Membership

The Members page is your central roster. Add members individually or bulk import from CSV. Assign grades, track status, and send magic-link upload invitations with a single click.

Each member gets a unique upload URL—no passwords to remember, no accounts to create. They click the link and upload.

Create and Track Competitions

The competitions dashboard shows a list of competitions, allowing you to edit them and send out upload emails to members. Only one competition may be active at a time, but a competition may have more than one category.

Create competitions with custom categories (Colour, Mono, Projected, etc), grade divisions (Beginner, Intermediate, Advanced), and submission quotas. Each competition can have its own rules without affecting your defaults.

Watch Submissions Roll In

As members upload, the submissions page displays thumbnails of every entry. You’ll see who’s submitted, which categories are filling up, and whose photos are still missing.

A Frictionless Upload Experience

When members click their magic link, they land on a clean upload form. They select their category, choose their image, and submit. The progress banner shows upload status in real time.

The plugin handles validation automatically—file types, dimensions, and quota limits are all enforced before the image is accepted.

Complete Control Over Voting

The voting controls page is your competition command centre. From here you can:

  • Open and close voting for each category independently.
  • Toggle the results display on or off.
  • Enable slideshow mode for in-person club nights.
  • Disable uploads once the submission deadline passes.
  • Show a QR code for members to scan with their phones to vote.

In the competition settings, you choose between token-based voting (unique links per member) or password-protected public voting. The voting controls page features a full-screen slideshow mode where members can vote together during meetings.

On the night of the competition we do the following:

  • Close uploads and hide results.
  • Show the slideshow with a 10 or 15-second delay as a preview.
  • Display the QR code and make sure every member can scan it and open the voting page.
  • Open voting and show the slideshow again.
  • When everyone has voted, close voting.
  • 2 members of the club will then go through the images and offer a critique, using the slideshow again but in manual mode this time.
  • Repeat for the next category.
  • When all the voting is done, toggle the results page on and display the “top 3” results, and then the anonymous results page on the projector.
  • Finally, an email is sent out to all members showing their score, ranking in their grade and the votes they received. Names are not attached to the votes for obvious reasons.

Voting By Phone

Members can vote on the competition using their phones after they have scanned the QR code on the voting controls page.

Results That Make Sense

When voting closes, the results dashboard breaks down every score by member grade. See vote distributions, identify your winners, and export everything to CSV for your records.

The frontend includes a responsive top-3 podium display perfect for announcing winners, plus full results tables with filtering by grade and category.

Built for Photography Clubs

Photo Competition Manager was built specifically for the way camera clubs actually run competitions:

  • Magic-link authentication means members don’t need WordPress accounts to upload.
  • Grade-based scoring supports clubs that split their membership by experience level.
  • Slideshow mode turns any screen into a projection-ready display.
  • CSV export keeps your archives intact.

Get Started Free

Photo Competition Manager is free and GPL. Install it from the WordPress plugin directory or from the plugins page on your WordPress site in the usual way. Navigate to the Competitions menu to get started.

Download Photo Competition Manager

The source code is available on GitHub if you want to contribute or customise:

View on GitHub

Questions? Open an issue on GitHub or post in the WordPress support forum. I’d love to hear how your club uses it.

Diego on a long walk

A four-panel Peanuts comic strip. Panel 1: Charlie Brown sits on a couch next to Snoopy and asks, "How would you like to go for a walk, Snoopy?" Panel 2: Snoopy excitedly jumps up and Charlie says, "Ha! I knew you would!" Panel 3: Charlie Brown and Snoopy stand outside as Charlie reflects, "All dogs like to go for walks..." while Snoopy dances excitedly. Panel 4: Charlie is pushing Snoopy along in a buggy as he says, "This isn't exactly what I had in mind..."

We have an 11-year-old chihuahua and while he enjoys going for walks, he’s happiest when it’s a short walk. Actually, he’s happiest when he’s cuddled up next to us in a blanket, but we all need exercise.

A black and white chihuahua with a grey muzzle sits in a buggy.
Diego in Dún Laoghaire

When it’s a longer walk, we bring his buggy and he sits in it, looking around, happy to be with us and king of all he observes from his high vantage point.

When our previous dog, Oscar, got too old to walk much we did the same for him, but he had to make do with a child’s stroller. We didn’t know you could get doggy buggies back then!

A shih tzu in a child's buggy on a steep country road.
Oscar on Cape Clear Island

In my own world

Dramatic action shot of goalkeeper in blue jersey diving horizontally through air with arms outstretched attempting to save shot during local football match, with player number 8 in white and black visible in foreground and crowd of spectators including children in red and white jerseys watching from behind goal net at community football pitch with yellow corrugated wall and wheelchair sign visible in background.

Sometimes I feel bad that I have no idea that Ireland are playing a match, or when I see all the threads on the Ireland Reddit and it’s the first I even hear we were playing Portugal.

But then I remember I have my own hobbies and obsessions they won’t know a thing about.

My wife was told by a friend that she’d never meet a man who wasn’t interested in sport. I guess she did.

How deaf are you?

So here’s a fun milestone nobody wants to hit: my hearing’s genuinely gone downhill. I’ve suspected it for years (you know that thing where you keep asking people to repeat themselves and they start giving you that look?), but it all got properly real earlier this year when tinnitus decided to move in permanently. A trip to the audiologist confirmed what I already knew. High-pitched sounds have basically ghosted me. Turns out I’m now officially a candidate for hearing aids, which feels like one of those adulting moments nobody warns you about.

My Samsung phone has an “adapt sound” feature that allows you to train it on your hearing, and the graph it created for me a couple of years ago looked very like the one the audiologist created.

Anyway, enough about my failing biology. How’s your hearing holding up? I stumbled across this completely unscientific but of course compelling YouTube video that tests what frequencies you can still detect, and let me tell you it was humbling. I couldn’t hear anything past about 6400Hz. It could be my headphones, I suppose, but I know it’s not. Not really.

Look, I’m not here to lecture you, but seriously: wear ear plugs. Protect your ears. Future you will thank present you for not being stubborn about it. Learn from my mistakes and all that.

Light Is So Weird

Why it acts like both a wave and a particle and gets stranger still.

If you remember the double-slit experiment from school, this video is a super accessible refresher and a reminder of just how weird light really is. It behaves like both a wave and a particle.

But it gets even stranger. When scientists tried to record which path the photons took (slit 1 or slit 2), the wave pattern disappeared. Even more baffling, this happened even when they recorded the path after the photon had already hit the screen.

Stick around until the end of the video to see the quantum eraser in action. So very weird.

Oh, and of course the related videos has a video by Sabine debunking the quantum eraser idea.

Ha, what a rabbit hole. What she says makes total sense. I’m going to watch her bomb video next.

I asked ChatGPT to explain what’s going on. It went way over my head. Further study is required.

Fisher or hunter street photographer?

Sean Tucker gives some great advice to landscape photographers, likening landscape photography to fishing in street photography. Fishing is the act of finding an interesting place on the street and waiting for someone to walk through. I’m more of a hunter. I keep walking, looking for an interesting subject or situation, rarely stopping. You’ll see many examples of that in my Edinburgh photos.

“It’s a great place for landscape photographers to start. They’re used to fishing, to framing a composition first and waiting for the weather or light to come to them.”

I’m always wondering if I should post photography stuff on this blog here, or should I write my words about photography on my photoblog? What say you, gentle reader? Should I care at all? It’s a personal blog after all.

Most people change with time

Some people don’t change however, and never learn from their mistakes.

“IT’LL be dark at 5pm before you know it” one parent dropping their child off at school cheerily said to themselves as the telltale sign that an Irish summer is over, Enoch Burke hovering at school gates, has arrived once again.

“Fuck sake,” confirmed much of the nation as the emergence of a wild Burke haring back to its unnatural habitat of outside a premises they haven’t worked at since 2022, signaled the summer is well and truly over.

Geotag your photos in Lightroom Classic

A gentleman in tan hat and plaid shirt standing at a busy car boot sale in Bantry with market stalls and shoppers browsing various items spread on tables, County Cork.

Geotagging your photos means adding location data to the image so they can be displayed on a map. Be aware that doing so might reveal sensitive information you’d rather keep secret like your home address.

You can of course remove location data when you export images, like I did with the images in this post.

Anyway, here is how I geotag my photos.

For photos I’ve already taken, I use Google Timeline and export it from my Google account using Google Takeout. You’ll get a rather large “Recent.json” file out of that. To convert that file into the GPX format usable by Lightroom Classic, use this Python script which I’ve already covered in this post.

When I go out with my camera now I use the Anrdoid app, OpenTracks. It’s a free app you can grab from f-droid, but there’s also a paid version on the Google Play Store if you want to support the developer. You can also use GPSLogger, a free app that has the advantage of being able to save your .gpx files to Dropbox or Google Drive.

On iOS, the myTracks app appears to do a similar job but I can’t test it. Please comment if you have tried it or know of decent alternatives.

To geotag your photos in Lightroom Classic, the Adobe documentation on the subject is excellent. Once you’ve opened the Map Module and done it once it’s easy to do again. When you geotag your photos, the Map Module will look like this.

A satellite view of Cork City with a blue line showing where I walked and orange squares showing how many photos I took at various locations.

There is also Jeffrey’s “Geoencoding Support” Plugin for Lightroom that I’ve used for years but maybe it’s because of changes to LrC in recent years, it’s gotten really slow for me. I usually use the built in LrC functionality in the Maps module now.