Open source
Open code. Open data. Open decisions.
GetFunded is Apache-2.0 code and a CC BY 4.0 dataset, stewarded by Morton Labs. Everything the hosted service runs is in the repository. So is the way decisions get made.
Why open
Four reasons, none of them marketing.
The records are already public.
Foundations file their returns with the IRS by law. Locking a readable version of them behind a paywall helps nobody. We publish the compilation under CC BY 4.0 and the government records stay public domain.
Trust needs a way to check.
Every fact points at a hashed file and a record locator. Open code means anyone can re-run the pipeline and compare hashes. That is a stronger claim than “trust us.”
Nonprofits should not be locked in.
You can take the dataset, run the app yourself, or move to another tool at any time. The hosted service earns its keep by being convenient, not by holding your data hostage.
A rule is only a rule if it is enforced.
“Unknown is not closed” and “missing is not zero” are written into the governance document. Reviewers block changes that break them. You can read the review.
Roles
Users, contributors (a merged change), maintainers (merge rights, listed in MAINTAINERS.md), and the steward, Morton Labs, which holds the domain, the hosted service and the trademark.
Lazy consensus
Most decisions happen on pull requests. A maintainer approves, nobody objects within about 72 hours, it merges. Objections are discussed on the thread.
Maintainer vote
Breaking changes to the public schema, API or CLI, adding or removing a maintainer, and changing a license need a simple majority, open for 72 hours, in public.
RFCs and a Steering Committee
Breaking changes start as an RFC (template) open for a week. When three organizations have active maintainers, a Steering Committee takes over the steward’s tie-breaker role for technical decisions.
The seven data rules
Every change, from any contributor or agent, keeps these.
Reviewers block changes that break them. Changing a rule itself needs an RFC and a maintainer vote.
01
Unknown is not closed.
When a filing does not say whether a funder accepts applications, we say “Not stated in filings.” We never say “closed.”
02
Missing is not zero.
A number that is not on the filing reads “Not available.” It never reads “$0.” A real zero reads “$0.”
03
Contacts are opt-in and never bought.
We show a contact only when the public record allows it. Role inboxes like grants@ can appear. A named person’s address does not. We never use vendor lists.
04
Every fact has a source.
Each value carries the dataset, the filing year and, where we have it, a fingerprint of the exact file we read. Click it and check.
05
AI is labelled and cites its evidence.
Anything a model writes is marked AI, points to the evidence it used, and never claims a funder is interested in you.
06
No made-up data.
No invented rows. No demo data in the real database. If we do not have it, we say so.
07
Amended filings replace the original.
When a funder files an amendment, the newer return wins everywhere. Nothing is counted twice.
How to contribute
Small pull requests, signed off, with a test.
The full guide is CONTRIBUTING.md. Contributions written with AI help are welcome when a person reviews every line and signs off.
- Report wrong data with the data correction template. No code needed.
- Branch from main. One topic per pull request. Add a test for new behavior.
- Run the checks before you open it:
cd corpus && uv run pytest -q # if you touched corpus/
cd apps/web && npm run check # if you touched apps/web/- Sign off every commit with the Developer Certificate of Origin. There is no CLA.
git commit -s -m "fix: render Not available for missing revenue"- List user-facing changes under Unreleased in CHANGELOG.md. A maintainer reviews within a few days.
- Security problems go through SECURITY.md, never a public issue.
Roadmap process
Now, Next, Later.
The roadmap is a public GitHub Project. If it is not on the board, it is not on the roadmap.
- Anyone can propose an item by opening an issue or a Discussion.
- A maintainer adds it to Later when it is clear and in scope.
- Maintainers review the board in the first two weeks of January, April, July and October: close what shipped, move items, drop items nobody has touched in two quarters, and post a summary in Discussions.
- Breaking changes need an accepted RFC before they enter Now.
- It is not a promise or a release date. The open-source project has no SLA. Details: ROADMAP-PROCESS.md.
Licenses
What you may do.
- Code: Apache-2.0
- Use, change and redistribute it, including commercially. LICENSE
- Data: CC BY 4.0
- Share and adapt the compilation with credit. The government records underneath are public domain. DATA-LICENSE.md
- Name and logo: trademark
- Say “based on GetFunded.” Do not present a fork as the official service. TRADEMARK.md
Clone it, run it, send a pull request.
The repository has everything: the pipeline, the app, the migrations, the tests and the rules.