{
  "id": "https://www.kpsk.club/",
  "name": "Keepsake - Shared Memory Timelines",
  "short_name": "Keepsake",
  "description": "A private notebook for the days worth keeping — kept by you, or shared a line at a time with the people who were there. No feed, no algorithm, no ads.",
  "start_url": "/?utm_source=pwa",
  "display": "fullscreen",
  "background_color": "#FAF5EB",
  "theme_color": "#FAF5EB",
  "orientation": "portrait-primary",
  "scope": "/",
  "lang": "en",
  "dir": "ltr",
  "prefer_related_applications": false,
  "categories": ["productivity", "utilities"],
  "icons": [
    {
      "src": "/icons/icon-72x72.png",
      "sizes": "72x72",
      "type": "image/png",
      "purpose": "any"
    },
    {
      "src": "/icons/icon-96x96.png",
      "sizes": "96x96",
      "type": "image/png",
      "purpose": "any"
    },
    {
      "src": "/icons/icon-128x128.png",
      "sizes": "128x128",
      "type": "image/png",
      "purpose": "any"
    },
    {
      "src": "/icons/icon-144x144.png",
      "sizes": "144x144",
      "type": "image/png",
      "purpose": "any"
    },
    {
      "src": "/icons/icon-152x152.png",
      "sizes": "152x152",
      "type": "image/png",
      "purpose": "any"
    },
    {
      "src": "/icons/icon-192x192.png",
      "sizes": "192x192",
      "type": "image/png",
      "purpose": "any"
    },
    {
      "src": "/icons/icon-maskable-192x192.png",
      "sizes": "192x192",
      "type": "image/png",
      "purpose": "maskable"
    },
    {
      "src": "/icons/icon-384x384.png",
      "sizes": "384x384",
      "type": "image/png",
      "purpose": "any"
    },
    {
      "src": "/icons/icon-512x512.png",
      "sizes": "512x512",
      "type": "image/png",
      "purpose": "any"
    },
    {
      "src": "/icons/icon-maskable-512x512.png",
      "sizes": "512x512",
      "type": "image/png",
      "purpose": "maskable"
    }
  ],
  "screenshots": [
    {
      "src": "/screenshots/pwa/narrow-01-when.jpg",
      "sizes": "1080x1920",
      "type": "image/jpeg",
      "form_factor": "narrow",
      "label": "See where your time went — every memory, year by year and day by day"
    },
    {
      "src": "/screenshots/pwa/narrow-02-where.jpg",
      "sizes": "1080x1920",
      "type": "image/jpeg",
      "form_factor": "narrow",
      "label": "The places it happened — pin each moment to the globe"
    },
    {
      "src": "/screenshots/pwa/narrow-03-with.jpg",
      "sizes": "1080x1920",
      "type": "image/jpeg",
      "form_factor": "narrow",
      "label": "Kept with the people who were there — shared a line at a time"
    },
    {
      "src": "/screenshots/pwa/narrow-04-more.jpg",
      "sizes": "1080x1920",
      "type": "image/jpeg",
      "form_factor": "narrow",
      "label": "Yours, and only yours — no feed, no algorithm, no ads"
    },
    {
      "src": "/screenshots/pwa/wide-desktop.jpg",
      "sizes": "1280x800",
      "type": "image/jpeg",
      "form_factor": "wide",
      "label": "Keepsake on the desktop — your full timeline, year by year"
    }
  ],
  "shortcuts": [
    {
      "name": "Add Event",
      "short_name": "Add",
      "description": "Quickly add a new event",
      "url": "/?action=add",
      "icons": [
        {
          "src": "/icons/shortcut-add.png",
          "sizes": "1024x1024",
          "type": "image/png"
        }
      ]
    },
    {
      "name": "View Today",
      "short_name": "Today",
      "description": "View today's events",
      "url": "/?filter=today",
      "icons": [
        {
          "src": "/icons/shortcut-today.png",
          "sizes": "1024x1024",
          "type": "image/png"
        }
      ]
    }
  ],
  "share_target": {
    "action": "/share",
    "method": "POST",
    "enctype": "multipart/form-data",
    "params": {
      "title": "title",
      "text": "text",
      "url": "url",
      "files": [
        {
          "name": "images",
          "accept": ["image/*"]
        }
      ]
    }
  },
  "file_handlers": [
    {
      "action": "/upload",
      "accept": {
        "image/*": [".jpg", ".jpeg", ".png", ".gif", ".webp"]
      }
    }
  ],
  "edge_side_panel": {
    "preferred_width": 400
  },
  "display_override": ["window-controls-overlay", "standalone"],
  "related_applications": [],
  "launch_handler": {
    "client_mode": "auto"
  },
  "handle_links": "preferred"
}
