返回 Discover
Field DispatchProduct Hunt8 · 2026-05-29

Linear Diffs

A new way to review PRs, directly inside Linear

Introducing Linear Diffs to make reviewing code a fast and fluid experience native to Linear. You can now review diffs from any issue with a PR, iterate on further changes with agents, and ship code from Linear. All reviews in Linear sync back to GitHub, so the current state of review work is always clear. Linear Diffs is available now on all plans.

日榜日期
2026-05-29
发布时间
2026/05/29
日榜排名
#8
票数
139
评论
9
评价
396
Human Signal

创始人 / Maker 评论

优先展示 Product Hunt 上对理解条目有帮助的人类文本。

Topics
ProductivitySoftware EngineeringGitHub

Review code in @Linear , iterate with your team and agents, all in one place. Love this direction!

评论作者信息不可用Maker 身份1 votes查看原评论
痛点分析发布于 2026/05/29

痛点为 AI 基于上游原始证据的初步提炼;未包含额外中国市场检索。

痛点

开发者在项目管理工具(如 Linear)和代码审查平台(如 GitHub)之间频繁切换,导致上下文丢失和效率低下。用户需要先关闭 issue,再打开 GitHub 找到对应 PR,滚动浏览差异,然后回到 Linear 回忆原始需求,这种来回切换的循环浪费大量时间,且容易遗漏审查状态或忘记关键上下文。当 AI 代理生成多个相互依赖的 PR 时,这种摩擦更加明显,因为无法在 issue 的原始意图下直接审查代码变更。此外,审查过程中若发生 force-push,现有流程可能无法自动更新 diff 视图,需要手动刷新,进一步打断工作流。用户因此面临决策延迟、协作成本增加和心理负担,例如“丢失审查状态”和“上下文切换疲劳”。

Discussion

精选 Product Hunt 讨论

保留原始讨论语境,用来交叉验证上游条目的真实反馈。

Collapsing the context switch between issue tracker and code review is the right call. You can finally review a change against the spec it came from without toggling tabs. We've felt this friction most when AI agents generate multiple interdependent PRs in a sprint. Does Linear Diffs support inline comments that sync bidirectionally with GitHub's review state?

评论作者信息不可用筛选:高信号评论0 votes查看原评论

Rendering PR diffs inside the issue context solves a real context-switching problem. We've lost too much review state bouncing between GitHub threads and Linear tickets. Since reviews sync back to GitHub, curious how you're handling force-pushes mid-review. Does the diff view update automatically, or does it require a manual refresh?

评论作者信息不可用筛选:高信号评论0 votes查看原评论

Code review inside Linear makes a lot of sense now that agents can create PRs directly from issues. The hard part is keeping the review anchored to the original intent, not just the diff. Curious how you handle stacked or related PRs from the same Linear issue.

评论作者信息不可用筛选:高信号评论0 votes查看原评论

Been waiting for something like this since the "close the issue, open GitHub, scroll to find the PR, lose context, come back" loop gets old fast. I do not use code editor anymore so a better interface that github is always welcomed! Very cool feature

评论作者信息不可用筛选:高信号评论1 votes查看原评论
源数据· Raw Archive
source
Product Hunt
upstream_source
producthunt_api
upstream_item_id
1158147
daily_ranking_item_id
6320c19e-6c4b-4bac-ac31-9b6fc63b1e19
rank_date
2026-05-29
rank
8
name
Linear Diffs
tagline
A new way to review PRs, directly inside Linear
description
Introducing Linear Diffs to make reviewing code a fast and fluid experience native to Linear. You can now review diffs from any issue with a PR, iterate on further changes with agents, and ship code from Linear. All reviews in Linear sync back to GitHub, so the current state of review work is always clear. Linear Diffs is available now on all plans.
maker_comment
<p>Review code in <a href="https://www.producthunt.com/products/linear" data-node-type="mention" data-mention-type="product" data-mention-id="linear" target="_blank" rel="noopener">@Linear</a>, iterate with your team and agents, all in one place. Love this direction!</p>
votes_count
139
comments_count
9
reviews_count
396
featured_at
2026-05-29T07:01:00.000Z
created_at_on_source
2026-05-29T07:01:00.000Z
makers
item-1item-2item-3item-4item-5
topics
ProductivitySoftware EngineeringGitHub
media / source-specific data
[
  {
    "url": "https://ph-files.imgix.net/77f51a24-3e6d-498f-a4e9-a2fce28091da.png?auto=format",
    "type": "image",
    "videoUrl": null
  },
  {
    "url": "https://ph-files.imgix.net/cc463a50-d60e-4e00-8480-d32d21ba8123.avif?auto=format",
    "type": "image",
    "videoUrl": null
  },
  {
    "url": "https://ph-files.imgix.net/5c01f7c9-fe70-4466-b20e-a3f5eee45632.avif?auto=format",
    "type": "image",
    "videoUrl": null
  },
  {
    "url": "https://ph-files.imgix.net/541c9e85-e9ab-4c4c-9fce-3b76f29a1a61.avif?auto=format",
    "type": "image",
    "videoUrl": null
  },
  {
    "url": "https://ph-files.imgix.net/56f5e0c0-5171-4a73-afe8-d7b1d62fd572.jpeg?auto=format",
    "type": "video",
    "videoUrl": "https://youtu.be/7gZBxBTapDQ"
  }
]
raw_payload
{
  "post_id": "1158147",
  "fetched_at": "2026-05-29T22:00:00.970Z",
  "has_post_detail": true,
  "snapshot_version": "producthunt_v1",
  "has_maker_comment": true,
  "maker_comment_source": "maker_match",
  "comments_fetch_status": "ok",
  "selected_comment_count": 5
}
source_raw_snapshot
{
  "id": "ace2633f-d7f6-44a7-95b1-87f5683b4784",
  "daily_ranking_item_id": "6320c19e-6c4b-4bac-ac31-9b6fc63b1e19",
  "source": "producthunt_api",
  "product_hunt_id": "1158147",
  "fetched_at": "2026-05-29T22:00:00.970Z",
  "post_raw": {
    "id": "1158147",
    "url": "https://www.producthunt.com/products/linear?utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
    "name": "Linear Diffs",
    "media": [
      {
        "url": "https://ph-files.imgix.net/77f51a24-3e6d-498f-a4e9-a2fce28091da.png?auto=format",
        "type": "image",
        "videoUrl": null
      },
      {
        "url": "https://ph-files.imgix.net/cc463a50-d60e-4e00-8480-d32d21ba8123.avif?auto=format",
        "type": "image",
        "videoUrl": null
      },
      {
        "url": "https://ph-files.imgix.net/5c01f7c9-fe70-4466-b20e-a3f5eee45632.avif?auto=format",
        "type": "image",
        "videoUrl": null
      },
      {
        "url": "https://ph-files.imgix.net/541c9e85-e9ab-4c4c-9fce-3b76f29a1a61.avif?auto=format",
        "type": "image",
        "videoUrl": null
      },
      {
        "url": "https://ph-files.imgix.net/56f5e0c0-5171-4a73-afe8-d7b1d62fd572.jpeg?auto=format",
        "type": "video",
        "videoUrl": "https://youtu.be/7gZBxBTapDQ"
      }
    ],
    "tagline": "A new way to review PRs, directly inside Linear",
    "thumbnail": {
      "url": "https://ph-files.imgix.net/9d9aa008-ca0e-4f10-84a1-211ae6875f45.png?auto=format"
    },
    "votesCount": 139,
    "description": "Introducing Linear Diffs to make reviewing code a fast and fluid experience native to Linear. You can now review diffs from any issue with a PR, iterate on further changes with agents, and ship code from Linear. All reviews in Linear sync back to GitHub, so the current state of review work is always clear. Linear Diffs is available now on all plans."
  },
  "post_detail_raw": {
    "id": "1158147",
    "slug": "linear-diffs",
    "user": {
      "id": "25713",
      "url": "https://www.producthunt.com/@fmerian?utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
      "name": "fmerian",
      "headline": "hunting devtools e.g. v0.dev and kilo.ai",
      "username": "fmerian",
      "websiteUrl": "https://www.producthunt.com/upcoming/notion-design-system-documentation-by-specify",
      "profileImage": "https://ph-avatars.imgix.net/25713/621b90ee-788e-42ec-8fa3-25dd2910482a.jpeg?auto=format&crop=faces&fit=crop&h=original&w=original",
      "twitterUsername": "fmerian"
    },
    "media": [
      {
        "url": "https://ph-files.imgix.net/77f51a24-3e6d-498f-a4e9-a2fce28091da.png?auto=format",
        "type": "image",
        "videoUrl": null
      },
      {
        "url": "https://ph-files.imgix.net/cc463a50-d60e-4e00-8480-d32d21ba8123.avif?auto=format",
        "type": "image",
        "videoUrl": null
      },
      {
        "url": "https://ph-files.imgix.net/5c01f7c9-fe70-4466-b20e-a3f5eee45632.avif?auto=format",
        "type": "image",
        "videoUrl": null
      },
      {
        "url": "https://ph-files.imgix.net/541c9e85-e9ab-4c4c-9fce-3b76f29a1a61.avif?auto=format",
        "type": "image",
        "videoUrl": null
      },
      {
        "url": "https://ph-files.imgix.net/56f5e0c0-5171-4a73-afe8-d7b1d62fd572.jpeg?auto=format",
        "type": "video",
        "videoUrl": "https://youtu.be/7gZBxBTapDQ"
      }
    ],
    "makers": [
      {
        "id": "0",
        "url": "[REDACTED]",
        "name": "[REDACTED]",
        "headline": null,
        "username": "[REDACTED]",
        "websiteUrl": null,
        "profileImage": null,
        "twitterUsername": null
      },
      {
        "id": "0",
        "url": "[REDACTED]",
        "name": "[REDACTED]",
        "headline": null,
        "username": "[REDACTED]",
        "websiteUrl": null,
        "profileImage": null,
        "twitterUsername": null
      },
      {
        "id": "0",
        "url": "[REDACTED]",
        "name": "[REDACTED]",
        "headline": null,
        "username": "[REDACTED]",
        "websiteUrl": null,
        "profileImage": null,
        "twitterUsername": null
      },
      {
        "id": "0",
        "url": "[REDACTED]",
        "name": "[REDACTED]",
        "headline": null,
        "username": "[REDACTED]",
        "websiteUrl": null,
        "profileImage": null,
        "twitterUsername": null
      },
      {
        "id": "0",
        "url": "[REDACTED]",
        "name": "[REDACTED]",
        "headline": null,
        "username": "[REDACTED]",
        "websiteUrl": null,
        "profileImage": null,
        "twitterUsername": null
      }
    ],
    "topics": {
      "edges": [
        {
          "node": {
            "id": "46",
            "name": "Productivity",
            "slug": "productivity"
          }
        },
        {
          "node": {
            "id": "247",
            "name": "Software Engineering",
            "slug": "software-engineering"
          }
        },
        {
          "node": {
            "id": "272",
            "name": "GitHub",
            "slug": "github"
          }
        }
      ]
    },
    "website": "https://www.producthunt.com/r/GNHHT754GPCT47?utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
    "createdAt": "2026-05-29T07:01:00Z",
    "dailyRank": 8,
    "thumbnail": {
      "url": "https://ph-files.imgix.net/9d9aa008-ca0e-4f10-84a1-211ae6875f45.png?auto=format",
      "type": "image",
      "videoUrl": null
    },
    "featuredAt": "2026-05-29T07:01:00Z",
    "weeklyRank": 39,
    "yearlyRank": null,
    "monthlyRank": 444,
    "scheduledAt": "2026-05-29T07:01:00Z",
    "productLinks": [
      {
        "url": "https://www.producthunt.com/r/6HXMW66YWA2GZF?utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
        "type": "Twitter"
      },
      {
        "url": "https://www.producthunt.com/r/GNHHT754GPCT47?utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
        "type": "Website"
      }
    ],
    "reviewsCount": 396,
    "commentsCount": 9,
    "reviewsRating": 4.91
  },
  "maker_comment_raw": {
    "id": "5409300",
    "url": "https://www.producthunt.com/products/linear?comment=5409300&utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
    "body": "<p>Review code in <a href=\"https://www.producthunt.com/products/linear\" data-node-type=\"mention\" data-mention-type=\"product\" data-mention-id=\"linear\" target=\"_blank\" rel=\"noopener\">@Linear</a>, iterate with your team and agents, all in one place. Love this direction!</p>",
    "user": {
      "id": "25713",
      "url": "[REDACTED]",
      "name": "[REDACTED]",
      "headline": null,
      "username": "[REDACTED]",
      "profile_url": "[REDACTED]",
      "website_url": null,
      "profile_image": null,
      "twitter_username": null
    },
    "user_id": "25713",
    "is_maker": true,
    "parent_id": null,
    "created_at": "2026-05-28T22:58:31Z",
    "replies_raw": [],
    "votes_count": 1
  },
  "selected_comments_raw": [
    {
      "id": "5409300",
      "url": "https://www.producthunt.com/products/linear?comment=5409300&utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
      "body": "<p>Review code in <a href=\"https://www.producthunt.com/products/linear\" data-node-type=\"mention\" data-mention-type=\"product\" data-mention-id=\"linear\" target=\"_blank\" rel=\"noopener\">@Linear</a>, iterate with your team and agents, all in one place. Love this direction!</p>",
      "user": {
        "id": "25713",
        "url": "[REDACTED]",
        "name": "[REDACTED]",
        "headline": null,
        "username": "[REDACTED]",
        "profile_url": "[REDACTED]",
        "website_url": null,
        "profile_image": null,
        "twitter_username": null
      },
      "user_id": "25713",
      "is_maker": true,
      "parent_id": null,
      "created_at": "2026-05-28T22:58:31Z",
      "replies_raw": [],
      "votes_count": 1,
      "selection_score": 271,
      "selection_reason": "maker_comment"
    },
    {
      "id": "5410483",
      "url": "https://www.producthunt.com/products/linear?comment=5410483&utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
      "body": "<p>Collapsing the context switch between issue tracker and code review is the right call. You can finally review a change against the spec it came from without toggling tabs. We've felt this friction most when AI agents generate multiple interdependent PRs in a sprint. Does Linear Diffs support inline comments that sync bidirectionally with GitHub's review state?</p>",
      "user": {
        "id": "8689236",
        "url": "[REDACTED]",
        "name": "[REDACTED]",
        "headline": null,
        "username": "[REDACTED]",
        "profile_url": "[REDACTED]",
        "website_url": null,
        "profile_image": null,
        "twitter_username": null
      },
      "user_id": "8689236",
      "is_maker": false,
      "parent_id": null,
      "created_at": "2026-05-29T12:06:46Z",
      "replies_raw": [],
      "votes_count": 0,
      "selection_score": 369,
      "selection_reason": "body_signal_score"
    },
    {
      "id": "5410644",
      "url": "https://www.producthunt.com/products/linear?comment=5410644&utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
      "body": "<p>Rendering PR diffs inside the issue context solves a real context-switching problem. We've lost too much review state bouncing between GitHub threads and Linear tickets. Since reviews sync back to GitHub, curious how you're handling force-pushes mid-review. Does the diff view update automatically, or does it require a manual refresh?</p>",
      "user": {
        "id": "9825328",
        "url": "[REDACTED]",
        "name": "[REDACTED]",
        "headline": null,
        "username": "[REDACTED]",
        "profile_url": "[REDACTED]",
        "website_url": null,
        "profile_image": null,
        "twitter_username": null
      },
      "user_id": "9825328",
      "is_maker": false,
      "parent_id": null,
      "created_at": "2026-05-29T13:37:31Z",
      "replies_raw": [],
      "votes_count": 0,
      "selection_score": 342,
      "selection_reason": "body_signal_score"
    },
    {
      "id": "5411249",
      "url": "https://www.producthunt.com/products/linear?comment=5411249&utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
      "body": "<p>Code review inside Linear makes a lot of sense now that agents can create PRs directly from issues. The hard part is keeping the review anchored to the original intent, not just the diff. Curious how you handle stacked or related PRs from the same Linear issue.</p>",
      "user": {
        "id": "9815765",
        "url": "[REDACTED]",
        "name": "[REDACTED]",
        "headline": null,
        "username": "[REDACTED]",
        "profile_url": "[REDACTED]",
        "website_url": null,
        "profile_image": null,
        "twitter_username": null
      },
      "user_id": "9815765",
      "is_maker": false,
      "parent_id": null,
      "created_at": "2026-05-29T20:22:20Z",
      "replies_raw": [],
      "votes_count": 0,
      "selection_score": 268,
      "selection_reason": "body_signal_score"
    },
    {
      "id": "5410053",
      "url": "https://www.producthunt.com/products/linear?comment=5410053&utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
      "body": "<p>Been waiting for something like this since the \"close the issue, open GitHub, scroll to find the PR, lose context, come back\" loop gets old fast. I do not use code editor anymore so a better interface that github is always welcomed! Very cool feature</p>",
      "user": {
        "id": "9763736",
        "url": "[REDACTED]",
        "name": "[REDACTED]",
        "headline": null,
        "username": "[REDACTED]",
        "profile_url": "[REDACTED]",
        "website_url": null,
        "profile_image": null,
        "twitter_username": null
      },
      "user_id": "9763736",
      "is_maker": false,
      "parent_id": null,
      "created_at": "2026-05-29T08:21:07Z",
      "replies_raw": [],
      "votes_count": 1,
      "selection_score": 257,
      "selection_reason": "body_signal_score"
    }
  ],
  "topics_raw": [
    {
      "id": "46",
      "name": "Productivity",
      "slug": "productivity"
    },
    {
      "id": "247",
      "name": "Software Engineering",
      "slug": "software-engineering"
    },
    {
      "id": "272",
      "name": "GitHub",
      "slug": "github"
    }
  ],
  "makers_raw": [
    {
      "id": "0",
      "url": "[REDACTED]",
      "name": "[REDACTED]",
      "headline": null,
      "username": "[REDACTED]",
      "profileUrl": "[REDACTED]",
      "websiteUrl": null,
      "profileImage": null,
      "twitterUsername": null
    },
    {
      "id": "0",
      "url": "[REDACTED]",
      "name": "[REDACTED]",
      "headline": null,
      "username": "[REDACTED]",
      "profileUrl": "[REDACTED]",
      "websiteUrl": null,
      "profileImage": null,
      "twitterUsername": null
    },
    {
      "id": "0",
      "url": "[REDACTED]",
      "name": "[REDACTED]",
      "headline": null,
      "username": "[REDACTED]",
      "profileUrl": "[REDACTED]",
      "websiteUrl": null,
      "profileImage": null,
      "twitterUsername": null
    },
    {
      "id": "0",
      "url": "[REDACTED]",
      "name": "[REDACTED]",
      "headline": null,
      "username": "[REDACTED]",
      "profileUrl": "[REDACTED]",
      "websiteUrl": null,
      "profileImage": null,
      "twitterUsername": null
    },
    {
      "id": "0",
      "url": "[REDACTED]",
      "name": "[REDACTED]",
      "headline": null,
      "username": "[REDACTED]",
      "profileUrl": "[REDACTED]",
      "websiteUrl": null,
      "profileImage": null,
      "twitterUsername": null
    }
  ],
  "launch_metadata_raw": {
    "slug": "linear-diffs",
    "daily_rank": 8,
    "featured_at": "2026-05-29T07:01:00Z",
    "website_url": "https://www.producthunt.com/r/GNHHT754GPCT47?utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
    "weekly_rank": 39,
    "yearly_rank": null,
    "monthly_rank": 444,
    "scheduled_at": "2026-05-29T07:01:00Z",
    "reviews_rating": 4.91,
    "created_at_on_product_hunt": "2026-05-29T07:01:00Z"
  },
  "stats_raw": {
    "votes_count": 139,
    "reviews_count": 396,
    "comments_count": 9,
    "reviews_rating": 4.91
  },
  "aux_raw": {
    "media_extended": [
      {
        "url": "https://ph-files.imgix.net/77f51a24-3e6d-498f-a4e9-a2fce28091da.png?auto=format",
        "type": "image",
        "videoUrl": null
      },
      {
        "url": "https://ph-files.imgix.net/cc463a50-d60e-4e00-8480-d32d21ba8123.avif?auto=format",
        "type": "image",
        "videoUrl": null
      },
      {
        "url": "https://ph-files.imgix.net/5c01f7c9-fe70-4466-b20e-a3f5eee45632.avif?auto=format",
        "type": "image",
        "videoUrl": null
      },
      {
        "url": "https://ph-files.imgix.net/541c9e85-e9ab-4c4c-9fce-3b76f29a1a61.avif?auto=format",
        "type": "image",
        "videoUrl": null
      },
      {
        "url": "https://ph-files.imgix.net/56f5e0c0-5171-4a73-afe8-d7b1d62fd572.jpeg?auto=format",
        "type": "video",
        "videoUrl": "https://youtu.be/7gZBxBTapDQ"
      }
    ],
    "submitter_user": {
      "id": "25713",
      "url": "https://www.producthunt.com/@fmerian?utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
      "name": "fmerian",
      "headline": "hunting devtools e.g. v0.dev and kilo.ai",
      "username": "fmerian",
      "profileUrl": "https://www.producthunt.com/@fmerian?utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
      "websiteUrl": "https://www.producthunt.com/upcoming/notion-design-system-documentation-by-specify",
      "profileImage": "https://ph-avatars.imgix.net/25713/621b90ee-788e-42ec-8fa3-25dd2910482a.jpeg?auto=format&crop=faces&fit=crop&h=original&w=original",
      "twitterUsername": "fmerian"
    },
    "presentation_only": {
      "thumbnail_url": "https://ph-files.imgix.net/9d9aa008-ca0e-4f10-84a1-211ae6875f45.png?auto=format",
      "product_hunt_url": "https://www.producthunt.com/products/linear?utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
      "product_hunt_slug": "linear-diffs"
    },
    "unused_upstream_fields": {
      "post_aux": {},
      "comments_aux": {},
      "post_detail_aux": {
        "media_raw": [
          {
            "url": "https://ph-files.imgix.net/77f51a24-3e6d-498f-a4e9-a2fce28091da.png?auto=format",
            "type": "image",
            "videoUrl": null
          },
          {
            "url": "https://ph-files.imgix.net/cc463a50-d60e-4e00-8480-d32d21ba8123.avif?auto=format",
            "type": "image",
            "videoUrl": null
          },
          {
            "url": "https://ph-files.imgix.net/5c01f7c9-fe70-4466-b20e-a3f5eee45632.avif?auto=format",
            "type": "image",
            "videoUrl": null
          },
          {
            "url": "https://ph-files.imgix.net/541c9e85-e9ab-4c4c-9fce-3b76f29a1a61.avif?auto=format",
            "type": "image",
            "videoUrl": null
          },
          {
            "url": "https://ph-files.imgix.net/56f5e0c0-5171-4a73-afe8-d7b1d62fd572.jpeg?auto=format",
            "type": "video",
            "videoUrl": "https://youtu.be/7gZBxBTapDQ"
          }
        ],
        "thumbnail_raw": {
          "url": "https://ph-files.imgix.net/9d9aa008-ca0e-4f10-84a1-211ae6875f45.png?auto=format",
          "type": "image",
          "videoUrl": null
        },
        "presentation_only": {
          "product_hunt_slug": "linear-diffs"
        },
        "product_links_raw": [
          {
            "url": "https://www.producthunt.com/r/6HXMW66YWA2GZF?utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
            "type": "Twitter"
          },
          {
            "url": "https://www.producthunt.com/r/GNHHT754GPCT47?utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
            "type": "Website"
          }
        ],
        "submitter_user_raw": {
          "id": "25713",
          "url": "https://www.producthunt.com/@fmerian?utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
          "name": "fmerian",
          "headline": "hunting devtools e.g. v0.dev and kilo.ai",
          "username": "fmerian",
          "websiteUrl": "https://www.producthunt.com/upcoming/notion-design-system-documentation-by-specify",
          "profileImage": "https://ph-avatars.imgix.net/25713/621b90ee-788e-42ec-8fa3-25dd2910482a.jpeg?auto=format&crop=faces&fit=crop&h=original&w=original",
          "twitterUsername": "fmerian"
        },
        "unused_upstream_fields": {}
      }
    }
  },
  "selection_meta": {
    "scoring_basis": "maker first, then non-maker body signal score with original order tie-break",
    "first_comment_id": "5409300",
    "comments_strategy": "maker_plus_top_discussion",
    "detail_fetch_status": "ok",
    "top_candidate_count": 9,
    "maker_comment_source": "maker_match",
    "comments_fetch_status": "ok",
    "dropped_comment_count": 4,
    "comments_fetched_limit": 25,
    "newest_candidate_count": 9,
    "selected_comment_count": 5,
    "candidate_comment_count": 9,
    "selected_comment_reasons": [
      {
        "id": "5409300",
        "score": 271,
        "reason": "maker_comment"
      },
      {
        "id": "5410483",
        "score": 369,
        "reason": "body_signal_score"
      },
      {
        "id": "5410644",
        "score": 342,
        "reason": "body_signal_score"
      },
      {
        "id": "5411249",
        "score": 268,
        "reason": "body_signal_score"
      },
      {
        "id": "5410053",
        "score": 257,
        "reason": "body_signal_score"
      }
    ]
  },
  "created_at": "2026-05-29T22:00:05.934Z",
  "updated_at": "2026-05-29T22:00:05.934Z"
}