Volunteer Programs

FFC Web Developer Training Guide

Skills, certifications, and project milestones for FFC volunteer web developers (WordPress-era).

FFC web developers operate nine vendor platforms in series to deliver a charity WordPress site end-to-end. This guide is the operations-team reference: what each platform does, how to set it up, the recurring failure modes, and the modern replacement on the Next.js stack where applicable.

Charity-facing developer narrative: freeforcharity.org/free-for-charity-ffc-web-developer-training-guide/.

How to use this guide

Read top-to-bottom for first-time admins; jump to a specific module when triaging an active charity issue. Each module documents the setup, the recurring failure modes, and what FFC does today on the Next.js stack instead.

Platform modules

1. FFC Hub (WHMCS)

Purpose: Central operations: domain orders, client records, support tickets, billing — all live in WHMCS.

Setup notes: Primary contact email must be on an external domain (Outlook) rather than the charity domain. Minimum two contacts per charity for account redundancy. Domain purchases route through the charity-domain mailbox with the coupon code from onboarding confirmation.

Common challenges:

  • Incomplete onboarding prevents product additions; resolve through a guided screen-share with the charity.
  • Fraud-flagged orders require verification of US location and matching card/address details — escalate if the charity is legitimate.
  • Domain transfers fail due to incorrect EPP codes or active privacy settings (especially GoDaddy domains). See wordpress-domains for the transfer-in gotcha list.

Modern replacement: Still in active use; no modern replacement planned. The charity-side billing flow has not migrated.

2. Cloudflare (DNS & Email)

Purpose: DNS authority, SSL provisioning, security rulesets, and email routing infrastructure.

Setup notes: Update charity nameservers to FFC Cloudflare servers (ns1.freeforcharity.org / ns2.freeforcharity.org). Configure DMARC for email security. Hook M365 connectivity through Cloudflare automated record insertion using the M365 admin credentials.

Common challenges:

  • Nameserver propagation can take 24 hours — do not panic if Cloudflare verification is not immediate.
  • DMARC misconfiguration is the most common cause of email deliverability complaints. Use the M365 connector tool to generate records rather than hand-writing them.

Modern replacement: Still the default DNS and edge layer for both WordPress sites and the Next.js static replacements. No replacement planned.

3. Microsoft 365 Email Hosting

Purpose: Mailbox, calendar, Teams, and the productivity suite the charity actually uses day-to-day.

Setup notes: Apply through the Microsoft Nonprofits program after the charity provides their Candid profile. After approval, configure accounts inside the M365 admin portal using the charity domain.

Common challenges:

  • Nonprofit validation rejection — re-submit with the charity Candid Public Profile link.
  • Tenant naming collision if the charity used the same domain previously — open a Microsoft support case to release the old tenant.

Modern replacement: Still in active use. M365 administration is one of the two Global Admin training tracks (see /training-plan).

4. InterServer / Hostinger Web Hosting

Purpose: Origin host running WordPress for the charity site.

Setup notes: See wordpress-web-hosting for the per-host provisioning steps. Newer onboardings default to Hostinger; legacy sites stay on InterServer.

Common challenges:

  • Application denial — escalate to FFC founder for tech-sponsor letter.
  • PHP version drift breaking Divi — roll back to previous PHP minor and open a Divi ticket.

Modern replacement: Replaced by GitHub Pages + Cloudflare for new sites. See /guides/wordpress-to-nextjs-guide.

5. Divi WordPress Theme

Purpose: Page builder + theme for charity WordPress sites. Charities author content here.

Setup notes: Activate the Divi parent theme, install the FFC child layout, set theme options to match the charity brand colors. Clear the Static CSS cache before any export.

Common challenges:

  • Divi cached CSS interfering with Simply Static exports — clear cache via Divi > Theme Options > Builder > Advanced > Static CSS before exporting.
  • Visual builder broken on PHP 8.x minors — see Divi changelog for compatible version.

Modern replacement: Replaced by Tailwind v4 + React components in the Next.js stack. Divi is not used in new builds.

6. WPMUDEV Plugin Suite

Purpose: Performance (Hummingbird, Smush Pro), security (Defender Pro), forms (Forminator), backups (Snapshot Pro), migration tooling (Shipper Pro), white-labelling (Branda).

Setup notes: Install the WPMUDEV Dashboard plugin first, log in with the FFC WPMUDEV account, then add the per-charity bundle from the Hub.

Common challenges:

  • Plugin tokens trigger GitHub push-protection during Simply Static exports — see docs/ffc-simply-static-config.md for the export-time allowlist.
  • Snapshot Pro silent failures — check the Hub red badge weekly.

Modern replacement: Not needed in the Next.js stack — static export plus GitHub Pages eliminates the security / performance / backup plugin tier entirely.

7. Microsoft Clarity

Purpose: Heatmaps, session recordings, and user-behavior analytics on the live charity site.

Setup notes: Install via the Clarity WordPress plugin or paste the snippet into the Divi integration field. Site is bound to one Clarity project per charity.

Common challenges:

  • Project token ends up embedded in the HTML export, triggering GitHub push-protection — handle in docs/ffc-simply-static-config.md plugin exclusion list.

Modern replacement: Plug into the Next.js layout the same way — Clarity supports static sites natively.

8. Tawk.to Live Chat

Purpose: Customer-support chat widget in the site footer.

Setup notes: Install the Tawk.to plugin or paste the widget snippet. Add charity-side responders to the Tawk.to dashboard.

Common challenges:

  • Widget tokens are the #1 cause of GitHub push-protection failures during Simply Static exports — exclude the Tawk.to plugin from the export.

Modern replacement: Re-evaluate on a per-charity basis. Most charities adopted email + form-based contact instead post-migration.

9. Azure AI Language (Question Answering)

Purpose: Custom question-answering knowledge bases for charity chatbots.

Setup notes: Optional integration; deploy through the Azure portal under the FFC tenant. Charity-specific knowledge base + Tawk.to integration.

Common challenges:

  • Cost spike if not rate-limited — set a daily budget alarm on the Azure subscription.

Modern replacement: Re-evaluating in favor of Claude / OpenAI APIs as cost-per-query drops. Not a current default.

Resource strategy

For any platform issue: official documentation first, vendor community / forum second, YouTube / third-party guides third. Tools change faster than this page can be updated, so always cross-check against the vendor docs before acting.

Cross-references