Curating with Code: Crowdsourcing Photography
- Chris McNulty

- Aug 14
- 4 min read
Updated: Nov 10
I'm excited to announce my upcoming art show on November 7! I’m inviting you to help curate the final gallery.
Join Me in Curating My Art Show!
Over the past few weeks, I’ve been building a photo voting app — https://voting.chrismcnulty.net — that lets you compare photo pairs and vote for your favorites. It’s a simple, user-friendly experience designed for mobile. I built it using Replit, PostgreSQL, and a custom vibe-coded UI that reflects the aesthetic of my work.

How It Works
Here’s how it works:
You visit the site — no login required.
You vote on photo pairs (landscape vs. portrait, color vs. black & white, etc.).
Your votes help determine which images will be featured in the show.
This is more than just a tech demo — it’s an experiment in community-powered curation. I want the final gallery to reflect not just my vision, but yours.
Plus, I have a contest running now! If you signup, the person who submits the most votes by September 30 can win their choice of a free 12” print or 20% off any metal print in my store.
I’ve also launched a store at https://www.chrismcnulty.net where you can purchase prints of your favorite images. It’s a way to bring the show home — or gift a piece of it to someone else.

Your Help Matters
So if you have a few minutes, I’d love your help:
🗳️ Vote at https://voting.chrismcnulty.net
🛍️ Browse the store at https://www.chrismcnulty.net
📅 Save the date: November 7
I’ve been impressed with the depth of features I’ve been able to add to this app. To be fair, it helps that I have a technical background. I know what to ask for when debugging, creating security, data schema, conditional logic, UX, deployment, and more.
Features for End Users (Voters)
Core Voting Experience
No login required: Start voting immediately without creating an account.
Unlimited voting: Vote as many times as you want with no restrictions.
Smart photo pairing: An intelligent algorithm prevents duplicate pairs and ensures diverse comparisons.
Multiple viewing modes:
- Standard desktop view with stacked photos.
- Focus Mode for distraction-free side-by-side comparison (desktop).
- Rich mobile interface with swipe gestures and full-screen viewing.
Interactive Features
Personal leaderboard: Track photos you've voted for across sessions (stored locally).
Contest participation: Join quarterly contests to win prints (registration required).
Real-time progress tracking: See your voting count and contribution.
Purchase integration: Direct links to buy prints of photos you love.
Mobile & PWA Features
Progressive Web App: Install on your phone like a native app.
Offline capability: Continue viewing cached content without internet.
Touch-optimized: Swipe gestures and mobile-first interface.
Share functionality: Easy sharing via SMS, email, and social media.
User Account Benefits (Optional)
Contest eligibility: Compete for quarterly prizes (12" print or 20% off metal prints).
Persistent stats: Track your total votes and rankings.
Favorites system: Save photos to your personal collection.
Purchase history: Track your print orders.
Features for Photographers/Admins
Photo Management
Bulk upload: Add multiple photos at once via drag-and-drop.
Inline editing: Edit titles, descriptions, and purchase URLs without leaving the dashboard.
Category management: Organize photos into themed collections.
Hide/show controls: Temporarily remove photos without deleting.
Pairs feature: Link related photos (e.g., color vs. B&W versions) for special comparisons.
Analytics & Insights
Comprehensive statistics:
- Total votes and unique voters.
- Win/loss ratios for each photo.
- Underperforming photo identification.
- Date range filtering for trend analysis.
Test data management: Purge test votes while preserving real data.
Export capabilities: Download voting data as CSV for external analysis.
Contest Management
Quarterly contests: Automated tracking of voter participation.
Contest reporting: Detailed leaderboard with winner determination tools.
CSV exports: Download contest participant data.
Winner marking: Official winner designation system.
Custom contest text: Personalize contest rules and prizes.
Communication Tools
Announcement system: Display important messages to all users.
RSS news integration: Pull in photography news or blog posts.
Email notifications: Welcome emails and contest communications (when configured).
Privacy/Terms links: Customizable legal pages.
Security & Access Control
Master admin system.
Co-admin management: Grant/revoke admin privileges.
Two-factor authentication: SMS-based 2FA for admin accounts.
Backdoor access: Emergency admin access with a special code.
Business Features
Commerce integration: Link photos to your online store.
Configurable purchase URLs: Per-photo or global purchase links.
User registration toggle: Enable/disable signup based on your needs.
Multi-instance architecture: Prepared for expansion to text-based voting (Synozur).
Technical Advantages
PostgreSQL database: Robust data storage with backup capabilities.
Checkpoint system: Rollback to previous states if needed.
Mobile-responsive admin: Manage your app from any device.
Real-time updates: Changes reflect immediately for all users.
SEO optimized: Built for search engine visibility.
Thanks for being part of this journey — and for helping me shape what goes on the wall. Your involvement means the world to me!



Comments