Skip to content

$ cat ~/projects/purrfect-match.md

Purrfect Match

A free WordPress plugin that puts a rescue’s adoptable pets on their website, in their look — a clean, filterable grid instead of a gray box that belongs to someone else. No API key, no server, no permission required.

GPL free open-source WordPress ↗ github ↗ read the story

$ ./purrfect-match --org FL1629 --live

Live, right now

These are CJ Paws’ actual adoptable cats, pulled into your browser the moment this page loaded — the same way the plugin renders them on the rescue’s own site. Filter by breed, size, or age; tap a cat to meet them on Petfinder.

fetching cjpaws…

$ man purrfect-match

No key. No catch.

An API key is a promise, and the last few years have been a lesson in how easily promises get revoked. So I didn’t ask for one. Petfinder already publishes the adoptable-pet data behind its embeddable widget — it’s already public. The plugin asks for that same public data from the visitor’s own browser, then draws it the rescue’s way. No secret sits on a server, because there’s no secret. If Petfinder’s widget works, this works.

01

Resolve

A GraphQL GetOrganization call turns a display id (FL1629) into the org's UUID.

02

Search

SearchAnimal returns the adoptable cats — name, photo, breed, size, age, location.

03

Render

The browser draws a branded, filterable grid. Gender's left out — it isn't in the data, so it won't pretend.

one line on any page:

[purrfect_match organization="FL1629" brand="#e93396"]

FL1629 is CJ Paws’ Petfinder id; #e93396 is their pink. That’s the entire setup — ships with generic defaults so any rescue can drop in their own.

Coding for the cats

This isn’t a product — no roadmap, no pricing. It’s GPL and free. The reward is a cat getting seen by someone idly scrolling, and then not being on the page next week, because they got adopted. If you run a rescue and want it, it’s yours.