Two layers of curation

Eventually the number of projects in the list will become too large so we need to create additional tools to help navigate them. One of such tools could be custom project filters or lists (similar to Uniswap’s token lists). A user should be able to choose a project filter created by a reputable 3rd party which will sort items and organize them into groups when applied in clrfund UI.

This will give us a two layers of recipient curation:

  • Layer 1 (on-chain). At this layer only basic checks are performed. The goal of this system is to remove entries with incorrect info, duplicates, impersonators and projects which are clearly not public goods.
  • Layer 2 (off-chain). Project filters can have arbitrary criteria and there are many of them. They are also optional (user can prefer to see the full list of projects).

I really like the idea of Tokenlist-style lists of projects.

1 Like

For a reference:

1 Like

Project list spec

The project list is a JSON document with a schema similar to token list.
Main differences:

  • projects: an array of project IDs. Replaces tokens array in token list schema.
  • filter: boolean. If this value is true the list should be used as a filter. This means projects that are not in the projects array should not be displayed.
  • ordered: boolean. If this value is true the projects should be ordered according to the projects array. Projects that are not in projects array should be placed at the end of the list. If value is false the projects should be shuffled.

Examples of use:

  • Creating collections, like on Gitcoin. Collection is just a list that acts as a filter (filter: true).
  • Sorting projects by the amount of funding they received in previous rounds. Ordered list could be used for this (filter: false, ordered: true).
  • Hiding unwanted projects. A list/filter that contains all projects except those that should be hidden. UI should allow user to choose any project list by entering its URL. Some lists can be hardcoded into UI by instance administrator (like ‘all-time match’ ordered list).

1 Like

For our work we’re planning on implementing filters. When you add a project, you’re asked to self-identify a tag (e,.g, content, data, tooling) and this becomes a filterable option on the end-user UI. Implementing user-curated lists could be really cool too, especially for that “collections” use-case. We should definitely collab on this in case what we’re working on might help the canonical CLR instance.


Yes, I think both the recipient submitted filter tags and user curated lists/collections would be really valuable for the canonical instance.