Spring Cleaning and a Redesign
It’s been a busy few weeks. We’ve been cleaning up the PatronView database, adding new features, and giving the site a visual refresh. Here’s what’s new since our last update on February 19.
🎨 Design Refresh
We gave the site a design refresh thanks to Clark and the Superfun team. New typography, a tighter color palette, and a handful of changes that make the pages feel more polished.
The biggest change is Libre Franklin as the body font and IBM Plex Mono for technical elements like stat cards and navigation. Patron names now use content-aware sizing, which means that a short name like “Agnes Gund” renders large, while a longer name like “The Annenberg Foundation” scales down to fit. It’s a small detail, but I think it makes a real difference when you’re browsing.
Stat cards on patron pages now use Material Symbols icons, and the numbers are set in IBM Plex Mono so they don’t shift around as digits change. The “How to Read This Page” section got a full rewrite and is now condensed into a two-column layout that’s easier to scan.
🤖 Short Patron Bios
This is something we’re still exploring and need to dial in the accuracy on. We’re using AI to generate short biographical summaries for patron pages. The idea is that a page like Jonathan N. Grayer should have more context than just a table of donations. Who is this person? What do they do?
Many patron pages now have a brief prose paragraph at the top that gives you a sense of who the patron is. We think this is important because the PatronView database has always been strong on the data side, with records showing which institutions someone supports and at what level. But it hasn’t been great at telling you anything about the person behind the donations.
We still have work to do here. Some of the bios need better accuracy, and we’re experimenting with different approaches to get the tone and factual reliability right. This is going to be a focus area for us going forward. (Update: this work later fed into our ranking of the most famous people in the PatronView database.)
🏙️ Browse Institutions by City
We added city pages. You can now browse all the institutions in a given city, which makes it much easier to explore what’s available in your area. Here are the top 10 cities by institution count:
-
New York City (55 institutions)
-
Houston (24 institutions)
-
Seattle (19 institutions)
-
Boston (18 institutions)
-
Chicago (17 institutions)
-
Washington, D.C. (17 institutions)
-
Philadelphia (16 institutions)
-
Denver (12 institutions)
-
San Francisco (11 institutions)
-
Dallas (10 institutions)
Each city page shows the institutions with their favicons, patron counts, and links to explore further.
🔍 Search Widget on Patron Pages
We added a “Not the right person?” search widget to patron pages. With hundreds of thousands of patrons in the database, it’s inevitable that sometimes you land on the wrong one. Now there’s a search box right on the page so you can quickly find who you’re actually looking for.
📍 Institution Location Data
Patron pages now show the city and state of each institution in their contribution history. This makes it easier to see the geographic spread of someone’s giving. If a patron supports institutions in New York, Houston, and San Francisco, you can see that at a glance without clicking into each institution separately.
🧹 Fund Deduplication
When you have over 3 million records in a database, there is inevitably some data duplication. Different documents might list the same fund under slightly different names, or formatting differences create what look like separate funds that are really the same thing.
We built an Elasticsearch-powered deduplication system to find and merge these duplicate funds. The system compares fund names using fuzzy matching, looks at which institution they belong to, and identifies candidates for merging. When we merge two funds, the old URL gets a redirect to the new one, so any existing links keep working.
This gives our users better, more centralized results. Instead of seeing three slightly different versions of the same fund, you see one page with all the data combined.
👥 Patron Name Deduplication
Similar to fund dedup, we also built patron name deduplication using Elasticsearch. The PatronView database has patrons from hundreds of different source documents, and sometimes the same person appears under slightly different names. “John A. Smith” in one document and “John Smith” in another, for example.
The dedup system uses Elasticsearch’s fuzzy matching to identify probable duplicates, then merges them so all contributions are consolidated on a single patron page.
We also improved how couples and families are handled. Dynasty patron records now get properly merged, and couples show up in “Also Appears In” sections on each partner’s page.
⚡ Faster Search
We rebuilt the search index from the ground up. The old search used a simple approach that was getting slower as the database grew. The new system uses an inverted token index, which is a fancy way of saying we pre-compute which patrons match which search terms, so lookups are near-instant.
We also had to solve a size problem. The search index was hitting Cloudflare’s 25MB limit for KV storage. The fix was to split the index into chunks, so each chunk stays under the limit but the full index is available when you search.
🏛️ Small Improvements
-
Quick Facts are back: We brought back the Quick Facts section on patron pages. It’s a set of bullet points at the top of the page that gives you the basics at a glance, like how many institutions they support and how many contributions they’ve made.
-
“Claim this profile” link: Patron pages now have a link so people can reach out to update or correct their information.
-
101 new institution favicons added, so more institutions now show their logo across the site
-
Patron page polish: fixed grammar for couples and families (e.g., “John and Jane Smith support” instead of “supports”), improved chart bucket labels, cleaned up header styling and FAQ spacing
🔮 What’s Next
We’re continuing to work on patron bio quality. Getting AI-generated bios accurate and useful is a real challenge, and we want to get it right before we expand coverage to more patrons.
The database keeps growing. We have over 500 institutions now and the number goes up every month.
I’ve been sidetracked working on a few of my other projects, including PersonalWebsites.org, Friendship Recession, and Mixily. I need to hire someone else to help me and my team and get us back on track here with PatronView. There’s a huge 990 project that I want to take on to help with Board of Trustees data. I hope to be able to share more about that soon.
Thanks for reading. If you have questions or feedback, find me on LinkedIn or reach out at hello@nickgray.net.