{
  "site": "Fursay",
  "origin": "https://fursay.com",
  "platform": "cloudflare-workers-static-assets",
  "updatedAt": "2026-06-14",
  "deployment": {
    "workerName": "fursay",
    "assetsBinding": "ASSETS",
    "releaseCommand": "node scripts/release-fursay.mjs",
    "releaseManifest": "https://fursay.com/release.json",
    "deployReadinessManifest": "https://fursay.com/deploy-readiness.json",
    "deployReadinessPage": "https://fursay.com/deploy-readiness",
    "campaignManifest": "https://fursay.com/campaigns.json",
    "creatorKitManifest": "https://fursay.com/creator-kit.json",
    "creatorKitPage": "https://fursay.com/creator-kit",
    "shareKitManifest": "https://fursay.com/share-kit.json",
    "shareKitPage": "https://fursay.com/share-kit",
    "trafficLaunchManifest": "https://fursay.com/traffic-launch.json",
    "trafficLaunchPage": "https://fursay.com/traffic-launch",
    "linksManifest": "https://fursay.com/links.json",
    "linksPage": "https://fursay.com/links",
    "videoDiscoveryManifest": "https://fursay.com/video-discovery.json",
    "shortlinkManifest": "https://fursay.com/shortlinks.json",
    "sitemap": "https://fursay.com/sitemap.xml",
    "robots": "https://fursay.com/robots.txt",
    "runbook": "docs/cloudflare-deploy-runbook.md",
    "packageScripts": {
      "deployReady": "npm run deploy:ready",
      "check": "npm run check",
      "deploy": "npm run deploy",
      "liveSmoke": "npm run smoke:live"
    },
    "autoDeployWorkflow": ".github/workflows/deploy-worker.yml"
  },
  "routes": {
    "home": [
      "https://fursay.com/",
      "https://fursay.com/zh/",
      "https://fursay.com/ar/"
    ],
    "storyWorlds": [
      "https://fursay.com/koko",
      "https://fursay.com/zh/koko",
      "https://fursay.com/ar/koko",
      "https://fursay.com/arabic",
      "https://fursay.com/zh/arabic",
      "https://fursay.com/ar/arabic"
    ],
    "join": [
      "https://fursay.com/join/koko",
      "https://fursay.com/join/noor"
    ],
    "sample": [
      "https://fursay.com/sample/koko",
      "https://fursay.com/sample/noor"
    ],
    "share": [
      "https://fursay.com/share/koko",
      "https://fursay.com/share/noor"
    ],
    "bio": [
      "https://fursay.com/bio/koko",
      "https://fursay.com/bio/noor"
    ],
    "creator": [
      "https://fursay.com/creator/koko",
      "https://fursay.com/creator/noor"
    ],
    "creatorPlacement": [
      "https://fursay.com/creator/koko/youtube",
      "https://fursay.com/creator/koko/social",
      "https://fursay.com/creator/koko/newsletter",
      "https://fursay.com/creator/noor/youtube",
      "https://fursay.com/creator/noor/social",
      "https://fursay.com/creator/noor/newsletter"
    ],
    "creatorKit": [
      "https://fursay.com/creator-kit",
      "https://fursay.com/creator-kit.json"
    ],
    "shareKit": [
      "https://fursay.com/share-kit",
      "https://fursay.com/share-kit.json"
    ],
    "trafficLaunch": [
      "https://fursay.com/traffic-launch",
      "https://fursay.com/traffic-launch.json"
    ],
    "links": [
      "https://fursay.com/links",
      "https://fursay.com/links.json"
    ],
    "deployReadiness": [
      "https://fursay.com/deploy-readiness",
      "https://fursay.com/deploy-readiness.json"
    ],
    "discovery": [
      "https://fursay.com/video-discovery.json",
      "https://fursay.com/shortlinks.json",
      "https://fursay.com/links.json",
      "https://fursay.com/deploy-readiness.json",
      "https://fursay.com/sitemap.xml",
      "https://fursay.com/robots.txt"
    ],
    "episodeLandings": [
      "https://fursay.com/episodes/koko-feelings",
      "https://fursay.com/zh/episodes/koko-feelings",
      "https://fursay.com/ar/episodes/koko-feelings",
      "https://fursay.com/episodes/noor-colors",
      "https://fursay.com/zh/episodes/noor-colors",
      "https://fursay.com/ar/episodes/noor-colors",
      "https://fursay.com/episodes/noor-greetings",
      "https://fursay.com/zh/episodes/noor-greetings",
      "https://fursay.com/ar/episodes/noor-greetings"
    ],
    "conversionHealth": [
      "https://fursay.com/conversion-health",
      "https://fursay.com/conversion-health.json"
    ],
    "products": [
      "https://fursay.com/products",
      "https://fursay.com/products.json"
    ]
  },
  "funnels": {
    "koko": {
      "status": "active",
      "primaryGoal": "weekly_story_pack_subscribe",
      "campaign": "koko_story_funnel",
      "join": "https://fursay.com/join/koko",
      "sample": "https://fursay.com/sample/koko",
      "share": "https://fursay.com/share/koko",
      "bio": "https://fursay.com/bio/koko",
      "creator": "https://fursay.com/creator/koko",
      "deepLink": "https://fursay.com/koko?subscribe=koko&utm_source=shortlink&utm_medium=direct&utm_campaign=koko_story_funnel&utm_content=join_koko",
      "trackedIntents": [
        "subscribe_intent",
        "entry_pack",
        "modal_preselect",
        "utm_source",
        "utm_medium",
        "utm_campaign",
        "utm_content"
      ],
      "ctaSources": [
        "home_koko_weekly_pack",
        "home_weekly_pack_koko",
        "koko_hero_weekly_pack",
        "koko_sample_pack_cta",
        "koko_story_pack_section",
        "share_strip_koko_pack"
      ]
    },
    "noor": {
      "status": "active",
      "primaryGoal": "weekly_story_pack_subscribe",
      "campaign": "noor_story_funnel",
      "join": "https://fursay.com/join/noor",
      "sample": "https://fursay.com/sample/noor",
      "share": "https://fursay.com/share/noor",
      "bio": "https://fursay.com/bio/noor",
      "creator": "https://fursay.com/creator/noor",
      "deepLink": "https://fursay.com/arabic?subscribe=noor&utm_source=shortlink&utm_medium=direct&utm_campaign=noor_story_funnel&utm_content=join_noor",
      "trackedIntents": [
        "subscribe_intent",
        "entry_pack",
        "modal_preselect",
        "utm_source",
        "utm_medium",
        "utm_campaign",
        "utm_content"
      ],
      "ctaSources": [
        "home_noor_weekly_pack",
        "home_weekly_pack_noor",
        "arabic_hero_weekly_pack",
        "arabic_episode_story_pack",
        "arabic_sample_pack_cta",
        "arabic_story_pack_section",
        "share_strip_noor_pack"
      ]
    }
  },
  "measurement": {
    "anonymousEventEndpoint": "https://fursay.com/api/event",
    "piiAllowed": false,
    "subscribePayloadCompatibility": "email/groups/attribution unchanged",
    "externalAnalytics": "worker_event_endpoint",
    "fallbackReviewSurface": "Cloudflare Worker logs",
    "subscriptionEndpoint": "/api/subscribe",
    "failClosed": true,
    "liveSmokeCallsMailerLite": false,
    "analyticsSink": {
      "binding": "FURSAY_EVENTS",
      "dataset": "fursay_events",
      "status": "pending_cloudflare_enablement",
      "writeMode": "worker_logs_until_enabled",
      "fallbackSink": "Cloudflare Worker logs",
      "piiAllowed": false,
      "blobFields": [
        "event",
        "path",
        "locale",
        "page_pack",
        "campaign",
        "pack",
        "signup_source",
        "market",
        "product_id",
        "outbound_host",
        "outbound_path",
        "copy_kind",
        "product_interest",
        "interest_stage",
        "colo"
      ],
      "doubleFields": [
        "event_count"
      ],
      "sqlApi": "Cloudflare Analytics Engine SQL API after account enablement"
    },
    "analyticsReport": {
      "script": "scripts/query-event-analytics-report.mjs",
      "packageScript": "npm run report:events",
      "status": "pending_cloudflare_credentials_or_enablement",
      "dataset": "fursay_events",
      "windowDays": 7,
      "queryCount": 5,
      "output": "/tmp/fursay-event-analytics-report/event-analytics-report.json",
      "requiredEnv": [
        "CLOUDFLARE_ACCOUNT_ID",
        "CLOUDFLARE_ANALYTICS_TOKEN"
      ],
      "piiAllowed": false,
      "queries": [
        "event_totals",
        "subscribe_funnel_by_pack",
        "page_intent",
        "affiliate_interest",
        "outbound_destinations"
      ]
    }
  },
  "trafficSurfaces": [
    "homepage_split_cta",
    "homepage_sample_deep_link",
    "sample_shortlink",
    "family_share_shortlink",
    "family_share_message",
    "bio_shortlink",
    "bio_profile_copy",
    "amazon_affiliate_book_links",
    "books_affiliate_book_links",
    "locale_market_affiliate_split",
    "amazon_affiliate_disclosure",
    "social_profile_links_page",
    "social_profile_links_manifest",
    "social_profile_primary_pack_choice",
    "shortlink_manifest",
    "shortlink_query_passthrough",
    "source_id_passthrough",
    "video_discovery_manifest",
    "sitemap_manifest",
    "robots_manifest",
    "video_playlist_manifest",
    "video_subscribe_action",
    "social_preview_metadata",
    "story_world_social_preview_image",
    "sample_pack_schema",
    "story_world_faq_schema",
    "public_creator_share_panel",
    "public_share_kit_entry",
    "direct_social_share_link",
    "direct_social_share_manifest",
    "copy_sample_shortlink",
    "campaign_copy_kit",
    "campaign_qr_asset",
    "campaign_share_qr_asset",
    "campaign_qr_card",
    "creator_kit_manifest",
    "creator_kit_page",
    "share_kit_manifest",
    "share_kit_page",
    "traffic_launch_manifest",
    "traffic_launch_page",
    "traffic_launch_example_redirect",
    "traffic_launch_subscribe_payload",
    "episode_launch_link_template",
    "tracked_publish_copy",
    "deploy_readiness_manifest",
    "deploy_readiness_page",
    "creator_shortlink",
    "creator_placement_shortlink",
    "story_world_cta",
    "koko_sample_pack_cta",
    "noor_sample_pack_cta",
    "share_strip",
    "copy_pack_link",
    "shortlink",
    "youtube_outbound_utm",
    "subscribe_deep_link"
  ],
  "successSignals": [
    "modal_preselect_matches_pack",
    "social_links_primary_cta_preselects_pack",
    "amazon_affiliate_links_use_parenttechche_20",
    "zh_pages_use_books_affiliate",
    "non_zh_pages_use_amazon_affiliate",
    "shortlink_redirect_keeps_utm",
    "shortlink_subscribe_attribution",
    "traffic_launch_example_redirect_keeps_attribution",
    "traffic_launch_payload_keeps_attribution",
    "subscribe_payload_keeps_attribution",
    "no_live_smoke_mailerlite_call",
    "no_mobile_horizontal_overflow",
    "no_console_error"
  ],
  "checks": {
    "funnel": "scripts/check-fursay-funnel.mjs",
    "noor": "scripts/check-noor-list-activation.mjs",
    "cacheHeaders": "scripts/check-cache-headers.mjs",
    "imageAssets": "scripts/check-image-assets.mjs",
    "deployReadiness": "scripts/check-deploy-readiness.mjs",
    "release": "scripts/release-fursay.mjs"
  },
  "sharedAssets": {
    "css": [
      "/css/home-common-20260613-cache1.css",
      "/css/home-en-page-20260613-cache1.css",
      "/css/home-zh-page-20260613-cache1.css",
      "/css/home-ar-page-20260613-cache1.css",
      "/css/koko-common-20260613-cache1.css",
      "/css/koko-en-page-20260613-cache1.css",
      "/css/koko-ar-page-20260613-cache1.css",
      "/css/noor-common-20260613-cache1.css",
      "/css/noor-ltr-page-20260613-cache1.css",
      "/css/noor-rtl-page-20260613-cache1.css",
      "/css/picture-book-base-20260613-base1.css",
      "/css/storybook-skin-20260613-inline1.css",
      "/css/story-page-common-20260613-css1.css",
      "/css/picture-world-shared-20260613-traffic11.css",
      "/css/picture-world-tools-20260613-ops2.css"
    ],
    "js": [
      "/js/site-shared-20260613-commerce3.js"
    ],
    "scenes": [
      "/images/scenes/story-world-home.webp",
      "/images/scenes/story-world-forest.webp",
      "/images/scenes/story-world-desert.webp"
    ]
  },
  "generatedFrom": [
    "/data/site-structure.json",
    "/campaigns.json",
    "/shortlinks.json",
    "/conversion-health.json",
    "/products.json"
  ],
  "growth": {
    "latestStoryEntries": 12,
    "episodeLandingPages": 9,
    "noorLeadMagnetPages": 3,
    "noorReadinessStatus": "safe_wait_subscriber_empty",
    "productInterestLinks": 18
  },
  "monetization": {
    "affiliate": {
      "amazonLinks": 37,
      "amazonTag": "parenttechche-20",
      "booksLinks": 18,
      "booksAffiliateId": "arthur0858",
      "localePolicy": "zh-TW pages use Books.com.tw; English and Arabic pages use Amazon"
    },
    "ownedProducts": {
      "checkoutEnabled": false,
      "interestOnly": true,
      "status": "interest_validation",
      "checkoutGate": {
        "status": "blocked_until_interest_signal",
        "provider": "not_selected",
        "requirements": [
          "verified_product_interest_clicks",
          "disclosure_copy",
          "refund_support_copy",
          "checkout_tracking_contract"
        ],
        "minimumInterestClicks": 10,
        "minimumSubscriberSignals": 1,
        "paymentLinksAllowed": false,
        "disclosureCopy": "Paid worksheet or printable packs will be clearly labeled before checkout; affiliate links remain separate from owned products.",
        "refundSupportCopy": "Refund and support instructions must be published before any checkout link is enabled.",
        "trackingGate": "Checkout links stay disabled until fursay_product_interest_click and subscribe success reporting can be reviewed."
      },
      "products": [
        {
          "id": "koko-printable-pack",
          "pack": "koko",
          "label": "Koko printable pack interest list",
          "format": "PDF printable pack",
          "plannedIncludes": [
            "story prompt sheet",
            "emotion word practice",
            "parent-child drawing activity"
          ],
          "checkoutStatus": "not_enabled"
        },
        {
          "id": "noor-worksheet-pack",
          "pack": "noor",
          "label": "Noor 3-minute worksheet interest list",
          "format": "PDF worksheet pack",
          "plannedIncludes": [
            "Chinese color words with Pinyin",
            "Arabic parent prompts",
            "one 3-minute activity"
          ],
          "checkoutStatus": "not_enabled"
        }
      ]
    }
  }
}
