{
  "schemaVersion": 1,
  "type": "resource",
  "id": "appmotion",
  "evaluation": {
    "reviewedOn": "2026-10-19",
    "status": "blocked",
    "modes": [
      "http",
      "browser",
      "source-review"
    ],
    "summary": "The historical product identity is confirmed by its creator, but the live address returned a Framer 404 on both checks. No gallery sample was available.",
    "reportUrl": "/design-evaluations/resource-appmotion.json",
    "identity": {
      "target": "https://appmotion.design/",
      "version": "Unversioned public page observed 2026-10-19",
      "integrity": "SHA-256 6bf1cd32ca0adcac1450654b07cc736db54bd5dc3c7972a7fb8b8feb9d5bdac2 of one initial HTML response (2627 bytes). This does not fingerprint the entire application or its dependencies."
    },
    "environment": [
      "Windows; Chrome 155.0.8059.82 headless via Playwright, fresh isolated contexts with a 1365 × 900 viewport.",
      "Reduced motion requested. GET/HEAD requests allowed; other methods and WebSocket connections blocked.",
      "No owner browser profile, account, credentials, purchase, upload, private fixture or service write."
    ],
    "tests": [
      {
        "name": "Historical identity",
        "mode": "source-review",
        "method": "Read the creator's primary launch post on Dribbble.",
        "result": "pass",
        "observation": "The post names App Motion and links appmotion.design."
      },
      {
        "name": "Current endpoint",
        "mode": "http",
        "method": "Open the address twice in fresh contexts.",
        "result": "fail",
        "observation": "Both checks returned HTTP 404 and a Framer site-not-found page."
      },
      {
        "name": "Gallery runtime",
        "mode": "browser",
        "method": "Look for usable gallery controls at the documented address.",
        "result": "blocked",
        "observation": "No gallery entries or motion controls were available to exercise."
      }
    ],
    "security": {
      "scope": "The public host error response only; the application itself did not load.",
      "findings": [
        {
          "level": "info",
          "basis": "observed",
          "title": "Host response is not application evidence",
          "detail": "The response includes HSTS and nosniff headers, but it is a Framer error page. These observations say nothing about the former gallery's security or current application code."
        },
        {
          "level": "caution",
          "basis": "advice",
          "title": "Do not substitute a lookalike domain",
          "detail": "Use a newly confirmed publisher address if the product returns. A similar product name is insufficient evidence for a replacement link."
        }
      ],
      "limits": [
        "Passive public-page observations and the stated bounded sample only; no exploitation, authenticated authorization, backend, retention or comprehensive dependency audit.",
        "Request blocking changes application behavior; no secure/safe certification is implied."
      ]
    },
    "practicalCaveats": [
      "Use the creator post as historical context rather than a current working motion library.",
      "The failure is an observed availability condition, not a conclusion about safety or abandonment."
    ],
    "limits": [
      "No application runtime, clips, downloads, accounts or source code were available at the tested address."
    ],
    "sources": [
      {
        "label": "Current endpoint; 404 observed",
        "url": "https://appmotion.design/"
      },
      {
        "label": "Creator's App Motion launch post",
        "url": "https://dribbble.com/shots/22799939-App-Motion"
      }
    ]
  }
}
