Back to All Work

Citizen PD

USADiagnosed CF7 limitations, recommended ACF Pro, scoped custom rebuild approach.
Citizen PD project preview — WordPress, Advanced Custom Fields (ACF), Contact Form 7 development by Deepak Jangra

The problem

Citizen PD's video submission form needed multiple-image upload support, and the form was built on Contact Form 7, which doesn't support repeatable fields without ACF Pro layered on top. The codebase underneath it had been heavily customized over time and was fragile enough that small changes carried real risk.

What I built

An honest diagnosis of the real constraint

I identified that Contact Form 7 simply can't support repeatable fields like multiple images without the ACF Pro premium add-on, and rather than patching around that limitation, recommended rebuilding the submission page as custom rather than continuing to force CF7 into a shape it wasn't built for.

A scoped path forward

I documented an approach for syncing CF7 field data to post meta via a webhook, though it wasn't confirmed resolved within the engagement's time constraints. I also flagged two separate, unrelated bugs along the way, Google and Facebook social login not working in production, and Google address autocomplete failing on the video upload form.

Working honestly within a hard cap

This engagement was explicitly capped at 10 hours, and the legacy codebase made most changes genuinely risky, hundreds of lines of code for what should have been small changes, with a real chance that touching one thing would break another. I scoped the work and the risk honestly rather than overpromising what could get done in the time available.

What actually changed

What changedBeforeAfter
DiagnosisUnclear why uploads failedRoot cause identified (CF7 limitations)
RecommendationNo clear pathACF Pro + custom rebuild scoped
ScopeUnbounded riskHonest assessment of time and risk constraints

Have a complex form that needs custom fields?

I diagnose form limitations and recommend the right architecture — whether that's custom code, ACF Pro, or a complete rebuild.