Skip to content
← Back to Projects

Movement work

Projects for progressive organizing and the people doing it.

Freehold

Freehold

I've been working with progressive nonprofits long enough to watch them get cornered by platforms they can't replace. Freehold is what happens when you sit with that frustration long enough — a framework for an internet where you create, publish, and actually own everything you share online. Your content lives on your own domain, hosted by whoever you trust, syndicated out to whatever networks you choose. No platform owning your audience. No algorithm rewriting what your followers see.

Not a company. Not a product. A proposal — and an invitation. The whitepaper is at freehold.is, published under CC BY 4.0. Quote it, fork it, build a piece of it.

Where the Roads Used to Be

Where the Roads Used to Be

A picture book for ages 4 to 8. It follows Bear and his ever-growing chosen family through a hopeful future, for readers of every age who want to believe tomorrow can be kind, beautiful, healthy, and happy.

Every paperback unlocks a read-along edition that reads each page aloud.

User Manuals

User Manuals

The best workplace tool I picked up at CREDO Action was the "user manual." Each person writes a short document explaining what they need to do their best work and be a whole person at the office.

Most of us never say those things out loud. When we do, coworkers can plan around them instead of guessing. I built usermanuals.guide so any team can run the exercise without a consultant.

Job Seeker's Union

Job hunting treats people as isolated individuals. The problems are collective: ghost jobs, screening nobody explains, silence after interviews, and productivity gains that never turn into time off. I started the Job Seeker's Union in 2026 to treat those as standards we can change.

It is an advocacy organization, founder-led and starting in public. Two older projects of mine now live under it. The Transparent Hiring Pledge asks employers to commit to honest postings, clear timelines, human review, and closing the loop with every applicant. Four Days with AI makes the case for returning AI productivity gains to workers as time. The newest piece is Get Hired, a free resource center. It starts with the deadlines after a layoff, because unemployment, COBRA, and the ACA Marketplace will not wait for the job search.

There are no dues and no formal membership yet. The one action today is to subscribe for updates.

Equity Language Commons

Every progressive organization I work with has an equity language guide, or wants one, or has three that quietly disagree with each other. The good ones are published by people doing careful work — but they're scattered across a few dozen PDFs, and when two of them rule differently on the same word, you're on your own to work out why.

Equity Language Commons puts them side by side. One page per term, every source organization's ruling on it, with the quote, the year, and a link back to the original. They contradict each other more often than you'd expect, and seeing that is more useful than picking whichever guide you happened to open first.

It's in beta and the index is still filling in. My cross-reference layer is CC BY 4.0; every source organization keeps its own words and its own credit. If a term is missing, or I've got one wrong, the Contribute page has four ways in — including one that doesn't need a GitHub account.

Claude Code guardrails

Everyone I talk to at nonprofits is either using an AI coding assistant already or about to be. Almost none of them are security engineers, and the advice out there assumes they are. So I wrote down the handful of defaults I'd want a friend to have in place before they let an agent loose on their laptop.

The whole thing rests on one idea: everything the AI touches should be backed up somewhere it can't delete. You can't guarantee an agent never makes a mistake or gets talked into one — but you can make the worst day survivable. The repo has a drop-in CLAUDE.md, example permission and sandbox settings, an "out of its reach" checklist, and the research behind each choice so you can check my reasoning. MIT licensed, and honest about what it doesn't protect you from.

Awesome ActionKit

ActionKit powers email and advocacy for most large progressive organizations, but the best tooling around it has always been scattered — buried in Slack threads, ClientCon sessions, and the occasional vendor blog post. New admins spend months rediscovering things other people figured out years ago.

Awesome ActionKit is the hub I wish had existed when I started. A curated, CC0 list of snippets, recipes, integrations, consultants, and guides — the things that actually work, collected in one place that's easy to find and easy to contribute back to. CampaignHelp seeded it with a handful of repos (redirect blocks, mailing blocks, a health check). Everyone else is invited.

Progressives for AI

Most of the progressive conversation about AI is a fight between people who think it's going to destroy everything and people who aren't paying attention. I don't think either of those is the useful place to stand. The technology is here, our side is going to be using it either way, and I'd rather we were good at it than caught flat-footed.

Progressives for AI is a newsletter and a discussion group for people who want to think seriously about what this stuff can do for organizing, advocacy, and the work of running an organization — without the doomerism and without the hype. If that's the conversation you've been looking for, come have it with us.

Progressive email suppression list

Every big progressive organization has quietly built the same file over the years: the list of email domains that never deliver. Typos of the major providers, throwaway addresses, spam traps that can get your whole sending domain blocked. The large orgs have one. The small orgs, who need it most, usually don't — and there's no reason for all of us to keep rebuilding it separately.

So I combined them. The internal lists people have been passing around for years, plus the big community-maintained sets, deduped into one clean file of roughly 66,000 domains that rebuilds itself nightly. There are ten-minute import guides for ActionKit, Action Network, and Listmonk. Released under CC0 — no attribution required, just take it.

It's purely defensive. The list exists so you can not mail these addresses. Please don't use it for anything else.

Small tools I've open-sourced

Not everything deserves its own site. These are small, finished tools I open-sourced because someone else probably needs the same thing.

Email Hasher normalizes a list of email addresses and hashes them in your browser for ad-platform audience uploads. The data never leaves your machine.

Petition Delivery Formatter turns a CSV of signatures into a printable PDF, fully offline, for organizers who deliver the petition in person.

Lease Tracker is a tiny app that tells you how many miles a day you can drive without going over your lease limit.

Matrix Gatekeeper is a bot that makes people accept your community rules before they can join a Matrix space.

Ready for AOC

A grassroots supporter hub for people who want to see Alexandria Ocasio-Cortez run for president. The petition doubles as the email signup, and the whole thing is deliberately money-free — no donations, no merchandise, nothing that would drag it into political committee territory with the FEC.

An independent effort. Not affiliated with AOC, and not affiliated with any campaign committee.

Do Big Things

An open letter from voters to every Democrat in the next Congress: you have the majority, so use it. People co-sign with their first name and state, and the wall of signers keeps growing on the homepage.

The letter breaks into 13 plank pages, from prices and housing to the filibuster and the courts. A tracker follows where party leaders stand on each demand.

Ask About Vaccines

A friendly chat where someone with a vaccine worry can talk it through. It runs on AI, and every factual claim it makes cites a source from a library I checked by hand.

Before an answer reaches you, a second model checks each sentence against the source it cites.

HighSpeedRail.TV

American high-speed rail coverage is scattered across a few hundred YouTube channels, and most of the good stuff is made by people outside the US who are baffled that we don't have any. I wanted one place to watch it.

HighSpeedRail.TV is a curated video site for rail advocacy — new videos surfaced and reviewed weekly, with AI doing the first pass on what's worth including so the queue stays manageable. It's a small site about a big idea I'd like more Americans to see up close.

AK Help

AI help for ActionKit users (the advocacy platform most progressive nonprofits run on). A Playwright scraper pulls 114 help docs and 176 real support emails, anonymizes them, and feeds an AI knowledge base. Freemium SaaS with Stripe billing, magic-link auth, and a monthly auto-refresh pipeline. Retired in July 2026.

campaign.help

My consulting firm's website. Built it in one session, pulling real testimonials and client logos from Notion. Compressed images 81%, wired up GA4, deployed to Cloudflare Pages.

MDM Fleet Management

Runbook for managing Mac fleets at two nonprofit clients. FileVault key escrow, Escrow Buddy deployment, remediation tracking, and a side-by-side comparison of Mosyle vs. JAMF Now.

AI Code Review Pipeline

Dual-LLM code review deployed across 28 repos. Every pull request gets reviewed by OpenAI Codex and cross-checked by Claude. The two models reconcile disagreements before a summary hits the PR. Branch protection enforced on all public repos. Backed by a quality-gate layer: pre-commit TypeScript/ESLint in 5 active repos, a global type-check hook on every file edit, and a nightly N8N workflow snapshot-to-git across 3 automation instances.