Thanks for helping make UI libraries easier to discover.
| 1 | git clone https://github.com/screen-gd/Col.git |
| 2 | cd Col |
| 3 | npm install |
| 4 | npm run dev |
For code or catalog changes, run npm run typecheck and npm test before submitting. npm test includes the production build. For documentation-only changes, check links and formatting; if the documentation is a site page, also run npm run build.
Add one object to the libraries array in data/libraries.ts.
Checklist:
slug.addedAt to the current ISO timestamp, including its timezone. The "new additions" label expires after seven days. Keep this timestamp unchanged when editing an existing library.data/library-details/ and register it in that file's libraryDetails map, keyed by the same slug. The detail tests fail without it.If a new category or stack is genuinely required, explain why in the pull request.
Components are how someone searches for "a date picker" or "stroke text" instead of browsing 56 libraries. They live in data/components.ts, keyed by the owning library's slug.
name the way the library documents it, and point url at that component's page, not the library homepage. It must be on the library's own domain, and must not be a setup, CLI, or marketing page.aliases for terms people genuinely search for, such as cmdk or datepicker. Do not pad them with synonyms.Many libraries publish a machine-readable component list at /llms.txt, which is a good starting point, but it also lists setup guides and paid tiers. Check every entry against the site's own navigation before adding it.
Do not add a component to make a library match a search. If a library does not document it, it does not belong in the index.
Integrations live in data/integrations.ts. CONTEXT.md defines the terms. The README has an example entry.
MCP server path and a Connector path.url.lib/integration-setup.ts; adding a new client means adding it there.official only when the provider also makes the product it serves. Anything else is a community integration.library to the slug of the Col library it serves, if that library is listed.any and unrelated refactors.When adding or changing libraries, components, integrations, public pages, or features that agents can use, update all affected discovery outputs in the same pull request:
app/llms.txt/route.ts generates /llms.txt. Library and integration entries come from catalog data automatically. Update the generator when new features, links, or agent instructions need to appear.app/sitemap.ts generates /sitemap.xml. Library and integration pages are included automatically. Add new public pages to staticRoutes in lib/site.ts.app/robots.ts generates /robots.txt. Check that crawler rules and the sitemap URL still cover the change. Update them when crawl access changes.Edit the source data or generators, then verify the generated output. Catalog additions do not require manual copies in each file. Keep tests/discovery.test.mjs current when routes or discovery behavior change, and explain any discovery outputs that do not need changes in the PR description.
Use a descriptive title, such as:
Add Ark UI to the directoryFix stack filter query handlingAdd dedicated library detail routeIn the description, explain what changed, why it changed, and how it was verified. Add screenshots for visible interface changes.
/docs page, following the Col MCP guides. Update the README when the feature affects the project overview or setup.Closes #123 in the description. For a partial fix, use Refs #123 and describe the remaining work. Keep the issue open until merge. GitHub automatically closes linked issues when the PR merges into the default branch with auto-closing enabled. Screen confirms completion after merge.Screen is the only person who merges pull requests for now. Contributors submit changes for review and leave merging to Screen.
Reviewers may request metadata corrections, a smaller scope, accessibility fixes, or links to official sources before merging.