EVANKING
ConsumerWatchdog.org

Flagship platform

ConsumerWatchdog.org

The flagship platform for one of America's leading nonprofit advocacy organizations — built and run solo, end to end.

There is no ticket queue. There is a reporter on deadline, a press conference tomorrow, a litigator who needs a case document served through the site at 11pm, and a donor database that absolutely cannot lose a record. You are the queue.

ConsumerWatchdog.org has been my responsibility end to end: front end, back end, email platform, telecom, broadcast integrations, donor CRM, archive tooling. All of it threads through one person.

Why Drupal, and not something newer

A nonprofit with a decade of policy reports, legal filings, press releases and video archives does not have a blog. It has structured content with taxonomies, editorial workflow and access control, and it has to still be readable in ten years. That is Drupal's job and it is very good at it. Around it sit Mailchimp for newsletter segmentation, NationBuilder for advocacy actions and petitions, Salesforce for institutional relationships, and FreePBX with Asterisk running the press office phone system.

Press conference day

A press conference is a product launch with a hard start time. Reporters need the release, the visuals, the b-roll and a quotable expert at precisely the same moment. The media kit has to go public the instant the embargo lifts, the email blast has to land in reporter inboxes within sixty seconds of that, and the stream has to be live the moment the lectern mic opens.

I built the publishing workflow so all three fire from one action. It is not exciting engineering. It is boring, reliable, three-lines-of-output-in-a-terminal engineering — which is exactly what a press operation needs at 9:57am before a 10am conference.

The newsroom problem

Consumer Watchdog produces enough of its own video that the site has to behave like a lightweight newsroom CMS. Every press conference gets a public archive page. Every television hit gets its clip hosted and embedded on the topic page where it belongs. The YouTube API handles the mechanics, but the mapping from this clip is about oil and gas to put it on every relevant case page is editorial logic, and it has to be mine.

What actually breaks

A mass email flagged as spam because an ISP rotated its reputation rules overnight. A donation form that stopped posting to the CRM because a third party pushed a silent schema change. A phone tree dropping calls because a carrier deprecated SIP ALG at their network edge.

None of these present as "the site is down." All of them present as a staff member asking why one thing stopped working for one user in Ohio. The job is roughly 70% investigation, 20% repair, and 10% writing new code — and the investigation is the part that does not scale to a team, because you have to hold the whole system in your head to find the fault line fast.