From 2bfdb9c284a0900724c5e0e02bb3d473c7c42ecf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Padez?= Date: Thu, 27 Aug 2026 06:49:29 +0000 Subject: [PATCH] say what this plugin is for, in the store's words tags are how the marketplace is browsed rather than scrolled: a list of them on the left, the plugins that carry one on the right. a closed vocabulary (PLUGIN_TAGS in the platform) because free text becomes homelab, home-lab, Home Lab and selfhosted inside a month, and a filter list of synonyms is worse than no filter at all. declared here rather than curated in the catalogue, so a plugin can say what it is and nobody edits a table when one ships. the marketplace caches it on sync, exactly as it already does for label and summary. --- manifest.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/manifest.ts b/manifest.ts index 9c2f02c..e9c2dab 100644 --- a/manifest.ts +++ b/manifest.ts @@ -12,10 +12,23 @@ export const manifest: PluginManifest = { version: '1.0.0', platform: '>=1.0.0', - label: 'Calendar', + /** + * What it is called in the store, in words that assume nothing. + * + * Not "Calendar", which is one of its two screens and undersells it; not "CalDAV" or "caldav", which + * are protocol names a person browsing has no reason to know. The convention across the store is that + * a plugin is named for what you get, not for how it works. + */ + label: 'Contacts and Calendar', summary: 'Calendars and contacts on your own machine, synced to your phone over CalDAV and CardDAV.', color: '#ef4444', + /** + * Personal because that is what it holds; Degoogling because replacing Google Calendar and Google + * Contacts is the reason most people would install it. + */ + tags: ['Personal', 'Degoogling'], + /** * Two screens at URLs this plugin chose — `/calendar` and `/contacts`, not `/caldav/calendar`. *