Skip to main content

Vote in the Democratic Primary: May 5, 2026 Ryan Grissinger for Commissioner →

Documentation

This site is a server-rendered Laravel application that powers a campaign website, professional portfolio, and contact management system for the Delaware County Commissioner race.

The codebase is open for reference and the API is fully documented with an interactive OpenAPI specification.


Campaign CRM API

A REST API for managing campaign contacts and tracking engagement. Covers contacts, roles, skills, interactions, donations, yard signs, and donor ask statuses. All endpoints require Bearer token authentication via Laravel Sanctum.


MCP Server

A Model Context Protocol server that exposes the Campaign CRM to AI assistants like Claude Desktop and Claude Code. 38 tools for managing contacts, roles, skills, interactions, donations, yard signs, and donor ask statuses — all through natural language.

MCP Server Docs

Tech Stack

Backend

Laravel 11 / PHP 8.2+

Frontend

Blade + Tailwind CSS 3

Auth

Laravel Sanctum (API tokens)

Maps

Mapbox GL JS + Census GeoJSON

Machine-Readable Resources

  • /docs/api.json OpenAPI 3.1 specification
  • /llms.txt AI content index (llmstxt.org spec)
  • /sitemap.xml XML sitemap for search engines
  • /.well-known/security.txt Security contact (RFC 9116)