Files
2026-10-09 16:19:32 -04:00

71 lines
2.9 KiB
Markdown

# Ely GPUI Showcases
Apps built with [Ely GPUI Components](https://git.zacharyzhang.com/ZacharyZhang-NY/Ely-GPUI-Components). The catalog feeds the Showcase page on the Ely site.
## Submit an app
1. Read [CONTRIBUTING.md](CONTRIBUTING.md), screenshots most of all.
2. Make `apps/<app-id>/`. The id is lowercase kebab-case: `tally`, `log-view`.
3. Put your PNG screenshots in that folder.
4. Add `manifest.json` there.
5. Add `README.md` there if you want a detail page.
6. Run `pnpm install`, `pnpm test` and `pnpm validate`, then open a pull request.
```
apps/
tally/
manifest.json
preview0.png
preview1.png
README.md
```
## Manifest
```json
{
"id": "tally",
"name": "Tally",
"author": "Ada Lovelace",
"description": "Counts what you tell it to, in light and dark.",
"category": "work",
"platforms": ["macOS", "Linux"],
"website": null,
"source": "https://github.com/ada/tally",
"publishedAt": "2026-10-04T12:00:00Z",
"previews": ["preview0.png", "preview1.png"]
}
```
| Field | Rule |
|-------|------|
| `id` | Lowercase letters, digits, single hyphens. Matches the folder. |
| `name` | The app's name, in its own capitals. |
| `author` | A person or an organization. |
| `description` | At most 280 weighted characters, counted by [twitter-text](https://github.com/twitter/twitter-text): an address counts 23, CJK and emoji 2. |
| `category` | `dev` (Developer Tools), `terminal` (Terminal & Network), `system` (System & Desktop) or `work` (Productivity & Media). |
| `platforms` | Some of `macOS`, `Windows`, `Linux`, `Web`. |
| `website`, `source` | Canonical `https` addresses with a plain host, or `null`. One at least. A GitHub source is `https://github.com/owner/repo`, nothing after. |
| `previews` | PNG file names in the folder. The first is the cover. |
| `building` | Optional. `true` while the app is not out yet. |
| `publishedAt` | ISO 8601 with a zone, such as `2026-10-04T12:00:00Z`: when the app joins the catalog. Maintainers confirm it; later updates keep it. |
| `stars`, `starsUpdatedAt` | CI writes them for GitHub sources. Leave them out. |
Unknown fields fail validation.
## Featured
`featured.json` lists app ids in order. Those apps come first. Maintainers choose them. The rest sort newest first, then by stars.
## Stars
On every push to `main` and each Monday, CI asks GitHub for each GitHub source's stars and commits any change. `starsUpdatedAt` moves only when the count does. It signs in with the `STARS_GITHUB_TOKEN` secret when set, a GitHub token, and asks anonymously otherwise. `pnpm run update-stars` does the same locally, `GITHUB_TOKEN` optional.
## How the site uses this
The Ely site pins a commit of this repo. Its build downloads that commit, runs `scripts/catalog.mjs`, and copies manifests, previews and READMEs. A catalog that fails here fails the site's build.
## License
The scripts are MIT OR Apache-2.0. Each app's files belong to its author, who grants the right to show them on the Ely site.