Skip to content

Coalition Builder

A modern platform for organizing and managing policy advocacy campaigns with stakeholder engagement tracking, endorsement collection, and geographic intelligence.

Key Capabilities

Organizations use this platform to:

  • Manage Advocacy Campaigns: Create and track policy initiatives at federal and state levels
  • Collect Verified Endorsements: Streamline supporter engagement with built-in verification and moderation
  • Ensure Legal Compliance: GDPR-compliant cookie consent and comprehensive legal document management
  • Customize Their Presence: Dynamic content management and comprehensive theming system
  • Target Geographically: Leverage PostGIS integration for precise district-based organizing
  • Track Campaign Impact: Monitor endorsement metrics and stakeholder distribution

How Organizations Use Coalition Builder

Campaign Lifecycle & Advocacy Workflow

%%{init: {'theme':'basic'}}%%
flowchart TD
    A[🎯 Create Campaign] --> B[πŸ‘₯ Recruit Stakeholders]
    B --> C[βœ… Collect Endorsements]
    C --> D[πŸ“Š Track Progress]
    D --> E[πŸ›οΈ Engage Legislators]
    E --> F[πŸ“’ Drive Policy Change]

Coalition Builder guides your organization through the complete advocacy process:

  • Create Campaign: Launch policy initiatives around federal or state legislation
  • Recruit Stakeholders: Identify and engage diverse supporters (businesses, nonprofits, citizens, government officials)
  • Collect Endorsements: Secure verified support with built-in spam protection
  • Track Progress: Analyze geographic distribution and engagement metrics
  • Engage Legislators: Target representatives using congressional district data
  • Drive Policy Change: Export supporter data and coordinate strategic advocacy

Core Components & Relationships

%%{init: {'theme':'basic'}}%%
flowchart TD
    Stakeholders[πŸ‘₯ Stakeholders<br/>Businesses, Nonprofits, Citizens, Government]
    Regions[πŸ—ΊοΈ Regions<br/>States, Counties, Districts]
    Legislators[πŸ›οΈ Legislators<br/>Federal, State]

    subgraph Core["🎯 Core Platform"]
        Campaigns[πŸ“‹ Policy Campaigns]
        Endorsements[πŸ“ Verified Endorsements]
    end

    Legislation[πŸ“œ Legislation<br/>Federal Bills, State Bills]

    Stakeholders --> Endorsements
    Campaigns --> Endorsements
    Campaigns --> Legislation
    Regions --> Stakeholders
    Regions --> Legislators
    Regions --> Legislation
    Legislators --> Legislation

Coalition Builder manages:

  • Diverse stakeholder categories across sectors and organizational types
  • Multi-level campaigns linking federal and state legislation
  • Verified endorsements with geographic and legislative targeting
  • Geographic intelligence for strategic advocacy and outreach

Architecture

  • Backend: Django API with PostgreSQL/PostGIS
  • Frontend: React with TypeScript and styled-components
  • SSR: Next.js for SEO optimization (optional)
  • Infrastructure: Terraform-managed AWS deployment

Frontend Architecture

Coalition Builder uses a flexible frontend architecture that supports both traditional SPA deployment and optional server-side rendering (SSR).

How the Frontend Works

The /frontend directory contains a React application built with Webpack that serves as the primary user interface. This single codebase works in two different deployment modes:

Without SSR (Default Mode):

  1. React app is built into static files (JS/CSS with cache-busting hashes)
  2. Django serves these files through a template (index.html)
  3. Django's home view reads asset-manifest.json to inject correct file paths
  4. React takes over as a single-page application in the browser
  5. API calls go to Django backend via /api/* routes

With SSR (Optional Mode):

  1. Next.js handles server-side rendering for better SEO
  2. Django serves only API endpoints (/api/*, /admin/*)
  3. nginx routes frontend requests (/*) to Next.js instead of Django
  4. Next.js imports and renders the same React components from /frontend/src/components/
  5. Shared error handling logic ensures consistent behavior in both modes

Request Routing

SSR Disabled:

/* β†’ Django home view β†’ React SPA
/api/* β†’ Django API
/admin/* β†’ Django Admin

SSR Enabled:

/* β†’ Next.js SSR
/api/* β†’ Django API
/admin/* β†’ Django Admin

Key Benefits

  • Single Frontend Codebase: Write once, deploy with or without SSR
  • Django Integration: Static files served through Django's static system
  • Asset Management: Automatic cache-busting via asset manifest
  • Deployment Flexibility: Choose complexity vs. performance trade-offs
  • Fallback Strategy: Can disable SSR without losing frontend functionality

This architecture allows organizations to start simple (Django + React SPA) and add SSR later for improved SEO without rewriting their frontend code.

Getting Started

  1. Installation - Quick setup for development
  2. Configuration - Environment variables and settings
  3. Development - Development workflow and contributing
  4. Deployment - Production deployment options

User Guides

Comprehensive guides for managing your coalition platform:

Development Guides

Documentation

Support