Plate 01 · generate
Build your declaration.
Everything you enter stays in this browser. This form does not crawl your site, does not call a model, and does not send your organisation's details anywhere.
Plate 02 · after you serve it
Publishing is not discovery.
Serving the file is not the last step. No agent probes /giving.json yet, because VGP has no consumers yet. Nobody looks for the file, so nobody reads it. Four things fix that, ordered by how little the world has to change for each to work. Do all four.
- 01 Link to it from your donation page. A plain <a href="/giving.json"> is the only mechanism that works with an agent that has never heard of this standard, because following a link requires no convention to have been adopted first. It also keeps the file readable by a programme officer or a journalist.
- 02 Add schema.org markup to the same page. Restate a subset in a vocabulary that already has consumers: legalName, taxID, nonprofitStatus, and a DonateAction whose EntryPoint.urlTemplate carries the same prefill contract. Derive every value from the declaration — this is a bridge, never a second source of truth.
- 03 Name it in /llms.txt if your site publishes one, as the authoritative source, and say plainly that the declaration wins if the two ever disagree.
- 04 Add <link rel="giving"> to the head. It costs nothing today and matters once consumers exist.
Figure 02 · ordered by how little has to change for each to work. The first pays off the day you ship it. The last pays off when the ecosystem arrives.
Plate 03 · keep up