Retoucher of the Year is the world’s first international competition dedicated entirely to the art and craft of retouching. Born in Europe and expanded worldwide, the contest runs national competitions across 50+ countries and regions. The client came to us with polished design and clear contest rules; they needed a robust web platform that handled country selection, paid multi-category registration, assignment delivery, jury workflows, and dynamic reporting — while keeping contestants, jurors, and admins in sync.

We delivered a secure, scalable contest platform that makes registration, submission, judging, and reporting straightforward for users and admins alike. The system enables national visibility and a path to the global Retouch League™, putting artists in the spotlight rather than behind the scenes.

Key Features

Contestants set up their country from the profile and are automatically shown the contests available in their phase and region.

Users can select and pay for one or multiple categories using Stripe; payments are tracked per entry.

Contest assignments are released during contest windows; frontend enforces submission deadlines and file requirements.

Admins assign submissions to jurors; jurors access entries in their Payload accounts, submit scores and feedback.

The platform uses Hanko for authentication, meaning user passwords are never stored in the system. Hanko securely handles authentication and enables multiple sign-in options such as passwordless email login, Google login, and SSO — delivering a fast, secure, and frictionless user experience.

Our Challenges

Submission & Jury Assignment Design

Building a clear, auditable flow so submissions are correctly routed from contestants → admin → jurors, status and deadline rules.

Country/Phase Logic

Ensuring registration choices dynamically control available contests and assignments for each phase and territory.

Our Solution

We designed an end-to-end workflow that maps contest business rules to clean technical building blocks:

Technology We Used

file_type_nuxt

Nuxt

SSR/SPA flexibility

Payload

Node.js headless CMS

file_type_tailwind

Tailwind CSS

PostgreSQL

Stripe

Cloudinary

Hanko

Technical Overflow

1

Modeled contest entities in Payload: Countries, Phases, Contests, Categories, Entries, Submissions, Reviews, Users, Reports.

2

Frontend (Nuxt)

– Country-aware registration forms and contest listing pages.
– Secure upload UI with progress and client-side validation.

3

Backend (Payload + Node):

– Admin tools for assigning jurors and editing contest phases.
– Score aggregation logic as server-side hooks (Payload hooks) to compute results after reviews are submitted.
– Juror dashboard showing assigned submissions and feedback forms.

4

Reporting

– Payload queries and templated export endpoints for dynamic CSV/JSON exports and on-site leaderboards.

5

Ops

– Deployments on VPS, automated scripts for migrations, backups of PostgreSQL, and monitoring for queues and web processes.

Success Factors

01
Business-driven data model
Every contest rule was captured in Payload collections so non-devs can adjust phases, categories or prize rules.
02
Transparent jury workflow
Every contest rule was captured in Payload collections so non-devs can adjust phases, categories or prize rules.
03
Fast asset delivery
Cloudinary + CDN ensures exhibition-quality playback and fast loading site visitors.
04
Extensible & maintainable stack
Nuxt + Payload + PostgreSQL is easy to extend for future phases, more countries, or new contest types.