{
  "spec": "https://pwaregistry.org/docs/registry-format",
  "version": 1,
  "id": "52cards.app",
  "status": "ACTIVE",
  "domain": "52cards.app",
  "origin": "https://52cards.app",
  "firstSeen": "2026-09-02T19:08:02.412Z",
  "lastChecked": "2026-09-02T19:08:02.412Z",
  "lastChanged": "2026-09-02T19:08:02.412Z",
  "manifestUrl": "https://52cards.app/manifest.webmanifest",
  "application": {
    "id": "52cards.app.ms.game",
    "dir": null,
    "lang": "en",
    "name": "52Cards.app",
    "icons": {
      "primary": {
        "src": "https://52cards.app/icons/icon-512.png",
        "type": "image/png",
        "label": null,
        "sizes": "512x512",
        "width": 512,
        "height": 512,
        "purpose": "any",
        "platform": null,
        "reachable": true,
        "validImage": true
      },
      "any": [
        {
          "src": "https://52cards.app/icons/icon-512.png",
          "type": "image/png",
          "label": null,
          "sizes": "512x512",
          "width": 512,
          "height": 512,
          "purpose": "any",
          "platform": null,
          "reachable": true,
          "validImage": true
        },
        {
          "src": "https://52cards.app/icons/icon-192.png",
          "type": "image/png",
          "label": null,
          "sizes": "192x192",
          "width": 192,
          "height": 192,
          "purpose": "any",
          "platform": null,
          "reachable": true,
          "validImage": true
        }
      ],
      "maskable": [
        {
          "src": "https://52cards.app/icons/icon-512-maskable.png",
          "type": "image/png",
          "label": null,
          "sizes": "512x512",
          "width": 512,
          "height": 512,
          "purpose": "maskable",
          "platform": null,
          "reachable": true,
          "validImage": true
        },
        {
          "src": "https://52cards.app/icons/icon-192-maskable.png",
          "type": "image/png",
          "label": null,
          "sizes": "192x192",
          "width": 192,
          "height": 192,
          "purpose": "maskable",
          "platform": null,
          "reachable": true,
          "validImage": true
        }
      ],
      "monochrome": [],
      "all": [
        {
          "src": "https://52cards.app/icons/icon-512.png",
          "type": "image/png",
          "label": null,
          "sizes": "512x512",
          "width": 512,
          "height": 512,
          "purpose": "any",
          "platform": null,
          "reachable": true,
          "validImage": true
        },
        {
          "src": "https://52cards.app/icons/icon-512-maskable.png",
          "type": "image/png",
          "label": null,
          "sizes": "512x512",
          "width": 512,
          "height": 512,
          "purpose": "maskable",
          "platform": null,
          "reachable": true,
          "validImage": true
        },
        {
          "src": "https://52cards.app/icons/icon-192.png",
          "type": "image/png",
          "label": null,
          "sizes": "192x192",
          "width": 192,
          "height": 192,
          "purpose": "any",
          "platform": null,
          "reachable": true,
          "validImage": true
        },
        {
          "src": "https://52cards.app/icons/icon-192-maskable.png",
          "type": "image/png",
          "label": null,
          "sizes": "192x192",
          "width": 192,
          "height": 192,
          "purpose": "maskable",
          "platform": null,
          "reachable": true,
          "validImage": true
        }
      ]
    },
    "scope": "https://52cards.app/",
    "display": "standalone",
    "sources": {
      "name": "manifest.name",
      "shortName": "manifest.short_name",
      "description": "manifest.description"
    },
    "startUrl": "https://52cards.app/",
    "shortName": "52Cards",
    "shortcuts": [],
    "categories": [
      "entertainment",
      "games",
      "photo"
    ],
    "themeColor": "#166534",
    "description": "Bring your own deck to game night. At 52Cards.app, you can play classic card games online and make them feel a little more like yours. Upload your own images to create a personal card deck using family photos, vacation pictures, pets, team logos, favorite designs, or anything else that makes the game more fun. Play Cassino, Solitaire, Spider Solitaire, Spades, Hearts, Gin Rummy, Blackjack, Texas Hold'em, Pot Limit Omaha, and Concentration from your phone, tablet, or desktop — no app store required.",
    "orientation": "any",
    "screenshots": {
      "narrow": [],
      "wide": [
        {
          "src": "https://52cards.app/screenshots/screen-1-hero.jpg",
          "type": "image/jpeg",
          "label": "Play real card games from any device",
          "sizes": "1366x768",
          "width": 1366,
          "height": 768,
          "purpose": null,
          "platform": null,
          "reachable": true,
          "formFactor": "wide",
          "validImage": true
        },
        {
          "src": "https://52cards.app/screenshots/screen-2-login.jpg",
          "type": "image/jpeg",
          "label": "Sign in to 52Cards.app",
          "sizes": "1366x768",
          "width": 1366,
          "height": 768,
          "purpose": null,
          "platform": null,
          "reachable": true,
          "formFactor": "wide",
          "validImage": true
        },
        {
          "src": "https://52cards.app/screenshots/screen-4-install.jpg",
          "type": "image/jpeg",
          "label": "Install 52Cards.app as a desktop app",
          "sizes": "1366x768",
          "width": 1366,
          "height": 768,
          "purpose": null,
          "platform": null,
          "reachable": true,
          "formFactor": "wide",
          "validImage": true
        }
      ],
      "unspecified": [],
      "platformSpecific": []
    },
    "shareTarget": null,
    "capabilities": {
      "narrowScreenshots": false,
      "wideScreenshots": true,
      "maskableIcon": true,
      "monochromeIcon": false,
      "serviceWorker": false,
      "shareTarget": false,
      "fileHandlers": false,
      "protocolHandlers": false,
      "shortcuts": false,
      "standaloneDisplay": true,
      "fullscreenDisplay": false,
      "orientation": true
    },
    "fileHandlers": [],
    "iarcRatingId": null,
    "launchHandler": null,
    "serviceWorker": {
      "detected": false,
      "scriptUrl": null
    },
    "backgroundColor": "#0a0a0a",
    "displayOverride": [],
    "protocolHandlers": [],
    "relatedApplications": [],
    "preferRelatedApplications": null
  },
  "capabilities": {
    "narrowScreenshots": false,
    "wideScreenshots": true,
    "maskableIcon": true,
    "monochromeIcon": false,
    "serviceWorker": false,
    "shareTarget": false,
    "fileHandlers": false,
    "protocolHandlers": false,
    "shortcuts": false,
    "standaloneDisplay": true,
    "fullscreenDisplay": false,
    "orientation": true
  },
  "validation": {
    "result": "PASS WITH WARNINGS",
    "checks": [
      {
        "id": "https",
        "group": "core",
        "title": "HTTPS",
        "detail": "The site is served over HTTPS.",
        "status": "pass",
        "severity": "fundamental"
      },
      {
        "id": "reachable",
        "group": "core",
        "title": "Site reachable",
        "detail": "The site responded successfully.",
        "status": "pass",
        "severity": "fundamental"
      },
      {
        "id": "manifest-discoverable",
        "group": "core",
        "title": "Web App Manifest discoverable",
        "detail": "Found a Web App Manifest at https://52cards.app/manifest.webmanifest.",
        "status": "pass",
        "severity": "fundamental"
      },
      {
        "id": "manifest-valid",
        "group": "core",
        "title": "Valid Web App Manifest",
        "detail": "The manifest is valid JSON with a recognized object shape.",
        "status": "pass",
        "severity": "fundamental"
      },
      {
        "id": "identity",
        "group": "core",
        "title": "Sensible app identity",
        "detail": "App name: “52Cards.app”.",
        "status": "pass",
        "severity": "fundamental"
      },
      {
        "id": "start-url",
        "group": "core",
        "title": "Valid start URL",
        "detail": "start_url resolves to https://52cards.app/.",
        "status": "pass",
        "severity": "fundamental"
      },
      {
        "id": "scope",
        "group": "core",
        "title": "Valid scope",
        "detail": "Scope is https://52cards.app/.",
        "status": "pass",
        "severity": "fundamental"
      },
      {
        "id": "display",
        "group": "core",
        "title": "App-like display",
        "detail": "Display mode is “standalone”.",
        "status": "pass",
        "severity": "fundamental"
      },
      {
        "id": "launches",
        "group": "core",
        "title": "Start URL responds",
        "detail": "The start URL responded successfully.",
        "status": "pass",
        "severity": "fundamental"
      },
      {
        "id": "icons",
        "group": "visual",
        "title": "Suitable app icons",
        "detail": "Found a usable icon (512px).",
        "status": "pass",
        "severity": "fundamental"
      },
      {
        "id": "icon-192",
        "group": "visual",
        "title": "192px icon",
        "detail": "A 192px-class icon is available.",
        "status": "pass",
        "severity": "quality"
      },
      {
        "id": "icon-512",
        "group": "visual",
        "title": "512px icon",
        "detail": "A 512px-class icon is available.",
        "status": "pass",
        "severity": "quality"
      },
      {
        "id": "maskable",
        "group": "visual",
        "title": "Maskable icon",
        "detail": "A maskable icon is available for adaptive launcher shapes.",
        "status": "pass",
        "severity": "quality"
      },
      {
        "id": "screenshots-narrow",
        "group": "visual",
        "title": "Narrow screenshots",
        "detail": "Add screenshots with form_factor “narrow” for mobile presentation.",
        "status": "warn",
        "severity": "quality"
      },
      {
        "id": "screenshots-wide",
        "group": "visual",
        "title": "Wide screenshots",
        "detail": "3 wide screenshots found.",
        "status": "pass",
        "severity": "quality"
      },
      {
        "id": "description",
        "group": "metadata",
        "title": "Description",
        "detail": "The manifest includes a description.",
        "status": "pass",
        "severity": "quality"
      },
      {
        "id": "theme-color",
        "group": "metadata",
        "title": "Theme color",
        "detail": "theme_color is #166534.",
        "status": "pass",
        "severity": "quality"
      },
      {
        "id": "service-worker",
        "group": "capabilities",
        "title": "Service worker",
        "detail": "No service worker registration was found in HTML or same-origin scripts. This is not required for every app.",
        "status": "warn",
        "severity": "quality"
      },
      {
        "id": "shortcuts",
        "group": "capabilities",
        "title": "Shortcuts",
        "detail": "No shortcuts declared. Optional.",
        "status": "skip",
        "severity": "optional"
      },
      {
        "id": "share-target",
        "group": "capabilities",
        "title": "Share target",
        "detail": "No share target. Optional.",
        "status": "skip",
        "severity": "optional"
      },
      {
        "id": "file-handlers",
        "group": "capabilities",
        "title": "File handlers",
        "detail": "No file handlers. Optional.",
        "status": "skip",
        "severity": "optional"
      },
      {
        "id": "protocol-handlers",
        "group": "capabilities",
        "title": "Protocol handlers",
        "detail": "No protocol handlers. Optional.",
        "status": "skip",
        "severity": "optional"
      }
    ]
  }
}