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¶
Serverless Architecture (Current)¶
- Backend: Django API on AWS Lambda (via Zappa)
- Frontend: Next.js on Vercel Edge Network
- Database: PostgreSQL with PostGIS (RDS)
- Rate Limiting: DynamoDB (serverless)
- Infrastructure: Terraform-managed AWS resources
- Cost: ~$39/month (46% reduction from ECS)
Legacy Architecture (Deprecated)¶
- Backend: Django API on ECS Fargate
- Frontend: Next.js on ECS with SSR
- Infrastructure: ALB + ECS + NAT Gateway
- Cost: ~$73/month
Frontend Architecture¶
Coalition Builder uses a Next.js-based frontend architecture with server-side rendering for optimal SEO and performance.
How the Frontend Works¶
The /frontend directory contains a Next.js application that serves as the primary user interface:
- Server-Side Rendering: Next.js pre-renders pages on the server for better SEO
- API Integration: Frontend fetches data from Django backend via
/api/*routes - Optimized Performance: Automatic code splitting and optimized bundle sizes
- React Components: Modern React with TypeScript for type safety
- Styled Components: CSS-in-JS for component-level styling
Request Routing¶
/* β Next.js Frontend (SSR)
/api/* β Django API
/admin/* β Django Admin
/static/* β Django Static Files
Key Benefits¶
- SEO Optimized: Server-side rendering ensures search engines can index content
- Fast Initial Load: Pre-rendered HTML for instant page display
- Type Safety: Full TypeScript support across the application
- Modern Stack: Latest React and Next.js features
- Production Ready: Serverless deployment with Lambda and Vercel
Getting Started¶
- Installation - Quick setup for development
- Configuration - Environment variables and settings
- Development - Development workflow and contributing
- Lambda Deployment - Backend deployment to AWS Lambda
- Vercel Deployment - Frontend deployment to Vercel
- Legacy Deployment - ECS deployment (deprecated)
User Guides¶
Comprehensive guides for managing your coalition platform:
- Endorsement Workflow - Collect and manage campaign endorsements
- Legal Compliance - Configure Terms of Use, Privacy Policy, and GDPR cookie consent
- Content Management - Complete guide to the Django admin interface
- Campaign Management - Create and manage policy advocacy campaigns
- Stakeholder Management - Organize and engage with supporters and partners
- Homepage Management - Configure organization branding and homepage content
- Theme Management - Customize branding, colors, and visual appearance
Development Guides¶
- Development Setup - Detailed environment setup including automated tooling
- Testing Guide - Comprehensive testing with pytest, Jest, and Go
- Site Password Protection - Configure site-wide authentication for development and production
- Email Configuration - Set up AWS SES for transactional emails
Deployment Guides¶
- Multi-Account AWS - Multi-account architecture, bootstrap, OIDC, and VPC peering
- Lambda Deployment - Deploy Django to AWS Lambda with Zappa
- Vercel Deployment - Deploy Next.js to Vercel Edge Network
- GitHub Workflows - CI/CD pipelines for automated deployment
- Geographic Data Import - Import TIGER shapefiles via ECS
Documentation¶
- Database Models - Visual diagrams and documentation of database structure
- Endorsement Workflow - Complete endorsement system process flow with Mermaid diagrams
- API Reference - Auto-generated from Django models and views
- Frontend Components - Auto-generated from React components
- Environment Variables - Complete configuration reference
- CLI Reference - Command-line tools and Django management commands
Support¶
- Issues and feature requests: GitHub Issues
- Development questions: See Development Guide
- Deployment help: See Deployment Guide