
Sol could not do it himself, so we made Col.
A community-maintained directory for finding the right UI library without losing an afternoon to open tabs.
Request a library · Request a feature · Report a bug · Contribute
Col organizes UI libraries by category, stack, and use case. Search from the homepage, then filter, sort, and save matching libraries in the directory.
Col catalogs libraries, not individual components.
Requirements: Node.js 20.9+ and npm.
| 1 | git clone https://github.com/screen-gd/Col.git |
| 2 | cd Col |
| 3 | npm install |
| 4 | npm run dev |
Open the local URL printed in the terminal (usually http://localhost:3000).
Before opening a pull request:
| 1 | npm run check |
Use the matching issue form. One focused request per issue makes discussion and review easier.
Open a library request when a useful UI library is missing.
Include:
Search existing libraries, issues, and pull requests first.
Open a feature request for improvements to discovery, comparison, contribution, accessibility, or the library detail experience.
Explain the problem before proposing the interface. Include the expected outcome and any useful references.
Open a bug report with:
Do not include secrets, tokens, private URLs, or personal information.
Library-only pull requests should be small and should not redesign unrelated parts of the site.
data/libraries.ts.npm run check.| 1 | { |
| 2 | name: "Library name", |
| 3 | slug: "library-name", |
| 4 | description: "A factual one-sentence description of what the library provides.", |
| 5 | url: "https://library.example", |
| 6 | category: "Component Library", |
| 7 | stacks: ["React", "TypeScript"], |
| 8 | useCases: ["Rapid Prototyping"], |
| 9 | tags: ["accessible", "copy paste"], |
| 10 | } |
The slug must be unique, lowercase, and kebab-case. See CONTRIBUTING.md for the full checklist.
Each library will have a dedicated Col page with:
Library pages will provide a prompt based on this structure:
| 1 | Help me add [LIBRARY] to my project. |
| 2 | |
| 3 | Project context: |
| 4 | - Framework: [FRAMEWORK] |
| 5 | - Language: [LANGUAGE] |
| 6 | - Styling: [STYLING SYSTEM] |
| 7 | - Package manager: [PACKAGE MANAGER] |
| 8 | |
| 9 | Use the current official [LIBRARY] documentation. Inspect the existing project before changing files. Install only the required packages, follow the project's established patterns, preserve accessibility, and avoid replacing unrelated code. |
| 10 | |
| 11 | After implementation: |
| 12 | 1. Summarize the files changed. |
| 13 | 2. Explain any configuration added. |
| 14 | 3. Run the project's type-check and build commands. |
| 15 | 4. Call out any manual setup still required. |
When contributing a future detail page, keep the prompt specific to that library and link every installation claim to official documentation.
| 1 | app/ Routes, layout, and global styles |
| 2 | components/ Search, filters, cards, header, and shared UI |
| 3 | data/libraries.ts The curated library registry |
| 4 | lib/ Shared helpers and route metadata |
| 5 | tests/ Registry and discovery checks |
| 6 | public/brand/ Col brand assets |
| 7 | public/hero-logos/ Library artwork used by the homepage |
| 8 | .github/ Issue forms and pull request guidance |
Next.js · React · TypeScript · Tailwind CSS · Radix UI · Lucide
Be clear, constructive, and respectful. Contributions are welcome whether you are adding a library, improving metadata, fixing a bug, or making discovery easier.
Col is licensed under the MIT License.