{"id":31144276,"url":"https://github.com/zeezide/swiftpmcatalog","last_synced_at":"2025-09-18T14:38:37.536Z","repository":{"id":56082061,"uuid":"219491507","full_name":"ZeeZide/SwiftPMCatalog","owner":"ZeeZide","description":"Metadata driving the SwiftPM Catalog application","archived":false,"fork":false,"pushed_at":"2023-11-29T17:23:45.000Z","size":55,"stargazers_count":58,"open_issues_count":4,"forks_count":9,"subscribers_count":4,"default_branch":"develop","last_synced_at":"2023-11-29T18:33:30.266Z","etag":null,"topics":["swift","swift-package-manager"],"latest_commit_sha":null,"homepage":"https://zeezide.com/en/products/swiftpmcatalog/","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ZeeZide.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2019-11-04T12:01:55.000Z","updated_at":"2023-11-28T13:51:58.000Z","dependencies_parsed_at":"2023-11-29T18:43:07.588Z","dependency_job_id":null,"html_url":"https://github.com/ZeeZide/SwiftPMCatalog","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"purl":"pkg:github/ZeeZide/SwiftPMCatalog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZeeZide%2FSwiftPMCatalog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZeeZide%2FSwiftPMCatalog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZeeZide%2FSwiftPMCatalog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZeeZide%2FSwiftPMCatalog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ZeeZide","download_url":"https://codeload.github.com/ZeeZide/SwiftPMCatalog/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZeeZide%2FSwiftPMCatalog/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275782023,"owners_count":25527505,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-18T02:00:09.552Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["swift","swift-package-manager"],"created_at":"2025-09-18T14:38:36.393Z","updated_at":"2025-09-18T14:38:37.524Z","avatar_url":"https://github.com/ZeeZide.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch2\u003eSwiftPM Catalog\n  \u003cimg src=\"https://zeezide.com/img/swiftpmcatalog/Icon512.png\"\n       align=\"right\" width=\"128\" height=\"128\" /\u003e\n\u003c/h2\u003e\n\nThis repository contains the meta data driving the\n[SwiftPM Catalog](https://zeezide.com/en/products/swiftpmcatalog/index.html)\nmacOS application.\nIt enhances the search data provided by the\nexcellent\n[SwiftPM Library](https://github.com/daveverwer/SwiftPMLibrary)\nwith categorization information, in addition to some extra meta data.\n\n![SwiftPM Catalog Screenshot](https://zeezide.com/img/swiftpmcatalog/light/search-swift.png)\n\n\n## Pull Requests Welcome!\n\nIf you'd like to add icons or snapshots, rearrange or promote\ncertain packages in a section, feel free to submit a pull request.\n\nBefore submitting, please make sure the JSON is valid, e.g. using:\n```shell\nmake validate\n```\n\n\u003e Note: When icons are from a resizable source, we prefer the 256x256 images.\n\n### Testing\n\nYou can test changes by setting the `CatalogInfoURL` user default.\nThe default's default is this URL of this repo:\n`https://raw.githubusercontent.com/ZeeZide/SwiftPMCatalog/master/catalog-info.json`.\nBut you can point it to any location you like.\n\nE.g. `defaults write NSGlobalDomain CatalogInfoURL \"http://myserver/catalog-info.plist\"`, or start the app on the commandline\nwith the `-CatalogInfoURL \"http://myserver/catalog-info.plist\"` argument.\n\nThe app tries to refresh from that URL on every restart.\n\n## Catalog JSON Format\n\nWe now generate the `catalog-info.json` from separate JSON files:\n- the `index.json` files contained in the `sidebar` subfolder,\n  this hierarchy represents what is shown in the app's sidebar\n- `icons.json` contains repository to icon mappings\n- `snapshot-images.json` contains images for the bigger widget views\n  (if missing those are autogenerated using WebKit)\n\nThe main catalog content is a set of \"sections\" shown in the sidebar.\nThose can have \"subsections\" and \"content\". \nThe \"content\" is again an array of different content types (currently two\nkinds of lists).\n\n### Sections\n\nSections are stored under the \"sidebar\" key, they have:\n\n- a \"title\"\n- (currently) a static \"image\" (e.g. \"ImDiscover\") stored in the asset catalog \n  of the application\n- a \"Content\" array\n- optionally \"subsections\"\n\nExample:\n```json\n{ \"title\": \"Wanderlust\",\n  \"image\": \"ImDiscover\",\n  \"content\": [\n    {\n      \"title\"  : \"All Things Swift\",\n      \"type\"   : \"small-list\",\n      \"needle\" : \"swift\",\n      \"rows\"   : 2\n    }\n  ]\n}\n```\n\n### Content\n\nCurrently there are two types of content:\n\n- \"small-list\"\n- \"snapshot-list\"\n\nSmall lists can be driven by either a \n[SwiftPM Library](https://github.com/daveverwer/SwiftPMLibrary)\nquery,\nor by a static set of repository URLs.\n\n\"snapshot-lists\" are always backed by repository URLs.\n\nSample small query list:\n```json\n{\n  \"title\"  : \"All Things Swift\",\n  \"type\"   : \"small-list\",\n  \"needle\" : \"swift\",\n  \"rows\"   : 2\n}\n```\n\nSample snapshot list:\n```json\n{\n  \"type\": \"snapshot-list\",\n  \"title\": \"Big ones\",\n  \"repositories\": [\n    \"https://github.com/swiftwebui/SwiftWebUI.git\",\n    \"https://github.com/mxcl/PromiseKit.git\"\n  ]\n}\n```\n\n\n### Overriding Images\n\nUsing the catalog you can override default images generated by the application.\n\n#### Icons\n\nNote: When icons are from a resizable source, we prefer the 256x256 images.\n\nNote: GitHub org image do not need to be added. If one is missing, please file an issue instead of a PR. Thanks!\n\nWould be nice to have better auto icon lookup, but right now you can override\nicons.\n\n```json\n\"icons\": {\n  \"https://github.com/SnapKit/SnapKit.git\": \n    \"https://avatars0.githubusercontent.com/u/7809696?s=256\u0026v=4\"\n}\n```\n\n#### Snapshot Images\n\nBy default snapshots are generated by snapshotting the repository web page.\nBut you can also provide a nicer, more descriptive image. Which can even\npoint to an animated GIF.\n\nNote: Images a preferable at 1.6x scale (e.g. 640x400).\n\nExample:\n```json\n  \"snapshot-images\": {\n    \"https://github.com/swiftwebui/SwiftWebUI.git\": \n      \"http://www.alwaysrightinstitute.com/images/swiftwebui/AvocadoCounter/AvocadoCounter.gif\"\n  }\n```\n\n\n## Links\n\n- [SwiftPM Catalog](https://zeezide.com/en/products/swiftpmcatalog/index.html) \n  macOS application.\n- [SwiftPM Library](https://github.com/daveverwer/SwiftPMLibrary)\n\n## Who\n\nBrought to you by [ZeeZide](http://zeezide.de).\nWe like\n[feedback](https://twitter.com/ziezeit),\nGitHub stars,\ncool [contract work](http://zeezide.com/en/services/services.html),\npresumably any form of praise you can think of.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzeezide%2Fswiftpmcatalog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzeezide%2Fswiftpmcatalog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzeezide%2Fswiftpmcatalog/lists"}