July was one of our highest-volume months yet. The big news is we launched a new product for philanthropy advisors. There's a lot to cover, so let's get into it.
By the numbers
- 298 PRs merged across our repositories
- 280+ issues shipped to production
- 18+ new features and capabilities
- 10 UX improvements
- 80+ bug fixes (including auto-resolved Sentry alerts)
- 55+ Filecoin-focused updates
- 3 major platform initiatives completed (on-chain milestone attestations, the donor-advisor suite, and the AI-discoverability program)
A donor advisor that does the research for you
The bigger strategic build this month was on the philanthropy side. We want a donor (and their advisors) to be able to say what they care about and get back real, defensible recommendations, not a list of links. So we built out the pieces that make that possible: donor personas that capture what a giver actually wants, custom scoring so advisors can tune the weights behind a recommendation, and deep research on nonprofits that pulls in real data (including a daily job that ingests IRS 990 and 990-EZ filings).
On top of the research engine, we shipped the collaboration layer: comments on shared advisor reports (frontend and backend), async portfolio report generation with a pending status so big reports don't block the UI, and a diligence-requests-plus-advisor-intros flow so a donor can go from "interested" to "connected" without leaving the platform. Donor research now sends an email when it's done and streams progress events while it runs, so nobody's staring at a spinner wondering if it's working. We also redesigned the advisor flow end to end and made philanthropy search faster and more location-aware.
If you're a foundation or an individual donor trying to figure out where your money should go, this is the month Karma started to feel like it has an opinion worth trusting.
Filecoin: deepening the filpgf.io partnership
Our Filecoin public-goods work (filpgf.io) was the busiest single customer thread of the month, with 55+ updates shipped. A lot of it was reporting: monthly and bi-weekly report generation, pods monthly reporting, data exports for reporting templates, and sorting and edit controls for how reports show up on filpgf.io. We also tightened up milestone management for their team (editing, cancelling, and duplicate-submission handling) and fixed a batch of access and permissions issues so the right people see the right things.
The AI interface got real attention too: knowledge-base and integration review, suggested questions, source-data accuracy fixes, and copy cleanups across the admin views and public site. These are the unglamorous, high-trust improvements that keep a live grants program running smoothly, and they add up to a partner whose day-to-day operations increasingly run on Karma.
More highlights this month
- Nonprofit Scanner: Shipped the v1 Scanner frontend and followed it with a full v2 redesign, giving anyone a fast way to scan and assess a nonprofit.
- Names instead of wallet addresses: We now display email or name instead of raw wallet addresses across the app, in two migration passes, so the product reads like software people actually use.
- OAuth login: Shipped OAuth end to end (frontend, backend, and consent page improvements) so signing in is simpler.
- Multi-role dashboard redesign: Rebuilt the /dashboard for users who wear more than one hat (grantee, reviewer, admin) so they land in the right place.
- Blog on our own site: Moved the blog onto karmahq.xyz and migrated every post over from Paragraph, so our content lives on our domain.
- KYC/KYB "Not Applicable" status: Added a proper not-applicable state and fixed KYC/KYB inheritance so verified status resolves everywhere, not just on a single application path.
- Knowledge Base (RAG) improvements: A wave of upgrades including inline step-by-step instructions, cleaner citations, paused-source states, and registering sites as agent skill manifests.
- Growth funnel tracking: New API to track and expose anonymous-limit to login conversions on philanthropy search and the scanner, so we can see where growth actually happens.
- Application privacy: Gated the "Applicant" section of application details to authorized viewers and wired in real identity resolution.
UX polish
- Consolidated reviewer-mention Telegram notifications into a single message instead of a flood.
- Redesigned the community project listing and the funding application page.
- Redesigned the updates page and cleaned up the funding applicant dashboard.
- Stopped showing reject reasons when comments are closed, and fixed a bunch of copy across admin views.
- Made the Karma assistant button movable so it stays out of your way.
- Added more detail to the pipeline screen so operators see what's happening at a glance.
Performance and reliability
- Fixed container crashes and a gap-indexer OOM issue, and hardened gap-indexer deploy and CI (docker layer cache plus runner disk).
- Made philanthropy search meaningfully faster.
- Upgraded Fastify and our Anthropic, OpenAI, and LangChain SDKs, plus the Claude Agent SDK, to stay current.
- Improved agent quality with run_sql self-correction, faster tool discovery, and removed 80 dead role-based tools from the agent surface.
- Standardized Langfuse tracing and deduped Discord failure alerts so on-call noise goes down.
Notable fixes
- Fixed an access-code gate bypass where the form unlocked even when validation returned invalid.
- Fixed apply surfaces that ignored RBAC, which had let admins submit to closed funding programs.
- Fixed invoice downloads being denied for community admins due to an owner-only auth check.
- Reported previously swallowed LLM and agent failures to Sentry so we actually see them now.
- 37+ Sentry-tracked production fixes across the indexer and frontend (malformed input crashes, SSR errors, RPC timeouts, and more), most caught and resolved automatically.
What's next
We're carrying the philanthropy build and the AI-discoverability work straight into next month, with more donor-advisor depth and more of Karma showing up when people ask an AI where to give. Got feedback or feature requests? Shoot us an email at hello@karmahq.xyz
