Merge Bitcoin categories into one; rename Self-Hosted Apps to Personal Apps

- One "Bitcoin" category: the service catalog distinguishes bitcoin-base
  from bitcoin-apps, which surfaced as two sidebar menus and two tile
  sections. The Hub now normalizes both into a single "Bitcoin" category
  (nav item with combined count, one tile section). CATEGORY_ALIASES in
  constants.js maps the catalog keys; server config sends one
  ("bitcoin", "Bitcoin") entry and the node role allowlist is updated
  to match. The nix catalog is unchanged.
- "Self-Hosted Apps" is now "Personal Apps" — every service here is
  self-hosted, so the label added no distinction.
This commit is contained in:
2026-09-08 18:18:36 -05:00
parent 6d32bebdc6
commit ca1a5c9eb8
4 changed files with 15 additions and 10 deletions
@@ -24,8 +24,7 @@
var CAT_ICONS = {
"all": "g-grid",
"infrastructure": "g-server",
"bitcoin-base": "g-btc-sym",
"bitcoin-apps": "g-btc-sym",
"bitcoin": "g-btc-sym",
"communication": "g-chat",
"apps": "g-dots",
"nostr": "g-antenna",
@@ -34,8 +33,7 @@
var CAT_FALLBACK_LABELS = {
"infrastructure": "Infrastructure",
"bitcoin-base": "Bitcoin",
"bitcoin-apps": "Bitcoin Apps",
"bitcoin": "Bitcoin",
"communication": "Communication",
"apps": "Personal Apps",
"nostr": "Nostr",
@@ -75,6 +73,7 @@
var order = [];
visibleServices().forEach(function (s) {
var cat = s.category || "other";
if (CATEGORY_ALIASES[cat]) cat = CATEGORY_ALIASES[cat];
if (!counts[cat]) { counts[cat] = 0; order.push(cat); }
counts[cat]++;
});