Skip to content

[Issue #649] Adding Plugins to Common Grants#668

Merged
jcrichlake merged 17 commits intomainfrom
649-list-plugins
Apr 10, 2026
Merged

[Issue #649] Adding Plugins to Common Grants#668
jcrichlake merged 17 commits intomainfrom
649-list-plugins

Conversation

@jcrichlake
Copy link
Copy Markdown
Collaborator

@jcrichlake jcrichlake commented Apr 9, 2026

Summary

Changes proposed

What was added, updated, or removed in this PR.

This PR adds a plugin catalog page to the CommonGrants website and introduces bidirectional cross-linking between plugins and the custom fields they implement.

  • Plugin catalog page — new /plugins index page listing all plugins from content/plugins/index.json, with filtering by language and system
  • Plugin detail page — new /plugins/[slug] page rendered via PluginDetails.astro, showing plugin metadata and the custom fields it exposes as CustomFieldCard components
    linking to each field's detail page
  • CustomFieldDetails.astro —Added a "Used By Plugins" section that filters plugins/index.json for plugins containing the
    current field and renders each as a PluginCatalogCard
  • PluginDetails.astro — Added a CustomFieldCard grid (mirrors the pattern above)

Context for reviewers

Testing instructions, background context, more in-depth details of the implementation, and anything else you'd like to call out or ask reviewers. Explain how the changes were verified.

The cross-linking works as follows:

  • On a custom field detail page (e.g. /custom-fields/agency), a "Used By Plugins" section appears only when at least one plugin includes that field. Each card links to
    /plugins/[slug].
  • On a plugin detail page (e.g. /plugins/ts-cg-grants-gov), the custom fields section renders CustomFieldCard components, each linking to /custom-fields/[id].

Additional information

Screenshots, GIF demos, code examples or output to help show the changes working as expected.

Verification:

  1. Navigate to /custom-fields/agency — confirm a "Used By Plugins" section appears with cards for both ts-cg-grants-gov and py-cg-grants-gov
  2. Click a plugin card — confirm it routes to the correct /plugins/[slug] detail page
  3. On the plugin detail page — confirm custom field cards appear and each links to /custom-fields/[id]
  4. Navigate to /custom-fields/eligibilityCriteria (not used by either plugin) — confirm no "Used By Plugins" section appears
  5. Navigate to /plugins — confirm the plugin catalog index renders correctly

@github-actions github-actions bot added website Issues related to the website typescript Issue or PR related to TypeScript tooling labels Apr 9, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 9, 2026

🚀 Website Preview Deployed!

Preview your changes at: https://cg-pr-668.billy-daly.workers.dev

This preview will be automatically deleted when the PR is closed.

@github-actions github-actions bot added the dependencies Pull requests that update a dependency file label Apr 9, 2026
@jcrichlake jcrichlake changed the title Adding plugin page [Issue #649] Adding Plugins to Common Grants Apr 9, 2026
@jcrichlake jcrichlake marked this pull request as ready for review April 9, 2026 19:00
Copy link
Copy Markdown
Collaborator

@bryan-thompsoncodes bryan-thompsoncodes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, played around with local website plugin views look sharp and the filtering works well even if there isn't much to filter yet 😄

@@ -0,0 +1,50 @@
{
"ts-cg-grants-gov": {
"label": "TypeScript Common-Grants Plugin",
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we change this to match the name of the actual plugin? Or add a section that has that name?

So @common-grants/cg-grants-gov for the TypeScript plugin?

Copy link
Copy Markdown
Collaborator

@widal001 widal001 Apr 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry my comment meant to suggest that we make the label match the package name, or add a new attribute for package name, rather than changing the slug.

The reason we don't want to make the slug match the package name is that there might be name collisions between Python and TypeScript plugins, especially for third party TypeScript plugins that won't be prefixed with @common-grants/ since that's reserved for packages published to our npm org.

Copy link
Copy Markdown
Collaborator

@widal001 widal001 Apr 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also using @ and / symbols in the url can break the links (which is what happens with this package)

Image

Copy link
Copy Markdown
Collaborator

@widal001 widal001 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Woohoo!! This is a really exciting addition 🚀

@jcrichlake jcrichlake merged commit 1fc17fc into main Apr 10, 2026
5 checks passed
@jcrichlake jcrichlake deleted the 649-list-plugins branch April 10, 2026 18:08
@github-actions
Copy link
Copy Markdown
Contributor

🗑️ Preview Cleaned Up

The preview for this PR has been automatically deleted.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file typescript Issue or PR related to TypeScript tooling website Issues related to the website

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Plugin] List plugins on CommonGrants.org

3 participants