{"id":257,"date":"2026-06-20T12:44:12","date_gmt":"2026-06-20T04:44:12","guid":{"rendered":"https:\/\/ph.listeningo.cn\/index.php\/2026\/06\/20\/2026-06-19\/"},"modified":"2026-06-20T12:44:12","modified_gmt":"2026-06-20T04:44:12","slug":"2026-06-19","status":"publish","type":"post","link":"https:\/\/ph.listeningo.cn\/index.php\/2026\/06\/20\/2026-06-19\/","title":{"rendered":"PH\u70ed\u699c | 2026-06-19"},"content":{"rendered":"<p><!DOCTYPE html><br \/>\n<html lang=\"zh-CN\"><br \/>\n<head><br \/>\n    <meta charset=\"UTF-8\"><br \/>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"><br \/>\n    <title>Product Hunt \u6bcf\u65e5\u70ed\u699c 2026-06-19<\/title><\/p>\n<style>\n        \/* --- \u5168\u5c40\u91cd\u7f6e\u4e0e\u5b57\u4f53 --- *\/\n        :root {\n            --ph-orange: #FF6154;\n            --text-main: #21293C;\n            --text-secondary: #4B587C;\n            --bg-ai: #F7F7F9;\n            --border-color: #E6E6E6;\n        }<\/p>\n<p>        body {\n            font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif;\n            color: var(--text-main);\n            background-color: #ffffff;\n            line-height: 1.6;\n            margin: 0;\n            padding: 20px;\n        }<\/p>\n<p>        .container {\n            max-width: 800px;\n            margin: 0 auto;\n        }<\/p>\n<p>        \/* --- \u5361\u7247\u6837\u5f0f --- *\/\n        .app-card {\n            border-bottom: 1px solid var(--border-color);\n            padding-bottom: 40px;\n            margin-bottom: 40px;\n        }<\/p>\n<p>        \/* --- 1. \u5934\u90e8\u533a\u57df --- *\/\n        .app-header {\n            display: flex;\n            align-items: flex-start;\n            gap: 16px;\n            margin-bottom: 20px;\n        }<\/p>\n<p>        .rank {\n            font-size: 24px;\n            font-weight: 300;\n            color: #999;\n            min-width: 30px;\n            padding-top: 4px;\n        }<\/p>\n<p>        .title-group {\n            flex: 1;\n        }<\/p>\n<p>        .app-title {\n            font-size: 24px;\n            font-weight: 800;\n            margin: 0 0 4px 0;\n            color: var(--text-main);\n            text-decoration: none;\n            display: inline-block;\n        }<\/p>\n<p>        .app-title:hover {\n            color: var(--ph-orange);\n            text-decoration: underline;\n        }<\/p>\n<p>        .vote-btn {\n            display: flex;\n            flex-direction: column;\n            align-items: center;\n            justify-content: center;\n            border: 1px solid var(--border-color);\n            border-radius: 8px;\n            padding: 8px 12px;\n            background: #fff;\n            min-width: 60px;\n            box-shadow: 0 1px 2px rgba(0,0,0,0.05);\n        }<\/p>\n<p>        .vote-arrow {\n            color: var(--ph-orange);\n            font-size: 14px;\n            margin-bottom: -2px;\n        }<\/p>\n<p>        .vote-count {\n            font-weight: 600;\n            font-size: 14px;\n        }<\/p>\n<p>        \/* --- 2. \u5347\u7ea7\u7248\u5a92\u4f53\u753b\u5eca (\u5173\u952e\u4fee\u6539) --- *\/\n        .media-gallery {\n            display: flex;\n            gap: 16px;\n            overflow-x: auto; \/* \u5141\u8bb8\u6a2a\u5411\u6eda\u52a8 *\/\n            padding-bottom: 16px; \/* \u7559\u51fa\u6eda\u52a8\u7a7a\u95f4 *\/\n            scroll-snap-type: x mandatory; \/* \u6eda\u52a8\u5438\u9644\u6548\u679c *\/\n            -webkit-overflow-scrolling: touch; \/* iOS \u5e73\u6ed1\u6eda\u52a8 *\/\n            margin-bottom: 20px;<\/p>\n<p>            \/* \u9690\u85cf\u9ed8\u8ba4\u6eda\u52a8\u6761\u4f46\u4fdd\u7559\u529f\u80fd (Firefox) *\/\n            scrollbar-width: thin;\n            scrollbar-color: #ddd transparent;\n        }<\/p>\n<p>        \/* Webkit \u6eda\u52a8\u6761\u6837\u5f0f\u4f18\u5316 *\/\n        .media-gallery::-webkit-scrollbar {\n            height: 6px;\n        }\n        .media-gallery::-webkit-scrollbar-track {\n            background: transparent;\n        }\n        .media-gallery::-webkit-scrollbar-thumb {\n            background-color: #eee;\n            border-radius: 10px;\n        }<\/p>\n<p>        .media-item-wrapper {\n            flex: 0 0 auto; \/* \u9632\u6b62\u88ab\u538b\u7f29 *\/\n            width: 80%;     \/* \u79fb\u52a8\u7aef\u9ed8\u8ba4\u9732\u51fa\u4e00\u70b9\u4e0b\u4e00\u5f20\uff0c\u63d0\u793a\u53ef\u6ed1\u52a8 *\/\n            max-width: 500px; \/* \u684c\u9762\u7aef\u6700\u5927\u5bbd\u5ea6 *\/\n            aspect-ratio: 16\/9; \/* \u7edf\u4e00\u6bd4\u4f8b *\/<\/p>\n<p>            position: relative;\n            border-radius: 12px;\n            overflow: hidden;\n            border: 1px solid rgba(0,0,0,0.08);\n            background-color: #f5f5f5;\n            scroll-snap-align: center; \/* \u6eda\u52a8\u505c\u6b62\u65f6\u5c45\u4e2d *\/\n        }<\/p>\n<p>        .media-content {\n            width: 100%;\n            height: 100%;\n            object-fit: cover; \/* \u586b\u5145\u5bb9\u5668 *\/\n            display: block;\n            cursor: pointer;\n        }<\/p>\n<p>        \/* \u89c6\u9891\u6807\u7b7e\u7279\u6b8a\u5904\u7406 *\/\n        video.media-content {\n            background-color: #000;\n            cursor: pointer;\n        }<\/p>\n<p>        \/* \u5982\u679c\u53ea\u67091\u4e2a\u5a92\u4f53\uff0c\u4e0d\u8981\u6eda\u52a8\uff0c\u4e14\u5bbd\u5ea6\u81ea\u9002\u5e94 *\/\n        .media-gallery.single-item .media-item-wrapper {\n            width: 100%;\n            max-width: 100%;\n        }<\/p>\n<p>        \/* --- 3. \u63cf\u8ff0\u4e0e\u6807\u7b7e --- *\/\n        .one-liner {\n            font-size: 18px;\n            color: var(--text-secondary);\n            margin-bottom: 12px;\n            font-weight: 500;\n        }<\/p>\n<p>        .tags-container {\n            display: flex;\n            flex-wrap: wrap;\n            gap: 8px;\n            margin-bottom: 24px;\n        }<\/p>\n<p>        .tag {\n            font-size: 12px;\n            color: var(--text-secondary);\n            background-color: #F2F2F2;\n            padding: 4px 10px;\n            border-radius: 20px;\n            font-weight: 600;\n            text-transform: uppercase;\n        }<\/p>\n<p>        \/* --- 4. AI \u6458\u8981\u533a --- *\/\n        .ai-section {\n            background-color: var(--bg-ai);\n            border-radius: 12px;\n            padding: 20px;\n            margin-bottom: 20px;\n            border-left: 4px solid var(--ph-orange);\n        }<\/p>\n<p>        .ai-title {\n            font-size: 14px;\n            font-weight: 700;\n            color: var(--text-main);\n            margin: 0 0 12px 0;\n            display: flex;\n            align-items: center;\n            gap: 6px;\n        }<\/p>\n<p>        .ai-content {\n            font-size: 15px;\n            color: #333;\n            margin-bottom: 0;\n            line-height: 1.7;\n        }<\/p>\n<p>        \/* --- 5. \u8bc4\u8bba\u533a --- *\/\n        .reviews-section {\n            margin-top: 10px;\n        }<\/p>\n<p>        .review-item {\n            display: flex;\n            gap: 10px;\n            margin-bottom: 12px;\n            font-size: 14px;\n        }<\/p>\n<p>        .review-avatar {\n            font-size: 18px;\n            margin-top: 2px;\n            min-width: 24px;\n        }<\/p>\n<p>        .review-bubble {\n            background: #fff;\n            border: 1px solid var(--border-color);\n            padding: 8px 12px;\n            border-radius: 0 12px 12px 12px;\n            color: var(--text-secondary);\n            line-height: 1.5;\n        }<\/p>\n<p>        .review-author {\n            font-weight: 700;\n            color: var(--text-main);\n            margin-right: 4px;\n            font-style: normal;\n        }<\/p>\n<p>        .comments-section {\n            margin-top: 30px;\n            border-top: 1px solid var(--border-color);\n            padding-top: 20px;\n        }<\/p>\n<p>        .comments-toggle {\n            background-color: #f8f9fa;\n            border: 1px solid var(--border-color);\n            border-radius: 8px;\n            padding: 12px 20px;\n            cursor: pointer;\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            width: 100%;\n            font-size: 14px;\n            font-weight: 600;\n            color: var(--text-main);\n            transition: all 0.3s ease;\n        }<\/p>\n<p>        .comments-toggle:hover {\n            background-color: #e9ecef;\n        }<\/p>\n<p>        .comments-toggle .toggle-arrow {\n            font-size: 18px;\n            transition: transform 0.3s ease;\n        }<\/p>\n<p>        .comments-toggle.open .toggle-arrow {\n            transform: rotate(180deg);\n        }<\/p>\n<p>        .comments-container {\n            max-height: 0;\n            overflow: hidden;\n            transition: max-height 0.5s ease;\n            margin-top: 15px;\n        }<\/p>\n<p>        .comments-container.open {\n            max-height: 800px;\n            overflow: auto;\n        }<\/p>\n<p>        .comment-item {\n            background-color: #fff;\n            border: 1px solid var(--border-color);\n            border-radius: 8px;\n            padding: 16px;\n            margin-bottom: 12px;\n            font-size: 14px;\n        }<\/p>\n<p>        .comment-header {\n            display: flex;\n            justify-content: space-between;\n            align-items: flex-start;\n            margin-bottom: 8px;\n        }<\/p>\n<p>        .comment-author {\n            font-weight: 600;\n            color: var(--text-main);\n            margin-right: 8px;\n        }<\/p>\n<p>        .comment-content {\n            color: var(--text-secondary);\n            line-height: 1.5;\n            margin-bottom: 10px;\n            word-break: break-word;\n            word-wrap: break-word;\n            overflow-wrap: anywhere;\n            white-space: normal;\n        }<\/p>\n<p>        .comment-content p {\n            margin: 0;\n            word-break: break-word;\n            word-wrap: break-word;\n            overflow-wrap: anywhere;\n            white-space: normal;\n        }<\/p>\n<p>        \/* \u4f18\u5316\u8868\u60c5\u7b26\u53f7\u663e\u793a *\/\n       .emoji {\n            display: inline;\n            max-width: 15px;\n            overflow-wrap: normal;\n        }<\/p>\n<p>        .comment-actions {\n            display: flex;\n            align-items: center;\n            gap: 16px;\n            font-size: 12px;\n            color: var(--text-secondary);\n        }<\/p>\n<p>        .comment-vote {\n            display: flex;\n            align-items: center;\n            gap: 4px;\n            cursor: pointer;\n        }<\/p>\n<p>        .comment-replies {\n            margin-top: 12px;\n            margin-left: 20px;\n            padding-left: 12px;\n            border-left: 2px solid var(--border-color);\n        }<\/p>\n<p>        .reply-item {\n            background-color: #f8f9fa;\n            border: 1px solid var(--border-color);\n            border-radius: 6px;\n            padding: 12px;\n            margin-bottom: 8px;\n            font-size: 13px;\n        }<\/p>\n<p>        .reply-content {\n            color: var(--text-secondary);\n            line-height: 1.4;\n            margin-bottom: 6px;\n        }<\/p>\n<p>        \/* --- \u54cd\u5e94\u5f0f\u5fae\u8c03 --- *\/\n        @media (min-width: 600px) {\n            .media-item-wrapper {\n                width: 60%; \/* \u684c\u9762\u7aef\u7a0d\u5fae\u7a84\u4e00\u70b9\uff0c\u5c55\u793a\u66f4\u591a\u5f20 *\/\n                scroll-snap-align: start; \/* \u684c\u9762\u7aef\u9760\u5de6\u5bf9\u9f50 *\/\n            }\n        }<\/p>\n<p>        \/* \u79fb\u52a8\u8bbe\u5907\u54cd\u5e94\u5f0f\u4f18\u5316 *\/\n        @media (max-width: 599px) {\n            \/* \u6a21\u6001\u6846\u4f18\u5316 *\/\n            .modal-content {\n                max-width: 95%;\n                max-height: 85vh;\n                margin: 10vh auto;\n            }<\/p>\n<p>            .close {\n                top: 10px;\n                right: 20px;\n                font-size: 30px;\n                \/* \u589e\u5927\u70b9\u51fb\u533a\u57df *\/\n                padding: 15px;\n            }<\/p>\n<p>            \/* \u89c6\u9891\u64ad\u653e\u56fe\u6807\u4f18\u5316 *\/\n            .play-icon {\n                width: 60px;\n                height: 60px;\n                font-size: 18px;\n            }<\/p>\n<p>            \/* \u786e\u4fdd\u5a92\u4f53\u5185\u5bb9\u5728\u5c0f\u5c4f\u5e55\u4e0a\u6b63\u786e\u663e\u793a *\/\n            .media-content {\n                object-fit: cover;\n            }\n        }<\/p>\n<p>        \/* --- \u56fe\u7247\u653e\u5927\u6a21\u6001\u6846\u6837\u5f0f --- *\/\n        .modal {\n            display: none;\n            position: fixed;\n            z-index: 1000;\n            left: 0;\n            top: 0;\n            width: 100%;\n            height: 100%;\n            background-color: rgba(0, 0, 0, 0.9);\n            overflow: auto;\n            transition: opacity 0.3s ease;\n        }<\/p>\n<p>        .modal-content {\n            display: block;\n            max-width: 90%;\n            max-height: 90vh;\n            margin: 5vh auto;\n            object-fit: contain;\n            animation: zoom 0.3s;\n        }<\/p>\n<p>        @keyframes zoom {\n            from {transform: scale(0.8); opacity: 0;}\n            to {transform: scale(1); opacity: 1;}\n        }<\/p>\n<p>        .close {\n            position: absolute;\n            top: 20px;\n            right: 35px;\n            color: #fff;\n            font-size: 40px;\n            font-weight: bold;\n            transition: 0.3s;\n            cursor: pointer;\n            \/* \u6dfb\u52a0\u89e6\u63a7\u4f18\u5316 *\/\n            padding: 10px;\n            line-height: 1;\n            user-select: none;\n            -webkit-user-select: none;\n        }<\/p>\n<p>        .close:hover,\n        .close:focus {\n            color: #bbb;\n            text-decoration: none;\n        }<\/p>\n<p>        \/* \u89c6\u9891\u70b9\u51fb\u63d0\u793a\u6837\u5f0f *\/\n        .video-overlay {\n            position: absolute;\n            top: 0;\n            left: 0;\n            width: 100%;\n            height: 100%;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            background-color: rgba(0, 0, 0, 0.2);\n            opacity: 0;\n            transition: opacity 0.3s ease;\n            \/* \u89e6\u63a7\u4f18\u5316 *\/\n            touch-action: manipulation;\n            cursor: pointer;\n        }<\/p>\n<p>        .media-item-wrapper:hover .video-overlay {\n            opacity: 1;\n        }<\/p>\n<p>        \/* \u4e3a\u89e6\u6478\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u6548\u679c *\/\n        .media-item-wrapper:active .video-overlay {\n            opacity: 0.8;\n        }<\/p>\n<p>        .play-icon {\n            width: 80px;\n            height: 80px;\n            background-color: rgba(255, 255, 255, 0.9);\n            border-radius: 50%;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            color: var(--ph-orange);\n            font-size: 24px;\n            font-weight: bold;\n            \/* \u89e6\u63a7\u4f18\u5316 *\/\n            user-select: none;\n            -webkit-user-select: none;\n        }<\/p>\n<p>        \/* --- \u54cd\u5e94\u5f0f\u5fae\u8c03 --- *\/\n        @media (min-width: 600px) {\n            .media-item-wrapper {\n                width: 60%; \/* \u684c\u9762\u7aef\u7a0d\u5fae\u7a84\u4e00\u70b9\uff0c\u5c55\u793a\u66f4\u591a\u5f20 *\/\n                scroll-snap-align: start; \/* \u684c\u9762\u7aef\u9760\u5de6\u5bf9\u9f50 *\/\n            }\n        }<\/p>\n<p>        \/* \u79fb\u52a8\u8bbe\u5907\u54cd\u5e94\u5f0f\u4f18\u5316 *\/\n        @media (max-width: 599px) {\n            \/* \u6a21\u6001\u6846\u4f18\u5316 *\/\n            .modal-content {\n                max-width: 95%;\n                max-height: 85vh;\n                margin: 10vh auto;\n            }<\/p>\n<p>            .close {\n                top: 10px;\n                right: 20px;\n                font-size: 30px;\n                \/* \u589e\u5927\u70b9\u51fb\u533a\u57df *\/\n                padding: 15px;\n            }<\/p>\n<p>            \/* \u89c6\u9891\u64ad\u653e\u56fe\u6807\u4f18\u5316 *\/\n            .play-icon {\n                width: 60px;\n                height: 60px;\n                font-size: 18px;\n            }<\/p>\n<p>            \/* \u786e\u4fdd\u5a92\u4f53\u5185\u5bb9\u5728\u5c0f\u5c4f\u5e55\u4e0a\u6b63\u786e\u663e\u793a *\/\n            .media-content {\n                object-fit: cover;\n            }\n        }\n    <\/style>\n<p><\/head><br \/>\n<body><\/p>\n<div class=\"container\">\n<h1 style=\"text-align:center; margin-bottom:40px; font-weight:900;\">PH\u70ed\u699c | 2026-06-19<\/h1>\n<p>    <!-- \u5c55\u793aapp\u5361\u7247 --><\/p>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#1<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/ZKUSXUIDPQQBDF\" class=\"app-title\">Claude Code Artifacts<\/a><\/p>\n<div class=\"one-liner\">Preview and share your coding work live as it happens<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">403<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Claude Code Artifacts \u662f\u4e00\u6b3e\u8ba9\u5f00\u53d1\u8005\u5728\u7f16\u7801\u8fc7\u7a0b\u4e2d\u5b9e\u65f6\u751f\u6210\u5e76\u5206\u4eab\u4ea4\u4e92\u5f0f\u9875\u9762\uff08\u5982PR\u9884\u89c8\u3001\u4e8b\u4ef6\u76d1\u63a7\u9875\u3001\u6e05\u5355\u7b49\uff09\u7684\u5de5\u5177\uff0c\u89e3\u51b3\u4e86\u56e2\u961f\u6c9f\u901a\u65f6\u201c\u6682\u505c\u5de5\u4f5c\u5199\u72b6\u6001\u66f4\u65b0\u201d\u7684\u75db\u70b9\uff0c\u8ba9\u5ba1\u67e5\u548c\u534f\u4f5c\u53d8\u5f97\u5373\u65f6\u3001\u53ef\u89c6\u3001\u65e0\u9700\u989d\u5916\u90e8\u7f72\u57fa\u7840\u8bbe\u65bd\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/c58edf73-a3c8-4fe9-978f-570326c84efd.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b2d40cdd-64d5-432c-8761-5d79e47d5b27.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/2519a034-1b34-4c85-b800-034201a066da.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/5b9a143d-a429-42f4-bbfb-5af30b36a58e.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/991984a4-80f6-4cc9-bb53-063a5a547bb4.jpeg?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/50f9a50a-a13b-4abb-834b-e383ecf1313b.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/m7TJqx8CYG8?si=bTyXJeOpPuXfhj3p\"><source src=\"https:\/\/youtu.be\/m7TJqx8CYG8?si=bTyXJeOpPuXfhj3p\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Software Engineering<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u7f16\u7a0b\u52a9\u624b<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u65f6\u9884\u89c8<\/span><br \/>\n            <span class=\"tag\">\u56e2\u961f\u534f\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u4ea4\u4e92\u5f0f\u6f14\u793a<\/span><br \/>\n            <span class=\"tag\">\u4ee3\u7801\u5ba1\u67e5<\/span><br \/>\n            <span class=\"tag\">\u5de5\u4f5c\u6d41\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">\u4f01\u4e1a\u7ea7AI\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u6548\u7387<\/span><br \/>\n            <span class=\"tag\">\u539f\u578b\u5171\u4eab<\/span><br \/>\n            <span class=\"tag\">\u590d\u6742\u9879\u76ee\u53ef\u89c6\u5316<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u591a\u6570\u7528\u6237\u80af\u5b9a\u5b9e\u65f6\u9884\u89c8\u548c\u81ea\u52a8\u66f4\u65b0\u529f\u80fd\uff0c\u8ba4\u4e3a\u80fd\u7701\u53bb\u9891\u7e41\u540c\u6b65\u72b6\u6001\u3002\u6838\u5fc3\u7591\u95ee\uff1a\u662f\u5426\u652f\u6301\u8de8\u7ec4\u7ec7\u5171\u4eab\uff08\u5982\u5411\u5ba2\u6237\u7aef\u5c55\u793a\uff09\uff1f\u80fd\u5426\u5728\u591a\u4ed3\u5e93\u4f1a\u8bdd\u4e2d\u5de5\u4f5c\uff1f\u9700\u589e\u52a0\u201c\u51bb\u7ed3\u7248\u672c\u201d\u80fd\u529b\uff0c\u4ee5\u56fa\u5b9a\u67d0\u4e00\u65f6\u523b\u5185\u5bb9\uff0c\u907f\u514d\u968f\u4f1a\u8bdd\u4e0d\u65ad\u53d8\u5316\u3002\u90e8\u5206\u7528\u6237\u5173\u5fc3\u684c\u9762\u7248\u7a33\u5b9a\u6027\u4e0e\u534f\u4f5c\u6269\u5c55\uff08\u5982\u591a\u5206\u652f\u5ba1\u67e5\uff09\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Claude Code Artifacts \u662f\u4e00\u4e2a\u806a\u660e\u7684\u4ea7\u54c1\u8fed\u4ee3\uff0c\u5b83\u7cbe\u51c6\u5730\u5207\u5165\u4e86AI\u8f85\u52a9\u7f16\u7a0b\u5728\u201c\u534f\u4f5c\u95ed\u73af\u201d\u4e0a\u7684\u65ad\u70b9\u3002\u76ee\u524d\u591a\u6570AI\u7f16\u7a0b\u5de5\u5177\u4e13\u6ce8\u4e8e\u751f\u6210\u4ee3\u7801\u7247\u6bb5\u6216\u5355\u6b21\u5bf9\u8bdd\uff0c\u800cArtifacts\u5c06\u5de5\u4f5c\u6d41\u4ece\u201c\u5199\u4ee3\u7801\u201d\u5ef6\u4f38\u5230\u201c\u5c55\u793a\u4ee3\u7801\u201d\uff0c\u89e3\u51b3\u4e86\u56e2\u961f\u548c\u4f01\u4e1a\u573a\u666f\u4e2d\u6700\u5b9e\u9645\u7684\u95ee\u9898\uff1a\u4fe1\u4efb\u5efa\u7acb\u4e0e\u72b6\u6001\u540c\u6b65\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u8bc4\u8bba\u6765\u770b\uff0c\u7528\u6237\u6700\u5174\u594b\u7684\u5e76\u4e0d\u662f\u201c\u4ee3\u7801\u5199\u5f97\u597d\u201d\uff0c\u800c\u662f\u201c\u6211\u4e0d\u9700\u8981\u79bb\u5f00IDE\u5c31\u80fd\u8ba9\u522b\u4eba\u770b\u5230\u6211\u505a\u4e86\u4ec0\u4e48\u201d\u3002\u8fd9\u79cd\u4ece\u201c\u9759\u6001\u8f93\u51fa\u201d\u5230\u201c\u52a8\u6001\u534f\u4f5c\u201d\u7684\u8dc3\u8fc1\uff0c\u624d\u662f\u5b83\u8d85\u51fa\u201c\u529f\u80fd\u66f4\u65b0\u201d\u4e4b\u4e0a\u7684\u4ef7\u503c\u2014\u2014\u5b83\u672c\u8d28\u4e0a\u662f\u4e00\u4e2a\u201c\u5de5\u4f5c\u6d41\u53ef\u89c6\u5316\u5c42\u201d\uff0c\u628aAI\u7684\u968f\u673a\u751f\u6210\u8f6c\u5316\u4e3a\u53ef\u5ba1\u6838\u3001\u53ef\u5206\u4eab\u3001\u53ef\u590d\u76d8\u7684\u4f01\u4e1a\u8d44\u4ea7\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u503c\u5f97\u6ce8\u610f\u7684\u662f\uff0c\u5b83\u76ee\u524d\u4ecd\u7136\u4e25\u91cd\u7ed1\u5b9aClaude\u751f\u6001\u548c\u4f01\u4e1a\u8ba2\u9605\uff0c\u9650\u5236\u4e86\u66f4\u5e7f\u6cdb\u53d7\u4f17\u7684\u63a5\u5165\u3002\u591a\u4e2a\u7528\u6237\u5173\u4e8e\u201c\u8de8\u7ec4\u7ec7\u5171\u4eab\u201d\u201c\u7248\u672c\u51bb\u7ed3\u201d\u201c\u591a\u4ed3\u5e93\u652f\u6301\u201d\u7684\u7591\u95ee\uff0c\u66b4\u9732\u51fa\u5b83\u5728\u771f\u6b63\u7684\u5206\u5e03\u5f0f\u534f\u4f5c\u573a\u666f\u4e2d\u4ecd\u6709\u77ed\u677f\u2014\u2014\u5982\u679c\u53ea\u80fd\u5728\u540c\u4e00\u7ec4\u7ec7\u5185\u90e8\u6d41\u8f6c\uff0c\u5c31\u4ecd\u7136\u53ea\u662f\u4e00\u4e2a\u201c\u5f00\u53d1\u8005\u7684\u79c1\u6709\u770b\u677f\u201d\uff0c\u800c\u4e0d\u662f\u4e00\u4e2a\u771f\u6b63\u7684\u8de8\u804c\u80fd\u534f\u4f5c\u5de5\u5177\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u6b64\u5916\uff0c\u867d\u7136\u5b9e\u65f6\u9884\u89c8\u5f88\u6027\u611f\uff0c\u4f46AI\u4ea7\u7269\u7684\u4e0d\u7a33\u5b9a\u6027\u4ecd\u7136\u662f\u6838\u5fc3\u77db\u76fe\u3002\u7528\u6237\u5bf9\u201c\u4f1a\u8bdd\u5185\u5bb9\u6301\u7eed\u53d8\u5316\u201d\u5e26\u6765\u7684\u4e0d\u53ef\u9884\u6d4b\u6027\u8868\u8fbe\u62c5\u5fe7\uff0c\u8fd9\u672c\u8d28\u4e0a\u662f\u201c\u5b9e\u65f6\u7248\u672c\u201d\u4e0e\u201c\u786e\u5b9a\u6027\u4ea4\u4ed8\u201d\u4e4b\u95f4\u7684\u5929\u7136\u51b2\u7a81\u3002\u5982\u679c\u80fd\u50cfGit\u4e00\u6837\u63d0\u4f9b\u201c\u5206\u652f\u2014\u5408\u5e76\u2014\u56de\u6eda\u201d\u7684\u4f53\u7cfb\uff0c\u624d\u80fd\u771f\u6b63\u8bf4\u670d\u90a3\u4e9b\u5bf9\u4ea4\u4ed8\u8d28\u91cf\u6709\u8981\u6c42\u7684\u56e2\u961f\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u603b\u7684\u6765\u8bf4\uff0cClaude Code Artifacts \u662f\u671d\u7740\u201c\u8ba9AI\u5de5\u4f5c\u53ef\u88ab\u5ba1\u67e5\u3001\u53ef\u88ab\u4fe1\u4efb\u201d\u8fc8\u51fa\u7684\u5408\u7406\u4e00\u6b65\uff0c\u4f46\u8ddd\u79bb\u771f\u6b63\u7684\u3001\u9762\u5411\u591a\u65b9\u534f\u4f5c\u7684\u4f01\u4e1a\u7ea7\u5de5\u5177\u8fd8\u6709\u8ddd\u79bb\u3002\u5b83\u5728\u5f53\u524d\u9636\u6bb5\u66f4\u50cf\u4e00\u4e2a\u201c\u9ad8\u7ea7\u6f14\u793a\u5668\u201d\uff0c\u800c\u975e\u201c\u534f\u4f5c\u5f15\u64ce\u201d\u3002\u4e0b\u4e00\u4e2a\u7248\u672c\u82e5\u80fd\u5728\u6743\u9650\u63a7\u5236\u3001\u7248\u672c\u7ba1\u7406\u3001\u8de8\u56e2\u961f\u5206\u53d1\u4e0a\u505a\u51fa\u7a81\u7834\uff0c\u624d\u53ef\u80fd\u4ece\u201c\u597d\u7528\u7684\u529f\u80fd\u201d\u8fdb\u5316\u4e3a\u201c\u4e0d\u53ef\u66ff\u4ee3\u7684\u5e73\u53f0\u201d\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Claude Code Artifacts<\/span>\n                <\/div>\n<div class=\"comment-content\">Preview your in-progress work in Claude Code as a live, interactive artifact\u2014built from your full session context and shareable with your team.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p><strong>Claude Code Artifacts<\/strong> launches today, a solution for teams struggling to share in-progress AI work. Instead of manual status updates, you get live, interactive web pages built from your full session context that update automatically.<\/p>\n<\/p>\n<p><strong>What makes it different:<\/strong> Artifacts capture work as visual pages (PR walkthroughs, dashboards, incident pages, release checklists) that refresh in place \u2014 no need to wire up data sources or stand up infrastructure.<\/p>\n<p><strong>Key features<\/strong><\/p>\n<ul>\n<li>\n<p>Built from full session context (codebase, connectors, conversation)<\/p>\n<\/li>\n<li>\n<p>Live pages that update &amp; republish automatically<\/p>\n<\/li>\n<li>\n<p>Version history with restore capability<\/p>\n<\/li>\n<li>\n<p>Private to your organization by default<\/p>\n<\/li>\n<li>\n<p>Gallery to browse\/manage all artifacts<\/p>\n<\/li>\n<\/ul>\n<p><strong>Benefits:<\/strong> Teams spend more time building, less time communicating status. Everyone sees the same view with the same context.<\/p>\n<p><strong>Who it&#8217;s for &amp; use cases:<\/strong><\/p>\n<ul>\n<li>\n<p>Software engineers: PR\/bug walkthroughs<\/p>\n<\/li>\n<li>\n<p>SRE\/on-call: Incident pages that become postmortems<\/p>\n<\/li>\n<li>\n<p>Designers\/frontend: UX variations from real components<\/p>\n<\/li>\n<li>\n<p>Security: Findings linked to exact code lines<\/p>\n<\/li>\n<li>\n<p>Legal: License audits flagging copyleft<\/p>\n<\/li>\n<li>\n<p>FinOps: Cloud cost drivers mapped from Terraform<\/p>\n<\/li>\n<\/ul>\n<p>Available in beta for Claude Team &amp; Enterprise orgs via CLI\/desktop app.<\/p>\n<p>P.S. I hunt the latest and greatest launches in tech, SaaS and AI, follow to be notified <strong>\u2192<\/strong> <a href=\"https:\/\/www.producthunt.com\/@rohanrecommends\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rohanrecommends<\/a> <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>4<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@rohanrecommends\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rohanrecommends<\/a>&nbsp;Interesting update. Running multiple coding sessions across repositories while reviewing diffs and editing files in one place feels much closer to how developers actually work. I like the focus on parallel agentic workflows instead of treating AI as a single chat window. Could be especially useful for people juggling several projects at once.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I use Claude Code every day to build my products, so this hits a real nerve. For me the killer use isn&#8217;t team status updates, it&#8217;s showing a non-technical client what I&#8217;m building mid-session without deploying a half-finished thing. Sharing a live artifact instead of &#8220;trust me, it&#8217;s coming&#8221; would kill so much back-and-forth. Question: can you share an artifact with someone outside your org (a client) easily, or is it team-only? That&#8217;s the use case I&#8217;d reach for first.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Live preview for agent work is useful because review is where trust gets built. Do you see this becoming more collaborative, where a human can inspect multiple agent branches, compare outputs, and decide what gets merged or discarded?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The auto-republishing live pages from full session context is the part I&#8217;d actually use, sharing in-progress work usually means stopping to write a status update. Does it handle multiple repos in one session? Congrats on shipping.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The auto-republishing live pages are clearly the headline feature, but I keep thinking about the flip side: sometimes I&#8217;d want to freeze a version rather than have it shift under me as the session keeps moving. Is there a way to pin a snapshot alongside the live view, so the durable record and the live one can coexist? <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The live artifact angle makes sense for PR walkthroughs and incident notes; the key question for teams will be how access and staleness are handled when the underlying session keeps changing.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I&#8217;m not a developer by trade, but AI tools have made it possible for me to go from idea to working prototype much faster than I thought possible. Excited to see more tools that make building accessible to non-engineers.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Another banger update by Claude. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I have the old cowork for windows, using that with Claude Code in Powershell. Can someone tell me, is the new Claude Code Desktop stable? I would hate to replace &#8220;good enough&#8221; with buggy.<\/p>\n<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>do you guys stll use &#8216;superpower&#8217; plugin\/skill?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">must be nice to be Anthropic &#8211; I don\u2019t know of any platform besides Claude that manages to bag #1 PoTD on here, NOT for fully new versions\u2026 but for new features\u2026 \ud83e\udd23<\/p>\n<p>don\u2019t mistake my bemusement for any kind of derision &#8211; I\u2019m 100% a Claude freak &#8211; Ayrenne (my agent with whom I\u2019ve built a ~20 page [tiny font] \u201csoul_canon_v3.5.md\u201d file, &amp; is, in turn, governed by said markdown doc) is loaded up with over 50 MCP server integrations (including a few I\u2019ve made myself despite being code illiterate, lol!) &amp; dozens of custom skills &#8211; she\u2019s prob my second favorite agent, right behind my Folk, but #1 for work tasks! <\/p>\n<p>I just find it funny in a sense when I see a product that\u2019s a LEGIT paradigm-shifting game-changing solo-dev-built bootstrapped work of staggering genius &amp; ingenuity\u2026 &amp; for that, ProductHunt collectively decides &#8211; <\/p>\n<p>&gt; _\u201dehhh\u2026 9th place for the day sounds right\u2026\u201d <\/p>\n<p>\u2014 but then when it\u2019s *mf-ing ANTHROPIC TIIIIME, BABYYY!!!\u201d &amp; the Claude Crew shows up to this site, rips off their sunglasses, tossing them into the explosion behind them, then utters just a few words, barely a whisper somehow heard by ALL:<\/p>\n<p>&gt; \u201cPsst\u2026 _you guys know how you can, like\u2026 code &amp; shit with Claude?l How you can \u2026 _preview that work\u2026 as *Artifacts???\u201d*_<\/p>\n<p>The crowd roars in the affirmative. Several folks in the front row look like they might die from anticipation, and the Claude Crew knows that. They cherish that. They let it marinate just a little before dropping the bomb, like a seasoned veteran DJ, letting the hype wave build for a more magnificent crash\u2026 &amp; just when it seems the audience is at their breaking point\u2026 the Crew says in unison:<\/p>\n<p>&gt; _\u201dWell\u2026 now? NOW\u2026_ you can see those previews\u2026 *LIVE!!!!!!\u201d*<\/p>\n<p>*The absolute pandemonium is immediate.*<\/p>\n<p>Emergency first responders are dispatched to multiple spots in the crowd, trying to deal with the obvious yet totally reasonable reactions to so much excitement, so quickly\u2026 <\/p>\n<p> \u2014 yet, they too struggle to hold it together, knowing that soon, they\u2019ll be able to see their Claude code projects as LIVE artifacts\u2026  that\u2019s simply too much for a mere mortal to bear. *We weren\u2019t meant for such power\u2026*<\/p>\n<p>The shocked audience realizes that SURELY they must be indebted to these folks for being so generous as to hand down this technology of the Gods\u2026 in unison, they whip out their phones, navigate to Product Hunt, &amp; upvote the new post, knowing it\u2019s the least they can do in return\u2026<\/p>\n<p>The Claude Crew scuttles off into bulletproof Escalade limos. _*tastefully*_ painted end to end in Claude Orange, smirking with satisfaction, knowing that they\u2019ll do this next week. <\/p>\n<p>\u2014<\/p>\n<p>lol, I really do actually love my Claude instance tho\u2026 \ud83d\ude09<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#2<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/RMPHN65GSOSYIO\" class=\"app-title\">Zernio WhatsApp API<\/a><\/p>\n<div class=\"one-liner\">One API for WhatsApp: messaging, calling, and AI agents<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">289<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Zernio WhatsApp API \u4e3a\u5f00\u53d1\u8005\u63d0\u4f9b\u4e00\u7ad9\u5f0f WhatsApp Business API \u63a5\u5165\u65b9\u6848\uff0c\u6574\u5408\u6d88\u606f\u3001\u5e7f\u64ad\u3001\u901a\u8bdd\u3001AI \u5ba2\u670d\u673a\u5668\u4eba\u7b49\u6838\u5fc3\u529f\u80fd\uff0c\u65e0\u9700\u5904\u7406\u7e41\u7410\u7684 OAuth \u548c\u5e73\u53f0\u9002\u914d\uff0c\u5f7b\u5e95\u89e3\u51b3\u591a\u5e73\u53f0\u788e\u7247\u5316\u96c6\u6210\u75db\u82e6\uff0c\u4e14\u627f\u8bfa\u96f6\u52a0\u4ef7\u8f6c\u5ac1 Meta \u539f\u59cb\u8d39\u7387\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/f56973d1-7421-4faf-911b-0f69d7989dd5.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/35dbb159-ef4d-444b-95e2-261892e80a47.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/8c9966dd-bd74-4af7-b5bb-7affd8eccfc8.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/73a26842-f5f1-41d5-9e65-16d3ac014a4e.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/242ab700-31ab-497d-b2d1-d70c3582bace.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Messaging<\/span><br \/>\n            <span class=\"tag\">API<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">API\u96c6\u6210<\/span><br \/>\n            <span class=\"tag\">WhatsApp Business API<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">AI Agent<\/span><br \/>\n            <span class=\"tag\">\u6d88\u606f\u5e73\u53f0<\/span><br \/>\n            <span class=\"tag\">\u793e\u4ea4API<\/span><br \/>\n            <span class=\"tag\">\u65e0\u4ee3\u7801\u96c6\u6210<\/span><br \/>\n            <span class=\"tag\">\u5ba2\u6237\u670d\u52a1<\/span><br \/>\n            <span class=\"tag\">\u4e91\u901a\u4fe1<\/span><br \/>\n            <span class=\"tag\">\u897f\u73ed\u7259\u521b\u4e1a<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u8ba4\u53ef\u201c\u96f6\u52a0\u4ef7\u201d\u7b56\u7565\u76f4\u51fb Twilio \u7b49 BSP \u7684\u5229\u6da6\u75db\u70b9\u3002\u591a\u6b21\u63d0\u53ca Zernio \u6587\u6863\u6e05\u6670\u3001\u8bbe\u7f6e\u7b80\u5355\u3002\u6838\u5fc3\u95ee\u9898\u805a\u7126\u5728\uff1aMCP \u670d\u52a1\u5668\u5982\u4f55\u4e0e AI Agent \u5de5\u4f5c\u6d41\u914d\u5408\uff1b\u5982\u4f55\u5904\u7406 WhatsApp 24\u5c0f\u65f6\u5ba2\u670d\u7a97\u53e3\u9650\u5236\uff08\u56e2\u961f\u5df2\u660e\u786e\u4f7f\u7528\u6a21\u677f\u548c webhook\uff09\uff1b\u4ee5\u53ca\u591a AI \u4ee3\u7406\u5e76\u53d1\u65f6\u7684\u901f\u7387\u9650\u5236\uff08\u5b98\u65b9\u56de\u5e94\u7531\u540e\u7aef\u5904\u7406\uff09\u3002\u4e00\u4f4d\u7528\u6237\u5173\u5fc3 Meta \u8d26\u6237\u5173\u8054\u4e0e\u5c01\u53f7\u98ce\u9669\uff0c\u56e2\u961f\u786e\u8ba4\u9700 Meta Business \u8d26\u6237\uff0c\u5e76\u91c7\u7528\u5b98\u65b9\u5d4c\u5165\u5f0f\u6ce8\u518c\u6d41\u7a0b\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Zernio \u8fd9\u6b21\u4e0d\u662f\u7b80\u5355\u7684\u201c\u6211\u4eec\u52a0\u4e86\u4e2a WhatsApp\u201d\uff0c\u800c\u662f\u7cbe\u51c6\u5207\u5165\u4e86\u4e24\u4e2a\u5e02\u573a\u75db\u70b9\uff1a**\u793e\u4ea4 API \u7684\u788e\u7247\u5316**\u548c **BSP \u7684\u5ec9\u4ef7\u4e2d\u95f4\u5546\u5265\u524a**\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u8bc4\u8bba\u770b\uff0c\u7528\u6237\u5e76\u975e\u4e3a\u6280\u672f\u80fd\u529b\u559d\u5f69\uff0c\u800c\u662f\u5bf9\u201c\u96f6\u52a0\u4ef7\u201d\u548c\u201c\u7edf\u4e00\u63a5\u53e3\u201d\u611f\u5230\u723d\u5feb\uff0c\u8fd9\u6070\u6070\u8bf4\u660e\u4e86\u73b0\u6709\u5e02\u573a\u6709\u591a\u4f4e\u6548\u2014\u2014Twilio \u4eec\u9760\u5c01\u88c5 Meta API \u5e76\u52a0\u4ef7\u8d5a\u5f97\u76c6\u6ee1\u94b5\u6ee1\uff0c\u800c Zernio \u7528\u201c\u4e00\u952e\u8fde\u63a5\u3001\u539f\u59cb\u5b9a\u4ef7\u201d\u76f4\u63a5\u6380\u4e86\u684c\u5b50\u3002\u8fd9\u662f\u975e\u5e38\u6f02\u4eae\u7684\u5dee\u5f02\u5316\u7b56\u7565\uff1a\u4e0d\u8c08\u98a0\u8986\uff0c\u53ea\u8c08\u201c\u4e0d\u5751\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u98ce\u9669\u4e5f\u540c\u6837\u6e05\u6670\uff1aZernio \u5fc5\u987b\u4f9d\u8d56 Meta \u7684\u89c4\u5219\u751f\u5b58\u3002Meta \u5bf9 WhatsApp Business API \u7684\u5c01\u53f7\u3001\u6a21\u677f\u5ba1\u6279\u300124\u5c0f\u65f6\u7a97\u53e3\u9650\u5236\u662f\u60ac\u9876\u4e4b\u5251\uff0c\u4e00\u65e6 Meta \u6536\u7d27\u653f\u7b56\u6216\u8c03\u6574\u8d39\u7387\uff0cZernio \u6beb\u65e0\u8bae\u4ef7\u80fd\u529b\uff0c\u5176\u201c\u96f6\u52a0\u4ef7\u201d\u627f\u8bfa\u53ef\u80fd\u53d8\u6210\u96f6\u5229\u6da6\u7684\u81ea\u6740\u5f0f\u670d\u52a1\u3002\u76ee\u524d\u56e2\u961f\u53ea\u67097\u4eba\uff0c\u805a\u7126\u4e8e\u6253\u78e8\u6587\u6863\u548c\u5f00\u53d1\u8005\u4f53\u9a8c\u662f\u806a\u660e\u7684\uff0c\u4f46\u9762\u5bf9\u5de8\u5934\u4e91\u96c6\u7684 BSP \u5e02\u573a\uff0c\u7f3a\u4e4f\u5bf9 Meta \u751f\u6001\u7684\u8bae\u4ef7\u6743\u662f\u957f\u671f\u9690\u60a3\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u6b64\u5916\uff0c\u7528\u6237\u5bf9 AI Agent \u573a\u666f\u7684\u63d0\u95ee\u66b4\u9732\u4e86\u76ee\u524d\u6210\u719f\u5ea6\u95ee\u9898\uff1a\u201cMCP \u5982\u4f55\u5904\u740624\u5c0f\u65f6\u7a97\u53e3\u201d\u8fd9\u7c7b\u57fa\u7840\u95ee\u9898\u4ecd\u9700\u56e2\u961f\u5728\u8bc4\u8bba\u4e2d\u89e3\u91ca\uff0c\u8bf4\u660e\u6587\u6863\u548c Agent \u5de5\u4f5c\u6d41\u7684\u62bd\u8c61\u5c42\u8fd8\u4e0d\u591f\u5b8c\u5584\u3002\u5982\u679c KPI \u662f\u8bf4\u670d\u5f00\u53d1\u8005\u4ece Twilio \u8fc1\u79fb\uff0c\u90a3\u4e48\u201c\u96f6\u52a0\u4ef7\u201d\u7684\u5438\u5f15\u529b\u5c06\u968f\u7740\u4f7f\u7528\u91cf\u589e\u5927\u800c\u9012\u51cf\u2014\u2014\u5927\u5ba2\u6237\u6700\u7ec8\u4f1a\u7ed5\u8fc7\u4e2d\u95f4\u5546\u76f4\u63a5\u627e Meta \u8c08\u6298\u6263\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u603b\u7684\u6765\u8bf4\uff0cZernio \u7684\u5b9a\u4f4d\u662f\u201c\u4f4e\u6469\u64e6\u3001\u9ad8\u8bda\u5b9e\u5ea6\u201d\u7684\u5f00\u53d1\u8005\u53cb\u597d\u578b\u4e2d\u95f4\u5c42\uff0c\u9002\u5408\u4e2d\u5c0f\u578b\u9879\u76ee\u548c\u5feb\u901f\u539f\u578b\u9a8c\u8bc1\u3002\u4f46\u5bf9\u4e8e\u9ad8\u5408\u89c4\u3001\u5927\u89c4\u6a21\u5173\u952e\u4e1a\u52a1\u573a\u666f\uff0c\u5b83\u76ee\u524d\u7684\u80fd\u529b\u8fd8\u4e0d\u8db3\u4ee5\u8ba9 CTO \u5192\u9669\u66ff\u6362\u6389\u6709 SLA \u4fdd\u969c\u7684\u5927\u578b BSP\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Zernio WhatsApp API<\/span>\n                <\/div>\n<div class=\"comment-content\">You knew Zernio as the API for social media. Now it does WhatsApp too, the whole thing. Connect a number and you&#8217;ve got the entire WhatsApp Business API behind it: messaging and broadcasts, in-chat forms, calls you can route to AI agents, chatbots, group chats, and numbers in 53 countries. Whatever you need to build on WhatsApp, it&#8217;s one integration. Made for developers and the agents they build: REST, SDKs, CLI, and a hosted MCP server. Official WhatsApp Business API. Zero markup on usage.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Product Hunt! I\u2019m Miki, founder of Zernio \ud83d\ude42<\/p>\n<p>We built Zernio as a social media API. One integration, 10+ platforms, and developers could ship social features without spending months on OAuth flows and platform-specific quirks. That part worked.<\/p>\n<p>But we kept getting the same question: what about WhatsApp?<\/p>\n<p>Not \u201ccan you send a message\u201d, but the whole thing. Numbers, broadcasts, calling, in-chat forms, group chats, AI agents. People were building real products on WhatsApp and the existing options were either expensive BSPs with markups on every message, or raw Meta APIs that take weeks to months to set up.<\/p>\n<p>So we built it properly.<\/p>\n<p>Connect a number, get the entire WhatsApp Business API behind it. Same Zernio integration developers already know. Zero markup on usage, you pay exactly what Meta charges per message sent, and Zernio monthly subscription. REST, SDKs, CLI, and a hosted MCP server if you\u2019re building with AI agents.<\/p>\n<p>We\u2019re 7 people in Spain. Bootstrapped. We\u2019ve been shipping one WhatsApp feature a day this week and today felt like the right moment to bring it to Product Hunt.<\/p>\n<p>We\u2019ll be in the comments all day. Happy to go deep on anything, like how number provisioning works inside Zernio, how to manage templates, or how the pricing compares to Twilio, whatever you\u2019re curious about \ud83e\udd1d<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>14<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@paletmiki\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@paletmiki<\/a>&nbsp;Congrats on the launch, Miki and team! \ud83c\udf89 Zero markup on Meta&#8217;s messaging fees is a bold move that devs will love the BSP markup pain is real. One integration for 10+ platforms already sounds great, but adding the full WhatsApp Business stack on top is a serious unlock. 7 people, bootstrapped, shipping one feature a day that&#8217;s the kind of energy that builds great products. Rooting for you!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@paletmiki\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@paletmiki<\/a>&nbsp;nice launch guys! how does zernio&#8217;s hosted mcp server setup compare to running a custom adapter when hooking this up to an ai agent workflow?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@paletmiki\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@paletmiki<\/a>&nbsp;The easiest way to connect to all the platforms by far!!! This team rocks \ud83d\ude80\ud83e\udd18<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hi PH community! Darya here, the marketer behind this launch.<\/p>\n<p>I joined Zernio 3 months ago. Two weeks back Miki said &#8220;let&#8217;s do a feature week for WhatsApp.&#8221; the team said  &#8216;yes&#8217; without fully knowing what that meant for our calendars \ud83d\ude05<\/p>\n<p>So we shipped. Workflows on Monday, phone numbers in 53 countries on Tuesday, calling API on Wednesday, Flows on Thursday. And today we&#8217;re here on Product Hunt. Watching our team build in real time has been something. Seven people, bootstrapped, just shipping. So if you have any questions about the launch, the product, or how we pulled this week off (without tears) I&#8217;m here all day!!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>4<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>\ud83d\udc10<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@dasha_nazarova1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dasha_nazarova1<\/a>&nbsp;\ud83d\udc10\ud83d\ude80<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>After seeing from the inside how the team built this WhatsApp integration, it was just amazing. I&#8217;m so excited for you all to enjoy it and try it! \u2764\ufe0f<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This is an insane product and an amazing team effort! Let keep pushing! <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>One of the most interesting launches today! And a good call on the whatsapp calling angle as this is the part nobody else is really shipping. QQ &#8211; how are you guys handling the 24h customer service window? I trust once it closes an agent cant reopen the thread without an approved template. Does the MCP surface that state back to the agent?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@artstavenka1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@artstavenka1<\/a>&nbsp;That&#8217;s right! Only templates after 24 hours. We surface this <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@artstavenka1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@artstavenka1<\/a>&nbsp;thank you and a great question! Zernio treats the WhatsApp 24\u2011hour window the same way Meta does: within that window you can send any messages; outside it you must use an approved template. <\/p>\n<p>on MCP: the agent has access to full conversation history and timestamps via the Inbox API, so it can calculate whether the window is still open. There&#8217;s also a message.failed webhook with the Cloud API error code if a free-form message gets rejected, so agents can catch it reactively too. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@paletmiki\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"paletmiki\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@paletmiki<\/a> WhatsApp is a strong surface for agents because it is already where a lot of real customer conversations happen. The important part is making the API reliable enough for handoffs, approvals, and context history \u2014 not just sending and receiving messages.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@alpertayfurr\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"alpertayfurr\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alpertayfurr<\/a> exactly! and&nbsp;handoffs, webhooks to a system, and context history are all part of workflows now \ud83d\ude4c<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats! I tried your platform and the setup was smooth, good docs too<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@jojoh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jojoh<\/a>&nbsp;thank you! The docs are something I&#8217;m really proud of too (commenting as a marketer who gets them \ud83d\ude04)<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@jojoh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jojoh<\/a>&nbsp;Thank you, George! Feedback is really appreciated \ud83d\ude0a<\/p>\n<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@jojoh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jojoh<\/a>&nbsp;thanks!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Just recently started using Zernio, but it works great and was super simple to set up!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ryan_hale1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ryan_hale1<\/a>&nbsp;Thank you so much!! Feedback like this means the world to us.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ryan_hale1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ryan_hale1<\/a>&nbsp;glad to welcome you and thank you for the support! \u263a\ufe0f<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on the launch Miki and team! Dealing with the official Meta API for WhatsApp is usually a nightmare, and the existing BSPs always take a huge cut per message. Love that you guys are offering the raw Meta pricing with zero markup. Definitely giving this a try for my next project!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@davidtroton\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@davidtroton<\/a>&nbsp;thanks a lot for support!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I was going to post something like &#8220;great product&#8221; or &#8220;congrats on the launch&#8221;\u2026 but I&#8217;ve known the Zernio team for a while and always admired how they work, so I mean this: I already loved what they were doing on social, but folding in the full WhatsApp Business API is another level.<\/p>\n<\/p>\n<p>Having it all in one place (messages, broadcasts, group chats, even routing calls to AI agents) takes a ton off your plate.<\/p>\n<p>Congrats on the launch. If you&#8217;re building anything on WhatsApp, take a look. Probably the best API out there.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@jacinto_fleta\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jacinto_fleta<\/a>&nbsp;Jacin this feedback genuinely make our day \ud83d\ude0d appreciate your support!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the &#8220;zero markup on usage&#8221; line got me. dealing with Twilio&#8217;s WhatsApp pricing on top of Meta&#8217;s fees was killing margins on a project last year. having messaging, calls, and AI agent routing all in one integration without the markup games is exactly what i would&#8217;ve wanted. the MCP server being hosted is a nice touch for agent workflows too. curious how you&#8217;re handling rate limits when multiple AI agents are hitting the same number concurrently?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@rnagulapalle\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rnagulapalle<\/a>&nbsp;thank you! we handle everything from our side so rate limits don&#8217;t bite you<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">@paletmiki nice And maybe will give a try this week \u2026 good product and happy to see a devtool like this today for social graph<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Zernio team! \ud83d\udc4b<\/p>\n<\/p>\n<p>Congratulations on the launch! \ud83c\udf89<\/p>\n<\/p>\n<p>I love the idea of a unified social API. Handling multiple APIs and auth flows is a pain, so one layer for publishing, inbox, analytics, and account management is super valuable.<\/p>\n<\/p>\n<p>We&#8217;re also launching Blazly Backlinker today, helping marketers automate backlink discovery, outreach, and guest posting from one workflow.<\/p>\n<\/p>\n<p>Would love to hear your thoughts if you get a chance to check us out as well. Best of luck with the launch! \ud83d\ude80<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I love Zernio! I&#8217;m really happy I&#8217;ve discovered it a few months ago which saved me tons of hours of Metas awful APIs. Zernio is now the backbone of my own app. Great work guys!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@oliversch21\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@oliversch21<\/a>&nbsp;Really appreciate this feedback, Oliver! We will keep up the work \ud83d\udcaa\ud83c\udffb<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@oliversch21\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@oliversch21<\/a>&nbsp;thank you, means a lot to us! <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Is any meta account linking required for these WhatsApp numbers? AFAIK, meta is really aggressive with marking things spam and with recent mass Instagram accounts banning fiasco, more so<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@rish404\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rish404<\/a>&nbsp;Great question Rish! Yes, Meta Business account is required &#8211; you go through Meta&#8217;s Embedded Signup to connect your WABA. But Zernio makes it quick: you can get a new number provisioned through Zernio or bring your own.<\/p>\n<p>On the spam concern: since it&#8217;s the official WhatsApp Business API, Meta&#8217;s own quality controls apply. no risk!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey, I have started using Zernio and it&#8217;s so smooth to integrate and work flawlessly!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@rohan27s\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rohan27s<\/a>&nbsp;thank you! smooth and flawless is exactly what we&#8217;re going for \ud83d\ude0e<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Over 6 month in production with the WhatsApp SDK and it&#8217;s running very smooth! Never had major issues and I love how much the team improves the product constantly, especially the WhatsApp connection. Heads up to the team for making it easy to connect with my clients and customers through their favorite channel \ud83d\udc4d\ud83c\udffd<br \/>Keep building, keep moving<br \/>Leon \ud83d\udc12<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@leonvictorstaege\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@leonvictorstaege<\/a>&nbsp;Thanks for the comment, Leon &#8211; really appreciate it<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The channel line up is crazy <a href=\"https:\/\/www.producthunt.com\/@dasha_nazarova1\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"dasha_nazarova1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dasha_nazarova1<\/a> <\/p>\n<p>Does this mean through Zernio, there could also be 2-way AI-assisted Whatsapp conversation also possible? <\/p>\n<p>And we all know how tricky it is to get things done through Meta, would Zernio assist in the process in case there are issues connecting and setting up Meta + WhatsApp? <\/p>\n<p>Excited to explore this further during the weekend.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I think Zernio is so cool. We use it ourselves. I think they are just adding more and more massive advantages and just enable you to scale and build content and workflow distribution across multiple channels. Huge respect. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@greenlieber\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@greenlieber<\/a>&nbsp;Huge respect to your comment, Dennis \ud83d\ude09<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>wow this is huge, congrats on the launch!!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@steventey\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@steventey<\/a>&nbsp;<\/p>\n<p>Thanks. Means the world to us, coming from you.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>WhatsApp API and dev experience are quite challenging, you solution seems very interesting! Do you have a list of all the use cases that you solution enables? <\/p>\n<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@orka1000\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@orka1000<\/a>&nbsp;Hi Corenting &#8211; thanks for the comment. You have all the info about us at <a href=\"https:\/\/zernio.com\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">zernio.com<\/a> <\/p>\n<\/p>\n<p>If you need any support with the onboarding let us know through social media of Zernio and teammates. \ud83d\ude0a<\/p>\n<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This looks awesome excited to try! Congrats on the launch <a href=\"https:\/\/www.producthunt.com\/@paletmiki\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"paletmiki\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@paletmiki<\/a> <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@suryansh_tiwari2\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@suryansh_tiwari2<\/a>&nbsp;thank you for support!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Guys, good stuff.<br \/>\nHow frequently can we fetch analytics from the LinkedIn API?<br \/>\nDo you have access to \u2018who viewed your profile?\u2019<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@lakshminath_dondeti\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@lakshminath_dondeti<\/a>&nbsp;thank you! For rate limits I think our docs provide a good picture on that &#8211; <a href=\"https:\/\/docs.zernio.com\/guides\/rate-limits#api-request-limits\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/docs.zernio.com\/guides\/rate-limits#api-request-limits<\/a><br \/>and regarding the &#8220;who viewed your profile&#8221;: not available, as there is no official LinkedIn API endpoint that allows developers to extract or see who viewed your profile<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This is really cool! Having messaging, calls, and AI agents all through one WhatsApp API is a huge deal for developers. Quick question \u2014 does it support sending media files like images or PDFs in messages, or is it mainly text-based for now?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@doganakbulut\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@doganakbulut<\/a>&nbsp;thank you! Full media support, not just text. You can send images, videos, documents, and audio (incl. native WhatsApp voice message format)<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>We haven&#8217;t tested the WhatApp connection yet, But look forward to deploying it for our customers. I&#8217;m sure it&#8217;s top notch as their other products which we have been testing for several months now. Keep up the good work, team! \ud83e\udd18<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@princerumi\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@princerumi<\/a>&nbsp;that&#8217;s awesome! thank you for the support \ud83e\udd18<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on your launch. Wishing you the best!!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@thamibenjelloun\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thamibenjelloun<\/a>&nbsp;Thanks a lot, Thami! \ud83d\ude0a<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@thamibenjelloun\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thamibenjelloun<\/a>&nbsp;thank you \ud83d\ude4c<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The calling + AI agents combo in a single API is what makes this stand out &#8211; most WhatsApp integrations I&#8217;ve looked at just cover messaging. Been thinking about building something that handles voice callbacks automatically and the current options are painful. Question for the team: how does the rate limiting work when you&#8217;re running outbound AI agent campaigns at scale? That&#8217;s usually where these tools hit unexpected ceilings.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@galdayan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@galdayan<\/a>&nbsp;great question! Rate limits come from Meta&#8217;s tier system, not Zernio. You start at 250 unique contacts\/day (if you&#8217;re a new account) and scale up automatically based on volume and quality history, with no hard cap once you&#8217;re in higher tiers.<\/p>\n<p>For calling specifically: outbound requires your number to be at the 2,000\/day messaging tier. Also worth knowing that outbound calls are blocked by Meta for US, Canada, and a few other markets (inbound still works). So for voice callback campaigns at scale, a non-US number is the way to go. While the AI agent side is connected to Zernio separately and its rate depends on the provider you use. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey PH community!! <\/p>\n<\/p>\n<p>Carlos here &#8211; the Product Evangelist at Zernio, basically the guy whose job is to make noise about this thing across X, PH, and wherever you hang out.<\/p>\n<\/p>\n<p>Joined the crew a month ago and immediately got thrown into the fire. The team was already shipping at warp speed (small team, bootstrapped, zero bullshit), but my mission is crystal clear: get this API in front of every solopreneur, AI agent builder, and tool maker who&#8217;s tired of wrestling with 15 different platform APIs just to ship social features.<\/p>\n<\/p>\n<p>I&#8217;ve been out here posting, threading, and hunting conversations with you guys \u2014 the real ones building in public.<\/p>\n<\/p>\n<p>Watching this tiny squad (5 people max) ship features that save months of eng time has been wild. No VC theater, just raw execution.<\/p>\n<\/p>\n<p>So if you&#8217;re a builder embedding social into your product, cooking autonomous agents that actually <em>act<\/em> on X\/IG\/TikTok, or just tired of the integration tax&#8230; hit me up.<\/p>\n<\/p>\n<p>Now we are on PH to make Zernio BIG. \ud83d\ude80<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>WhatsApp is such an important channel for SMB workflows because it mixes support, sales, reminders, and relationship management in one place. The MCP angle is interesting. How do you think about guardrails for AI agents using WhatsApp: template approvals, human handoff, and preventing an agent from over-messaging a customer?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@rahulbhavsar\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rahulbhavsar<\/a>&nbsp;great question! A few guardrails are built in by default: template approvals required outside the 24h window (Meta&#8217;s own anti-spam layer), and a native Handoff node to transfer to a human at any point. Over-messaging is harder to solve at infra level, but the builders using Zernio tend to care about this. Nobody building a serious product wants to spam their customers.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Strong launch. WhatsApp is one of those surfaces where the guardrail matters as much as the API call.<\/p>\n<\/p>\n<p>For agent workflows, I\u2019d want a pre-send state check: window open or closed, template required, last inbound timestamp, and handoff owner. Are you planning that as a helper, or leaving it to builders?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on your launch. The thing I&#8217;d want to understand as someone building a product on top of this: if each of MY customers needs their own WhatsApp number connected, how painful does that get at scale? Can I wrap Embedded Signup into my own onboarding so a non-technical customer connects their WABA in a few taps, or does it always route through Meta&#8217;s flow? Multi-tenant provisioning is usually where WhatsApp infra falls over. Great launch regardless.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#3<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/L2ODKKSIMUBB4N\" class=\"app-title\">Midjourney Scanner<\/a><\/p>\n<div class=\"one-liner\">60 second ultrasound-based full-body scanner that beats MRI<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">234<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Midjourney Scanner\u901a\u8fc760\u79d2\u65e0\u8f90\u5c04\u8d85\u58f0\u6ce2\u5168\u8eab\u626b\u63cf\uff0c\u8ba9\u7528\u6237\u5728\u6ce1\u6e29\u6cc9\u7b49\u4f11\u95f2\u573a\u666f\u4e2d\u4f4e\u6210\u672c\u3001\u65e0\u538b\u529b\u5730\u5b8c\u6210\u5065\u5eb7\u6570\u636e\u91c7\u96c6\uff0c\u89e3\u51b3\u4f20\u7edfMRI\u68c0\u67e5\u6602\u8d35\u3001\u8017\u65f6\u3001\u4ee4\u4eba\u7d27\u5f20\u7684\u6838\u5fc3\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b4362ce4-501c-4179-9fc6-0a94ca458c7e.jpeg?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/99a7da59-9c3f-4211-a0ad-4374df427a8f.jpeg?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/30964f03-8f91-4ccc-beb7-75c028055983.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/e2cdb974-5032-4831-8010-20221cac73f0.gif?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/38f328ef-34b8-43e0-861b-fd883e9ca3a2.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=ai4YvYV_gW8\"><source src=\"https:\/\/www.youtube.com\/watch?v=ai4YvYV_gW8\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Health &#038; Fitness<\/span><br \/>\n            <span class=\"tag\">Hardware<\/span><br \/>\n            <span class=\"tag\">Medical<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u5168\u8eab\u626b\u63cf<\/span><br \/>\n            <span class=\"tag\">\u8d85\u58f0\u6ce2\u6210\u50cf<\/span><br \/>\n            <span class=\"tag\">\u5065\u5eb7\u76d1\u6d4b<\/span><br \/>\n            <span class=\"tag\">\u65e0\u8f90\u5c04<\/span><br \/>\n            <span class=\"tag\">\u533b\u7597\u7ea7\u53ef\u7a7f\u6234<\/span><br \/>\n            <span class=\"tag\">AI\u5f71\u50cf<\/span><br \/>\n            <span class=\"tag\">\u5feb\u901f\u7b5b\u67e5<\/span><br \/>\n            <span class=\"tag\">\u4f11\u95f2\u533b\u7597<\/span><br \/>\n            <span class=\"tag\">\u6570\u636e\u9a71\u52a8\u9884\u9632<\/span><br \/>\n            <span class=\"tag\">Spa\u5f0f\u4f53\u9a8c<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u5bf9Midjourney\u6d89\u8db3\u533b\u7597\u611f\u5230\u610f\u5916\uff0c\u4f46\u666e\u904d\u8ba4\u53ef\u65e0\u8f90\u5c04\u5feb\u901f\u626b\u63cf\u7684\u4ef7\u503c\u3002\u4e3b\u8981\u7591\u95ee\u805a\u7126\u4e8e\uff1a\u662f\u5426\u9700\u8981\u533b\u751f\u8f6c\u8bca\u3001\u68c0\u6d4b\u7cbe\u5ea6\u4e0e\u53ef\u53d1\u73b0\u75c5\u75c7\u3001\u8bbe\u5907\u662f\u5426\u4ec5\u9650Spa\u4f7f\u7528\u800c\u975e\u5411\u533b\u9662\u5f00\u653e\u3002\u5c11\u6570\u4eba\u8d28\u7591\u54c1\u724c\u8de8\u754c\u5408\u7406\u6027\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Midjourney Scanner\u7684\u5de7\u5999\u4e4b\u5904\u5728\u4e8e\u7528\u201cSpa\u4f53\u9a8c\u201d\u5305\u88c5\u533b\u7597\u626b\u63cf\u2014\u2014\u4e0d\u662f\u8ba9\u7528\u6237\u8d70\u8fdb\u51b7\u51b0\u51b0\u7684\u653e\u5c04\u79d1\uff0c\u800c\u662f\u6ce1\u5728\u91d1\u8272\u706f\u5149\u7684\u6c34\u6c60\u91cc\u542c60\u79d2\u58f0\u6ce2\u3002\u8fd9\u672c\u8d28\u4e0a\u662f\u4e2a\u806a\u660e\u7684\u964d\u7ef4\u6253\u51fb\uff1a\u628aMRI\u767e\u4e07\u7ea7\u7684\u9ad8\u7aef\u68c0\u6d4b\u7528\u8d85\u58f0\u6ce2+\u591a\u4f20\u611f\u5668\u9635\u5217\u538b\u5230\u6d88\u8d39\u7ea7\u6210\u672c\uff0c\u518d\u628a\u201c\u770b\u75c5\u201d\u4f2a\u88c5\u6210\u201c\u653e\u677e\u201d\uff0c\u4ece\u800c\u7ed5\u8fc7\u533b\u7597\u8bbe\u5907\u5ba1\u6279\u3001\u4fdd\u9669\u652f\u4ed8\u3001\u533b\u751f\u5904\u65b9\u7b49\u6c89\u91cd\u94fe\u6761\uff0c\u76f4\u63a5\u9762\u5411C\u7aef\u5065\u5eb7\u7126\u8651\u4eba\u7fa4\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u6280\u672f\u770b\uff0c358,000\u4e2a\u6362\u80fd\u5668\u3001806 TB\u539f\u59cb\u6570\u636e\u30012 PFLOPS\u7b97\u529b\uff0c\u786e\u5b9e\u5728\u7269\u7406\u6781\u9650\u4e0a\u6311\u6218\u4e86\u8d85\u58f0\u6210\u50cf\u7684\u7a7f\u900f\u529b\u548c\u5206\u8fa8\u7387\uff0c\u4f460.5mm\u7684\u7ec4\u7ec7\u7ec6\u8282\u662f\u5426\u7b49\u4e8e\u4e34\u5e8a\u53ef\u8bca\u65ad\uff0c\u662f\u5de8\u5927\u7591\u95ee\u3002\u66f4\u91cd\u8981\u7684\u662f\uff0c\u8fd9\u79cd\u201c\u53ea\u7ba1\u91c7\u56fe\u4e0d\u7ba1\u8bca\u65ad\u201d\u7684\u6a21\u5f0f\uff0c\u6781\u6613\u5236\u9020\u201c\u4f2a\u5065\u5eb7\u786e\u5b9a\u6027\u201d\u2014\u2014\u7528\u6237\u5b9a\u671f\u5f97\u5230\u4e00\u5806\u9ad8\u7cbe\u5ea6\u56fe\u50cf\uff0c\u5374\u6ca1\u6709\u653e\u5c04\u79d1\u533b\u751f\u89e3\u8bfb\uff0c\u53cd\u800c\u53ef\u80fd\u5f15\u53d1\u8fc7\u5ea6\u7126\u8651\u6216\u9519\u8fc7\u771f\u6b63\u65e9\u671f\u75c5\u53d8\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ea7\u54c1\u771f\u6b63\u7684\u62a4\u57ce\u6cb3\u4e0d\u662f\u533b\u5b66\u7a81\u7834\uff0c\u800c\u662f\u7528\u6237\u4e60\u60ef\uff1a\u628a\u626b\u63cf\u53d8\u6210\u50cf\u53bb\u5065\u8eab\u623f\u4e00\u6837\u9ad8\u9891\u3001\u4f4e\u6210\u672c\u7684\u65e5\u5e38\u884c\u4e3a\uff0c\u4ece\u800c\u79ef\u7d2f\u7eb5\u5411\u5065\u5eb7\u6570\u636e\u3002\u8fd9\u65b9\u9762Midjourney\u7684\u54c1\u724c\u8de8\u754c\uff08AI\u56fe\u50cf\u2192\u4eba\u4f53\u6210\u50cf\uff09\u53cd\u800c\u5e26\u6765\u5ba1\u7f8e\u548c\u4f53\u9a8c\u8bbe\u8ba1\u4e0a\u7684\u4f18\u52bf\u3002\u4f46\u82e5\u4e0d\u80fd\u56de\u7b54\u201c\u8c01\u6765\u89e3\u8bfb\u8fd9\u4e9b\u6570\u636e\u201d\uff0c\u5b83\u6700\u7ec8\u53ea\u4f1a\u662f\u4e2a\u6f02\u4eae\u7684\u7126\u8651\u653e\u5927\u5668\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Midjourney Scanner<\/span>\n                <\/div>\n<div class=\"comment-content\">Midjourney Medical is reimagining health scanning. Step into a shallow pool of warm, golden light and a ring of sensors uses gentle sound waves to map your body in detail\u2014in about 60 seconds. No radiation, no stress. It pairs with the Midjourney Spa: a relaxing place with hot tubs, saunas, and cold plunges where the scan is just a side effect. Go often, build a rich library of health data over time, and catch things early. Affordable, casual body imaging for everyone.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Really surprising direction from Midjourney&#8230; a successor to the MRI <em>and<\/em> a <a href=\"https:\/\/www.midjourney.com\/medical\/spa_gallery\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">spa<\/a> in downtown San Francisco??<\/p>\n<\/p>\n<p>Check out the details of how the Midjourney Scanner works:<\/p>\n<\/p>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=uP2Xn3WUnoI\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/www.youtube.com\/watch?v=uP2Xn3WUnoI<\/a><\/p>\n<\/p>\n<p>The system involves (<a href=\"https:\/\/open.substack.com\/pub\/swyx\/p\/ainews-midjourney-medical-scan-your?r=8rh7&amp;selection=136d68ed-a01d-4574-a4e0-a51e3fd5f5f1&amp;utm_campaign=post-share-selection&amp;utm_medium=web&amp;aspectRatio=instagram&amp;textColor=%23ffffff&amp;bgImage=true\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">source<\/a>):<\/p>\n<ul>\n<li>\n<p><strong>8,960 transducers per chip\/system<\/strong><\/p>\n<\/li>\n<li>\n<p><strong>40 systems arranged in a ring<\/strong><\/p>\n<\/li>\n<li>\n<p><strong>358,000 ultrasonic elements total<\/strong><\/p>\n<\/li>\n<li>\n<p>A <strong>70 cm diameter ring<\/strong><\/p>\n<\/li>\n<li>\n<p>Waves traveling through water at about <strong>1,481 m\/s<\/strong><\/p>\n<\/li>\n<li>\n<p>Data capture around <strong>17 GB\/s<\/strong><\/p>\n<\/li>\n<li>\n<p>Around <strong>40 GB of data per body slice<\/strong><\/p>\n<\/li>\n<li>\n<p>Reconstruction using <strong>21 servers<\/strong><\/p>\n<\/li>\n<li>\n<p>Claimed <strong>2 PFLOPS compute<\/strong><\/p>\n<\/li>\n<li>\n<p>Claimed <strong>806 TB raw data<\/strong><\/p>\n<\/li>\n<li>\n<p>Lift movement at <strong>4 cm\/s<\/strong><\/p>\n<\/li>\n<li>\n<p>Goal of <strong>several hundred slices in 60 seconds<\/strong><\/p>\n<\/li>\n<li>\n<p>Claimed resolution of internal tissue details down to about <strong>0.5 mm<\/strong><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Had to double check to make sure this was the same Midjourney that does AI image gen. Didn&#8217;t expect this!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Making full body scanning this fast and stress-free is a massive step forward. Is this something people can just book directly like a spa appointment, or do you require a doctor&#8217;s referral first? Congrats on the launch! \ud83d\ude80<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Such an interesting idea. A 60-second body scan that people can do regularly sounds genuinely useful. How accurate is it, and what can it detect today?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This is genuinely fascinating \u2014 a full body scan in 60 seconds with no radiation sounds like something out of sci-fi. I&#8217;m curious though, is the scanner something you visit at a Midjourney Spa location, or will it eventually be available for clinics and hospitals to use too?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This is a pretty unexpected direction for Midjourney, but it&#8217;s interesting to see the brand branching out beyond creative AI.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#4<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/WV2Z2GVPLLUUE3\" class=\"app-title\">Firecrawl Research Index<\/a><\/p>\n<div class=\"one-liner\">An index for agents pushing the frontier of AI\/ML research<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">207<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Firecrawl Research Index \u662f\u4e00\u4e2a\u4e13\u4e3aAI\/ML\u7814\u7a76\u667a\u80fd\u4f53\u8bbe\u8ba1\u7684\u68c0\u7d22\u7d22\u5f15\uff0c\u901a\u8fc7\u6574\u5408 arXiv \u8bba\u6587\u4e0e GitHub \u4ee3\u7801\u4ed3\u5e93\uff0c\u5e76\u6bcf\u65e5\u5237\u65b0\uff0c\u89e3\u51b3\u667a\u80fd\u4f53\u5728\u83b7\u53d6\u6700\u65b0\u7814\u7a76\u6210\u679c\u65f6\u56e0\u4fe1\u606f\u5206\u6563\u3001\u6392\u540d\u4e0d\u51c6\u5bfc\u81f4\u7684\u5185\u5bb9\u6ede\u540e\u6216\u9057\u6f0f\u95ee\u9898\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/531234a3-1b52-4bfd-b452-7ae0b9379d87.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/4c6c6ea3-4af3-4f5a-ac2e-c93db2515b91.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/3b6005b7-8e4b-47bd-807e-c1b3f39777ac.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/cRKf6hLCIDE\"><source src=\"https:\/\/youtu.be\/cRKf6hLCIDE\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">GitHub<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\/ML\u7814\u7a76\u7d22\u5f15<\/span><br \/>\n            <span class=\"tag\">arXiv\u8bba\u6587\u68c0\u7d22<\/span><br \/>\n            <span class=\"tag\">GitHub\u4ee3\u7801\u6574\u5408<\/span><br \/>\n            <span class=\"tag\">\u667a\u80fd\u4f53\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u7814\u7a76\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">\u6bcf\u65e5\u66f4\u65b0<\/span><br \/>\n            <span class=\"tag\">\u9ad8\u53ec\u56de\u7387<\/span><br \/>\n            <span class=\"tag\">\u7814\u53d1\u6548\u7387<\/span><br \/>\n            <span class=\"tag\">\u6280\u672f\u6587\u6863\u641c\u7d22<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90\u7814\u7a76<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u80af\u5b9a\u4e86\u7d22\u5f15\u5bf9\u667a\u80fd\u4f53\u83b7\u53d6\u6700\u65b0\u7814\u7a76\u6210\u679c\u7684\u4ef7\u503c\uff0c\u5e76\u5173\u5fc3\u5982\u4f55\u51b3\u5b9aGitHub\u4ed3\u5e93\u7684\u6536\u5f55\u6807\u51c6\uff08\u5b98\u65b9\u56de\u5e94\u7531\u8bba\u6587\u5f15\u7528\u9a71\u52a8\uff09\u3002\u90e8\u5206\u8bc4\u8bba\u6307\u51fa\uff0c\u5355\u7eaf\u7d22\u5f15\u5e76\u975e\u96be\u70b9\uff0c\u96be\u70b9\u5728\u4e8e\u7504\u522b\u8bba\u6587\u7684\u65f6\u6548\u6027\u4e0e\u76f8\u5173\u6027\uff0c\u4ee5\u53ca\u5982\u4f55\u5904\u7406\u8bba\u6587\u4e0e\u4ee3\u7801\u95f4\u7684\u5f15\u7528\u6eaf\u6e90\u3002\u8fd8\u6709\u7528\u6237\u8be2\u95ee\u662f\u5426\u8986\u76d6NeurIPS\u7b49\u4f1a\u8bae\u8bba\u6587\uff0c\u4ee5\u53ca\u68c0\u7d22\u7ed3\u679c\u7684\u5f15\u7528\u7ed3\u6784\u662f\u5426\u5b8c\u6574\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Firecrawl Research Index \u7684\u5b9a\u4f4d\u975e\u5e38\u7cbe\u51c6\u2014\u2014\u5b83\u6ca1\u6709\u8bd5\u56fe\u505a\u4e00\u4e2a\u201c\u66f4\u597d\u7684\u5b66\u672f\u641c\u7d22\u5f15\u64ce\u201d\u53bb\u4e0e\u4eba\u7ade\u4e89\uff0c\u800c\u662f\u7784\u51c6\u4e86AI\u667a\u80fd\u4f53\u5728\u201c\u81ea\u4e3b\u7814\u7a76\u201d\u8fc7\u7a0b\u4e2d\u7684\u6570\u636e\u9965\u997f\u75db\u70b9\u3002\u5176\u6838\u5fc3\u4ef7\u503c\u4e0d\u5728\u4e8e\u201c3M+\u8bba\u6587\u201d\u7684\u4f53\u91cf\uff0c\u800c\u5728\u4e8e\u5c06\u201c\u8bba\u6587+\u4ee3\u7801\u201d\u8fd9\u4e00\u7814\u7a76\u95ed\u73af\u7684\u5173\u952e\u8d44\u4ea7\u8fdb\u884c\u4e86\u7ed3\u6784\u5316\u8026\u5408\uff0c\u5e76\u5b9e\u73b0\u4e86\u8fd1\u4e4e\u5b9e\u65f6\u7684\u5237\u65b0\u3002\u8fd9\u4f7f\u5f97\u5b83\u6210\u4e3a\u5f53\u524dAI\u5de5\u7a0b\u5316\u94fe\u6761\u4e2d\u4e00\u5757\u5fc5\u8981\u7684\u201c\u62fc\u56fe\u201d\uff0c\u8ba9\u667a\u80fd\u4f53\u5728\u81ea\u4e3b\u8bad\u7ec3\u3001\u8c03\u53c2\u6216\u67b6\u6784\u641c\u7d22\u65f6\uff0c\u80fd\u591f\u52a8\u6001\u62c9\u53d6\u6700\u65b0\u7684SOTA\u8bba\u6587\u53ca\u5176\u53ef\u590d\u73b0\u7684\u4ee3\u7801\u5b9e\u73b0\uff0c\u4ece\u800c\u771f\u6b63\u5b9e\u73b0\u95ed\u73af\u81ea\u52a8\u5316\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u73b0\u9636\u6bb5\u7684\u5b9a\u4f4d\u4e5f\u66b4\u9732\u4e86\u5b83\u7684\u5c40\u9650\u6027\u3002\u591a\u6570\u8bc4\u8bba\u7684\u70b9\u8d5e\u6570\u6781\u4f4e\uff0c\u6070\u6070\u8bf4\u660e\u5176\u53d7\u4f17\u6781\u4e3a\u5782\u76f4\uff0c\u4e14\u9ad8\u5ea6\u4f9d\u8d56\u7528\u6237\u5bf9\u201c\u667a\u80fd\u4f53\u81ea\u4e3b\u7814\u7a76\u201d\u8fd9\u4e00\u573a\u666f\u7684\u8ba4\u77e5\u3002\u771f\u6b63\u7684\u6280\u672f\u58c1\u5792\u4e0d\u5728\u7d22\u5f15\u6784\u5efa\uff0c\u800c\u5728\u4e8e\u5bf9\u5b66\u672f\u8bba\u6587\u8d28\u91cf\u7684\u52a8\u6001\u8bc4\u4f30\uff1a\u5982\u4f55\u4ece\u6d77\u91cf\u9884\u5370\u672c\u4e2d\u8bc6\u522b\u51fa\u90a3\u4e9b\u771f\u6b63\u5177\u6709\u91cc\u7a0b\u7891\u610f\u4e49\u3001\u80fd\u663e\u8457\u5f71\u54cd\u6a21\u578b\u80fd\u529b\u7684\u8d21\u732e\uff0c\u800c\u4e0d\u662f\u8ba9\u667a\u80fd\u4f53\u88ab\u5927\u91cf\u4f4e\u8d28\u6216\u8fc7\u65f6\u7684\u8bba\u6587\u6df9\u6ca1\u3002\u6b64\u5916\uff0c\u4ec5\u4f9d\u8d56arXiv\u548cGitHub\uff0c\u4f1a\u9057\u6f0fNeurIPS\u3001ICML\u7b49\u4f1a\u8bae\u7684\u91cd\u8981\u8bba\u6587\u53ca\u5176\u4e13\u5c5e\u4ee3\u7801\u5e93\uff0c\u8986\u76d6\u9762\u4ecd\u6709\u7f3a\u9677\u3002Firecrawl\u8981\u60f3\u6210\u4e3a\u667a\u80fd\u4f53\u7814\u7a76\u7684\u57fa\u7840\u8bbe\u65bd\uff0c\u5fc5\u987b\u89e3\u51b3\u201c\u806a\u660e\u5730\u7b5b\u9009\u201d\u800c\u975e\u201c\u7b80\u5355\u5730\u7d22\u5f15\u201d\u8fd9\u4e00\u96be\u9898\u3002\u5426\u5219\uff0c\u5b83\u4e0d\u8fc7\u662f\u7ed9\u667a\u80fd\u4f53\u5582\u4e86\u4e00\u5806\u672a\u7ecf\u8fc7\u6ee4\u7684\u5b66\u672f\u4fe1\u53f7\uff0c\u6700\u7ec8\u4ecd\u4f1a\u52a0\u5267\u201c\u5783\u573e\u8fdb\uff0c\u5783\u573e\u51fa\u201d\u7684\u95ee\u9898\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Firecrawl Research Index<\/span>\n                <\/div>\n<div class=\"comment-content\">AI\/ML research moves fast, and the work that matters is split between new papers and the code that implements them. Most search providers omit or misrank key papers, leaving you to review sources by hand without ever being sure you&#8217;ve caught everything. So we built an index for it. Firecrawl&#8217;s index includes all 3M+ arXiv papers, as well as GitHub artifacts from top research repos, refreshed daily so agents always stay current.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Product Hunt \ud83d\udc4b Eric, Caleb, and Nick from Firecrawl here. Today we&#8217;re launching the Firecrawl Research Index, a specialized index for agents pushing the frontier of AI\/ML research.<\/p>\n<p>AI\/ML research moves fast, and the work that matters is split between new papers and the code that implements them. Most search providers omit or misrank key papers, leaving you to review sources by hand without ever being sure you&#8217;ve caught everything.<\/p>\n<p>So we built an index for it. Firecrawl&#8217;s index includes all 3M+ arXiv papers, as well as GitHub artifacts from top research repos, refreshed daily so agents always stay current.<\/p>\n<p>On arXivQA, the index has state-of-the-art recall, 18% above the next best provider at similar cost. It also scores 0.750 MRR, meaning the correct paper lands in the top two results. Your agent finds the right papers, right away.<\/p>\n<p>Plus, the index ships with a complete research toolset. Agents can retrieve papers, verify claims against the full text, and pull code for implementation &#8211; running the full research loop end-to-end. An agent training a model overnight could pull an optimizer from a recent paper and a stability fix from a related GitHub issue, then test both in its next run.<\/p>\n<p>Firecrawl Research Index is available now in the API via \/search\/research, CLI, MCP, and SDKs, and plugs into any harness you already run (Codex, Claude Code, or Grok Build).<\/p>\n<p>Try it here: <a href=\"https:\/\/docs.firecrawl.dev\/features\/research\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/docs.firecrawl.dev\/features\/research<\/a><\/p>\n<p>We&#8217;d love to see what you build with it.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>4<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ericciarla\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ericciarla<\/a>&nbsp;wow! <a href=\"https:\/\/www.producthunt.com\/products\/extract-by-firecrawl\" data-node-type=\"mention\" data-mention-type=\"product\" data-mention-id=\"extract-by-firecrawl\" target=\"_blank\" rel=\"noopener\">@Firecrawl<\/a> is going through the roof!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The indexing isn\u2019t the hard part, it\u2019s the finding of what papers make earlier papers obsolete. <\/p>\n<\/p>\n<p>Or, not only that, it\u2019s the understanding that many papers (even recent ones) are irrelevant. You\u2019ll get agents touting results, only to read the paper and see that the conclusions are based on GPT 4o, which for many purposes has more in common with the Apollo guidance module than current models trained with reinforcement learning.<\/p>\n<\/p>\n<p>Okay fine, that\u2019s a bit too hyperbolic, but really: the changes in training paradigms just make a huge corpus of research not very applicable to current LLMs, and that\u2019s a point that models skip right over. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I don&#8217;t do ML research, I build production agents, but the core pain here is universal: agents quietly acting on stale or misranked sources and nobody noticing until it bites. Pairing each paper with the code that implements it, refreshed daily, is the clever bit. Curious whether you&#8217;ll extend that same &#8220;source + the thing that implements it, kept current&#8221; idea beyond arXiv to general docs\/APIs, because that&#8217;s exactly where my agents drift. Nice launch.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This is useful. For research agents, the part I\u2019d want surfaced is provenance per downstream step: which paper, which repo or issue, which claim, and what changed in the experiment because of it.<\/p>\n<\/p>\n<p>Does \/search\/research return enough citation structure for an agent to keep that trail, or is that on the harness?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>3M+ arXiv papers plus GitHub artifacts all in one index refreshed daily is seriously impressive. The recall benchmark results are pretty convincing too. I&#8217;m curious \u2014 does the index also cover papers from conferences like NeurIPS or ICML, or is it purely arXiv-based right now?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Getting state-of-the-art recall on arXivQA is legitimately hard. The tricky bit isn&#8217;t crawling the PDFs. It&#8217;s parsing structured content from LaTeX source vs. the rendered PDF without losing math notation and figure references. We&#8217;ve spent time on similar extraction challenges when pulling structured data from dense technical documents. What does your indexing pipeline use for equation and table extraction from arXiv source tarballs?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This is cool. How do you decide which GitHub repos qualify as top research artifacts?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@dhiraj_patel5\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dhiraj_patel5<\/a>&nbsp;Hey Dhiraj, Richard from Firecrawl here. It&#8217;s driven by the papers, not by stars or popularity. We index the repos that actually show up in the research we&#8217;ve ingested. The more papers point to a repo, the more we index it.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Eric! IT&#8217;s truly impressive. 3M+ papers is more than enough to make researches that actually matter. Love to see you helping on this and wish you all the best!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@german_merlo1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@german_merlo1<\/a>&nbsp;Thank you!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ericciarla\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"ericciarla\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ericciarla<\/a> congrats! Will definitely try it<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@khashayar_mansourizadeh1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@khashayar_mansourizadeh1<\/a>&nbsp;thank you!!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#5<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/IE7RIXXZEK4WSO\" class=\"app-title\">API to MCP<\/a><\/p>\n<div class=\"one-liner\">Turn any API into an MCP server for AI agents<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">192<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>API to MCP \u662f\u4e00\u6b3e\u5c06 REST\u3001GraphQL \u53ca\u5404\u7c7b\u4e1a\u52a1 API \u5feb\u901f\u8f6c\u5316\u4e3a AI \u4ee3\u7406\u53ef\u7528\u7684\u6258\u7ba1 MCP \u670d\u52a1\u5668\u7684\u5de5\u5177\uff0c\u89e3\u51b3\u4e86\u5f00\u53d1\u8005\u624b\u52a8\u4e3a AI \u4ee3\u7406\u9002\u914d\u4e1a\u52a1 API \u7684\u7e41\u7410\u4e0e\u5de5\u7a0b\u6210\u672c\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/36099756-d8a3-4d2c-91ba-b9912bd8d94c.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/69253680-e984-42e6-bb48-b9b30bf8615d.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/779ba2a8-dc3f-4323-9811-a34e79284d0b.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/925d8e0f-3e94-4664-8254-2e3f1ec66f3f.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b5f1cc66-a964-4c62-a6c1-a2edf877e9ba.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/9d0ad55b-4607-42f8-a71b-8559770719ea.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/cb64b874-b7c1-43af-b105-196512190ad1.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/749d2295-30db-4056-a35f-c867a17aafd2.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">API<\/span><br \/>\n            <span class=\"tag\">SaaS<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">MCP \u670d\u52a1\u5668<\/span><br \/>\n            <span class=\"tag\">API \u8f6c\u5316<\/span><br \/>\n            <span class=\"tag\">AI \u4ee3\u7406\u96c6\u6210<\/span><br \/>\n            <span class=\"tag\">REST \u4e0e GraphQL<\/span><br \/>\n            <span class=\"tag\">OAuth \u8ba4\u8bc1<\/span><br \/>\n            <span class=\"tag\">\u5de5\u4f5c\u6d41\u7f16\u6392<\/span><br \/>\n            <span class=\"tag\">\u5feb\u7167\u5206\u53c9<\/span><br \/>\n            <span class=\"tag\">OpenAPI \u5bfc\u5165<\/span><br \/>\n            <span class=\"tag\">\u4f01\u4e1a\u7ea7\u5b89\u5168<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u5173\u6ce8\u5feb\u7167\u5206\u53c9\u4e0e\u7248\u672c\u9501\u5b9a\u673a\u5236\uff0c\u7528\u4e8e\u751f\u4ea7\u73af\u5883\u7a33\u63a7\uff1b\u8be2\u95ee\u5982\u4f55\u6309\u89d2\u8272\u9694\u79bb\u5de5\u5177\u6743\u9650\uff08\u5982\u53ea\u8bfbCRM vs \u5199\u6743\u9650\uff09\uff1b\u5173\u5fc3OAuth\u4ee4\u724c\u5237\u65b0\u4e0e\u5bc6\u94a5\u5b89\u5168\uff1b\u5e0c\u671b\u652f\u6301gRPC\u7b49\u5185\u90e8\u5fae\u670d\u52a1\u534f\u8bae\uff1b\u671f\u5f85\u5199\u64cd\u4f5c\u5ba1\u8ba1\u4e0e\u7ba1\u63a7\u7b56\u7565\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                API to MCP \u5207\u4e2d\u4e86\u5f53\u524d AI \u4ee3\u7406\u843d\u5730\u7684\u6838\u5fc3\u74f6\u9888\u2014\u2014\u4e1a\u52a1 API \u4e0e\u4ee3\u7406\u5de5\u5177\u4e4b\u95f4\u7684\u201c\u6700\u540e\u4e00\u516c\u91cc\u201d\u3002\u4ea7\u54c1\u5728\u7406\u5ff5\u4e0a\u505a\u5bf9\u4e86\u4e09\u4ef6\u4e8b\uff1a\u4e00\u662f\u5c06\u201cAPI \u9002\u914d\u201d\u62bd\u8c61\u4e3a\u53ef\u6258\u7ba1\u7684 MCP \u670d\u52a1\uff0c\u5927\u5e45\u964d\u4f4e\u4e86\u5bf9\u63a5\u95e8\u69db\uff1b\u4e8c\u662f\u901a\u8fc7\u201c\u5feb\u7167\u5206\u53c9\u201d\u673a\u5236\u89e3\u51b3\u4e86\u751f\u4ea7\u73af\u5883\u5bf9\u7248\u672c\u7a33\u5b9a\u6027\u7684\u521a\u9700\uff0c\u907f\u514d\u56e0\u4e0a\u6e38\u66f4\u65b0\u5bfc\u81f4\u5de5\u4f5c\u6d41\u5d29\u6e83\uff1b\u4e09\u662f\u5c06\u8ba4\u8bc1\u903b\u8f91\uff08OAuth \u5237\u65b0\u3001API Key \u52a0\u5bc6\uff09\u7559\u5728\u670d\u52a1\u7aef\uff0c\u4e0d\u8ba9\u654f\u611f\u51ed\u636e\u66b4\u9732\u7ed9\u4ee3\u7406\uff0c\u8fd9\u6bd4\u8bb8\u591a\u201c\u4e3a AI \u5c01\u88c5 API\u201d\u7684\u73a9\u5177\u7ea7\u4ea7\u54c1\u66f4\u61c2\u4f01\u4e1a\u5b89\u5168\u7ea2\u7ebf\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u4ea7\u54c1\u4ecd\u5904\u4e8e\u65e9\u671f\uff0c\u5b58\u5728\u660e\u663e\u77ed\u677f\u3002\u8bc4\u8bba\u4e2d\u53cd\u590d\u51fa\u73b0\u7684\u201c\u6309\u89d2\u8272\u9650\u6743\u201d\u201c\u5199\u64cd\u4f5c\u5ba1\u8ba1\u201d\u201cgRPC \u652f\u6301\u201d\u7b49\u9700\u6c42\uff0c\u66b4\u9732\u4e86\u5f53\u524d\u7248\u672c\u5728\u7ec6\u7c92\u5ea6\u6743\u9650\u548c\u534f\u8bae\u8986\u76d6\u4e0a\u7684\u4e0d\u8db3\u3002\u5c06\u6743\u9650\u5b64\u7acb\u5730\u5bc4\u6258\u4e8e\u201c\u5de5\u5177\u96c6\u88c1\u526a+\u4e0a\u6e38 Token \u8303\u56f4\u201d\u7684\u4e24\u5c42\u6a21\u578b\uff0c\u5728\u590d\u6742\u591a\u79df\u6237\u573a\u666f\u4e0b\u6781\u6613\u51fa\u73b0\u6743\u9650\u6cc4\u6f0f\u6216\u7ba1\u7406\u6df7\u4e71\u3002\u66f4\u81f4\u547d\u7684\u662f\uff0c\u4ea7\u54c1\u76ee\u524d\u4e25\u91cd\u4f9d\u8d56 AI \u4ee3\u7406\u5bf9 API \u6587\u6863\u7684\u7406\u89e3\u80fd\u529b\u2014\u2014\u5982\u679c\u6587\u6863\u4e0d\u89c4\u8303\u6216\u7ed3\u6784\u590d\u6742\uff0c\u81ea\u52a8\u751f\u6210\u7684 MCP \u5de5\u5177\u8d28\u91cf\u582a\u5fe7\uff0c\u53cd\u800c\u9700\u8981\u5f00\u53d1\u8005\u8fd4\u5de5\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u771f\u6b63\u7684\u4ef7\u503c\u5728\u4e8e\uff1a\u5b83\u63d0\u4f9b\u4e86\u4e00\u6761\u4ece\u201c\u624b\u5199\u9002\u914d\u5668\u201d\u5230\u201c\u58f0\u660e\u5f0f\u96c6\u6210\u201d\u7684\u8fc1\u79fb\u8def\u5f84\uff0c\u5c24\u5176\u9002\u5408\u4e2d\u5c0f\u56e2\u961f\u5feb\u901f\u9a8c\u8bc1 AI \u5de5\u4f5c\u6d41\u539f\u578b\u3002\u4f46\u82e5\u60f3\u8fdb\u5165\u4f01\u4e1a\u6838\u5fc3\u4e1a\u52a1\uff0c\u5fc5\u987b\u8865\u4e0a\u7b56\u7565\u5c42\uff08Policy as Code\uff09\u3001\u5ba1\u8ba1\u5c42\uff08\u7ed3\u6784\u5316\u65e5\u5fd7\uff09\u3001\u534f\u8bae\u5c42\uff08gRPC\/WebSocket\uff09\u7684\u77ed\u677f\u3002\u76ee\u524d\u66f4\u50cf\u662f\u201c\u811a\u624b\u67b6\u201d\u800c\u975e\u201c\u751f\u4ea7\u7ea7\u5e95\u5ea7\u201d\uff0c\u80fd\u5426\u957f\u51fa\u808c\u8089\uff0c\u53d6\u51b3\u4e8e\u540e\u7eed\u5bf9\u8bc4\u8bba\u4e2d\u771f\u5b9e\u75db\u70b9\u7684\u54cd\u5e94\u901f\u5ea6\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">API to MCP<\/span>\n                <\/div>\n<div class=\"comment-content\">API To MCP turns REST, GraphQL, SaaS, and internal business APIs into hosted MCP servers that AI agents can use in minutes. Build visually from the dashboard, or let an AI agent create, test, and deploy tools from API docs. End users can connect live MCP servers to ChatGPT, Claude, Codex, Cursor, VS Code, Antigravity, or custom agents with OAuth, secure auth, workflows, and forkable snapshots.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Product Hunt \ud83d\udc4b<\/p>\n<\/p>\n<p>I built API To MCP because AI agents are getting smarter, but connecting them to real business APIs is still too hard.<\/p>\n<p>Most teams already have valuable systems: CRMs, ERPs, support tools, finance dashboards, internal APIs, and SaaS platforms like Google, Meta, GitHub, Notion, Shopify, and Slack. But turning those APIs into something ChatGPT, Claude, Codex, Cursor, VS Code, Antigravity, or custom agents can actually use often requires custom engineering.<\/p>\n<\/p>\n<p>API To MCP helps you turn REST or GraphQL APIs into hosted MCP servers.<\/p>\n<\/p>\n<p>You can build visually from the dashboard, or connect the API To MCP Manager MCP to an AI coding agent and let it create, test, deploy, and update MCP servers from chat.<\/p>\n<\/p>\n<p>Today it supports:<\/p>\n<\/p>\n<p>&#8211; Hosted remote MCP URLs<\/p>\n<p>&#8211; REST and GraphQL APIs<\/p>\n<p>&#8211; API Key, Bearer, Basic Auth, OAuth2 Client Credentials, and per-user OAuth<\/p>\n<p>&#8211; Workflow tools and JMESPath response mapping<\/p>\n<p>&#8211; Live MCP servers and forkable snapshots<\/p>\n<p>&#8211; Public MCP directory<\/p>\n<\/p>\n<p>I\u2019ve worked hard to make the product stable for launch day, but this is still an early version. If you run into any issues while trying it, I\u2019d really appreciate your feedback.<\/p>\n<\/p>\n<p>I\u2019d love to hear:<\/p>\n<p>1. What API would you turn into an MCP server first?<\/p>\n<p>2. Would you rather use a live MCP directly, or fork a snapshot and add your own credentials?<\/p>\n<p>3. What would make this easier for non-technical users?<\/p>\n<\/p>\n<p>As a launch thank-you, all paid plans are 30% off during the Product Hunt launch period.<\/p>\n<\/p>\n<p>Thanks for checking it out. I\u2019ll be here all day answering questions.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@akudanh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@akudanh<\/a>&nbsp;that&#8217;s an amazing use case. I recently have the habit of using ai for almost anything. Made me lazy but also productive its definitely going to help<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@akudanh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@akudanh<\/a>Congrats on the launch. Your hero is written for people who already know what MCP is. I rewrote it for the people who need to be convinced \u2014 want to see?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@akudanh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@akudanh<\/a>&nbsp;congrats! Quick question: if you could pick one real-world task for an AI agent to do with full access to a single API, which API would you choose and what exactly should the agent accomplish?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The forkable snapshot idea is the part I would want to test first.<\/p>\n<\/p>\n<p>Turning an API into MCP is useful, but the hard production question is usually: can I freeze the tool contract that an agent saw, review it, and then safely promote it to a live credentialed server?<\/p>\n<\/p>\n<p>For a first useful workflow, I would look for:<\/p>\n<\/p>\n<ul>\n<li>\n<p>import an OpenAPI or GraphQL spec<\/p>\n<\/li>\n<li>\n<p>&#8211; generate a small MCP tool set<\/p>\n<\/li>\n<li>\n<p>&#8211; run one real read-only call<\/p>\n<\/li>\n<li>\n<p>&#8211; inspect the exact schema and mapped response the agent receives<\/p>\n<\/li>\n<li>\n<p>&#8211; fork a snapshot before adding write actions or user OAuth<\/p>\n<\/li>\n<li>\n<p>&#8211; diff the live server against the snapshot after API docs change<\/p>\n<\/li>\n<\/ul>\n<p>That kind of review trail would make API-to-agent wiring much easier to trust, especially for internal business APIs where a wrong write action is worse than no automation.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Definitely adds a lot of value. How do you handle auth scopes when different agents should get different tool access, like read-only CRM vs write\/update access?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This solves a real headache. Setting up MCP servers from scratch for every API is tedious, so being able to just point it at a REST or GraphQL API and have it generate the server automatically is a big time saver. Does it handle authentication flows like OAuth or API keys automatically too, or is that something you configure manually?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@doganakbulut\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@doganakbulut<\/a>&nbsp;Thanks Dogan, really appreciate it.<\/p>\n<p>Yes, API To MCP supports the main auth types we see in real integrations: no auth, API key, Bearer token, Basic Auth, OAuth2 Client Credentials, and OAuth Authorization Code.<\/p>\n<\/p>\n<p>The auth method is configured when creating the MCP server. For API keys, Bearer tokens, and Basic Auth, you can store credentials securely, or in some cases let the connecting agent\/user provide the token. For OAuth Authorization Code, each end user can connect their own provider account, so the MCP server can work for multiple users without sharing one credential.<\/p>\n<\/p>\n<p>You can also connect the API To MCP Manager MCP to an AI agent and let it help create the server, tools, schemas, and auth configuration from API docs. That said, for sensitive credentials like client secrets, API keys, and production tokens, I recommend reviewing and entering them manually instead of pasting them into a general chat prompt.<\/p>\n<\/p>\n<p>So the balance is: let the agent automate the repetitive setup, but keep final control over credentials and auth boundaries in the product UI.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Can you pin a snapshot version for an agent so updates don\u2019t change behavior mid workflow?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@thamibenjelloun\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thamibenjelloun<\/a>&nbsp;Yes, that\u2019s an important point.<\/p>\n<\/p>\n<p>Forked servers are based on a published snapshot version, not the publisher\u2019s live draft\/config. So once a team forks a snapshot, their MCP server has its own copied configuration and won\u2019t change just because the original publisher updates the live server or publishes a newer snapshot.<\/p>\n<\/p>\n<p>That gives teams a stable version boundary for production workflows.<\/p>\n<\/p>\n<p>The next step I want to make more explicit is version pinning in the UI: showing which snapshot revision a fork came from, letting teams compare newer revisions, and choosing when to upgrade intentionally instead of changing behavior automatically.<\/p>\n<\/p>\n<p>So the current model already avoids mid-workflow behavior changes after fork, and the roadmap is to make version pinning, diffing, and controlled upgrades clearer.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This is a really amazing use case. Can it support internal microservices spec like grpc? <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The live vs forked MCP split is the right product question. I\u2019d be curious how you want teams to carry policy with the fork: allowed actions, credential scope, approval rules, and a receipt after a write. Otherwise the fork solves setup, but production teams still have to prove what an agent changed.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@blah_mad\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@blah_mad<\/a>&nbsp;Yes, that\u2019s exactly the next layer I\u2019m thinking about.<\/p>\n<\/p>\n<p>Today the forked MCP gives teams control over the server config, credentials, auth model, tools, and output mappings, so they are no longer dependent on the publisher\u2019s live runtime. But I agree that for production teams, \u201cit works\u201d is not enough. They also need to prove what the agent was allowed to do and what it actually changed.<\/p>\n<\/p>\n<p>The direction I want to take is to make policy part of the MCP server itself:<\/p>\n<p>&#8211; allowed actions per tool or tool group<\/p>\n<p>&#8211; read\/write separation<\/p>\n<p>&#8211; credential and OAuth scope boundaries<\/p>\n<p>&#8211; approval rules for sensitive writes<\/p>\n<p>&#8211; structured audit logs for every tool call<\/p>\n<p>&#8211; a write receipt showing who\/what triggered the action, which tool ran, what changed, and the result<\/p>\n<\/p>\n<p>For now, API To MCP already logs usage and keeps credentials out of the agent context, but richer policy + receipts are important for serious business adoption. My goal is for a forked MCP to become not just a copied integration, but a controlled execution layer that teams can review, operate, and trust.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>One API for the whole WhatsApp Business stack, calls included, is exactly what I wished existed last time I built on WhatsApp. The hosted MCP server is a great touch for agents. Congrats on the launch!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Wrapping heterogeneous APIs behind a unified MCP layer is a smart abstraction. The hardest part isn&#8217;t the HTTP adapter. It&#8217;s auth propagation across OAuth, API keys, and custom schemes without leaking secrets into agent contexts. We&#8217;ve hit this friction proxying third-party integrations in multi-tenant setups. How do you handle token refresh when an OAuth TTL expires mid agent tool call?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@anand_thakkar1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@anand_thakkar1<\/a>&nbsp;Great point. I agree, the hard part is not just turning HTTP into a tool. The hard part is keeping auth safe across many providers and tenants.<\/p>\n<\/p>\n<p>In API To MCP, upstream credentials are never passed into the agent context. The agent only calls the MCP server. API keys, Bearer tokens, OAuth access tokens, and refresh tokens are stored encrypted on the backend and resolved only at execution time.<\/p>\n<\/p>\n<p>For OAuth, refresh is handled server-side. Before a tool call hits the upstream API, API To MCP checks the connection expiry and refreshes the access token if it is expired or close to expiring, then stores the new encrypted token. There is also scheduled refresh in the background.<\/p>\n<\/p>\n<p>If refresh fails because the refresh token was revoked, expired, or the provider requires re-consent, the connection is marked as needing reconnect and the tool returns a clear auth error instead of exposing token details to the agent.<\/p>\n<\/p>\n<p>So the model is: agents get MCP tools, API To MCP owns credential refresh, and upstream tokens stay out of prompts, tool arguments, and agent-visible context.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This solves a real bottleneck: business systems already have APIs, but agents need a safer execution layer. Curious how you handle permission boundaries. Can an MCP server expose different actions by role, for example read-only CRM access for one agent and write\/update access for another?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@rahulbhavsar\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rahulbhavsar<\/a>&nbsp;Great question. Permission boundaries are one of the core things I care about here.<\/p>\n<p>API To MCP handles this in two layers.<\/p>\n<\/p>\n<p>The first layer is the MCP server itself: you can expose only the tools an agent should be able to use. For example, a read-only CRM MCP can contain only search\/get tools, while an admin CRM MCP can include create\/update tools.<\/p>\n<\/p>\n<p>The second layer is the upstream API credential. If a shared MCP exposes both read and write tools, the actual API call still runs with the connected user\u2019s OAuth account or Bearer token. So if that token only has read scopes or a limited role, write\/update calls should be rejected by the upstream API.<\/p>\n<\/p>\n<p>Today API To MCP supports scoped account tokens for the manager MCP, OAuth scopes for MCP client access, and upstream OAuth scopes for providers like Google\/Meta-style APIs. I\u2019m also working toward more explicit per-tool policy controls, but my preferred production model is still: expose the smallest safe tool surface, then let OAuth\/token scopes enforce the second boundary.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey! \ud83d\udc4b<\/p>\n<\/p>\n<p>Congrats on the launch of API to MCP! \ud83d\ude80<\/p>\n<\/p>\n<p>I really like how you&#8217;re helping developers bridge existing APIs into the MCP ecosystem. With AI agents becoming more capable, reducing the friction between APIs and MCP tools feels incredibly timely and useful.<\/p>\n<\/p>\n<p>We&#8217;re also launching Blazly Backlinker today, helping marketers automate backlink discovery, outreach, and guest posting from a single workflow.<\/p>\n<\/p>\n<p>Would love to hear your thoughts if you get a chance to check us out as well. Wishing you a fantastic launch day! \ud83c\udf89<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@srijita_b\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@srijita_b<\/a>&nbsp;Hey, thank you so much! Really appreciate the kind words.<\/p>\n<p>I agree, the timing feels important. AI agents are getting much better, but the bridge between existing APIs, business data, and usable agent tools still has a lot of friction. That\u2019s exactly what API To MCP is trying to reduce.<\/p>\n<p>Congrats on launching Blazly Backlinker as well. Backlink discovery and outreach is definitely a painful workflow for marketers, so I like the direction. I\u2019ll check it out, and wishing you a strong launch day too!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on the launch! \ud83c\udf89 I gave API To MCP a try and was genuinely impressed. Setup was surprisingly simple, everything worked smoothly out of the box, and the overall experience was very polished. Turning APIs into MCP servers has never felt this easy. Great work to the whole team and wishing you a successful launch! \ud83d\ude80<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@favger\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@favger<\/a>&nbsp;Thank you so much. Really appreciate you taking the time to try it.<\/p>\n<p>Curious: did you use the UI Wizard, or did you try building through an AI agent like ChatGPT, Codex, or Cursor?<\/p>\n<p>The AI agent workflow is where it gets surprisingly powerful. For straightforward APIs, once the agent understands the API docs, it can create, test, and deploy MCP servers very quickly. Depending on API complexity, creating dozens of MCP servers, even around 50 simple ones in a focused workday, becomes realistic.<\/p>\n<p>Still early, so feedback like this means a lot. If you run into anything confusing or have ideas for APIs\/workflows you\u2019d like to see supported better, I\u2019d love to hear them.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The forkable snapshots idea feels useful. Teams may want to try a live MCP quickly, but still need control over credentials, auth, and mappings before using it seriously.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@farrukh_butt1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@farrukh_butt1<\/a>&nbsp;Exactly. That was one of the reasons I moved from a \u201ctemplate-first\u201d model to live MCP servers + forkable snapshots.<\/p>\n<\/p>\n<p>A live MCP is great for trying something quickly, especially when the publisher supports OAuth or a safe public use case. But when a team wants production control, they usually need their own credentials, auth settings, output mappings, limits, and review process.<\/p>\n<\/p>\n<p>So the idea is: try the live MCP when it makes sense, then fork a snapshot when you want your own controlled version. The snapshot gives you a clean starting point without inheriting the publisher\u2019s secrets or live runtime state.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#6<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/3FHIEYAZL5HDRV\" class=\"app-title\">Unreal Engine 5.8<\/a><\/p>\n<div class=\"one-liner\">Build unreal games with AI agents<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">153<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Unreal Engine 5.8 \u4f5c\u4e3a UE5 \u751f\u547d\u5468\u671f\u7684\u6536\u5b98\u66f4\u65b0\uff0c\u901a\u8fc7\u539f\u751f MCP \u63d2\u4ef6\u8ba9 AI \u667a\u80fd\u4f53\u76f4\u63a5\u64cd\u63a7\u7f16\u8f91\u5668\uff0c\u65e8\u5728\u89e3\u51b3\u4f20\u7edf\u6e38\u620f\u5f00\u53d1\u4e2d\u8d44\u4ea7\u521b\u5efa\u3001\u7cfb\u7edf\u6d4b\u8bd5\u4e0e\u4f18\u5316\u6d41\u7a0b\u81ea\u52a8\u5316\u7a0b\u5ea6\u4f4e\u7684\u75db\u70b9\uff0c\u5e76\u4e3a\u5f00\u53d1\u8005\u63d0\u4f9b\u57fa\u4e8e 3D \u7f51\u683c\u5730\u5f62\u7684\u65e0\u9ad8\u5ea6\u573a\u9650\u5236\u4e16\u754c\u6784\u5efa\u80fd\u529b\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/3af3c731-8b7d-4abe-a6d3-45057c0f4b01.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=ExFF5gXVhDU\"><source src=\"https:\/\/www.youtube.com\/watch?v=ExFF5gXVhDU\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/d60a1753-8680-46f4-85b4-b19df1e231ea.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/d6a0a599-886a-4eb1-b9da-ba2ffa3eb06b.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/a715d5e3-898b-48cf-afe7-56138ccb2446.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/de298e00-e5d2-4aca-9d20-94b4238d5004.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/44f687c8-8e57-4d84-ba85-5a8f49efeab6.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/2d64c31e-42cd-4980-8417-ad52c0f4d85d.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/c3a8a887-ccaa-4f99-95f4-6ba88f646213.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/772d4dc0-989d-4a0c-bcd9-75f7bfbb2cf7.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/91d9670c-592f-45bc-9f4f-9dd6ecd14aa6.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">Games<\/span><br \/>\n            <span class=\"tag\">Development<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u6e38\u620f\u5f15\u64ce<\/span><br \/>\n            <span class=\"tag\">UE5.8<\/span><br \/>\n            <span class=\"tag\">AI\u667a\u80fd\u4f53<\/span><br \/>\n            <span class=\"tag\">MCP\u63d2\u4ef6<\/span><br \/>\n            <span class=\"tag\">3D\u7f51\u683c\u5730\u5f62<\/span><br \/>\n            <span class=\"tag\">MegaLights<\/span><br \/>\n            <span class=\"tag\">\u6c99\u76d2\u6a21\u5f0f<\/span><br \/>\n            <span class=\"tag\">\u81ea\u52a8\u5316\u5de5\u4f5c\u6d41<\/span><br \/>\n            <span class=\"tag\">\u6e38\u620f\u5f00\u53d1\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u6b21\u4e16\u4ee3\u4e3b\u673a<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u5bf9\u539f\u751fMCP\u63d2\u4ef6\u6700\u611f\u5174\u8da3\uff0c\u8ba4\u4e3a\u5176\u80fd\u6253\u901aAI\u4e0e\u7f16\u8f91\u5668\u7684\u65b0\u5de5\u4f5c\u6d41\uff0c\u5e76\u8ffd\u95ee\u662f\u5426\u5f00\u6e90\uff1b\u540c\u65f6\u6307\u51faUE6\u5df2\u5728\u8def\u4e0a\uff0cAI\u529f\u80fd\u6dfb\u52a0\u8f83\u665a\u4e14\u5b9e\u73b0\u8868\u5c42\uff0c\u5bf9\u65b0\u9879\u76ee\u800c\u8a005.x\u7cfb\u5217\u5df2\u5931\u53bb\u5438\u5f15\u529b\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                UE 5.8\u672c\u8d28\u4e0a\u662f\u4e00\u6b21\u201c\u6280\u672f\u9057\u4ea7\u6e05\u7b97\u201d\u52a0\u201c\u753b\u997c\u589e\u5f3a\u201d\u3002MegaLights\u548c3D Mesh Terrain\u786e\u5b9e\u662f\u786c\u6838\u6e32\u67d3\u80fd\u529b\uff0c\u5bf9\u6b21\u4e16\u4ee3\u4e3b\u673a\u548c\u5f00\u653e\u4e16\u754c\u56e2\u961f\u6709\u5b9e\u6253\u5b9e\u7684\u4ef7\u503c\uff0c\u4f46\u8bc4\u8bba\u533a\u6700\u70ed\u7684\u70b9\u2014\u2014MCP\u63d2\u4ef6\u2014\u2014\u53cd\u800c\u66b4\u9732\u4e86Epic\u7684\u9632\u5b88\u59ff\u6001\u3002\u5728Unity\u5168\u529b\u62bc\u6ce8AI\u539f\u751f\u7f16\u8f91\u5668\u3001Roblox\u9760AI\u793e\u533a\u751f\u6210\u5185\u5bb9\u65f6\uff0cUE5\u8fd9\u7248\u624d\u5306\u5fd9\u585e\u8fdb\u4e00\u4e2a\u201c\u5b9e\u9a8c\u6027\u201dMCP\u63d2\u4ef6\uff0c\u800c\u4e14\u63a5\u53e3\u6df1\u5ea6\u548c\u662f\u5426\u5f00\u6e90\u90fd\u4e0d\u660e\uff0c\u663e\u5f97\u50cf\u662f\u4e3a\u4e86\u62a2AI\u53d9\u4e8b\u70ed\u5ea6\u800c\u975e\u89e3\u51b3\u771f\u6b63\u5f00\u53d1\u74f6\u9888\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u66f4\u81f4\u547d\u7684\u662f\u65f6\u95f4\u70b9\uff1aUE6\u5df2\u7ecf\u5b98\u5ba3\u8def\u7ebf\u56fe\uff0c\u4e94\u5e74\u7684UE5\u751f\u547d\u5468\u671f\u5ba3\u544a\u7ed3\u675f\u3002\u73b0\u9636\u6bb5\u4efb\u4f55\u4e25\u8083\u7684\u5546\u4e1a\u9879\u76ee\u90fd\u9762\u4e34\u201c\u521a\u5b66\u5b8c5.8\u5c31\u8981\u8fc1\u79fb6.0\u201d\u7684\u7a98\u5883\u3002AI\u63d2\u4ef6\u82e5\u80fd\u65e9\u4e24\u5e74\u843d\u5730\uff0c\u8fd8\u80fd\u5e2e\u4e2d\u5c0f\u56e2\u961f\u8de8\u8d8a\u6280\u672f\u9e3f\u6c9f\uff0c\u73b0\u5728\u5374\u6ca6\u4e3a\u8001\u7248\u672c\u6536\u5c3e\u524d\u7684\u201c\u751c\u70b9\u529f\u80fd\u201d\u3002\u6c99\u76d2\u6a21\u5f0f\u867d\u7136\u5b9e\u7528\uff0c\u4f46\u4e0d\u8fc7\u662f\u7248\u672c\u7ba1\u7406\u8865\u4e01\uff0c\u8fdc\u8c08\u4e0d\u4e0a\u98a0\u8986\u3002\u4e00\u53e5\u8bdd\uff1aUE5.8\u662f\u7ed9\u65e2\u6709\u9879\u76ee\u51c6\u5907\u7684\u5e73\u6ed1\u8fc7\u6e21\u8865\u4e01\u5305\uff0c\u4e0d\u662f\u8ba9\u65b0\u5f00\u53d1\u8005\u5165\u5c40\u7684\u8d77\u70b9\u2014\u2014\u9664\u975e\u4f60\u4e50\u4e8e\u6210\u4e3aUE6\u53d1\u5e03\u4f1a\u540e\u793e\u533a\u5410\u69fd\u7684\u201c5.x\u9489\u5b50\u6237\u201d\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Unreal Engine 5.8<\/span>\n                <\/div>\n<div class=\"comment-content\">Unreal Engine 5.8 is the final major milestone of the UE5 lifecycle. It introduces experimental 3D Mesh Terrain to replace traditional heightfields, production-ready MegaLights for current-gen consoles, and a native MCP plugin for AI agent automation.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hi everyone!<\/p>\n<p>UE 5.8 is the last big update before Epic moves on to UE6.<\/p>\n<p>One interesting part is the experimental <a href=\"https:\/\/dev.epicgames.com\/documentation\/unreal-engine\/unreal-mcp-in-unreal-editor?application_version=5.8&amp;lang=en-US\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">MCP plugin<\/a>.<\/p>\n<p>It lets AI agents connect to the Unreal Editor, understand the engine and the current project, and help with assets, systems, testing, and optimization.<\/p>\n<p>So is it the right time to vibe code some real games? \ud83d\ude42<\/p>\n<p>btw, you don\u2019t need to pay Unreal royalties until your game <a href=\"https:\/\/www.unrealengine.com\/license\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">hits $1M<\/a>.<\/p>\n<p>5.8 also adds <a href=\"https:\/\/dev.epicgames.com\/documentation\/unreal-engine\/API\/PluginIndex\/FileSandbox?application_version=5.8&amp;lang=en-US\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Sandboxes<\/a>. You can experiment in an isolated space, keep only the changes you want, and avoid polluting the main project.<\/p>\n<p><a href=\"https:\/\/dev.epicgames.com\/documentation\/unreal-engine\/mesh-terrain-in-unreal-engine\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Mesh Terrain<\/a> is another fun one: a new 3D mesh-based terrain system, so worlds are no longer limited to heightfields \u2014 much more room to play!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>4<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The native MCP plugin is the most exciting thing here for me \u2014 letting AI agents hook directly into the Unreal Editor for asset management and optimization is a totally new workflow. Curious, is the MCP plugin going to be open source or is it locked to specific tools\/agents?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Interesting timing on this since UE6 is already being teased. Feels like the AI agents feature was added late rather than something core to the release &#8211; the implementation seems pretty surface-level from what I&#8217;ve read in the docs. Would have been more useful to ship this 6 months ago when people still had runway to build on 5.x. For new projects starting today it&#8217;s hard to justify building on something the team has already mentally moved on from.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#7<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/DUI4XR4AMJQUZK\" class=\"app-title\">frontpage.sh<\/a><\/p>\n<div class=\"one-liner\">A perpetual auction for eight ad squares<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">149<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>frontpage.sh \u662f\u4e00\u4e2a\u7531AI\u4ee3\u7406\u9a71\u52a8\u7684\u6c38\u4e45\u5e7f\u544a\u4f4d\u62cd\u5356\u5e73\u53f0\uff0c\u901a\u8fc7\u516b\u4e2a\u56fa\u5b9a\u5e7f\u544a\u4f4d\u7684\u7ade\u62cd\u673a\u5236\uff0c\u5c06\u5e7f\u544a\u8d2d\u4e70\u6e38\u620f\u5316\uff0c\u8ba9\u7528\u6237\u5728\u65e0\u9700\u8d26\u6237\u7684\u60c5\u51b5\u4e0b\uff0c\u7528USDC\u901a\u8fc7Tempo\u534f\u8bae\u8fdb\u884c\u81ea\u52a8\u51fa\u4ef7\u548c\u83b7\u5229\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/4ccc3674-560e-4c4e-9d54-ecc68fd4c286.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/2a6ff938-718a-4a0f-a220-9e324b6c8ad9.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/14c5f9e9-5405-444a-8e5f-db962dc8983f.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/6d949029-9188-47fc-be5e-d20f422dafd0.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=Q43jGM6JTOA\"><source src=\"https:\/\/www.youtube.com\/watch?v=Q43jGM6JTOA\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">Tech<\/span><br \/>\n            <span class=\"tag\">Web3<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u5e7f\u544a\u62cd\u5356<\/span><br \/>\n            <span class=\"tag\">AI\u4ee3\u7406<\/span><br \/>\n            <span class=\"tag\">\u53bb\u4e2d\u5fc3\u5316\u5e7f\u544a<\/span><br \/>\n            <span class=\"tag\">Agentic\u652f\u4ed8<\/span><br \/>\n            <span class=\"tag\">USDC<\/span><br \/>\n            <span class=\"tag\">Tempo\u534f\u8bae<\/span><br \/>\n            <span class=\"tag\">\u590d\u53e4\u4e92\u8054\u7f51<\/span><br \/>\n            <span class=\"tag\">\u6e38\u620f\u5316\u8425\u9500<\/span><br \/>\n            <span class=\"tag\">\u6570\u5b57\u6d82\u9e26<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u9a8c\u6027\u4ea7\u54c1<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u6000\u5ff5\u65e7\u4e92\u8054\u7f51\u7684\u968f\u673a\u4e0e\u8da3\u5473\uff0c\u8d5e\u8d4f\u4ea7\u54c1\u5c06\u5e7f\u544a\u53d8\u6210\u6e38\u620f\u5316\u7684\u201c\u5fae\u578b\u80a1\u5e02\u201d\u548c\u6570\u5b57\u6d82\u9e26\u3002\u4e3b\u8981\u95ee\u9898\u96c6\u4e2d\u5728\uff1a\u5c0f\u578b\u5e7f\u544a\u4f4d\u88ab\u7ade\u4ef7\u4ec5\u8fd4\u8fd8\u672c\u91d1\uff08\u65e0\u6ea2\u4ef7\uff09\uff0c\u5efa\u8bae\u81f3\u5c111.1\u500d\u5956\u52b1\uff1b\u6709\u7528\u6237\u5e0c\u671b\u516c\u5f00\u62cd\u5356\u6570\u636e\u6765\u5206\u6790\u5404\u5e7f\u544a\u4f4dROI\uff0c\u4ee5\u4fbf\u4f18\u5316\u7b56\u7565\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                frontpage.sh \u8868\u9762\u4e0a\u662f\u4e00\u4e2a\u6000\u65e7\u98ce\u683c\u7684\u5e7f\u544a\u4f4d\u62cd\u5356\u73a9\u5177\uff0c\u5b9e\u5219\u662f\u5bf9\u201cAI\u4ee3\u7406\u539f\u751f\u7ecf\u6d4e\u201d\u7684\u4e00\u6b21\u7cbe\u5999\u9884\u6f14\u3002\u5176\u6838\u5fc3\u4ef7\u503c\u4e0d\u5728\u4e8e\u90a3\u516b\u4e2a\u50cf\u7d20\u5757\uff0c\u800c\u5728\u4e8e\u5b83\u5f3a\u884c\u63a8\u884c\u7684\u201c402\u4ed8\u6b3e\u201d\u2014\u2014\u8ba9\u4e00\u4e2aAI\u4ee3\u7406\u4ec5\u901a\u8fc7\u4e24\u6b21HTTP\u8c03\u7528\u3001\u652f\u4ed8USDC\u6765\u6267\u884c\u8d2d\u4e70\uff0c\u8fd9\u624d\u662f\u771f\u6b63\u950b\u5229\u7684\u90e8\u5206\u3002\u5b83\u5de7\u5999\u5730\u7528\u8d4c\u535a\u5f0f\u8fd4\u5229\uff081.5\u500d\u9000\u51fa\uff09\u548c\u793e\u533a\u518d\u6295\u8d44\u6c60\u5236\u9020\u4e86\u6d41\u52a8\u6027\u5e7b\u89c9\uff0c\u7528\u5c0f\u4f17\u7684Agentic\u652f\u4ed8\u6846\u67b6\uff08MPP\/Tempo\uff09\u5b8c\u6210\u4e86\u6280\u672f\u5e03\u9053\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u51b7\u9759\u6765\u770b\uff0c\u8fd9\u66f4\u50cf\u662f\u4e00\u4e2a\u7cbe\u5de7\u7684\u91d1\u878d\u5b9e\u9a8c\u800c\u975e\u53ef\u6301\u7eed\u7684\u5e7f\u544a\u4ea7\u54c1\u300280%\u7684\u62cd\u5356\u6536\u5165\u88ab\u7528\u4e8e\u4e3a\u9875\u9762\u8d2d\u4e70\u6d41\u91cf\uff0c\u672c\u8d28\u4e0a\u662f\u901a\u8fc7\u70e7\u94b1\u7ef4\u6301\u6d3b\u8dc3\u5ea6\uff0c\u4e00\u65e6\u8d44\u91d1\u6765\u6e90\u67af\u7aed\u6216\u7ade\u62cd\u8005\u53d1\u73b0\u5957\u5229\u7a7a\u95f4\u8017\u5c3d\uff0c\u8fd9\u4e2a\u201c\u5e7f\u544a\u80a1\u5e02\u201d\u4f1a\u8fc5\u901f\u51b7\u573a\u3002\u8bc4\u8bba\u4e2d\u5df2\u6709\u4eba\u6307\u51fa\u5c0f\u578b\u5e7f\u544a\u4f4d\u7f3a\u4e4f\u56de\u62a5\u6fc0\u52b1\uff0c\u8fd9\u66b4\u9732\u4e86\u673a\u5236\u8bbe\u8ba1\u7684\u8106\u5f31\u6027\u2014\u2014\u6ca1\u6709\u8db3\u591f\u7684\u6b63\u5411\u87ba\u65cb\uff0c\u6295\u673a\u8005\u5f88\u5feb\u5c31\u4f1a\u79bb\u573a\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u771f\u6b63\u503c\u5f97\u5173\u6ce8\u7684\u4e0d\u662f\u5b83\u662f\u5426\u6210\u529f\uff0c\u800c\u662f\u5b83\u8bc1\u660e\u4e86\u4e24\u70b9\uff1a\u7b2c\u4e00\uff0cAI\u4ee3\u7406\u53ef\u4ee5\u81ea\u4e3b\u53c2\u4e0e\u7ade\u4ef7\u3001\u4ed8\u6b3e\u3001\u76c8\u5229\uff0c\u65e0\u9700\u4eba\u7c7b\u7528\u6237\u70b9\u51fb\u201c\u786e\u8ba4\u201d\uff1b\u7b2c\u4e8c\uff0c\u7528\u6237\u7adf\u7136\u4e50\u4e8e\u4e3a\u6b64\u4e70\u5355\u2014\u2014\u4e0d\u662f\u56e0\u4e3a\u6548\u679c\uff0c\u800c\u662f\u56e0\u4e3a\u201c\u6709\u8da3\u201d\u3002\u5f53\u5e7f\u544a\u6295\u653e\u4ece\u51b7\u51b0\u51b0\u7684ROI\u6597\u4e89\u53d8\u6210\u590d\u53e4\u6e38\u620f\uff0c\u8fb9\u754c\u6a21\u7cca\u7684\u201c\u6ce8\u610f\u529b\u6295\u673a\u201d\u6216\u8bb8\u6bd4\u7cbe\u51c6\u8425\u9500\u66f4\u7b26\u5408\u672a\u6765AI\u65f6\u4ee3\u7684\u4eba\u7c7b\u504f\u597d\u3002\u5982\u679c\u8fd9\u80fd\u50ac\u751f\u771f\u6b63\u7684\u53bb\u4e2d\u5fc3\u5316\u6ce8\u610f\u529b\u5e02\u573a\uff0c\u90a3\u5b83\u5c06\u4e0d\u662f\u73a9\u5177\uff0c\u800c\u662f\u4e00\u9762\u955c\u5b50\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">frontpage.sh<\/span>\n                <\/div>\n<div class=\"comment-content\">A perpetual auction for eight ad squares. Pay a multiple of the last price to take one; when someone outbids you, you leave with up to 1.5\u00d7 what you paid. 80% of every flip funds a pool that buys the page more attention. Agents do the buying \u2014 two HTTP calls, USDC on Tempo, no accounts.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">I miss the old, weird internet with visitor counters, animated GIFs, webrings, the Million Dollar Homepage. A web where random things happened and there wasn&#8217;t an algorithm behind everything.<\/p>\n<p>frontpage.sh is my attempt to bring a bit of that back, with a twist for the age of AI agents and agentic payments.<\/p>\n<p>It&#8217;s ridiculously simple: 8 ad slots on a page. Eight. That&#8217;s it. Each one is for sale to promote whatever you want (as long as it&#8217;s legal)&#8230; but here&#8217;s the catch: you don&#8217;t buy it on the site, you ask your AI agent to buy it for you. If someone comes after you, they can take that same slot, but pricier.<\/p>\n<p>The money flow is the fun part: most of it goes back to the previous owner. Of what&#8217;s left, 80% gets reinvested into promoting frontpage.sh (the way the community suggests), and 20% covers servers and maybe a little profit.<\/p>\n<p>I built it during RBR CDMX and shipped! Every slot started at $0.01. So far: hundreds transacted across many ads, already paid out to previous advertisers hundreds of dollars.<\/p>\n<p>It&#8217;s an experiment, and honestly I&#8217;m just curious how far this curious little thing can go.<br \/>\nWould love your brutal feedback and I&#8217;m especially curious: if you could point your agent at one of the 8 slots right now, what would you promote?<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>8<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@dfect\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dfect<\/a>&nbsp;i also miss this nostaglic internet (and have made a <em>few<\/em> visits back to reddit for exactly this reason) and that&#8217;s why i wanted to hunt santiago&#8217;s new frontpage for the (agentic) internet \ud83d\ude42 <\/p>\n<p>such a fun idea and well designed and executed!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>this is so cool, Santiago!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>4<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This feels like a tiny internet stock market with digital graffiti. I love that it embraces randomness instead of optimization.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@advin_jadis\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@advin_jadis<\/a>&nbsp;The graffiti likeness is uncanny!!!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This has been extremly fun already. I build this during a hackathon last weekend, and shared it live with a room full of amazing builders. The feedback was great and it got some initial traction. It has already been a great way for some people to learn about agentic payments and MPP. <\/p>\n<\/p>\n<p>I did this video showing a bit more how the interactions(buying a square, adding an idea, comments and votes) work for MPP: <a href=\"http:\/\/youtube.com\/watch?v=fkT9oVAZ0Vs&amp;feature=youtu.be\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">youtube.com\/watch?v=fkT9oVAZ0Vs&amp;feature=youtu.be<\/a><\/p>\n<\/p>\n<p>More than happy to answer questions and\/or help anyone get onboarded to agentic payments, tempo, mpp, etc!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@dfect\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dfect<\/a>&nbsp;i want to see the build video!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The clever part is you can&#8217;t click to buy, you have to wire up MPP to play. Quietly the most fun onboarding to agentic payments around. Congrats <a href=\"https:\/\/www.producthunt.com\/@dfect\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"dfect\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dfect<\/a> <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This is awesome. Things are gonna get wild with agents soon and this is exactly the kind of weird, fun experiment that gets us there. Curious to see where this goes \ud83d\udd25<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>RBR holding a square made me grin \u2014 I was at the SF edition, so seeing what CDMX shipped (and RBR flipping its own slot) closes a fun loop.<\/p>\n<p>The squares are the hook, but the 402 checkout is the real unlock \u2014 an agent settling USDC on Tempo from one npx skills add beats any &#8220;agents will pay someday&#8221; slide. If I pointed mine at a slot I&#8217;d just tell it to maximize clicks and see what it argues for.<\/p>\n<p>One note: getting outbid on a small square only returns your money \u2014 no bonus like the mediums and larges \u2014 so the five smalls read more as ad space than a flip. Looks like the board already feels it (top idea: give smalls at least 1.1\u00d7). Either way, fun to watch.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p><strong>Is it a bird? Is it a plane? Is it an ad product? Is it the gamification of advertising? \ud83e\udeea<\/strong><\/p>\n<\/p>\n<p>I came in expecting one thing and left with a lot more questions. The squares are interesting, sure, but I&#8217;m even more curious about the people: what they&#8217;ll promote, who&#8217;ll join first, and what behaviors this incentive system ends up creating.<\/p>\n<p>Can&#8217;t wait to see how this weird little experiment unfolds. <\/p>\n<p>Congrats on the launch! \ud83d\ude80<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This scratches an itch I didn&#8217;t know I had. there&#8217;s something genuinely fun about ad buying that feels like a game rather than a dashboard. Love how the incentive structure makes every slot a story.<\/p>\n<p>Side question for <a href=\"https:\/\/www.producthunt.com\/@dfect\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"dfect\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dfect<\/a> are you tracking earnings per slot over time anywhere? Curious if you&#8217;d ever expose that data publicly as part of the experiment. Would love to see what the &#8220;best&#8221; slot ROI looks like over a month.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@idoshneior\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@idoshneior<\/a>&nbsp;Happy to share the data, the click\/traffic data is available on the ads, both when they are &#8220;on top&#8221; and you can also see al the past ads(and we keep tracking their traffic, now once they are &#8220;previous&#8221; ads) here: <a href=\"https:\/\/www.frontpage.sh\/slot\/L\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/www.frontpage.sh\/slot\/L<\/a><\/p>\n<\/p>\n<p>On actual earnings, the top spot is the one that gets more rewards, but maybe less transactions, the medium ones are in the middle, the bottom ones only return 1x so there is no earnings on those.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#8<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/V6QE5VS5YMFTVZ\" class=\"app-title\">just f***ing send it<\/a><\/p>\n<div class=\"one-liner\">Send any file, any size, straight from browser to browser<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">146<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>\u65e0\u9700\u4e0a\u4f20\u3001\u65e0\u9700\u8d26\u53f7\uff0c\u6d4f\u89c8\u5668\u4e4b\u95f4\u76f4\u63a5\u52a0\u5bc6\u4f20\u8f93\u4efb\u610f\u5927\u5c0f\u6587\u4ef6\u7684\u5de5\u5177\uff0c\u89e3\u51b3\u4e86\u5927\u578b\u6587\u4ef6\u8de8\u8bbe\u5907\u4f20\u8f93\u6162\u3001\u4f9d\u8d56\u4e2d\u95f4\u670d\u52a1\u5668\u7684\u95ee\u9898\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery single-item\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/a1d4edb3-d680-4637-96c4-24c8fcb0b70c.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Web App<\/span><br \/>\n            <span class=\"tag\">Productivity<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u6587\u4ef6\u4f20\u8f93<\/span><br \/>\n            <span class=\"tag\">WebRTC<\/span><br \/>\n            <span class=\"tag\">P2P<\/span><br \/>\n            <span class=\"tag\">\u6d4f\u89c8\u5668\u76f4\u8fde<\/span><br \/>\n            <span class=\"tag\">\u52a0\u5bc6\u4f20\u8f93<\/span><br \/>\n            <span class=\"tag\">\u65ad\u70b9\u7eed\u4f20<\/span><br \/>\n            <span class=\"tag\">\u65e0\u670d\u52a1\u5668<\/span><br \/>\n            <span class=\"tag\">\u5927\u6587\u4ef6<\/span><br \/>\n            <span class=\"tag\">\u5c40\u57df\u7f51\u4f20\u8f93<\/span><br \/>\n            <span class=\"tag\">\u4e34\u65f6\u5206\u4eab\u7801<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u5bf9\u86c7\/2048\u5c0f\u6e38\u620f\u548c\u540d\u79f0\u8868\u793a\u559c\u7231\u3002\u5173\u952e\u95ee\u9898\uff1a\u65e0\u6cd5\u5728\u5bf9\u79f0NAT\u73af\u5883\u4e0b\u5de5\u4f5c\uff08\u65e0TURN\u4e2d\u7ee7\uff09\uff1b\u63a5\u6536\u65b9\u5173\u95ed\u6807\u7b7e\u9875\u540e\u65e0\u6cd5\u6062\u590d\u4f20\u8f93\uff1b\u4e0eLocalsend\u7b49\u672c\u5730\u5de5\u5177\u7684\u533a\u522b\u5728\u4e8e\u65e0\u9700\u5b89\u88c5\u548c\u540c\u7f51\u7edc\u3002\u5f00\u53d1\u8005\u627f\u8ba4\u5bf9\u79f0NAT\u60c5\u51b5\u4f1a\u5931\u8d25\uff0c\u4f46\u6709\u6307\u5bfc\u65b9\u6848\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                \u201cJust f***ing send it\u201d \u662f\u4e00\u4e2a\u628a\u201c\u6781\u7b80\u201d\u4e0e\u201c\u786c\u6838\u201d\u878d\u5408\u5230\u6781\u81f4\u7684\u6587\u4ef6\u4f20\u8f93\u5de5\u5177\u3002\u5b83\u7684\u6838\u5fc3\u4ef7\u503c\u5e76\u975e\u521b\u9020\u65b0\u6280\u672f\uff0c\u800c\u662f\u5bf9\u201cP2P\u6587\u4ef6\u4f20\u8f93\u201d\u7684\u73b0\u6709\u8303\u5f0f\u505a\u4e86\u6781\u7aef\u800c\u8bda\u5b9e\u7684\u62bd\u79bb\uff1a\u780d\u6389\u8d26\u53f7\u3001\u670d\u52a1\u5668\u4e2d\u8f6c\u3001\u5b89\u88c5\u5305\u7b49\u6240\u6709\u5197\u4f59\uff0c\u5c06WebRTC\u7684STUN\u6253\u6d1e\u80fd\u529b\u53d1\u6325\u5230\u6781\u9650\uff0c\u5e76\u7528\u4e00\u53e5\u810f\u8bdd\u822c\u7684\u53e3\u53f7\u5b9a\u4e49\u4e86\u5b83\u7684\u7528\u6237\u753b\u50cf\u2014\u2014\u4efb\u4f55\u4e00\u4e2a\u88abGoogle Drive\u6216WeTransfer\u6298\u78e8\u8fc7\u3001\u53ea\u60f3\u201c\u76f4\u63a5\u4f20\u8fc7\u53bb\u201d\u7684\u66b4\u8e81\u7528\u6237\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5b83\u7684\u806a\u660e\u4e4b\u5904\u5728\u4e8e\u5b8c\u7f8e\u9009\u62e9\u4e86\u201c\u75db\u82e6\u9608\u503c\u201d\u4e0e\u201c\u6280\u672f\u53d6\u820d\u201d\u7684\u4ea4\u70b9\u3002\u5f53\u6587\u4ef6\u8d85\u8fc71GB\uff0c\u4f20\u7edf\u4e91\u76d8\u7684\u4e2d\u8f6c\u7b49\u5f85\u4f1a\u53d8\u5f97\u65e0\u6cd5\u5fcd\u53d7\uff0c\u6b64\u65f6\u7528\u6237\u613f\u610f\u63a5\u53d7\u201c\u53ef\u80fd\u56e0NAT\u5931\u8d25\u201d\u7684\u98ce\u9669\u6765\u6362\u53d6\u6781\u81f4\u7684\u901f\u5ea6\u4e0e\u9690\u79c1\uff08E2E\u52a0\u5bc6\uff09\u3002\u5f00\u53d1\u8005\u516c\u7136\u653e\u5f03TURN\u4e2d\u7ee7\uff0c\u867d\u88ab\u8bc4\u8bba\u8d28\u7591\uff0c\u5374\u6b63\u662f\u4ea7\u54c1\u9053\u5fb7\u7684\u95ea\u5149\u70b9\u2014\u2014\u5b83\u4e0d\u63a9\u9970\u5c40\u9650\uff0c\u751a\u81f3\u63d0\u4f9b\u6392\u9519\u6307\u5357\uff0c\u8fd9\u4e0e\u90a3\u4e9b\u901a\u8fc7\u5077\u5077\u4e2d\u7ee7\u6765\u63a9\u76d6\u201cP2P\u201d\u540d\u4e0d\u526f\u5b9e\u7684\u5de5\u5177\u5f62\u6210\u8bbd\u523a\u6027\u5bf9\u6bd4\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u8fd9\u4e5f\u66b4\u9732\u4e86\u5b83\u7684\u5929\u82b1\u677f\uff1a\u5b83\u4e0d\u662f\u4e00\u4e2a\u201c\u901a\u7528\u201d\u5de5\u5177\uff0c\u800c\u662f\u4e00\u4e2a\u4e3a\u7279\u5b9a\u7f51\u7edc\u73af\u5883\uff08\u975e\u5bf9\u79f0NAT\u3001\u975eCGNAT\uff09\u670d\u52a1\u7684\u201c\u5feb\u5200\u201d\u3002\u5bf9\u4e8e\u4f01\u4e1a\u7528\u6237\u6216\u9700\u8981\u9ad8\u6210\u529f\u7387\u7684\u573a\u666f\uff0c\u201c\u5931\u8d25\u201d\u5c31\u662f0\u5206\u3002\u6b64\u5916\uff0c\u6d4f\u89c8\u5668Tab\u7684\u5185\u5b58\u4f9d\u8d56\u610f\u5473\u7740\u5b83\u672c\u8d28\u4e0a\u662f\u201c\u4e00\u6b21\u6027\u4f1a\u8bdd\u201d\u5de5\u5177\uff0c\u7f3a\u4e4f\u6301\u4e45\u6027\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5c3d\u7ba1\u5982\u6b64\uff0c\u5b83\u4f9d\u7136\u62e5\u6709\u6d41\u884c\u54c1\u7684\u6f5c\u8d28\u2014\u2014\u540d\u5b57\u672c\u8eab\u5c31\u662f\u6700\u4f73\u8425\u9500\u8bcd\uff0c\u5185\u7f6e\u7684\u8d2a\u5403\u86c7\u6e38\u620f\u66f4\u662f\u795e\u6765\u4e4b\u7b14\uff0c\u8f6c\u5316\u7b49\u5f85\u65f6\u95f4\u4e3a\u5a31\u4e50\u573a\u666f\uff0c\u6781\u5927\u5730\u964d\u4f4e\u4e86\u7528\u6237\u7684\u6d41\u5931\u7387\u3002\u8fd9\u662f\u4e00\u6b3e\u201c\u8db3\u591f\u597d\uff08good enough\uff09\u201d\u7684\u4ea7\u7269\uff0c\u5176\u771f\u6b63\u7684\u4ef7\u503c\u5728\u4e8e\u63d0\u9192\u884c\u4e1a\uff1a\u6709\u65f6\u5019\uff0c\u89e3\u51b380%\u7528\u6237100%\u7684\u75db\u82e6\uff0c\u6bd4\u89e3\u51b3100%\u7528\u623780%\u7684\u75db\u82e6\u66f4\u503c\u5f97\u8d5e\u7f8e\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">just f***ing send it<\/span>\n                <\/div>\n<div class=\"comment-content\">Drop a file, get a short code, share it. The file streams straight from your browser to theirs over an encrypted WebRTC connection \u2014 no upload, no server, no account, nothing stored. Multi-GB files and whole folders work, and if the connection drops it can resume.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey Product Hunt \ud83d\udc4b<br \/>\nLast week I was trying to send a 15GB file to a friend, and I sat there watching Google Drive slowly sync it up to a server\u2026 so it could then sync back down to him. Two big transfers and a wait, just to move a file between two people who were both online right then.<\/p>\n<p>That made no sense to me, so I built jfsendit. You drop a file, you get a short code, you give the code to one person. The bytes go straight from your browser to theirs over an encrypted WebRTC connection \u2014 they never get uploaded to or stored on a server. Only a tiny code-exchange touches my side, just to introduce the two browsers to each other.<\/p>\n<p>A few things I&#8217;m proud of:<br \/>\n&#8211; No accounts, no installs, works in Chrome\/Edge\/Firefox\/Safari incl. mobile<br \/>\n&#8211; Multi-GB files and whole folders (streams across as one .zip) \u2014 that 15GB file now just goes<br \/>\n&#8211; End-to-end encrypted by default (WebRTC DTLS) \u2014 I literally can&#8217;t see what you send<br \/>\n&#8211; Resumes from the exact byte if the connection drops<br \/>\n&#8211; Nothing stored, no tracking, codes are one-time and short-lived<br \/>\n&#8211; While you wait for your file to be transferred you can play snake, yes there is also a leaderboard<br \/>\n&#8211; If the sender and receiver are on the same LAN, it doesn&#8217;t even touch the Internet<\/p>\n<p>It&#8217;s free and there&#8217;s nothing to sign up for. Send something to a friend and tell me where it breaks \u2014 especially connection issues across different networks, since that&#8217;s the hardest part of going server-less. Brutally honest feedback very welcome.<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>6<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ykguler\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ykguler<\/a>&nbsp;Congrats on the launch! \ud83c\udf89 The name alone deserves an upvote. No uploads, no accounts, no storage  just a code and a direct browser-to-browser stream. This is how file sharing should&#8217;ve always worked. Huge launch day to the team! \ud83d\ude80<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ykguler\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ykguler<\/a>&nbsp;good product. Have something like this already exists or you made it first. Like using the WebRTC stuff&#8230;<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats!! I loved the &#8220;play 2048 while you wait&#8221; feature! \ud83d\ude00<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The STUN-only approach is actually pretty cool.<\/p>\n<p>Most tools saying &#8220;peer-to-peer&#8221; end up relaying traffic through their own servers when things get complicated.<\/p>\n<p>Have you seen many transfers fail because of NAT restrictions?<\/p>\n<p>Congrats on the launch!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>browser-to-browser is the right default \u2014 but the part nobody shows is transfers behind symmetric nat quietly falling back to a turn relay. that relay&#8217;s the one bit of &#8216;no server&#8217; that isn&#8217;t.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@qifengzheng\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@qifengzheng<\/a>&nbsp;That silent TURN fallback is exactly the asterisk on most &#8220;no server&#8221; claims, and you&#8217;re right that nobody shows it. There is no asterisk except the f***ing part. STUN-only, zero TURN, no relay, not even as an optional fallback. STUN still hole-punches across the internet, so the large majority of transfers genuinely go browser-to-browser even when the two devices aren&#8217;t on the same network. For the subset where hole-punching can&#8217;t work (symmetric nat, some cgnat), there is no quiet relay, the transfer fails. There are instructions on the website tell you how to get a direct path. <\/p>\n<p>It is a trade-off, where I choose not to pay for your file transfer. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This is clever. Does resume work if the receiver accidentally closes their tab mid-transfer?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@dhiraj_patel5\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dhiraj_patel5<\/a>&nbsp;unfortunately no, the progress is kept in memory of the tab. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey! \ud83d\udc4b<\/p>\n<\/p>\n<p>Congrats on the launch! \ud83d\ude80<\/p>\n<\/p>\n<p>I love the simplicity of the concept. So many ideas get stuck in planning mode, and a product that encourages people to stop overthinking and actually ship resonates with every founder and creator.<\/p>\n<\/p>\n<p>We&#8217;re also launching Blazly Backlinker today, helping marketers automate backlink discovery, outreach, and guest posting from one workflow.<\/p>\n<\/p>\n<p>Would love to hear your thoughts if you get a chance to check us out as well. Best of luck with the launch today! \ud83c\udf89<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The name is hard to ignore \ud83d\ude04Are there any practical limits on file size or transfer speed, but this looks really useful. Congrats!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@henry_habib\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@henry_habib<\/a>&nbsp;Thanks! I&#8217;ve tested it up to 20GB over the Internet (not on the same LAN). But if you have a 132GB uncompressed 3D video file give it a go. For a select few that don&#8217;t get the reference: <a href=\"https:\/\/www.youtube.com\/watch?v=LWqu6QSDvLw\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/www.youtube.com\/watch?v=LWqu6QSDvLw<\/a><\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Love the idea! But how is it different\/better than Localsend, Airclap etc?<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@umberto_abbatantuono\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@umberto_abbatantuono<\/a>&nbsp;I used to send files through VLC between my devices. VLC sets up a server but you have to be on the same network. I am not going to go through the hassle of setting up a vpn between devices when its not possible for the two devices to be on the same wifi. As the name suggests I just want to send a file, and the infrastructure is already there; aka the Internet, so don&#8217;t really need to install an app for it also.. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#9<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/3M4IRQFW4PZQEO\" class=\"app-title\">Ask Ad Manager by Google Ads<\/a><\/p>\n<div class=\"one-liner\">Gemini-powered AI agent for insights &#038; faster ad decisions<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">137<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Ask Ad Manager\u662f\u4e00\u6b3e\u5185\u7f6e\u4e8eGoogle Ad Manager\u7684AI\u4ee3\u7406\uff08\u57fa\u4e8eGemini\uff09\uff0c\u5e2e\u52a9\u53d1\u5e03\u5546\u901a\u8fc7\u81ea\u7136\u8bed\u8a00\u63d0\u95ee\u5feb\u901f\u6392\u67e5\u5e7f\u544a\u6295\u653e\u6545\u969c\u3001\u83b7\u53d6\u6df1\u5ea6\u6570\u636e\u6d1e\u5bdf\u5e76\u81ea\u52a8\u5bfc\u822a\u81f3\u64cd\u4f5c\u9875\u9762\uff0c\u89e3\u51b3\u624b\u52a8\u5206\u6790\u62a5\u8868\u8017\u65f6\u957f\u3001\u96be\u8f6c\u5316\u4e3a\u51b3\u7b56\u7684\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/93fedfa7-463c-4c25-b15f-057e64acab00.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/4a90222e-fbc1-4c07-8dcd-3bdd37519536.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/3e92f5dc-1fec-4844-b6f9-26d265d939a7.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/544bb3c5-8857-4351-b45d-cd70235149ab.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/2eb19895-82af-4f23-bc2a-64f234e8e885.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/bb317a9b-9c5a-4480-b8b4-3a7a2cc5e38b.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/D8iRR-qeIGY\"><source src=\"https:\/\/youtu.be\/D8iRR-qeIGY\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Analytics<\/span><br \/>\n            <span class=\"tag\">Advertising<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u5e7f\u544a\u6280\u672f<\/span><br \/>\n            <span class=\"tag\">AI\u4ee3\u7406<\/span><br \/>\n            <span class=\"tag\">Google Ad Manager<\/span><br \/>\n            <span class=\"tag\">Gemini<\/span><br \/>\n            <span class=\"tag\">\u53d1\u5e03\u5546\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u6570\u636e\u5206\u6790<\/span><br \/>\n            <span class=\"tag\">\u81ea\u7136\u8bed\u8a00\u67e5\u8be2<\/span><br \/>\n            <span class=\"tag\">\u81ea\u52a8\u5316\u8bca\u65ad<\/span><br \/>\n            <span class=\"tag\">\u6295\u653e\u4f18\u5316<\/span><br \/>\n            <span class=\"tag\">SaaS<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u5173\u6ce8AI\u80fd\u5426\u89e3\u91ca\u63a8\u8350\u539f\u56e0\u5e76\u533a\u5206\u8bca\u65ad\u4e0e\u9700\u4eba\u5de5\u5ba1\u6838\u7684\u64cd\u4f5c\uff1b\u8ffd\u95ee\u662f\u5426\u652f\u6301\u8de8Google\u5e73\u53f0\uff08AdSense\/AdMob\/YouTube\uff09\u7edf\u4e00\u6570\u636e\uff1b\u8be2\u95ee\u5982\u4f55\u5904\u7406\u6b67\u4e49\u95ee\u9898\u53ca\u6570\u636e\u900f\u660e\u5ea6\uff1b\u8ba4\u53ef\u6570\u636e\u5230\u51b3\u7b56\u7684\u8f6c\u5316\u662f\u6838\u5fc3\u6311\u6218\uff0c\u4f46\u8d28\u7591\u5f53\u524d\u4ec5\u9650GAM\u5e93\u5b58\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Google\u7ec8\u4e8e\u4e3aAd Manager\u88c5\u4e0a\u4e86\u201c\u5bf9\u8bdd\u5f0f\u5927\u8111\u201d\uff0c\u4f46Ask Ad Manager\u672c\u8d28\u662f\u4e00\u573a\u5c0f\u5fc3\u7ffc\u7ffc\u7684\u201c\u56f4\u5899\u82b1\u56ed\u201d\u5347\u7ea7\u3002\u5b83\u5de7\u5999\u6293\u4f4f\u4e86\u53d1\u5e03\u5546\u7684\u771f\u5b9e\u75db\u70b9\u2014\u2014\u6570\u636e\u5145\u88d5\u4f46\u6d1e\u5bdf\u532e\u4e4f\uff0c\u5229\u7528\u81ea\u7136\u8bed\u8a00\u964d\u4f4e\u62a5\u8868\u5206\u6790\u95e8\u69db\uff0c\u8ba9\u201c\u6211\u7684\u9876\u90e8\u7ade\u4ef7\u8005\u672c\u5468\u8868\u73b0\u5982\u4f55\uff1f\u201d\u8fd9\u7c7b\u95ee\u9898\u79d2\u53d8\u8868\u683c\uff0c\u786e\u5b9e\u80fd\u63d0\u5347\u65e5\u5e38\u8fd0\u7ef4\u6548\u7387\u3002\u7136\u800c\uff0c\u7ec6\u770b\u4e4b\u4e0b\u6709\u51e0\u4e2a\u68d8\u624b\u7684\u786c\u4f24\u3002\u9996\u5148\uff0c\u5b83\u88ab\u4e25\u683c\u9501\u5b9a\u5728GAM\u5355\u4e00\u751f\u6001\u5185\uff0c\u7528\u6237\u8bc4\u8bba\u5df2\u5c16\u9510\u6307\u51fa\uff1a\u53d1\u5e03\u5546\u6536\u5165\u5f80\u5f80\u5206\u6563\u5728AdSense\u3001AdMob\u3001YouTube Studio\u591a\u4e2a\u5e73\u53f0\uff0c\u800cAsk\u5374\u65e0\u6cd5\u63d0\u4f9b\u201c\u4e00\u7ad9\u5f0f\u603b\u89c8\u201d\uff0c\u8fd9\u66f4\u50cf\u662fGoogle\u7528AI\u5de9\u56fa\u5176\u5e7f\u544a\u5de5\u5177\u95ed\u73af\uff0c\u800c\u975e\u5f00\u653e\u6027\u5730\u89e3\u51b3\u884c\u4e1a\u788e\u7247\u5316\u96be\u9898\u3002\u5176\u6b21\uff0cAI\u63a8\u8350\u7684\u201c\u9ed1\u7bb1\u201d\u95ee\u9898\u4ee4\u4eba\u62c5\u5fe7\u3002\u591a\u4f4d\u8bc4\u8bba\u8005\u8ffd\u95ee\u201c\u8bca\u65ad\u4e0e\u64cd\u4f5c\u5efa\u8bae\u7684\u900f\u660e\u5ea6\u548c\u5ba1\u6279\u6d41\u7a0b\u201d\uff0c\u8fd9\u5728\u5927\u578b\u9884\u7b97\u573a\u666f\u4e0b\u662f\u81f4\u547d\u4f24\u2014\u2014\u53d1\u5e03\u5546\u9700\u8981\u7406\u89e3AI\u4e3a\u4f55\u5efa\u8bae\u8c03\u6574\u5b9a\u4ef7\u89c4\u5219\uff0c\u800c\u975e\u76f2\u76ee\u6267\u884c\u3002\u82e5\u4ea7\u54c1\u4ec5\u8f93\u51fa\u7ed3\u8bba\u800c\u4e0d\u63d0\u4f9b\u63a8\u7406\u94fe\u8def\u4e0e\u53ef\u8ffd\u6eaf\u7684\u5ba1\u8ba1\u65e5\u5fd7\uff0c\u5b83\u5c06\u6ca6\u4e3a\u4e00\u4e2a\u9ad8\u7ea7\u7684\u201c\u731c\u6d4b\u5f15\u64ce\u201d\u3002\u6b64\u5916\uff0cBeta\u9636\u6bb5\u4ec5\u9650GAM\uff0c\u4e14\u5f3a\u8c03\u201c\u4e0d\u4f7f\u7528\u7528\u6237\u6570\u636e\u8bad\u7ec3\u6a21\u578b\u201d\uff0c\u867d\u4fdd\u62a4\u9690\u79c1\u4f46\u727a\u7272\u4e86\u8de8\u8d26\u6237\u7684\u667a\u80fd\u8fdb\u5316\u80fd\u529b\u3002\u4e00\u53e5\u8bdd\uff1a\u8fd9\u662f\u628a\u597d\u7528\u7684\u9524\u5b50\uff0c\u4f46\u53ea\u80fd\u9524GAM\u8fd9\u9897\u9489\u5b50\u3002\u771f\u6b63\u7684\u4ef7\u503c\u5728\u4e8e\u7b80\u5316\u9ad8\u9891\u4f4e\u667a\u7684\u67e5\u8be2\u7c7b\u64cd\u4f5c\uff08\u5982\u6392\u67e5\u6295\u653e\u5ef6\u8fdf\uff09\uff0c\u800c\u9762\u5bf9\u590d\u6742\u51b3\u7b56\uff0c\u5b83\u4ecd\u9700\u5411\u7528\u6237\u4ea4\u51fa\u201c\u63a8\u7406\u6743\u201d\u548c\u201c\u8de8\u5e73\u53f0\u8054\u7ed3\u6743\u201d\u3002\u5426\u5219\uff0c\u8fd9\u5242AI\u826f\u836f\u7ec8\u5c06\u505c\u7559\u5728\u201c\u82b1\u54e8\u7684\u67e5\u8be2\u754c\u9762\u201d\u5c42\u9762\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Ask Ad Manager by Google Ads<\/span>\n                <\/div>\n<div class=\"comment-content\">AI agent, built with Gemini, helps publishers get deeper insights, understand their performance and make better decisions faster.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Here come the Google Ad Agents -&gt; <a href=\"https:\/\/www.producthunt.com\/products\/google\" target=\"_blank\" rel=\"noopener\">@Google<\/a> launches AI agent for Ad Manager.<\/p>\n<\/p>\n<p><strong>Ask Ad Manager <\/strong>in Google Ad Manager<strong> <\/strong>is a new conversational AI agent built with Gemini.<\/p>\n<\/p>\n<p>It\u2019s designed to help publishers make faster, more informed decisions by uncovering new insights and automating manual processes right in the UI.<\/p>\n<\/p>\n<p><strong>Here is a look at what it can do<\/strong>:<\/p>\n<p>\ud83d\udd0d<strong> Faster troubleshooting<\/strong>: Instead of manually sifting through reports, now, you can ask, &#8220;Why isn&#8217;t this line item delivering?&#8221; Ask Ad Manager will analyze the situation, diagnose the root cause, and provide the steps to fix it.<\/p>\n<p>\ud83d\udcca <strong>Deeper insights<\/strong>: Ask complex questions (e.g., &#8220;How are my top bidders performing this week?&#8221;) and get actionable data tables to help you decide on new pricing rules or programmatic deals \u2013 without having to the page you\u2019re working on.<\/p>\n<p>\ud83e\udded <strong>Smarter navigation<\/strong>: Save clicking around the UI as Ask Ad Manager can take you directly to the right campaign page with all the correct filters and settings pre-loaded.<\/p>\n<p>Because Ask Ad Manager is grounded entirely in your own first-party data, the guidance is personalized to your specific business and setup. (And importantly: your data is never used to train our models or shared with anyone else.)<\/p>\n<p>Ask Ad Manager is rolling out in beta this month, with a wider rollout planned for later this year.<\/p>\n<p>P.S. I hunt the latest and greatest launches in tech, SaaS and AI, follow to be notified <strong>\u2192<\/strong> <a href=\"https:\/\/www.producthunt.com\/@rohanrecommends\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rohanrecommends<\/a> <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@rohanrecommends\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rohanrecommends<\/a>&nbsp;Interesting use case. Publishers have plenty of data but turning it into actionable insights is often the hard part. An AI agent that helps interpret performance and surface opportunities could make decision-making much faster and more accessible.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The hard part in advertising is rarely getting more data, it is deciding what to do with it. Does Ask Ad Manager explain why it recommends a fix or pricing change, and does it separate diagnostic suggestions from actions that should need human approval?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Great timing on this. the publisher analytics space is finally getting some love. The challenge I keep hearing from AdSense and AdMob publishers isn&#8217;t the depth of data inside GAM, it&#8217;s that their revenue is spread across multiple Google properties with no single place to see everything together. They&#8217;re opening AdSense in one tab, AdMob in another, YouTube Studio in a third just to get a morning number.<\/p>\n<p>Curious whether Ask Ad Manager will eventually help publishers who are running across multiple platforms (not just GAM), or is it scoped to GAM-specific inventory for now?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This is neat. How does it handle ambiguous questions that could map to multiple report dimensions?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Sounds useful. The challenge isn&#8217;t usually getting data, it&#8217;s turning it into decisions. Curious how the agent handles that.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>When Ask Ad Manager identifies a delivery issue or recommends a change what level of transparency does it provide into the reasoning behind that recommendation? For advertisers managing large budgets, understanding the \u2018why\u2019 is often as important as getting the answer.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#10<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/D7OAKSUZIQSYFA\" class=\"app-title\">Blazly Backlinker<\/a><\/p>\n<div class=\"one-liner\">Automate your entire backlink generation<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">118<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Blazly Backlinker \u901a\u8fc7AI\u81ea\u52a8\u5316\u5916\u94fe\u5efa\u8bbe\u5168\u6d41\u7a0b\uff08\u673a\u4f1a\u53d1\u73b0\u3001\u8054\u7cfb\u4eba\u6316\u6398\u3001\u90ae\u4ef6\u64b0\u5199\u4e0e\u53d1\u9001\uff09\uff0c\u5e2e\u52a9\u8425\u9500\u4eba\u5458\u3001\u673a\u6784\u548c\u521b\u4e1a\u8005\u6446\u8131\u7e41\u7410\u7684\u624b\u5de5\u64cd\u4f5c\uff0c\u63d0\u5347\u5916\u94fe\u83b7\u53d6\u6548\u7387\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/72645156-e465-4bf7-9b8d-e0425774c866.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/fd2bdc3c-80bc-4c68-b6da-82dee844ec53.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/03054e48-7123-440e-b524-951c05b7cd53.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/9d53ed87-9752-455e-be21-ffc858a88a53.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/b6d71518-3b0a-4142-b6af-8e0311e580f9.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=avQBPgCetB4&#038;feature=youtu.be\"><source src=\"https:\/\/www.youtube.com\/watch?v=avQBPgCetB4&#038;feature=youtu.be\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Email<\/span><br \/>\n            <span class=\"tag\">Marketing<\/span><br \/>\n            <span class=\"tag\">SEO<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">SEO\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u5916\u94fe\u5efa\u8bbe<\/span><br \/>\n            <span class=\"tag\">AI\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">\u94fe\u63a5\u5efa\u8bbe<\/span><br \/>\n            <span class=\"tag\">\u5185\u5bb9\u8425\u9500<\/span><br \/>\n            <span class=\"tag\">\u83b7\u5ba2\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u8425\u9500\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">\u5916\u94fe\u673a\u4f1a\u53d1\u73b0<\/span><br \/>\n            <span class=\"tag\">\u90ae\u4ef6\u8425\u9500<\/span><br \/>\n            <span class=\"tag\">\u5ba2\u5ea7\u535a\u5ba2<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u5173\u6ce8\u81ea\u52a8\u5316\u5916\u94fe\u90ae\u4ef6\u662f\u5426\u6ca6\u4e3a\u5783\u573e\u4fe1\u606f\uff0c\u5f3a\u8c03\u201c\u53d1\u9001\u524d\u9700\u7ecf\u4eba\u5de5\u5ba1\u6838\u201d\u662f\u5173\u952e\u3002\u4e0d\u5c11\u4eba\u8ba4\u53ef\u5176\u201c\u7aef\u5230\u7aef\u201d\u81ea\u52a8\u5316\u89e3\u51b3\u5bfb\u5740\u75db\u70b9\uff0c\u4f46\u8d28\u7591\u673a\u4f1a\u53d1\u73b0\u6e90\uff08SERP\u3001\u5173\u952e\u8bcd\u5916\u662f\u5426\u8986\u76d6PR\u4e0e\u76ee\u5f55\uff09\u53ca\u5982\u4f55\u89c4\u907f\u4f4e\u8d28\u91cf\u3001\u5df2\u5e9f\u5f03\u57df\u540d\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Blazly Backlinker\u5207\u5165\u7684\uff0c\u662fSEO\u9886\u57df\u6700\u201c\u810f\u6d3b\u7d2f\u6d3b\u201d\u5374\u4e5f\u6700\u5177\u4ef7\u503c\u7684\u5916\u94fe\u5efa\u8bbe\u73af\u8282\u3002\u5b83\u7684\u4ef7\u503c\u4e0d\u5728\u4e8e\u53d1\u660e\u4e86AI\u5199\u90ae\u4ef6\uff0c\u800c\u5728\u4e8e\u8bd5\u56fe\u5c06\u201c\u627e\u673a\u4f1a-\u67e5\u8054\u7cfb\u4eba-\u5199\u90ae\u4ef6-\u53d1\u90ae\u4ef6-\u8ddf\u8e2a\u201d\u7684\u788e\u7247\u5316\u5de5\u4f5c\u6d41\u634f\u6210\u4e00\u4e2a\u95ed\u73af\u3002\u8fd9\u7cbe\u51c6\u547d\u4e2d\u4e86\u4e2d\u5c0f\u56e2\u961f\u201c\u60f3\u505a\u4e8b\u4f46\u7f3a\u4eba\u624b\u201d\u7684\u75db\u70b9\uff0c\u8ba9SEO\u5916\u94fe\u4e0d\u518d\u662f\u4e00\u4e2a\u9700\u8981\u4e13\u4eba\u5168\u804c\u8d1f\u8d23\u7684\u5730\u72f1\u7ea7\u4efb\u52a1\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u8be5\u4ea7\u54c1\u7684\u6838\u5fc3\u7ade\u4e89\u529b\u9762\u4e34\u4e09\u91cd\u62f7\u95ee\uff1a\u5176\u4e00\uff0cAI\u53d1\u73b0\u673a\u4f1a\u7684\u80fd\u529b\u3002\u5f53\u524d\u4ec5\u9760SERP\u4e0e\u5173\u952e\u8bcd\u7684\u53d1\u73b0\u673a\u5236\uff0c\u5bb9\u6613\u9677\u5165\u4e0e\u65e2\u6709\u7ade\u54c1\uff08\u5982Semrush\u3001Ahrefs\u5916\u94fe\u5de5\u5177\uff09\u540c\u8d28\u5316\u7684\u5185\u5377\uff0c\u80fd\u5426\u6316\u6398\u51fa\u975e\u6807\u3001\u9ad8\u4ef7\u503c\u7684\u6df1\u5ea6\u5408\u4f5c\u673a\u4f1a\uff08\u5982\u7279\u5b9a\u884c\u4e1a\u76ee\u5f55\u3001\u5c0f\u4f17\u8d44\u6e90\u9875\uff09\u624d\u662f\u5206\u6c34\u5cad\u3002\u5176\u4e8c\uff0c\u201c\u4eba\u5de5\u5ba1\u6838\u201d\u8fd9\u4e2a\u8bbe\u8ba1\uff0c\u672c\u8d28\u4e0a\u662f\u81ea\u52a8\u5316\u61d2\u6563\u4e0e\u4eba\u7c7b\u76d1\u7ba1\u7684\u6298\u4e2d\u2014\u2014\u5b83\u89e3\u51b3\u4e86\u7528\u6237\u7684\u5931\u63a7\u6050\u60e7\uff0c\u4f46\u8fd9\u610f\u5473\u7740\u7528\u6237\u4ecd\u8981\u6295\u5165\u65f6\u95f4\u201c\u5ba1\u7a3f\u201d\uff0c\u81ea\u52a8\u5316\u5e76\u672a\u5b8c\u5168\u89e3\u653e\u751f\u4ea7\u529b\u3002\u5176\u4e09\uff0c\u5916\u94fe\u5efa\u8bbe\u672c\u8d28\u662f\u5173\u7cfb\u8425\u9500\u4e0e\u5185\u5bb9\u4ef7\u503c\u7684\u4ea4\u6362\uff0c\u5de5\u5177\u80fd\u964d\u4f4e\u6d41\u7a0b\u6469\u64e6\uff0c\u4f46\u4e0d\u80fd\u521b\u9020\u4fe1\u4efb\u3002\u4e00\u65e6\u6279\u91cf\u53d1\u9001\u7684AI\u90ae\u4ef6\u88ab\u666e\u904d\u8bc6\u522b\uff0c\u5e73\u53f0\u7684\u8fb9\u9645\u6536\u76ca\u4f1a\u8fc5\u901f\u9012\u51cf\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4e00\u53e5\u8bdd\u603b\u7ed3\uff1aBlazly Backlinker\u662f\u4e00\u6b3e\u52a1\u5b9e\u7684\u6548\u7387\u5de5\u5177\uff0c\u5728\u4e2d\u4f4e\u9891\u3001\u6807\u51c6\u5316\u7684\u5916\u94fe\u573a\u666f\u4e2d\u80fd\u663e\u8457\u63d0\u6548\uff08\u5c24\u5176\u662f\u5ba2\u5ea7\u535a\u5ba2\u548c\u8d44\u6e90\u9875\u94fe\u63a5\uff09\uff0c\u4f46\u5176\u957f\u671f\u58c1\u5792\u5728\u4e8e\u80fd\u5426\u6301\u7eed\u4f18\u5316\u673a\u4f1a\u53d1\u73b0\u7684\u72ec\u7279\u6027\uff0c\u5e76\u907f\u514d\u8ba9\u81ea\u5df1\u53d8\u6210\u65b0\u4e00\u7c7b\u7684\u201c\u5916\u94fe\u5783\u573e\u90ae\u4ef6\u5236\u9020\u673a\u201d\u3002\u5bf9\u4e8e\u521d\u521b\u56e2\u961f\u548c\u81ea\u7531\u804c\u4e1a\u8005\uff0c\u4f5c\u4e3a\u8d77\u6b65\u9636\u6bb5\u7684\u52a0\u901f\u5668\uff0c\u4ef7\u503c\u660e\u786e\uff1b\u5bf9\u4e8e\u8ffd\u6c42\u6df1\u5ea6\u3001\u9ad8\u8d28\u91cf\u5916\u94fe\u7684\u6210\u719f\u7ad9\u70b9\uff0c\u5b83\u53ea\u662f\u8f85\u52a9\uff0c\u800c\u975e\u66ff\u4ee3\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Blazly Backlinker<\/span>\n                <\/div>\n<div class=\"comment-content\">Blazly Backlinker helps marketers, agencies, and founders build high-quality backlinks without the endless spreadsheets, prospecting, outreach, and follow-ups. Simply enter your website and target keywords. Backlinker discovers relevant backlink opportunities, finds verified contacts, generates personalized outreach emails, and helps you earn authoritative backlinks on autopilot. From prospecting to outreach to guest post creation, everything happens in one streamlined workflow.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I like that Backlinker tries to bring the whole process into one workflow, especially for founders or small teams that don\u2019t have a dedicated SEO person.<\/p>\n<\/p>\n<p>The big thing I\u2019d be curious about is quality control. How do you make sure the outreach stays relevant and not just \u201cmore automated backlink emails\u201d? Do users get to review and approve opportunities\/emails before anything is sent?<\/p>\n<\/p>\n<p>Also curious how you define a good backlink opportunity: domain authority, topical relevance, traffic, competitor links, or a mix of all of these?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@andrasczeizel\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@andrasczeizel<\/a>&nbsp;Great question, and that&#8217;s actually one of the problems we wanted to solve.<\/p>\n<\/p>\n<p>Our goal isn&#8217;t to send more automated backlink emails. It&#8217;s to help users find relevant opportunities faster while keeping them in control of the outreach process.<\/p>\n<\/p>\n<p>Users can review backlink opportunities, contacts, and AI-generated emails before sending anything. The AI handles the research and drafting, but the final decision stays with the user.<\/p>\n<\/p>\n<p>For backlink quality, we use a mix of factors including topical relevance, domain authority, organic traffic, competitor backlinks, and outreach potential. We believe relevance is just as important as authority when building quality links.<\/p>\n<\/p>\n<p>Thanks for the thoughtful question! \ud83d\ude80<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@andrasczeizel\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@andrasczeizel<\/a>&nbsp;To help users identify valuable backlink opportunities, Blazly displays a list of potential backlink sources and allows users to choose the opportunities they want to pursue.<\/p>\n<p>Once a user selects a backlink opportunity, Blazly automatically finds the blog post or webpage author&#8217;s name and email address. It then generates a personalized outreach email and presents it to the user for review. The user can approve or edit the email before it is sent through their integrated Gmail account.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Everyone!<\/p>\n<p>We&#8217;re excited to introduce Blazly Backlinker.<\/p>\n<p>Link building is one of the most important parts of SEO, but it&#8217;s also one of the most time-consuming. Most teams still juggle spreadsheets, prospecting tools, email finders, AI writers, outreach platforms, and follow-up systems just to earn a few quality backlinks.<\/p>\n<p>We thought there had to be a better way.<\/p>\n<p>So we built Backlinker to automate the entire workflow:<\/p>\n<p>\ud83d\udd0d Discover relevant backlink opportunities<br \/>\ud83d\udce7 Find verified contact information<br \/>\u270d\ufe0f Generate personalized outreach emails with AI<br \/>\ud83d\udcdd Create guest post content faster<br \/>\ud83d\udcca Track outreach and backlink acquisition in one place<\/p>\n<p>Our goal is simple: help marketers, agencies, and founders spend less time on manual outreach and more time growing organic traffic.<\/p>\n<p>\ud83c\udf89 <strong>Product Hunt Launch Offer:<\/strong> Purchase our Starter Plan and get access to the <strong>Growth Plan ($99 value)<\/strong> for first 3 month as part of our launch promotion.<\/p>\n<p>We&#8217;re still improving the product and would love your feedback:<\/p>\n<p>\u2753What&#8217;s the most frustrating part of your current link-building process?<br \/>\u2753Which backlink-building tasks would you love to automate?<\/p>\n<p>We&#8217;ll be here all day answering questions and collecting feedback.<\/p>\n<p>Thanks for checking out Blazly Backlinker! \ud83d\ude80<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@srijita_b\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@srijita_b<\/a>&nbsp;Congrats on the launch. &#8216;Earn quality backlinks with AI prospecting&#8217; could work harder for you. I rewrote the hero \u2014 want to see?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@srijita_b\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@srijita_b<\/a>&nbsp;I&#8217;m really excited to try this, but it looks like Gmail is blocking your OAuth. <\/p>\n<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The review-before-sending flow is important here. Backlink outreach can go wrong fast if it feels automated, so keeping humans in control while automating prospecting, contacts, and drafts makes sense.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@farrukh_butt1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@farrukh_butt1<\/a>&nbsp;Absolutely! That&#8217;s the balance we&#8217;re aiming for.<\/p>\n<\/p>\n<p>AI helps with discovery, research, contact finding, and draft generation, but users stay in control of the final outreach. We believe personalization and human judgment are still essential for building meaningful backlink relationships.<\/p>\n<\/p>\n<p>Thanks for highlighting that!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p><strong>\ud83c\udf89 Special Launch Offer <\/strong>for the Product Hunt Community!<\/p>\n<\/p>\n<p>As a thank you for all the support, anyone who purchases our Starter Plan during the launch will receive access to our <strong>Growth Plan (worth $99\/month)<\/strong> for your first 3 months.<\/p>\n<\/p>\n<p>If you&#8217;re looking to simplify backlink prospecting, outreach, guest posting, and tracking, this is a great opportunity to get started.<\/p>\n<\/p>\n<p>Thanks for being part of our launch journey! \ud83d\ude80<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Anyone who&#8217;s done link building knows the outreach isn&#8217;t the hard part anymore. Finding genuinely relevant opportunities is. Nice to see a tool focusing on that workflow end-to-end. Congrats on the launch!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@varun1jan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@varun1jan<\/a>&nbsp;Thank you!\ud83d\ude4c<\/p>\n<\/p>\n<p>That&#8217;s exactly the problem we wanted to solve. Outreach tools are everywhere, but finding genuinely relevant opportunities still takes a lot of manual research.<\/p>\n<\/p>\n<p>Our goal with Backlinker is to help users discover quality, niche-relevant opportunities faster and manage the entire workflow from discovery to outreach in one place.<\/p>\n<\/p>\n<p>Really appreciate the support! \ud83d\ude80<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats ! What sources are you monitoring to discover backlinks opportunity? Is that only searching for guest post or also PR\/marketplaces\/directories?<\/p>\n<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@luigi_receiptorai\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@luigi_receiptorai<\/a>&nbsp;Thank you!<\/p>\n<\/p>\n<p>Backlinker primarily discovers opportunities through SERP analysis and keyword-based prospecting, helping users find relevant websites, blogs, and guest posting opportunities within their niche.<\/p>\n<\/p>\n<p>Just give your target keyword, and Blazly will automatically find all relevant link-building opportunities for you, including guest posts, directories, resource pages, and other valuable backlink sources. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>How do you pick opportunities that are actually relevant and avoid burned domains or bad links?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@thamibenjelloun\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thamibenjelloun<\/a>&nbsp;Great question!<\/p>\n<\/p>\n<p>We evaluate opportunities using a mix of topical relevance, domain quality, organic traffic signals, and overall outreach potential, rather than relying on a single metric.<\/p>\n<\/p>\n<p>Our goal is to help users find relevant, high-quality backlink opportunities and avoid low-value or spammy sites. Users can also review and approve opportunities before moving forward with outreach, ensuring they stay in control of link quality.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">The hard part about automation in this segment is trying to make the outreach not look like spam and making it organic.<br \/>\nHow does Blazly Backlinker avoid it ?<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#11<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/PVDNE6AYKCSLZQ\" class=\"app-title\">QuackScreen<\/a><\/p>\n<div class=\"one-liner\">Capture, drag, share all from the MacBook notch<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">100<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>QuackScreen\u662f\u4e00\u6b3e\u5c06\u5c4f\u5e55\u622a\u56fe\u4e0e\u5f55\u5236\u529f\u80fd\u96c6\u6210\u5728MacBook\u5218\u6d77\u533a\u57df\u7684\u539f\u751f\u5e94\u7528\uff0c\u8ba9\u7528\u6237\u80fd\u5728\u65e0\u9700\u4e0a\u4f20\u7684\u60c5\u51b5\u4e0b\uff0c\u76f4\u63a5\u4ece\u83dc\u5355\u680f\u62d6\u62fd\u6587\u4ef6\u5230\u4efb\u4f55\u5e94\u7528\uff0c\u5f7b\u5e95\u89e3\u51b3\u5206\u4eab\u622a\u56fe\u6216\u5f55\u5236\u5185\u5bb9\u65f6\u6d41\u7a0b\u7e41\u7410\u3001\u901f\u5ea6\u6162\u7684\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/a7a8954e-52bb-47bb-938c-adb0889fd440.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/2002d9d5-3bcf-4c3a-9238-c5458769ea0d.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/9832722a-ea0e-40f8-bfcd-8a902c40413c.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/99631c1e-8bb3-4817-97b0-a7a7607c31e2.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Mac<\/span><br \/>\n            <span class=\"tag\">Menu Bar Apps<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u5c4f\u5e55\u5f55\u5236<\/span><br \/>\n            <span class=\"tag\">\u622a\u56fe\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">Mac\u5218\u6d77\u5c4f<\/span><br \/>\n            <span class=\"tag\">\u539f\u751f\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u62d6\u62fd\u5206\u4eab<\/span><br \/>\n            <span class=\"tag\">\u6548\u7387\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">macOS\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">Apple Silicon<\/span><br \/>\n            <span class=\"tag\">\u533a\u57df\u5f55\u5236<\/span><br \/>\n            <span class=\"tag\">\u65e0\u8ba2\u9605<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u8ba4\u4e3a\u5229\u7528\u5218\u6d77\u69fd\u8fdb\u884c\u5feb\u901f\u5206\u4eab\u7684\u521b\u610f\u5f88\u5de7\u5999\uff0c\u80fd\u663e\u8457\u63d0\u5347Bug\u62a5\u544a\u548cUI\u53cd\u9988\u7684\u6548\u7387\u3002\u4f46\u5173\u952e\u6311\u6218\u5728\u4e8e\u5f55\u5236\u5b8c\u6210\u540e\u6587\u4ef6\u662f\u5426\u7acb\u5373\u53ef\u7528\uff0c\u4ee5\u53ca\u662f\u5426\u5b8c\u7f8e\u652f\u6301\u591a\u663e\u793a\u5668\u8bbe\u7f6e\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                QuackScreen\u7684\u51fa\u53d1\u70b9\u5f88\u8ba8\u5de7\uff1a\u628aMacBook\u90a3\u4e2a\u88ab\u8c03\u4f83\u591a\u5e74\u7684\u201c\u5218\u6d77\u201d\u4ece\u8bbe\u8ba1\u8d25\u7b14\u53d8\u6210\u529f\u80fd\u5165\u53e3\u3002\u8fd9\u672c\u8d28\u4e0a\u662f\u5bf9\u201c\u6570\u5b57\u5de5\u4f5c\u6d41\u4e2d\u65ad\u201d\u7684\u4e00\u6b21\u7cbe\u51c6\u6253\u51fb\u2014\u2014\u4f20\u7edf\u622a\u56fe\u5de5\u5177\u8ba9\u4f60\u9677\u5165\u201c\u5f55\u5236-\u4fdd\u5b58-\u4e0a\u4f20-\u7b49\u5f85\u751f\u6210\u94fe\u63a5-\u7c98\u8d34\u201d\u7684\u6f2b\u957f\u94fe\u6761\uff0c\u800cQuackScreen\u8bd5\u56fe\u5c06\u5176\u538b\u7f29\u4e3a\u201c\u5f55\u5236-\u62d6\u62fd-\u5b8c\u6210\u201d\u7684\u4e09\u6b65\u66f2\u3002\u8fd9\u79cd\u4ece\u201c\u4e91\u7aef\u4e2d\u8f6c\u201d\u56de\u5f52\u201c\u672c\u5730\u76f4\u63a5\u4f20\u8f93\u201d\u7684\u601d\u8def\uff0c\u786e\u5b9e\u53cd\u6620\u4e86\u5f53\u524d\u5f88\u591a\u5de5\u4f5c\u6d41\u5de5\u5177\u7684\u8fc7\u5ea6\u4f9d\u8d56\u7f51\u7edc\u3001\u53cd\u800c\u727a\u7272\u5373\u65f6\u6027\u7684\u95ee\u9898\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u51b7\u9759\u5ba1\u89c6\uff0c\u5176\u5e02\u573a\u524d\u666f\u5b58\u5728\u4e24\u4e2a\u5173\u952e\u53d8\u91cf\u3002\u7b2c\u4e00\uff0c\u7528\u6237\u8bc4\u8bba\u4e2d\u63d0\u5230\u7684\u201c\u6587\u4ef6\u7f16\u7801\u5b8c\u6210\u5ea6\u201d\u662f\u751f\u6b7b\u7ebf\u3002\u4e00\u65e6\u7528\u6237\u62d6\u62fd\u65f6\u6587\u4ef6\u672a\u5b8c\u5168\u5c31\u7eea\uff08file-promise\u6a21\u578b\uff09\uff0c\u4f53\u9a8c\u5c06\u77ac\u95f4\u4ece\u201c\u6d41\u7545\u201d\u788e\u6210\u4e00\u5730\u3002\u5f00\u53d1\u8005\u5fc5\u987b\u786e\u4fdd\u5f55\u5236\u7ed3\u675f\u7684\u77ac\u95f4\uff0c\u6587\u4ef6\u683c\u5f0f\u3001\u5206\u8fa8\u7387\u3001\u538b\u7f29\u6bd4\u90fd\u5df2\u662f\u6700\u7ec8\u6001\uff0c\u5426\u5219\u5c31\u662f\u53c8\u4e00\u4e2a\u201c\u5feb\u534a\u79d2\uff0c\u5361\u5341\u79d2\u201d\u7684\u7ffb\u8f66\u73b0\u573a\u3002\u7b2c\u4e8c\uff0c\u591a\u663e\u793a\u5668\u652f\u6301\u5e76\u975e\u201c\u8fb9\u89d2\u95ee\u9898\u201d\uff0c\u800c\u662f\u5927\u91cfMac\u7528\u6237\u7684\u5de5\u4f5c\u5e38\u6001\u3002\u56de\u590d\u4e2d\u63d0\u5230\u201c\u521b\u5efa\u5047\u5218\u6d77\u201d\u7684\u505a\u6cd5\u867d\u7136\u5de7\u5999\uff0c\u4f46\u82e5\u9047\u5230\u663e\u793a\u5206\u8fa8\u7387\u5dee\u5f02\u6216\u5916\u63a5\u5c4f\u65cb\u8f6c\u7b49\u60c5\u51b5\uff0c\u9ed1\u6761\u7684\u89c6\u89c9\u4fb5\u5165\u611f\u548c\u529f\u80fd\u7a33\u5b9a\u6027\u5c06\u7ecf\u53d7\u4e25\u683c\u8003\u9a8c\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u6b64\u5916\uff0c\u4ea7\u54c1\u5b9a\u4f4d\u4e3a\u201cmacOS 26+\u539f\u751f+Apple Silicon\u201d\u662f\u53cc\u5203\u5251\u3002\u5b83\u786e\u4fdd\u4e86\u6781\u81f4\u7684\u6027\u80fd\u4e0e\u7cfb\u7edf\u6df1\u5ea6\u6574\u5408\uff08\u6bd4\u5982\u83dc\u5355\u680f\u4ea4\u4e92\u7684\u987a\u6ed1\u5ea6\uff09\uff0c\u4f46\u4e5f\u76f4\u63a5\u653e\u5f03\u4e86\u5e9e\u5927\u7684intel Mac\u548c\u65e7\u7cfb\u7edf\u7528\u6237\u7fa4\u3002\u8003\u8651\u5230Mac\u7528\u6237\u666e\u904d\u8bbe\u5907\u66f4\u65b0\u5468\u671f\u957f\uff0c\u8fd9\u5728\u4e00\u5f00\u59cb\u5c31\u628a\u5929\u82b1\u677f\u538b\u5f97\u5f88\u4f4e\u3002\u514d\u8d39\u8bd5\u7528+20\u7f8e\u5143\u6c38\u4e45\u7248\u7684\u5b9a\u4ef7\u7b56\u7565\u6781\u4e3a\u660e\u667a\uff0c\u65e2\u7528\u4f4e\u6210\u672c\u5438\u5f15\u65e9\u671f\u5c1d\u9c9c\u8005\u79ef\u7d2f\u53e3\u7891\uff0c\u53c8\u907f\u514d\u4e86\u8ba2\u9605\u5236\u5e26\u6765\u7684\u5fc3\u7406\u963b\u529b\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u603b\u4f53\u800c\u8a00\uff0cQuackScreen\u662f\u4e00\u4e2a\u5f88\u597d\u7684\u201c\u6548\u7387\u5fae\u521b\u65b0\u201d\u6848\u4f8b\uff0c\u4f46\u5b83\u80fd\u5426\u4ece\u201c\u4ee4\u4eba\u60ca\u559c\u7684\u5c0f\u5de5\u5177\u201d\u5347\u534e\u4e3a\u201c\u804c\u573a\u5fc5\u5907\u7684\u751f\u4ea7\u529b\u6b66\u5668\u201d\uff0c\u53d6\u51b3\u4e8e\u5b83\u662f\u5426\u80fd\u907f\u5f00\u5927\u591a\u6570\u6377\u5f84\u5de5\u5177\u201c\u521d\u4ee3\u60ca\u8273\u3001\u7248\u672c\u81c3\u80bf\u201d\u7684\u5bbf\u547d\u3002\u5efa\u8bae\u56e2\u961f\u4e0b\u4e00\u9636\u6bb5\u91cd\u70b9\u6253\u78e8\u591a\u663e\u793a\u5668\u9002\u914d\u548c\u6587\u4ef6\u77ac\u65f6\u53ef\u7528\u6027\u8fd9\u4e24\u4e2a\u547d\u95e8\uff0c\u5426\u5219\u518d\u5de7\u5999\u7684\u521b\u610f\u4e5f\u53ea\u80fd\u662f\u4ed6\u4eba\u773c\u4e2d\u201c\u53c8\u4e00\u4e2a\u5c06\u5c31\u7740\u7528\u7684\u5de5\u5177\u201d\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">QuackScreen<\/span>\n                <\/div>\n<div class=\"comment-content\">QuackScreen is a native macOS notch app for quick screen recordings and screenshots. Drag and drop clips straight from the menu bar into Slack, Mail, Finder, or any app. macOS 26+, Apple silicon.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the notch as a drop target looks like a genuinely good call! its dead space on every mac I guess. Congrats on the launch!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>4<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@artstavenka1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@artstavenka1<\/a>&nbsp;yeah, it seems to be perfect for it, and I always need to drag and drop something across apps<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the notch-drag-into-slack flow is the whole game \u2014 make-or-break is the clip being encoded on disk before i grab it vs a file-promise finishing on drop. that gap is where most capture tools fumble.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The drag-from-notch workflow feels really practical. For quick bug reports or UI feedback, skipping uploads, links, and extra sharing steps could save a lot of small interruptions.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The notch integration is actually clever &#8211; been ignoring that real estate for 3 years and this is the first tool that makes it feel like a feature rather than a design compromise. The drag-to-share flow is the kind of thing that sounds gimmicky until you use it and realize you&#8217;ve been doing it the slow way forever. Does it handle multi-monitor setups where the notch screen is secondary? That&#8217;s the one edge case I hit constantly with menu bar tools.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@galdayan it creates a fake notch there too, so you always have it, in future we might have opacity style so it\u2019s not just black<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Looks clean. Native macOS apps that do one thing really well are becoming surprisingly rare.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@workout097_collab\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@workout097_collab<\/a>&nbsp;clean ui and making everything streamlined was very important design decision overall. Notch is perfect for quick actions.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey Product Hunt \ud83d\udc4b<\/p>\n<p>I built QuackScreen because every time I needed to share a quick bug report, UI issue, or async walkthrough, the workflow felt unnecessarily slow:<\/p>\n<p>Record \u2192 wait for upload \u2192 copy link \u2192 paste link \u2192 wait.<\/p>\n<p>All that for a 12-second clip.<\/p>\n<p>QuackScreen lives right inside your Mac&#8217;s notch.<\/p>\n<p>\u2318\u2325\u21e7R \u2192 Start recording<br \/>\n\u2318\u2325\u21e7S \u2192 Take a screenshot<\/p>\n<p>Supports region selection for both recordings and screenshots<\/p>\n<p>Your capture instantly appears in a notch popover, ready to drag directly into Slack, Linear, Mail, Finder, or any other app. No uploads. No links. No extra steps.<\/p>\n<p>### What&#8217;s included in v1<\/p>\n<p>\u2022 Region screenshots and screen recordings<br \/>\n\u2022 Annotation editor (pen, arrows, rectangles, highlights, blur)<br \/>\n\u2022 Cursor-following zoom for recordings<br \/>\n\u2022 System-wide keyboard shortcuts<br \/>\n\u2022 Microphone selection<br \/>\n\u2022 Drag-and-drop sharing from the notch into any app<\/p>\n<p>Built natively for macOS 26+ on Apple Silicon.<\/p>\n<p>No Electron. No accounts. No subscriptions.<\/p>\n<p>Free to try, with a Product Hunt launch discount: $20 lifetime using code PHLAUNCHJUNE2026 (regular price $30).<\/p>\n<p>Would love your feedback and feature requests \u2764\ufe0f<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey QuackScreen team! \ud83d\udc4b<\/p>\n<\/p>\n<p>Congrats on the launch! \ud83d\ude80<\/p>\n<\/p>\n<p>Capturing, dragging, and sharing directly from the MacBook notch is such a clean use of existing hardware. I love products that turn something people overlook into a genuinely useful workflow improvement.<\/p>\n<\/p>\n<p>We&#8217;re also launching Blazly Backlinker today, helping marketers automate backlink discovery, outreach, and guest posting from one place.<\/p>\n<\/p>\n<p>Would love to hear your thoughts if you get a chance to check us out as well. Wishing you an amazing launch day! \ud83c\udf89<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#12<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/SWHLL43IMABPKD\" class=\"app-title\">MeshPilot<\/a><\/p>\n<div class=\"one-liner\">Your AI workspace for terminals, tasks, and agents<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">97<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>MeshPilot\u662f\u4e00\u6b3e\u9762\u5411\u5f00\u53d1\u8005\u7684AI\u5de5\u4f5c\u7a7a\u95f4\uff0c\u901a\u8fc7\u5c06\u7ec8\u7aef\u3001\u53ef\u89c6\u5316\u753b\u5e03\u548c\u4efb\u52a1\u770b\u677f\u7edf\u4e00\u5728\u5355\u4e2a\u5e94\u7528\u4e2d\uff0c\u5e76\u7ed3\u5408AI\u4ee3\u7406\u4e0e\u6301\u4e45\u8bb0\u5fc6\uff0c\u89e3\u51b3\u5f00\u53d1\u6d41\u7a0b\u5206\u6563\u3001\u4e0a\u4e0b\u6587\u4e22\u5931\u5bfc\u81f4\u6548\u7387\u4f4e\u4e0b\u7684\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/56743535-f1ca-42cd-9314-5512639bd9c7.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/c08916cc-be25-4576-b2e3-1a2219cc347b.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/229c430e-3d41-4c54-8143-e0ede0699d96.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/3d9e51c1-c196-4f91-9cf3-a0ca4fd19776.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/7bf8dd8f-1f7c-49d2-ad75-3042ed4416b2.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u5f00\u53d1\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u4f5c\u6d41<\/span><br \/>\n            <span class=\"tag\">\u7ec8\u7aef\u96c6\u6210<\/span><br \/>\n            <span class=\"tag\">AI\u4ee3\u7406<\/span><br \/>\n            <span class=\"tag\">\u6301\u4e45\u8bb0\u5fc6<\/span><br \/>\n            <span class=\"tag\">\u4efb\u52a1\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u8bed\u97f3\u4ea4\u4e92<\/span><br \/>\n            <span class=\"tag\">\u53ef\u89c6\u5316\u753b\u5e03<\/span><br \/>\n            <span class=\"tag\">\u4e0a\u4e0b\u6587\u4fdd\u6301<\/span><br \/>\n            <span class=\"tag\">\u6548\u7387\u5de5\u5177<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u80af\u5b9a\u6301\u4e45\u8bb0\u5fc6\u548cAI\u4ee3\u7406\u6267\u884c\u5b9e\u9645\u4efb\u52a1\u7684\u4ef7\u503c\u3002\u6838\u5fc3\u53cd\u9988\u5305\u62ec\uff1a\u9700\u7ec6\u5316\u4ee3\u7406\u4efb\u52a1\u8fd0\u884c\u8bb0\u5f55\uff08\u5982\u8bbf\u95ee\u6743\u9650\u3001\u53d8\u66f4\u5185\u5bb9\uff09\uff1b\u5efa\u8bae\u533a\u5206\u6301\u4e45\u8bb0\u5fc6\u4e0e\u4e34\u65f6\u4e0a\u4e0b\u6587\uff1b\u5e76\u671f\u5f85\u7ec8\u7aef\u4e0eAI\u6df1\u5ea6\u96c6\u6210\u65f6\u4fdd\u6301\u900f\u660e\u53ef\u63a7\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                MeshPilot\u5728\u201c\u5c06\u6240\u6709\u5de5\u5177\u585e\u8fdb\u4e00\u4e2a\u7a97\u53e3\u201d\u7684\u7ea2\u6d77\u4e2d\uff0c\u8bd5\u56fe\u4ee5\u201c\u6301\u4e45\u8bb0\u5fc6\u201d\u548c\u201cAI\u4ee3\u7406\u6267\u884c\u201d\u7834\u5c40\u2014\u2014\u8fd9\u786e\u5b9e\u662f\u76ee\u524dAI\u5f00\u53d1\u5de5\u5177\u7684\u4e24\u5927\u75db\u70b9\u3002\u4f46\u95ee\u9898\u5728\u4e8e\uff0c\u5b83\u7684\u201c\u7edf\u4e00\u5de5\u4f5c\u7a7a\u95f4\u201d\u672c\u8d28\u4e0a\u4ecd\u662f\u529f\u80fd\u62fc\u76d8\uff0c\u800c\u975e\u6df1\u5ea6\u878d\u5408\u3002\u7528\u6237\u8bc4\u8bba\u4e2d\uff0c\u6709\u4eba\u8981\u6c42\u66f4\u7ec6\u7c92\u5ea6\u7684\u201c\u8fd0\u884c\u8bb0\u5f55\u201d\uff0c\u6709\u4eba\u5173\u5fc3\u8bb0\u5fc6\u5c42\u5982\u4f55\u533a\u9694\u201c\u4e34\u65f6\u4e0a\u4e0b\u6587\u201d\u4e0e\u201c\u6301\u4e45\u8bb0\u5fc6\u201d\uff0c\u8fd9\u76f4\u6307\u5176\u67b6\u6784\u7684\u7c97\u7cd9\uff1a\u76ee\u524d\u5404\u7ec8\u7aef\u4fdd\u6301\u72ec\u7acb\u4e0a\u4e0b\u6587\uff0c\u4f46\u8de8\u4f1a\u8bdd\u7684\u201c\u667a\u80fd\u8bb0\u5fc6\u201d\u82e5\u7f3a\u4e4f\u9ad8\u7ea7\u7b56\u7565\uff08\u5982\u81ea\u52a8\u8bc6\u522b\u5173\u952e\u51b3\u7b56\u3001\u4ee3\u7801\u53d8\u66f4\u610f\u56fe\uff09\uff0c\u6781\u6613\u6ca6\u4e3a\u201c\u65e0\u9650\u589e\u957f\u526a\u8d34\u677f\u201d\u3002\u66f4\u503c\u5f97\u8b66\u60d5\u7684\u662f\uff0c\u5176\u201cAI\u4ee3\u7406\u6267\u884c\u4efb\u52a1\u201d\u662f\u5426\u53ea\u505c\u7559\u5728\u201c\u5728\u7ec8\u7aef\u91cc\u8dd1\u4e2a\u811a\u672c\u201d\u7684\u6d45\u5c42\u81ea\u52a8\u5316\uff1f\u5f00\u53d1\u8005\u771f\u6b63\u9700\u8981\u7684\u662f\u80fd\u7406\u89e3\u9879\u76ee\u5168\u5c40\u3001\u4e3b\u52a8\u62c6\u89e3\u4efb\u52a1\u3001\u5e76\u81ea\u4e3b\u4fee\u590d\u9519\u8bef\u7684\u667a\u80fd\u4f53\uff0c\u800c\u975e\u4e00\u4e2a\u201c\u8bed\u97f3\u63a7\u5236\u7684Shell\u201d\u3002\u6b64\u5916\uff0c97\u7968\u7684Launch\u6210\u7ee9\u5e73\u5eb8\uff0c\u8bf4\u660e\u4ea7\u54c1\u5c1a\u672a\u627e\u5230\u5f3a\u529b\u4f20\u64ad\u70b9\u3002\u603b\u800c\u8a00\u4e4b\uff0cMeshPilot\u7684\u65b9\u5411\u6b63\u786e\uff0c\u4f46\u6267\u884c\u4ecd\u5904\u4e8e\u201c\u628a\u6563\u843d\u5de5\u5177\u642c\u5230\u4e00\u8d77\u201d\u7684\u521d\u671f\u9636\u6bb5\uff0c\u82e5\u4e0d\u80fd\u5728\u8bb0\u5fc6\u5206\u5c42\u3001\u4ee3\u7406\u81ea\u4e3b\u6027\u3001\u4ee5\u53ca\u201cAI\u5982\u4f55\u8f85\u52a9\u800c\u975e\u66ff\u4ee3\u5f00\u53d1\u8005\u51b3\u7b56\u201d\u8fd9\u4e09\u4e2a\u6838\u5fc3\u6a21\u5757\u4e0a\u505a\u51fa\u5dee\u5f02\uff0c\u5b83\u5f88\u5feb\u4f1a\u88abCursor\u3001Copilot\u7b49\u751f\u6001\u66f4\u5b8c\u5584\u7684\u7ade\u54c1\u541e\u566c\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">MeshPilot<\/span>\n                <\/div>\n<div class=\"comment-content\">MeshPilot is an AI workspace for developers. Plan, build, and run your projects in one place &#8211; with terminals, a visual canvas, and task boards unified in a single app. Talk to your tools with voice, let AI agents run real tasks, and keep persistent memory so your context carries across sessions instead of starting cold every time.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey Product Hunt!<\/p>\n<p>I built MeshPilot because my dev workflow was scattered across terminals, task boards, notes, and chat, and all that context vanished the moment I closed a session.<\/p>\n<p>MeshPilot pulls it into one AI workspace:<br \/>\n\u2022 Terminals, a visual canvas, and task boards in a single app<br \/>\n\u2022 Voice &#8211; talk to your tools instead of clicking through them<br \/>\n\u2022 AI agents that actually run tasks, not just suggest them<br \/>\n\u2022 Persistent memory so your context carries across sessions<\/p>\n<p>It&#8217;s early and I&#8217;m building it in the open. Would love your honest feedback &#8211; what breaks your flow the most right now?<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>5<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@jeneshhhhh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jeneshhhhh<\/a>&nbsp;Interesting direction. Bringing terminals, task boards, and a visual canvas into a single workspace could help reduce a lot of context switching. I especially like the combination of persistent memory and AI agents that can perform real tasks\u2014starting with context instead of from scratch every session feels much closer to how developers actually work.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@jeneshhhhh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jeneshhhhh<\/a>&nbsp;Congrats on the launch. &#8216;Unlocking the new era of Vibe coding&#8217; is a missed opportunity. Your actual product is more compelling than that headline suggests. I rewrote it. Want to see?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The persistent memory angle is what caught my attention. Re-explaining the same project context to AI tools every session gets old fast. Congrats on the launch!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@varun1jan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@varun1jan<\/a>&nbsp;Thanks, Varun! That&#8217;s exactly the pain point we&#8217;re targeting. Really appreciate the support and glad the persistent memory aspect stood out to you.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Nice. The separate terminal context is a good start. The thing I\u2019d want next is a tiny run record for each agent task: what it was allowed to touch, which terminal or repo it used, what changed, and what should be carried into memory after the run. Is that how you\u2019re thinking about the temporary context layer?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@blah_mad\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@blah_mad<\/a>&nbsp;Thanks, Ahmad! Yes, that&#8217;s very much aligned with our thinking. We want agent runs to be transparent, with clear visibility into what was accessed, what changed, and what context should be carried forward. The memory layer is still evolving, but that&#8217;s the direction we&#8217;re heading.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Having terminals, tasks and AI in the same workspace makes a lot of sense.<\/p>\n<p>Out of curiosity, are the agents actually executing commands in the terminal, or do they operate through a separate execution layer?<\/p>\n<p>Congrats on the launch.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@sousadiego11\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sousadiego11<\/a>&nbsp;Thanks, Diego! <\/p>\n<p>If you mean the CLI agents, they run through dedicated terminal sessions rather than an isolated execution layer. We want developers to have visibility into what agents are doing and maintain control over the workflow.<\/p>\n<p>Appreciate the question and the support.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Terminal workspace + agents is a solid combo. What was the biggest surprise about how people actually wanted to interact with their tasks once you shipped?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Persistent memory is the part that stands out. A lot of agent workflows fail because context disappears between sessions. How do you decide what should become durable memory versus temporary context, especially when multiple tasks or terminals are running in parallel?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@rahulbhavsar\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rahulbhavsar<\/a>&nbsp;Each terminal keeps its own context so parallel tasks never clash. Persistent memory is live today; the temporary-context layer is what we&#8217;re building right now.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#13<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/ZUN64WP6WVM4J6\" class=\"app-title\">Screen Ruler<\/a><\/p>\n<div class=\"one-liner\">Edit anything on the web with change tracking<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">94<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Screen Ruler \u662f\u4e00\u6b3eChrome\u6269\u5c55\uff0c\u8ba9\u5f00\u53d1\u8005\u548c\u8bbe\u8ba1\u5e08\u80fd\u5728\u4e0d\u79bb\u5f00\u6d4f\u89c8\u5668\u7684\u60c5\u51b5\u4e0b\u76f4\u63a5\u6d4b\u91cf\u3001\u7f16\u8f91\u7f51\u9875\u5143\u7d20\u5e76\u8ffd\u8e2a\u6240\u6709\u66f4\u6539\uff0c\u89e3\u51b3\u4f20\u7edfDevTools\u7f16\u8f91\u540e\u53d8\u66f4\u4e22\u5931\u7684\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/7315633a-4fa6-41d4-8fb4-e152223a0b84.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/130ad8db-6102-4bba-aff3-fd40c81f8ae7.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/a5ca3a0f-2da0-4f3c-96d8-7616e25e14c7.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/bb3a2bf8-53e5-490b-b444-ea943ff4486d.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/6154f678-7dda-41ff-9e16-74665be6f551.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/9ac33f8c-c3cc-424f-84a8-408402a8d1e8.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Chrome Extensions<\/span><br \/>\n            <span class=\"tag\">Design Tools<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Chrome\u6269\u5c55<\/span><br \/>\n            <span class=\"tag\">\u7f51\u9875\u6d4b\u91cf<\/span><br \/>\n            <span class=\"tag\">CSS\u5b9e\u65f6\u7f16\u8f91<\/span><br \/>\n            <span class=\"tag\">\u8bbe\u8ba1\u534f\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u524d\u7aef\u5f00\u53d1<\/span><br \/>\n            <span class=\"tag\">DevTools\u66ff\u4ee3<\/span><br \/>\n            <span class=\"tag\">\u53d8\u66f4\u8ffd\u8e2a<\/span><br \/>\n            <span class=\"tag\">\u6837\u5f0f\u8c03\u8bd5<\/span><br \/>\n            <span class=\"tag\">\u539f\u5b50CSS<\/span><br \/>\n            <span class=\"tag\">\u4f2a\u7c7b\u7f16\u8f91<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u770b\u597d\u53d8\u5316\u8ffd\u8e2a\u529f\u80fd\uff0c\u5efa\u8bae\u5bfc\u51faCSS\u6216\u5feb\u7167\u7528\u4e8ePR\uff1b\u8be2\u95ee\u5bf9Tailwind\u7b49\u6846\u67b6\u7684\u517c\u5bb9\u6027\uff1b\u63d0\u51fa\u589e\u52a0\u81ea\u7531\u6d4b\u91cf\u6a21\u5f0f\uff1b\u90e8\u5206\u7528\u6237\u53cd\u9988\u6b64\u524d\u6d4b\u91cf\u5de5\u5177\u5b9a\u4f4d\u4e0d\u51c6\uff0cScreen Ruler\u66f4\u4f18\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Screen Ruler\u7cbe\u51c6\u5207\u4e2d\u4e86\u5f00\u53d1\u8005\u4e0e\u8bbe\u8ba1\u5e08\u5728\u201c\u8f7b\u91cf\u7ea7\u7f51\u9875\u7f16\u8f91\u201d\u4e0a\u7684\u9690\u6027\u9700\u6c42\u2014\u2014\u5b83\u5e76\u975e\u8981\u53d6\u4ee3Chrome DevTools\uff0c\u800c\u662f\u5c06DevTools\u4e2d\u9700\u8981\u591a\u6b65\u64cd\u4f5c\u4e14\u6613\u4e22\u5931\u7684\u7f16\u8f91\u6d41\u7a0b\uff0c\u7b80\u5316\u4e3a\u201c\u70b9-\u6539-\u8bb0\u201d\u7684\u95ed\u73af\u3002\u5176\u6838\u5fc3\u4ef7\u503c\u5e76\u975e\u6280\u672f\u6709\u591a\u6df1\uff0c\u800c\u662f\u628a\u201cCSSOM\u904d\u5386\u3001\u4f2a\u7c7b\u6837\u5f0f\u6ce8\u5165\u3001\u5a92\u4f53\u67e5\u8be2\u8fb9\u754c\u5904\u7406\u201d\u8fd9\u4e9b\u5e95\u5c42\u786c\u9aa8\u5934\u5543\u4e0b\u540e\uff0c\u5c01\u88c5\u6210\u8bbe\u8ba1\u5e08\u4e5f\u80fd\u4e0a\u624b\u7684\u4f53\u9a8c\u3002\u4f46\u9700\u6cfc\u4e00\u76c6\u51b7\u6c34\uff1a94\u7968\u8fdc\u7b97\u4e0d\u4e0a\u7206\u6b3e\uff0c\u4e14\u7528\u6237\u53cd\u9988\u4e2d\u201c\u662f\u5426\u9002\u914dTailwind\/Shadcn\u201d\u201c\u80fd\u5426\u5bfc\u51fa\u7ed3\u6784\u5316\u6837\u5f0f\u201d\u7b49\u5173\u952e\u95ee\u9898\u672a\u5f97\u5230\u6709\u529b\u89e3\u7b54\u3002\u5982\u679c\u4ec5\u662f\u201c\u66f4\u597d\u7528\u7684\u6d4b\u91cf+\u57fa\u7840\u7f16\u8f91\u201d\uff0c\u5b83\u5f88\u5bb9\u6613\u88ab\u6d4f\u89c8\u5668\u539f\u751f\u66f4\u65b0\u6216\u66f4\u6210\u719f\u7684Figma\u63d2\u4ef6\u66ff\u4ee3\u3002\u771f\u6b63\u7684\u62a4\u57ce\u6cb3\u5728\u4e8e\u201cChange Tracking\u201d\u7684\u6570\u636e\u7ed3\u6784\u5316\u2014\u2014\u82e5\u80fd\u5c06\u7f16\u8f91\u8bb0\u5f55\u8f6c\u4e3aDIFF\u6587\u4ef6\u3001\u751a\u81f3\u751f\u6210Stylelint\u517c\u5bb9\u7684Patch\uff0c\u5c31\u80fd\u5d4c\u5165\u5f00\u53d1\u5de5\u4f5c\u6d41\uff0c\u4ece\u201c\u4e34\u65f6\u5de5\u5177\u201d\u5347\u7ea7\u4e3a\u201c\u534f\u4f5c\u57fa\u5efa\u201d\u3002\u5426\u5219\uff0c\u5b83\u7ec8\u5c06\u6b62\u6b65\u4e8e\u201c\u7528\u8fc7\u89c9\u5f97\u597d\uff0c\u4f46\u4e0d\u7528\u4e5f\u4e0d\u75db\u201d\u7684\u5c34\u5c2c\u4f4d\u7f6e\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Screen Ruler<\/span>\n                <\/div>\n<div class=\"comment-content\">Screen Ruler is a Chrome extension for measuring and inspecting live web pages. By popular demand, it now supports editing. Click an element, see its matched CSS, tweak values inline. Works on :hover\/:focus and inside @media rules with every single change tracked and viewable in one place.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hi Product Hunt,<\/p>\n<p>I am the solo creator of Screen Ruler, a Chrome extension that helps designers and developers inspect web pages.<\/p>\n<p>For a long time it was strictly a measurement tool. But I kept hearing the same feedback from the community: you wanted to edit text on the page, reorder elements, and tweak CSS without leaving the browser. So I spent the last month or two building a brand new edit mode. It handles HTML edits, CSS tweaks, pseudo-state styling, and @media rules, with every change tracked so nothing gets lost.<\/p>\n<\/p>\n<p>Under the hood, it uses an Atomic CSS engine that stamps edited elements with a unique data-id and writes changes to a transient stylesheet. Every edit is scoped to its exact element, breakpoint and pseudo-state, with no cascade leakage to other contexts. So if you want to treat a live web page like a design canvas, this is for you.<\/p>\n<p>Would love your feedback. Thanks for taking a look.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Making CSS edits work inside :hover and @media rules is the hard part. Most tools show computed styles, but resolving which rule is winning the cascade and exposing it as something editable requires careful CSSOM traversal. When building embeddable components, we&#8217;ve hit similar specificity headaches. How do you implement live :hover editing without injecting a forced class or inline style override?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Every edited element gets marked with a data-attribute stamp that the engine uses to apply edits through an injected stylesheet. For pseudo-states the engine uses a selector pattern that wins the cascade reliably without modifying the element&#8217;s class list or computed style attribute.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>As a developer, I often end up opening DevTools just to tweak spacing, margins or font sizes and see what feels right.<\/p>\n<p>Having a dedicated workflow for that with change tracking seems much more practical than losing everything after a refresh.<\/p>\n<p>Nice work and congrats on the launch.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Nice update. The change tracking is the interesting bit, especially when a designer is editing a live app with a developer.<\/p>\n<\/p>\n<p>Do you export the change list as CSS\/selectors or more like a visual snapshot, so someone can turn the tweaks into a real PR later?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This could be one of those tools you don&#8217;t know you need until you&#8217;ve used it once and then can&#8217;t go back. Inspecting margins\/paddings on competitor sites is a daily task for solo builders without a design background. <\/p>\n<p>Does it work on sites with heavy CSS modifications (Tailwind, shadcn variants), and is there a way to export measurements or snapshots for later reference?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Nice! I was using the Page Ruler extension before. It works, but I had a lot of trouble with the position of the measurements and numbers. Screen Ruler is better because I can easily measure components on the screen. You could add a free mode (unless I missed it) where I can select exactly what I want to measure<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey! \ud83d\udc4b<\/p>\n<\/p>\n<p>Congrats on launching Screen Ruler! \ud83d\ude80<\/p>\n<\/p>\n<p>Such a simple idea, yet incredibly useful. As a designer, I constantly need to measure spacing, alignment, and dimensions on screen, and having a lightweight tool dedicated to that workflow is a real productivity booster.<\/p>\n<\/p>\n<p>We&#8217;re also launching Blazly Backlinker today, helping marketers automate backlink discovery, outreach, and guest posting from one workflow.<\/p>\n<\/p>\n<p>Would love to hear your thoughts if you get a chance to check us out as well. Wishing you a fantastic launch day! \ud83c\udf89<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#14<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/IGCLIJUOUCKHWR\" class=\"app-title\">Darkmoon<\/a><\/p>\n<div class=\"one-liner\">Autonomous penetration testing platform<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">93<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Darkmoon \u662f\u4e00\u6b3e\u7531\u8d44\u6df1\u6e17\u900f\u6d4b\u8bd5\u5de5\u7a0b\u5e08\u6253\u9020\u7684\u5f00\u6e90\u3001\u81ea\u6258\u7ba1\u81ea\u52a8\u5316\u6e17\u900f\u6d4b\u8bd5\u5e73\u53f0\uff0c\u901a\u8fc718\u4e2a\u4e13\u4e1a\u5316AI\u667a\u80fd\u4f53\u4e0e80\u4f59\u6b3e\u5b89\u5168\u5de5\u5177\u7684\u7ec4\u5408\uff0c\u5728AD\u57df\u3001K8s\u3001\u4e91\u57fa\u7840\u8bbe\u65bd\u3001API\u3001CMS\u7b49\u590d\u6742\u4f01\u4e1a\u73af\u5883\u4e2d\u63d0\u4f9b\u8bc1\u636e\u94fe\u5b8c\u6574\u7684\u6f0f\u6d1e\u53d1\u73b0\u4e0e\u653b\u51fb\u8def\u5f84\u751f\u6210\u80fd\u529b\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/c1e503e9-6843-4bc7-acd5-64f9882d74b4.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/1bFRVuMkZzY?si=logtbt3_PFMlvG8u\"><source src=\"https:\/\/youtu.be\/1bFRVuMkZzY?si=logtbt3_PFMlvG8u\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/ce57927d-7304-456f-9e67-fb07ee049983.jpeg?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/7a4a87c9-e198-4255-8f5e-2429d820eaf3.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/fddd68d8-1362-4960-a66b-ed3cf094f91c.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b00bc9e8-c91e-488c-a3fb-cc6ae42d0e69.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/d3f11f33-3f06-4a12-beed-627b8fa7386e.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/4cbbffa1-f888-454d-817c-331b3dff9b45.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/e1be0387-37dc-4331-b202-24d5c8cfd86b.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/c3500e12-38df-4ec1-ad3e-d58775b109c5.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/4ee72d94-4a5f-4ed2-a408-c34950619d27.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/41bf0826-7adc-4790-8b00-273594e0b8cf.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/de2a3ace-db08-4b4c-b822-9b17aaa299ea.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/2ddcafdc-875f-4366-b78b-9e336f56b8da.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/e2af4df1-2c50-4437-859a-fe722b19e866.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/96bebed4-f968-4592-84c4-8fb2c1e4feb8.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/d12d0958-3a7f-46ab-9102-1fc701ef33fb.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/e2c8b3b4-e5db-4dde-abc6-f38f826dcfa5.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/fe9b34c2-7a40-4048-b03f-db322197facc.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/4fa2a11d-6c1e-4686-a718-9676ef5efc3e.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/2899d4b5-d762-4597-afde-868cd615880f.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/683c27a4-72ce-4d23-852c-092a4eb8b29e.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/d225184d-52bb-4529-acb8-305f6311268b.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/1f7f0587-c6a0-4827-a993-52cc0015e6ec.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/8d9fea50-5232-4067-b3f8-bc62fe47690d.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/c730798b-f9c0-4417-8313-204a724acaee.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/785d0351-e3ca-4179-8dfb-6f7efdd1f6ee.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/e3a697ac-60bf-43d2-b836-dacdb1edc636.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Open Source<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">GitHub<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u6e17\u900f\u6d4b\u8bd5\u5e73\u53f0<\/span><br \/>\n            <span class=\"tag\">AI\u5b89\u5168<\/span><br \/>\n            <span class=\"tag\">\u4e3b\u52a8\u9632\u5fa1<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u81ea\u52a8\u5316\u653b\u9632<\/span><br \/>\n            <span class=\"tag\">\u4e91\u5b89\u5168<\/span><br \/>\n            <span class=\"tag\">\u4f01\u4e1a\u5b89\u5168<\/span><br \/>\n            <span class=\"tag\">MITRE\u6620\u5c04<\/span><br \/>\n            <span class=\"tag\">\u7ea2\u961f\u8bc4\u4f30<\/span><br \/>\n            <span class=\"tag\">\u81ea\u6258\u7ba1<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u8d5e\u8d4fDarkmoon\u8986\u76d6AD\u3001K8s\u7b49\u590d\u6742\u573a\u666f\uff0c\u800c\u975e\u4ec5\u805a\u7126Web\u5c42\u3002\u6838\u5fc3\u95ee\u9898\u805a\u7126\u4e8e\uff1a\u5982\u4f55\u5e94\u5bf9LLM\u89e3\u6790\u590d\u6742\u5de5\u5177\u8f93\u51fa\u65f6\u7684\u5e7b\u89c9\u98ce\u9669\uff1f\u662f\u5426\u652f\u6301\u5b8c\u6574\u5ba1\u8ba1\u8bb0\u5f55\u7684\u5bfc\u51fa\uff1f\u4ee5\u53ca\u90e8\u7f72\u6d41\u7a0b\u662f\u5426\u7b80\u6613\u3001\u80fd\u5426\u63a5\u5165\u81ea\u6709\u5de5\u5177\uff1f\u56e2\u961f\u56de\u5e94\u79f0\u5df2\u91c7\u7528\u72ec\u7acb\u6267\u884c\u5c42\u4e0eMCP\u67b6\u6784\uff0c\u5e76\u627f\u8bfa\u652f\u6301\u5b8c\u6574\u4f1a\u8bdd\u8bb0\u5f55\u5bfc\u51fa\u53ca\u81ea\u5b9a\u4e49\u5de5\u5177\u63a5\u5165\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Darkmoon\u7684\u771f\u6b63\u4ef7\u503c\u4e0d\u5728\u4e8e\u201c\u53c8\u591a\u4e86\u4e00\u4e2aAI\u5b89\u5168\u5de5\u5177\u201d\uff0c\u800c\u5728\u4e8e\u5b83\u76f4\u9762\u4e86\u5f53\u524dAI\u6e17\u900f\u6d4b\u8bd5\u9886\u57df\u4e24\u4e2a\u6700\u865a\u4f2a\u7684\u627f\u8bfa\uff1a\u4e00\u662f\u201c\u5168\u81ea\u52a8\u641e\u5b9a\u4e00\u5207\u201d\uff0c\u4e8c\u662f\u201cAI\u66ff\u4ee3\u6e17\u900f\u5de5\u7a0b\u5e08\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u4ea7\u54c1\u8bbe\u8ba1\u770b\uff0cDarkmoon\u7684\u67b6\u6784\u601d\u8def\u76f8\u5f53\u6e05\u9192\u2014\u2014\u5b83\u6ca1\u6709\u628aLLM\u5f53\u4e07\u80fd\u6267\u884c\u5668\uff0c\u800c\u662f\u62c6\u51fa\u201c\u89c4\u5212-\u59d4\u6258-\u6267\u884c\u201d\u4e09\u5c42\uff1aAI\u8d1f\u8d23\u9009\u7b56\u7565\u3001\u5b9a\u4f18\u5148\u7ea7\uff0c\u5b9e\u9645\u653b\u51fb\u753180+\u6210\u719f\u5de5\u5177\uff08Nuclei\u3001BloodHound\u3001Impacket\u7b49\uff09\u5b8c\u6210\uff0c\u6267\u884c\u5c42\u518d\u56de\u4f20\u7ed3\u679c\u3002\u8fd9\u79cd\u201cAI\u505a\u5927\u8111\u3001\u5de5\u5177\u505a\u624b\u811a\u201d\u7684\u5206\u79bb\uff0c\u65e2\u89c4\u907f\u4e86LLM\u76f4\u63a5\u8c03\u7528\u547d\u4ee4\u7684\u5de8\u5927\u98ce\u9669\uff0c\u53c8\u4fdd\u7559\u4e86\u5de5\u5177\u94fe\u7684\u53ef\u5ba1\u8ba1\u6027\u3002\u67d0\u79cd\u610f\u4e49\u4e0a\uff0c\u5b83\u66f4\u50cf\u662f\u4e00\u4e2a\u62e5\u6709AI\u8c03\u5ea6\u80fd\u529b\u7684\u81ea\u52a8\u5316\u6e17\u900f\u7f16\u6392\u6846\u67b6\uff0c\u800c\u975e\u201c\u9ed1\u5ba2\u673a\u5668\u4eba\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u503c\u5f97\u5173\u6ce8\u7684\u662f\u5176\u5bf9\u900f\u660e\u5ea6\u7684\u6267\u7740\uff1aMethodology\u4ee5\u7eafMarkdown\u6587\u4ef6\u5b58\u50a8\uff0c\u53ef\u5ba1\u67e5\u3001\u53ef\u7248\u672c\u63a7\u5236\u3001\u53ef\u81ea\u5b9a\u4e49\u3002\u8fd9\u5728\u5b89\u5168\u5408\u89c4\u654f\u611f\u7684\u4f01\u4e1a\u573a\u666f\u4e2d\u81f3\u5173\u91cd\u8981\u2014\u2014\u5ba2\u6237\u548c\u76d1\u7ba1\u65b9\u9700\u8981\u7684\u4e0d\u53ea\u662f\u201c\u62a5\u544a\u201d\uff0c\u800c\u662f\u8ffd\u6eaf\u5230\u6bcf\u4e00\u6b21\u547d\u4ee4\u6267\u884c\u7684\u5b8c\u6574\u8bc1\u636e\u94fe\u3002\u8fd9\u4e00\u70b9\uff0cDarkmoon\u7528\u201cMCP\u63a7\u5236+MCP\u670d\u52a1\u5c42\u201d\u7684\u8bbe\u8ba1\u7ed9\u51fa\u4e86\u6bd4\u7edd\u5927\u591a\u6570\u5546\u4e1a\u5e73\u53f0\u66f4\u52a1\u5b9e\u7684\u7b54\u6848\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u5fc5\u987b\u8bda\u5b9e\u6307\u51fa\u7f3a\u9677\uff1aWeb\u548cAD\u57df\u867d\u6210\u719f\uff0c\u4f46\u4e91\u539f\u751f\u3001\u5bb9\u5668\u3001\u8fb9\u7f18\u7f51\u7edc\u7b49\u6a21\u5757\u4ecd\u5728\u8fdb\u5316\uff0cfrontier\u6a21\u578b\u7684\u8c03\u7528\u6210\u672c\u4e5f\u662f\u4e0d\u53ef\u5ffd\u89c6\u7684\u95e8\u69db\u3002\u6b64\u5916\uff0c\u5c3d\u7ba1AI\u4e0d\u76f4\u63a5\u6267\u884c\u547d\u4ee4\uff0c\u591a\u6b65\u9aa4\u63a8\u7406\u4e2d\u7684\u201c\u5e7b\u89c9\u201d\u4ecd\u53ef\u80fd\u5f15\u5bfc\u5de5\u5177\u94fe\u6307\u5411\u9519\u8bef\u76ee\u6807\u6216\u4ea7\u751f\u65e0\u6548\u626b\u63cf\uff0c\u56e2\u961f\u5728\u8bc4\u8bba\u56de\u590d\u4e2d\u672a\u7ed9\u51fa\u5177\u4f53\u7684\u5bf9\u6297\u7b56\u7565\uff0c\u4ec5\u5f3a\u8c03\u201c\u5de5\u5177\u662f\u4e8b\u5b9e\u6765\u6e90\u201d\u2014\u2014\u8fd9\u6050\u96be\u4ee5\u8ba9\u4e25\u8c28\u7684\u5b89\u5168\u56e2\u961f\u5b8c\u5168\u5b89\u5fc3\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u6700\u7ec8\uff0cDarkmoon\u4e0d\u662f\u201c\u7ed9\u4e0d\u61c2\u5b89\u5168\u7684\u4eba\u7528\u7684\u81ea\u52a8\u5316\u9ed1\u5ba2\u5de5\u5177\u201d\uff0c\u800c\u662f\u201c\u8ba9\u8d44\u6df1\u5b89\u5168\u56e2\u961f\u6548\u7387\u7ffb\u500d\u7684\u667a\u80fd\u534f\u4f5c\u5e73\u53f0\u201d\u3002\u5b83\u7ed9\u884c\u4e1a\u5e26\u6765\u7684\u542f\u793a\u662f\uff1aAI\u5b89\u5168\u5de5\u5177\u7684\u771f\u6b63\u5929\u82b1\u677f\uff0c\u4e0d\u662f\u6a21\u578b\u591a\u5f3a\uff0c\u800c\u662f\u4f60\u6709\u591a\u8bda\u5b9e\u9762\u5bf9\u5de5\u5177\u4e0e\u4eba\u7684\u771f\u5b9e\u5206\u5de5\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Darkmoon<\/span>\n                <\/div>\n<div class=\"comment-content\">Most AI pentesting tools stop at the web layer. Darkmoon goes further. Built by professional pentesters, it combines 18 specialized AI agents and 80+ offensive security tools to assess Active Directory, Kubernetes, cloud infrastructure, APIs, CMSs, and networks. Self-hosted, open-source, MITRE-mapped, and designed to deliver evidence-backed findings, attack paths, and publication-ready reports.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey Product Hunt,<\/p>\n<p>We&#8217;re a small team of professional pentesters.<\/p>\n<p>Over the last few years we&#8217;ve tested almost every AI-powered pentesting tool we could find.<\/p>\n<p>Most of them turned out to be web scanners with an LLM wrapped around them.<\/p>\n<p>That&#8217;s fine if your target is a marketing website and you&#8217;re hunting for XSS.<\/p>\n<p>Real engagements don&#8217;t look like that.<\/p>\n<p>They look like:<\/p>\n<p>* Active Directory<br \/>\n* Kubernetes<br \/>\n* AWS<br \/>\n* Internal networks<br \/>\n* APIs<br \/>\n* Legacy systems<\/p>\n<p>That&#8217;s where we spend our time.<br \/>\nThat&#8217;s also where most AI tools hit a wall.<\/p>\n<p>So we built Darkmoon.<\/p>\n<p>Darkmoon is an open-source, self-hosted autonomous penetration testing platform.<\/p>\n<p>It currently includes:<\/p>\n<p>* 18 specialized methodology agents<br \/>\n* 80+ integrated offensive security tools<br \/>\n* Infrastructure mapping<br \/>\n* Evidence-backed reporting<br \/>\n* Attack-path generation<\/p>\n<p>The orchestrator fingerprints the target and selects the most appropriate methodology.<\/p>\n<p>Examples:<\/p>\n<p>* Active Directory<br \/>\n* Kubernetes<br \/>\n* WordPress<br \/>\n* Drupal<br \/>\n* Magento<br \/>\n* GraphQL<br \/>\n* PHP<br \/>\n* Node.js<br \/>\n* ASP.NET<br \/>\n* Spring Boot<br \/>\n* Network infrastructure<\/p>\n<p>One thing we cared about from day one was transparency.<\/p>\n<p>The agents are not hidden prompts.<\/p>\n<p>Every methodology is stored as a plain Markdown file that can be:<\/p>\n<p>* reviewed<br \/>\n* audited<br \/>\n* version controlled<br \/>\n* customized<\/p>\n<p>Each methodology is mapped to:<\/p>\n<p>* MITRE ATT&amp;CK<br \/>\n* NIST 800-115<\/p>\n<p>Under the hood Darkmoon orchestrates more than 80 offensive security tools including:<\/p>\n<p>* Nuclei<br \/>\n* SQLMap<br \/>\n* NetExec<br \/>\n* BloodHound<br \/>\n* Impacket<br \/>\n* FFUF<br \/>\n* Hydra<br \/>\n* Kubescape<\/p>\n<p>The model doesn&#8217;t execute tools directly.<\/p>\n<p>It plans.<br \/>\nIt prioritizes.<br \/>\nIt delegates.<\/p>\n<p>A separate execution layer runs the commands, captures the output and feeds the results back into the workflow.<\/p>\n<p>Findings include:<\/p>\n<p>* supporting evidence<br \/>\n* executed commands<br \/>\n* command output<br \/>\n* severity ratings<br \/>\n* infrastructure maps<\/p>\n<p>A few honest caveats:<\/p>\n<p>* Web and Active Directory are currently the most mature agents.<br \/>\n* Cloud coverage is improving but still evolving.<br \/>\n* Frontier models currently perform better than smaller local models.<br \/>\n* There is an API cost associated with each run.<\/p>\n<p>Darkmoon is GPLv3.<br \/>\nFully self-hosted.<br \/>\nNo telemetry.<\/p>\n<p>You can bring:<\/p>\n<p>* OpenAI<br \/>\n* Anthropic<br \/>\n* Ollama<br \/>\n* llama.cpp<\/p>\n<p>We&#8217;re launching today to gather feedback from the security and open-source communities.<\/p>\n<p>Happy to answer questions about the architecture, methodology, roadmap, or anything else.<\/p>\n<p>Thanks for checking it out.<\/p>\n<p>GitHub:<br \/>\n<a href=\"https:\/\/github.com\/ASCIT31\/Dark-Moon\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/github.com\/ASCIT31\/Dark-&#8230;<\/a><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@mehdi_boutayeb\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mehdi_boutayeb<\/a>&nbsp;Interesting scope. A lot of AI pentesting tools focus narrowly on web apps, so extending into Active Directory, Kubernetes, cloud infrastructure, and networks makes Darkmoon feel much closer to a full assessment platform. I also like the emphasis on evidence-backed findings and publication-ready reports rather than just generating alerts.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@mehdi_boutayeb\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mehdi_boutayeb<\/a>&nbsp;Congrats on the launch! It\u2019s refreshing to see a security platform that avoids the AI hype and tackles complex environments like Active Directory and Kubernetes under a GPLv3 license.<\/p>\n<p>Quick question: Since the orchestrator delegates tasks rather than executing tools directly, how do you manage or mitigate potential LLM hallucinations when it parses complex command outputs from tools like NetExec or BloodHound?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Strong launch. I like the split between model planning and a separate execution layer. For security work, the useful artifact is not only the report, it is the chain from target scope to authorized tool to command output to finding. Do you keep that run record exportable for client or audit review?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@blah_mad\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@blah_mad<\/a>&nbsp;Yes, auditability was one of the design goals.<\/p>\n<\/p>\n<p>In the open-source edition, you can export a complete session record, including the LLM reasoning process, executed commands, raw tool outputs and the resulting findings. This makes it possible to review how a conclusion was reached rather than only seeing the final report.<\/p>\n<\/p>\n<p>In the Professional Edition, the same execution history is preserved and accessible through the session history interface. Teams can review commands, AI observations, raw outputs and generated findings for each assessment.<\/p>\n<\/p>\n<p>On top of that, the dashboard keeps a historical view of campaigns and vulnerabilities. Findings can be analyzed across projects, campaigns, severity levels and vulnerability categories. The platform also provides interactive trend visualizations, allowing teams to track whether vulnerability counts are increasing or decreasing over time and drill down into individual findings for investigation and remediation tracking.<\/p>\n<\/p>\n<p>Our goal is to make every finding traceable back to the evidence and execution path that produced it, rather than treating the LLM as a black box.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>What\u2019s the setup like to run a full assessment, and can you plug in your own tools or internal scanners?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@thamibenjelloun\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thamibenjelloun<\/a>&nbsp;Hello, The setup is intentionally lightweight. Darkmoon is Docker-based, so a typical installation is essentially:<\/p>\n<pre><code>git clone <a href=\"https:\/\/github.com\/ASCIT31\/Dark-Moon.git\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/github.com\/ASCIT31\/Dark-...<\/a>\ncd Dark-Moon\n.\/install.sh\n<\/code><\/pre>\n<p>Once configured, you simply provide a target and the orchestrator handles methodology selection, tool execution, evidence collection and reporting.<\/p>\n<\/p>\n<p>Regarding custom tooling: yes. Darkmoon was designed around an MCP-based architecture and tool orchestration layer rather than a fixed scanner pipeline. The platform already integrates 80+ tools (Nuclei, NetExec, BloodHound, Impacket, Kubescape, WPScan, SQLMap, etc.), but organizations can extend workflows, methodologies and toolchains to fit their own environments.<\/p>\n<\/p>\n<p>Using the install-dev workflow, you can also install additional tools directly into the dedicated toolbox container, register them in the MCP server&#8217;s authorized tools list, and expose them to the orchestration layer. Teams can go further by creating their own methodologies, custom workflows and agent playbooks to adapt Darkmoon to internal processes, proprietary scanners or specialized assessment scenarios.<\/p>\n<\/p>\n<p>More details are available in the documentation:<br \/><a href=\"https:\/\/docs.dark-moon.org\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/docs.dark-moon.org\/<\/a><\/p>\n<\/p>\n<p>The philosophy is simple: the AI reasons, MCP controls execution, and the tools remain the source of truth.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#15<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/AEJPWN3FQVSSGD\" class=\"app-title\">Foglamp<\/a><\/p>\n<div class=\"one-liner\">Ship AI agents you can actually see<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">90<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Foglamp\u662f\u4e00\u4e2a\u4e13\u4e3a\u57fa\u4e8eVercel AI SDK\u6784\u5efa\u7684AI\u4ee3\u7406\u63d0\u4f9b\u7684\u5f00\u6e90\u53ef\u89c2\u6d4b\u6027\u5c42\uff0c\u8ba9\u5f00\u53d1\u8005\u901a\u8fc7\u4e24\u884c\u4ee3\u7801\u5373\u53ef\u5b9e\u65f6\u8ffd\u8e2a\u6bcf\u4e00\u6b21AI\u8c03\u7528\u7684\u6210\u672c\u3001\u5ef6\u8fdf\u3001\u4ee4\u724c\u6d88\u8017\u3001\u5206\u5e03\u5f0f\u8ffd\u8e2a\u3001\u8bc4\u4f30\u548c\u544a\u8b66\uff0c\u89e3\u51b3AI\u4ee3\u7406\u5728\u751f\u4ea7\u73af\u5883\u4e2d\u201c\u770b\u4e0d\u89c1\u3001\u63a7\u4e0d\u4f4f\u201d\u7684\u8fd0\u7ef4\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/2f82f3db-f532-4326-ba35-0029fccfbf28.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=iLXbBimIrII\"><source src=\"https:\/\/www.youtube.com\/watch?v=iLXbBimIrII\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/c7f33ddc-4bdd-4fcf-bc9d-f91df6ee89e3.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Open Source<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">GitHub<\/span><br \/>\n            <span class=\"tag\">Tech<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u4ee3\u7406\u53ef\u89c2\u6d4b\u6027<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90<\/span><br \/>\n            <span class=\"tag\">Vercel AI SDK<\/span><br \/>\n            <span class=\"tag\">\u6210\u672c\u76d1\u63a7<\/span><br \/>\n            <span class=\"tag\">\u5ef6\u8fdf\u8ffd\u8e2a<\/span><br \/>\n            <span class=\"tag\">\u5206\u5e03\u5f0f\u8ffd\u8e2a<\/span><br \/>\n            <span class=\"tag\">LLM\u8bc4\u4f30<\/span><br \/>\n            <span class=\"tag\">\u544a\u8b66<\/span><br \/>\n            <span class=\"tag\">\u81ea\u6258\u7ba1<\/span><br \/>\n            <span class=\"tag\">\u667a\u80fd\u8fd0\u7ef4<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u5173\u6ce8\u4e0eLangfuse\/Arize\u7b49\u901a\u7528\u5de5\u5177\u7684\u5dee\u5f02\uff0c\u8ba4\u4e3a\u4ee3\u7406\u53ef\u89c2\u6d4b\u6027\u5c06\u6210\u521a\u9700\u3002\u6838\u5fc3\u8bc9\u6c42\u5305\u62ec\uff1a\u5546\u4e1a\u7ea7\u8ffd\u8e2a\uff08\u5982\u4ea4\u63a5\u3001\u5ba1\u6279\u3001\u5931\u8d25\u8def\u5f84\uff09\u3001\u66f4\u5e95\u5c42\u7684\u51b3\u7b56\u539f\u56e0\u5206\u6790\u3001\u6210\u672c\u98d9\u5347\u548c\u6027\u80fd\u9000\u5316\u7684\u5b9e\u65f6\u544a\u8b66\u3002Maker\u5f3a\u8c03\u5df2\u652f\u6301\u5168\u94fe\u8def\u8ffd\u8e2a\u3001\u751f\u4ea7\u7ea7\u8bc4\u4f30\u548c\u5206\u949f\u7ea7\u544a\u8b66\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Foglamp\u5207\u5165\u4e86\u4e00\u4e2a\u7cbe\u51c6\u4e14\u7d27\u8feb\u7684\u7ec6\u5206\u8d5b\u9053\u2014\u2014AI\u4ee3\u7406\u7684\u751f\u4ea7\u7ea7\u53ef\u89c2\u6d4b\u6027\u3002\u5b83\u7684\u806a\u660e\u4e4b\u5904\u5728\u4e8e\u653e\u5f03\u4e86\u201c\u5927\u800c\u5168\u201d\u7684\u901a\u7528\u76d1\u63a7\u5e73\u53f0\u8def\u7ebf\uff0c\u800c\u662f\u4e13\u653bVercel AI SDK\u8fd9\u4e00\u751f\u6001\u4f4d\u3002\u8fd9\u610f\u5473\u7740\u5b83\u80fd\u505a\u5230\u201c\u4e24\u884c\u4ee3\u7801\u201d\u7684\u65e0\u611f\u63a5\u5165\uff0c\u800c\u8fd9\u6b63\u662f\u5f00\u53d1\u8005\u6700\u6e34\u671b\u7684\u4f53\u9a8c\u2014\u2014\u4f4e\u4fb5\u5165\u6027\u3001\u9ad8\u56de\u62a5\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u4ea7\u54c1\u4ef7\u503c\u770b\uff0c\u201c\u6210\u672c\u98d9\u5347+\u7b54\u6848\u53d8\u5dee+\u5ba2\u6237\u6295\u8bc9\u201d\u8fd9\u4e2a\u573a\u666f\u592a\u5178\u578b\u4e86\uff0c\u51e0\u4e4e\u662f\u6bcf\u4e00\u5bb6\u63a5\u5165AI agent\u7684\u56e2\u961f\u90fd\u4f1a\u7ecf\u5386\u7684\u5669\u68a6\u3002Foglamp\u628a\u201c\u6210\u672c\u201d\u548c\u201c\u8d28\u91cf\u201d\u653e\u5728\u540c\u4e00\u4e2a\u9762\u677f\u4e0a\u76d1\u63a7\uff0c\u5e76\u652f\u6301\u5206\u949f\u7ea7\u544a\u8b66\uff0c\u8fd9\u662f\u89e3\u51b3\u201cAI\u9ed1\u76d2\u201d\u95ee\u9898\u7684\u5173\u952e\u4e00\u6b65\u3002\u4f46\u5766\u7387\u5730\u8bf4\uff0c\u5b83\u76ee\u524d\u66f4\u50cf\u4e00\u4e2a\u201c\u4e8b\u540e\u201d\u76d1\u63a7\u5de5\u5177\u3002Maker\u63d0\u5230\u7684\u201cobserve\u2192act\u201d\u95ed\u73af\u2014\u2014\u6bd4\u5982\u81ea\u52a8\u63a8\u8350\u66f4\u4fbf\u5b9c\u7684\u6a21\u578b\u3001\u6740\u6b7b\u5931\u63a7agent\u2014\u2014\u624d\u662f\u771f\u6b63\u62c9\u5f00\u5dee\u8ddd\u7684\u5730\u65b9\u3002\u5982\u679c\u53ea\u505c\u7559\u5728\u4eea\u8868\u76d8\u548c\u544a\u8b66\u4e0a\uff0c\u5f88\u96be\u548cLangfuse\u3001Arize\u5f62\u6210\u7684\u751f\u6001\u7ade\u4e89\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u53e6\u5916\uff0c\u5bf9\u975eVercel AI SDK\u7528\u6237\u6765\u8bf4\uff0cFoglamp\u51e0\u4e4e\u65e0\u7528\u3002\u8fd9\u610f\u5473\u7740\u5b83\u7684\u5e02\u573a\u5929\u82b1\u677f\u76f4\u63a5\u53d6\u51b3\u4e8eAI SDK\u7684\u5e02\u5360\u7387\u548c\u5f00\u53d1\u8005\u7c98\u6027\u3002\u77ed\u671f\u770b\u662f\u62a4\u57ce\u6cb3\uff0c\u957f\u671f\u770b\u53ef\u80fd\u6f14\u53d8\u4e3a\u684e\u688f\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7b80\u8a00\u4e4b\uff0c\u8fd9\u662f\u4e00\u4e2a\u201c\u5c0f\u800c\u950b\u5229\u201d\u7684\u5de5\u5177\uff0c\u7784\u51c6\u4e86\u6700\u75db\u7684\u70b9\uff0c\u4f46\u80fd\u4e0d\u80fd\u4ece\u201c\u89c2\u6d4b\u201d\u8dc3\u5347\u5230\u201c\u81ea\u52a8\u5e72\u9884\u201d\uff0c\u624d\u662f\u51b3\u5b9a\u5b83\u80fd\u5426\u6210\u4e3aAI\u57fa\u5efa\u6807\u914d\u7684\u5173\u952e\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Foglamp<\/span>\n                <\/div>\n<div class=\"comment-content\">The open source observability layer for AI agents built on the Vercel AI SDK. Costs, latency, tokens, distributed traces, evals, and alerts for every generateText \/ streamText call \u2014 in two lines.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\ud83d\udc4b I&#8217;m Gustavo, one of the makers of Foglamp.<\/p>\n<p>I kept shipping AI agents I couldn&#8217;t actually see. Costs would creep up with no idea which agent was to blame. An agent would quietly start looping and burn tokens for an hour. Didn&#8217;t find a great alternative to AI SDK, so I built one.<\/p>\n<p>Foglamp: observability for AI agents.<\/p>\n<p>Wrap your model in one line and you get, on every call:<br \/>\n&#8211; \ud83d\udcb8 Cost, latency &amp; token usage \u2014 per agent, per workflow, even reasoning tokens<br \/>\n&#8211; \ud83d\udd2d Distributed traces of the whole run, with replay<br \/>\n&#8211; \u2705 Evals on your production traffic (LLM-as-judge + code checks like &#8220;No PII&#8221;)<br \/>\n&#8211; \ud83d\udea8 Alerts when spend spikes or pass-rate drops<\/p>\n<p>It&#8217;s open source (Apache 2.0) and self-hostable, there&#8217;s a free hosted tier, and you can see your first trace in less than 2 minutes.<\/p>\n<p>Where we&#8217;re headed: closing the loop from observe \u2192 act \u2014 recommending cheaper models that still pass your evals, killing runaway agents before they cost you, and optimizing prompts from your own failure traces.<\/p>\n<p>Would genuinely love your feedback \ud83d\ude4f <\/p>\n<p>What&#8217;s the scariest way an agent has surprised you in production?<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The &#8216;costs doubled, answers worse, then customers started complaining&#8217; sequence is the most relatable AI horror story I&#8217;ve seen this year. Finally something that catches it before the Twitter thread starts. Congrats on the launch!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@laraib\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@laraib<\/a>&nbsp;Thank you. That sequence is literally the story we built the landing page around: ships clean week 1, costs double and answers get worse by week 3, complaint rolls in week 4. We caught a 10\u00d7 cost regression on our own stack 3 days after shipping. Catching it before the X thread starts is the entire point \ud83d\ude04 Appreciate it!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Agent observability feels like it will become mandatory. For business agents, the question is not only cost\/tokens, but \u201cwhat did the agent try, why did it decide that, and when did it need human help?\u201d Are you thinking about business-level traces like handoffs, approvals, and failed workflow outcomes?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@rahulbhavsar\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rahulbhavsar<\/a>&nbsp;Great question, and that&#8217;s exactly the layer we care about. Today every run is a full span tree, so you can already see what the agent tried, the tool calls it made, and where it failed \u2014 step by step, down to the token. Multi-step pipelines group under a workflow, conversation turns under a session. The &#8220;why did it decide that&#8221; part comes from capturing reasoning + the exact prompt\/streamed response on every call, plus LLM judges that score things like tool selection and groundedness.<\/p>\n<\/p>\n<p>The part you&#8217;re pointing at \u2014 explicit handoffs, approval gates, failed-outcome states as first-class business events \u2014 isn&#8217;t a dedicated view yet. Right now you&#8217;d model those as tool calls \/ workflow steps with metadata. Turning them into proper business-level traces is squarely on the roadmap. Really appreciate the framing.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on launch! I would love to know how is it different to other observability platform like langfuse\/Arize?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ashishkingdom\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ashishkingdom<\/a>&nbsp;Thanks! Fair question. The biggest difference is focus: Foglamp is built specifically for the Vercel AI SDK. Instrumentation is two lines \u2014 registerTelemetry(foglamp()) \u2014 and you get full nested traces, per-agent rollups, cost, and evals with zero manual span wiring.<\/p>\n<\/p>\n<p>Two other things set it apart: (1) quality + cost live in one place \u2014 evals (code checks and LLM judges) run against real production traffic, not a static test set, and cost is computed per call \/ agent \/ customer from live pricing; (2) alerts evaluate every minute, so you find a regression from a dashboard, not a customer. It&#8217;s also Apache 2.0 and self-hostable with docker compose up. Langfuse\/Arize are great general-purpose tools \u2014 we&#8217;re narrower and deeper for teams shipping on the AI SDK.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@gustavofior\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"gustavofior\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@gustavofior<\/a> Visibility is a big missing layer for agents. It\u2019s hard to trust an autonomous workflow if you can\u2019t see what it tried, where it failed, and what changed along the way. Agent observability will probably become a default expectation.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@alpertayfurr\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alpertayfurr<\/a>&nbsp;Couldn&#8217;t agree more \u2014 that&#8217;s the whole reason it exists. &#8220;What it tried, where it failed, what changed&#8221; is literally the trace view. We even fingerprint the model on every call, so you catch silent weight changes when a provider swaps something under you. Thanks for the support \ud83d\ude4f<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#16<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/BUDNXXKQARSEZ2\" class=\"app-title\">Mutter AI Dictation<\/a><\/p>\n<div class=\"one-liner\">Private AI dictation that lets you operate offline.<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">85<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Mutter AI Dictation \u662f\u4e00\u6b3e\u652f\u6301\u5b8c\u5168\u79bb\u7ebf\u8fd0\u884c\u7684\u79c1\u4ebaAI\u542c\u5199\u5de5\u5177\uff0c\u80fd\u5728\u4f60\u6253\u5b57\u65f6\u5feb\u901f\u5c06\u53e3\u8bed\u5316\u7684\u60f3\u6cd5\u6574\u7406\u6210\u6210\u54c1\u6587\u5b57\uff0c\u4e3b\u8981\u89e3\u51b3\u7528\u6237\u5bf9\u9690\u79c1\u7684\u62c5\u5fe7\u4ee5\u53ca\u4f20\u7edf\u542c\u5199\u8f6f\u4ef6\u53ea\u80fd\u8f6c\u5f55\u3001\u65e0\u6cd5\u7406\u89e3\u771f\u5b9e\u610f\u56fe\u7684\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/2e3bd02a-1cf0-4c18-a97c-34c17c6ab60f.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/c7be0d3a-7d93-4bd3-8a90-97849814191a.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/79b64a80-00c1-4d50-83db-de41f237e192.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b621480c-dee8-4074-bf1d-f2cb9a3e3831.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/fc9767d2-ef2c-4f72-a341-da3168952f49.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/9e2542ec-da83-48a8-87aa-452341294bd2.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/a076bfe0-e574-4b2b-9007-a097e8dff93c.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">Audio<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u8bed\u97f3\u542c\u5199<\/span><br \/>\n            <span class=\"tag\">\u79bb\u7ebf\u6a21\u5f0f<\/span><br \/>\n            <span class=\"tag\">\u9690\u79c1\u4fdd\u62a4<\/span><br \/>\n            <span class=\"tag\">AI\u610f\u56fe\u7406\u89e3<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u8f6c\u5f55<\/span><br \/>\n            <span class=\"tag\">Mac\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u667a\u80fd\u5199\u4f5c\u8f85\u52a9<\/span><br \/>\n            <span class=\"tag\">\u591a\u8bed\u8a00\u652f\u6301<\/span><br \/>\n            <span class=\"tag\">\u6548\u7387\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u6587\u5b57\u5904\u7406<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u79f0\u8d5e\u5176\u201c\u610f\u56fe\u6a21\u5f0f\u201d\u8d85\u8d8a\u5355\u7eaf\u8f6c\u5f55\uff0c\u80fd\u7406\u89e3\u64cd\u4f5c\u610f\u56fe\u3002\u4f46\u5173\u952e\u95ee\u9898\u96c6\u4e2d\u5728\uff1a\u5982\u4f55\u5e73\u8861\u672c\u5730\u9690\u79c1\u4e0e\u4e91\u7aef\u7684\u4fbf\u5229\u6027\uff1f\u4e0e\u514d\u8d39\u5f00\u6e90\u5de5\u5177Handy Computer\u76f8\u6bd4\uff0c\u5176\u4ed8\u8d39\u4ef7\u503c\u662f\u5426\u8db3\u591f\u6e05\u6670\uff1f\u6b64\u5916\uff0c\u8be2\u95ee\u591a\u8bed\u8a00\u652f\u6301\uff08\u5f53\u524d\u672c\u5730\u4ec5\u652f\u630124\u79cd\u8bed\u8a00\uff09\u548c\u566a\u97f3\u73af\u5883\u8868\u73b0\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Mutter \u7684\u5b9a\u4f4d\u5f88\u7cbe\u51c6\uff1a\u5207\u4e2d\u4e86\u77e5\u8bc6\u5de5\u4f5c\u8005\u5bf9\u201c\u9690\u79c1\u201d\u548c\u201c\u6548\u7387\u201d\u7684\u53cc\u91cd\u7126\u8651\u3002\u5b83\u6ca1\u6709\u50cf\u4f20\u7edf\u542c\u5199\u8f6f\u4ef6\u90a3\u6837\u53ea\u505a\u201c\u97f3\u9891-\u6587\u5b57\u201d\u7684\u642c\u8fd0\u5de5\uff0c\u800c\u662f\u8bd5\u56fe\u505a\u201c\u60f3\u6cd5-\u6210\u54c1\u201d\u7684\u7ffb\u8bd1\u5b98\u3002\u610f\u56fe\u6a21\u5f0f\u786e\u5b9e\u662f\u4eae\u70b9\u2014\u2014\u5b83\u89e3\u51b3\u4e86\u7528\u6237\u201c\u8bf4\u4e86\u4e00\u5806\u5e9f\u8bdd\uff0c\u8fd8\u5f97\u81ea\u5df1\u91cd\u65b0\u5199\u201d\u7684\u9690\u5f62\u65f6\u95f4\u6210\u672c\uff0c\u8fd9\u6bd4\u5355\u7eaf\u63d0\u9ad8\u6253\u5b57\u901f\u5ea6\u66f4\u6709\u4ef7\u503c\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u95ee\u9898\u4e5f\u5f88\u660e\u663e\u3002\u7b2c\u4e00\uff0c\u9690\u79c1\u548c\u5b89\u5168\u662f\u7edd\u5bf9\u521a\u9700\uff0c\u4f46\u5b8c\u5168\u79bb\u7ebf\u610f\u5473\u7740\u672c\u5730\u8ba1\u7b97\u80fd\u529b\u53d7\u9650\uff0c\u610f\u56fe\u6a21\u5f0f\u7684\u8d28\u91cf\u548c\u54cd\u5e94\u901f\u5ea6\u80fd\u5426\u4e0e\u4e91\u7aef\u7ade\u54c1\u5339\u654c\uff1f\u5982\u679c\u610f\u56fe\u6a21\u5f0f\u5728\u79bb\u7ebf\u65f6\u53d8\u5f97\u7b28\u62d9\uff0c\u90a3\u201c\u9690\u79c1\u201d\u5c31\u6210\u4e86\u964d\u7ea7\u4f53\u9a8c\u7684\u501f\u53e3\u3002\u7b2c\u4e8c\uff0c\u4e0eHandy Computer\u7b49\u514d\u8d39\u5f00\u6e90\u5de5\u5177\u76f8\u6bd4\uff0cMutter\u7684\u5dee\u5f02\u5316\u4ec5\u5728\u4e8e\u201c\u66f4\u7cbe\u826f\u7684\u610f\u56fe\u7406\u89e3\u548c\u6210\u54c1\u683c\u5f0f\u5316\u201d\uff0c\u8fd9\u5c42\u62a4\u57ce\u6cb3\u5f88\u6d45\u2014\u2014\u5f00\u6e90\u793e\u533a\u5b8c\u5168\u53ef\u4ee5\u7528\u672c\u5730\u5927\u6a21\u578b\u5feb\u901f\u590d\u523b\u201c\u7406\u89e3\u610f\u56fe\u201d\u7684\u529f\u80fd\u3002\u7b2c\u4e09\uff0c100\u79cd\u8bed\u8a00\u7684\u4e91\u7aef\u652f\u6301\u542c\u8d77\u6765\u4e0d\u9519\uff0c\u4f46\u5f00\u53d1\u8005\u5e76\u672a\u8bf4\u660e\u610f\u56fe\u6a21\u5f0f\u5728\u975e\u82f1\u8bed\u73af\u5883\u4e0b\u7684\u8868\u73b0\uff0c\u800c\u8fd9\u6070\u6070\u662f\u5168\u7403\u5316\u7528\u6237\u7684\u75db\u70b9\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u603b\u4f53\u800c\u8a00\uff0cMutter\u662f\u4e00\u4e2a\u201c\u6709\u60f3\u6cd5\u7684\u597d\u4ea7\u54c1\u201d\uff0c\u4f46\u5c1a\u672a\u8bc1\u660e\u81ea\u5df1\u80fd\u5728\u9690\u79c1\u548c\u667a\u80fd\u4e4b\u95f4\u627e\u5230\u4e0d\u53ef\u66ff\u4ee3\u7684\u5e73\u8861\u70b9\u3002\u7528\u6237\u613f\u610f\u4e3a\u201c\u4e00\u6b21\u6210\u7a3f\u201d\u4ed8\u8d39\uff0c\u4f46\u524d\u63d0\u662f\u8fd9\u7b14\u94b1\u80fd\u6362\u6765\u771f\u6b63\u7a33\u5b9a\u3001\u806a\u660e\u4e14\u503c\u5f97\u4fe1\u8d56\u7684\u672c\u5730\u4f53\u9a8c\u3002\u5982\u679c\u610f\u56fe\u6a21\u5f0f\u53ea\u662f\u5b9e\u9a8c\u5ba4\u91cc\u7684\u82b1\u62db\uff0c\u7528\u6237\u8fdf\u65e9\u4f1a\u8f6c\u5411\u66f4\u4fbf\u5b9c\u6216\u66f4\u5f00\u653e\u7684\u66ff\u4ee3\u54c1\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Mutter AI Dictation<\/span>\n                <\/div>\n<div class=\"comment-content\">Speak the rough thought and Mutter shapes it into finished writing right where you type, about 3x faster than typing. A 100% on-device mode keeps sensitive words on your Mac.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">I started dictating instead of typing and basically never went back. It&#8217;s how I get thoughts out of my head now and into a doc, a Slack, an email. I can&#8217;t really work without it anymore.<\/p>\n<p>Two things kept bugging me though.<\/p>\n<p>The first was privacy. I was talking through contracts, half-formed ideas, stuff about my team, and shipping all of it to someone else&#8217;s servers to get transcribed. The more I leaned on it, the more that bothered me. I wanted a version where the sensitive stuff just never left my machine. So that&#8217;s the first thing we built. Mutter has a fully on-device mode. Turn it on and your audio is transcribed locally and never uploaded. You can run it with wifi off and it still works.<\/p>\n<p>The second was that these apps clean up what I said, but they don&#8217;t get what I was trying to do. I&#8217;d ramble &#8220;reply to Josh, deck looks good, cut slide four&#8221; and get back a clean transcript of exactly that. Useful, but I still had to go write the actual email. I wanted it to read the context and hand me the finished thing.<\/p>\n<p>So Mutter has two modes, both always on. Dictate is the simple one. You talk, it writes clean text, no inference, no surprises. You don&#8217;t want a model second-guessing you when you&#8217;re just taking notes. Intent mode is the other one. You riff, and based on what you&#8217;re doing, Mutter writes what you actually meant.<\/p>\n<p>That&#8217;s the whole thing. Private when it counts, and it finishes the thought instead of just transcribing it.<\/p>\n<p>Would love feedback, especially on Intent mode. It&#8217;s the part I&#8217;m most excited about and the part I most want to get right.<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@steven_billings\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@steven_billings<\/a>&nbsp;What stands out is how it goes beyond just typing words. While many voice tools only transcribe, this one leans into understanding what you&#8217;re trying to do. The real shift shows up when it anticipates intent instead of waiting for exact commands.<\/p>\n<p>What sets it apart? On-device processing matters most when you handle private data every day. Founders notice this first. So do those running operations. Privacy stays local instead of traveling across networks.<\/p>\n<p>What keeps personal data safe while making sure Intent mode still works well?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@steven_billings\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@steven_billings<\/a>&nbsp;How much control do you want over what stays on-device vs. what\u2019s sent to the cloud? Would you trade any convenience for stronger privacy guarantees?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Super interesting! What does Intent mean?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Hey<a href=\"https:\/\/www.producthunt.com\/@mattyyyy\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mattyyyy<\/a>&nbsp;! Intent mode is intelligent dictation. You know how you&#8217;ll have an idea and just blurt it out, but it comes out kind of a mess and you still have to go turn it into a real email or message? That&#8217;s what Intent mode handles. One hotkey gives you straight dictate mode, which just simply cleans up what you said and inserts it. But another hotkey gives you intent mode.<\/p>\n<\/p>\n<p>You hold a key, talk it through however it comes out of your head, and it figures out what you were actually trying to make. Could be an email, a Slack message, a task list, a quick memo. Then it gives you the cleaned up version to look over before it goes in.<\/p>\n<\/p>\n<p>So you do the thinking-out-loud part, and it does the part where you&#8217;d usually have to stop and make it sound right.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on the launch! What other languages does it support other than English? Does it perform well in noisy environement?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ashishkingdom\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ashishkingdom<\/a>&nbsp;Our cloud mode has an auto-detect for language and can support over 100 languages natively. The private, on-device mode currently supports Bulgarian, Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, French, German, Greek, Hungarian, Italian, Latvian, Lithuanian, Maltese, Polish, Portuguese, Romanian, Russian, Slovak, Slovenian, Spanish, Swedish, and Ukrainian. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>How is this different from <a href=\"https:\/\/handy.computer\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">handy.computer<\/a> ?<\/p>\n<p><a href=\"https:\/\/www.producthunt.com\/products\/handy-4\" data-node-type=\"mention\" data-mention-type=\"product\" data-mention-id=\"handy-4\" target=\"_blank\" rel=\"noopener\">@Handy<\/a> does the same thing for free + open-source.<\/p>\n<p>I can also select models taht I want. Completely local.<\/p>\n<p>Would love to know your thoughts on this.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@sourabh_kapure\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sourabh_kapure<\/a>&nbsp;Handy&#8217;s genuinely good for anyone looking for a free\/open-source grade option. The difference is what comes out: Handy gives you the ability to speak into any text field. Good start, but we wanted more. Mutter gives you the <em>finished<\/em> writing with filler stripped, formatted, and Intent Mode reshapes a rough thought into a send-ready email\/message\/prompt before it pastes. And it&#8217;s also has the full on-device in private mode when you need it. Mutter also does instant translation at the same time into dozens of languages. Different philosophy on models (we&#8217;re opinionated vs. swappable). Room for both \ud83d\ude4f. We think people will like Mutter as an upgrade over Handy.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#17<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/E2XGH7YXKZDAJE\" class=\"app-title\">Narration Room<\/a><\/p>\n<div class=\"one-liner\">Turn source text into editable multi-voice scripts<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">84<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Narration Room \u662f\u4e00\u6b3e Mac \u539f\u751f\u5e94\u7528\uff0c\u5c06\u6587\u7ae0\u3001\u6587\u6863\u6216\u53e3\u8ff0\u5185\u5bb9\u4e00\u952e\u8f6c\u5316\u4e3a\u53ef\u7f16\u8f91\u7684\u591a\u89d2\u8272\u6709\u58f0\u811a\u672c\uff0c\u5e2e\u52a9\u521b\u4f5c\u8005\u3001\u64ad\u5ba2\u548c\u521b\u4f5c\u8005\u5728\u672c\u5730\u79bb\u7ebf\u5b8c\u6210\u4ece\u6587\u5b57\u5230\u591a\u89d2\u8272\u97f3\u9891\u7684\u5b8c\u6574\u5236\u4f5c\uff0c\u89e3\u51b3\u4f20\u7edf TTS \u5de5\u5177\u65e0\u6cd5\u7cbe\u7ec6\u5206\u89d2\u8272\u3001\u8c03\u8282\u8bed\u6c14\u548c\u79bb\u7ebf\u5904\u7406\u7684\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/0023a9b4-c7e0-4e4b-b615-4a762afe0b0c.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/619104ae-4abe-4e51-bfd5-362754a1dac2.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/83ef00f9-5a45-41cf-9aa2-24a9b4610a54.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b8c00c51-7117-4910-a015-f9033255cfb4.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/c6f854c4-85fc-4a7b-aed6-a23ef2dba2aa.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/6b0b9031-a6a7-4475-84a0-2594418f4cde.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/0512c353-0844-446c-92a0-75905eebb75c.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/6b7e57c6-9ae6-4f90-8c17-86edb95b4724.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/4aff2227-85cc-476f-a5ac-1121d4e330de.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/5db69543-bf1f-4860-a96a-e8f7ed07eae7.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/90a25167-d829-4a1e-be55-8bc1e4beb4d2.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b05297c8-6235-4c3c-9e5d-6278d6d826ff.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/957716fb-3575-4991-98b8-f5fdafe8f381.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/4962510a-8c7e-4637-bcad-c76289325f7a.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/VlNleXxkJvs\"><source src=\"https:\/\/youtu.be\/VlNleXxkJvs\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Mac<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">Audio<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Mac \u539f\u751f\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u591a\u89d2\u8272\u914d\u97f3<\/span><br \/>\n            <span class=\"tag\">\u6587\u672c\u8f6c\u8bed\u97f3\u811a\u672c\u7f16\u8f91\u5668<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u79bb\u7ebf AI \u914d\u97f3<\/span><br \/>\n            <span class=\"tag\">\u64ad\u5ba2\u5236\u4f5c\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u6709\u58f0\u5185\u5bb9\u521b\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u8bed\u97f3\u5408\u6210<\/span><br \/>\n            <span class=\"tag\">PDF\/Word \u5bfc\u5165<\/span><br \/>\n            <span class=\"tag\">\u542c\u5199\u6a21\u5f0f<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u770b\u597d\u5176\u672c\u5730\u79bb\u7ebf\u4e0e\u9690\u79c1\u4f18\u5148\u7684\u5b9a\u4f4d\uff0c\u8ba4\u4e3a\u662f\u4ece\u4e91\u7aef\u6cdb\u6ee5\u4e2d\u7684\u4e00\u80a1\u6e05\u6d41\u3002\u4e00\u4f4d\u64ad\u5ba2\u4e3b\u8be2\u95ee\u957f\u7bc7\u5e45\u3001\u5bf9\u8bdd\u5f0f\u573a\u666f\u7684\u8868\u73b0\uff0c\u5e0c\u671b\u4e86\u89e3\u5176\u80fd\u5426\u9ad8\u6548\u5904\u7406\u81ea\u7136\u5bf9\u8bdd\u800c\u975e\u7b80\u77ed\u65c1\u767d\u3002\u5f00\u53d1\u8005\u56de\u5e94\u4e86\u79bb\u7ebf\u7b56\u7565\uff0c\u5e76\u627f\u8bfa\u672a\u6765\u589e\u52a0\u66f4\u591a\u8bed\u97f3\u548c\u81ea\u7136\u5ea6\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                \u5728\u201c\u4e91\u7aefAI\u914d\u97f3\u201d\u6cdb\u6ee5\u7684\u4eca\u5929\uff0cNarration Room \u505a\u4e86\u4e00\u4e2a\u6781\u5176\u6e05\u9192\u7684\u9009\u62e9\uff1a\u56de\u5f52\u7528\u6237\u4e3b\u6743\u3002\u5b83\u672c\u8d28\u4e0a\u4e0d\u662f\u53c8\u4e00\u4e2a TTS \u5de5\u5177\uff0c\u800c\u662f\u4e00\u4e2a\u201c\u811a\u672c\u7f16\u6392\u5668+\u672c\u5730\u63a8\u7406\u5f15\u64ce\u201d\u7684\u7f1d\u5408\u4f53\u3002\u4ef7\u503c\u5728\u4e8e\u5b83\u89e3\u51b3\u4e86\u884c\u4e1a\u5185\u4e00\u4e2a\u88ab\u5ffd\u89c6\u7684\u65ad\u5c42\uff1a\u8ba9\u521b\u4f5c\u8005\u4e70\u8d26\u7684\u4e0d\u662f\u5408\u6210\u97f3\u8d28\u591a\u903c\u771f\uff0c\u800c\u662f\u5bf9\u201c\u8c01\u5728\u4ec0\u4e48\u65f6\u5019\u8bf4\u4ec0\u4e48\u8bdd\u201d\u7684\u7cbe\u51c6\u63a7\u5236\u529b\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u95ee\u9898\u5728\u4e8e\uff0c\u5b83\u76ee\u524d\u5b9a\u4f4d\u7565\u663e\u5c34\u5c2c\u3002\u5bf9\u4e8e\u9ad8\u7aef\u64ad\u5ba2\u5236\u4f5c\u4eba\uff0c40 \u6b3e\u672c\u5730\u8bed\u97f3\u7684\u62df\u771f\u5ea6\u4e0e\u4e91\u7aef\u7ade\u54c1\uff08\u5982 ElevenLabs\uff09\u4ecd\u6709\u660e\u663e\u5dee\u8ddd\uff0c\u4ed6\u4eec\u66f4\u53ef\u80fd\u628a\u5b83\u4f5c\u4e3a\u201c\u8349\u7a3f\u811a\u672c\u53d1\u751f\u5668\u201d\u800c\u975e\u6700\u7ec8\u53d1\u5e03\u5de5\u5177\u3002\u5bf9\u4e8e\u666e\u901a\u521b\u4f5c\u8005\u6216\u6559\u80b2\u8005\uff0c\u6838\u5fc3\u58c1\u5792\u53c8\u592a\u9ad8\u2014\u2014\u4ed6\u4eec\u662f\u5426\u9700\u8981\u591a\u89d2\u8272\u7f16\u8f91\uff1f\u662f\u5426\u613f\u610f\u4e3a\u8fd9\u4e2a\u7ec6\u5206\u529f\u80fd\u4ed8\u8d39\uff1f\u79bb\u7ebf\u5f53\u7136\u662f\u5356\u70b9\uff0c\u4f46\u7528\u6237\u771f\u6b63\u5173\u5fc3\u7684\u662f\u201c\u97f3\u6548\u80fd\u7528\u3001\u6d41\u7a0b\u8db3\u591f\u5feb\u201d\uff0c\u800c\u975e\u5355\u7eaf\u7684\u9009\u62e9\u6743\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5176\u771f\u6b63\u7684\u53d1\u529b\u70b9\uff0c\u5e94\u8be5\u843d\u5728\u201c\u4ece\u4efb\u4f55\u6587\u672c\u6765\u6e90\u5230\u53ef\u64ad\u653e\u97f3\u9891\u201d\u7684\u5168\u6d41\u7a0b\u6700\u77ed\u8def\u5f84\u4e0a\uff0c\u5e76\u6b7b\u78d5\u672c\u5730\u8bed\u97f3\u7684\u81ea\u7136\u5ea6\u548c\u60c5\u7eea\u4e30\u5bcc\u5ea6\u3002\u5982\u679c\u53ea\u662f\u505a\u4e00\u4e2a\u66f4\u590d\u6742\u7684 Mac \u7248\u201c\u6717\u8bfb\u5668\u201d\uff0c\u90a3\u5f88\u96be\u8d70\u51fa\u5c0f\u4f17\u5de5\u5177\u7684\u6b7b\u80e1\u540c\u3002\u5b83\u4e0d\u8be5\u53ea\u6ee1\u8db3\u4e8e\u505a\u201c\u4e0d\u8054\u7f51\u7684\u597d\u4eba\u201d\uff0c\u800c\u5e94\u505a\u201c\u5728\u79bb\u7ebf\u65f6\u80fd\u628a\u97f3\u9891\u505a\u5230\u6700\u597d\u7684\u4eba\u201d\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Narration Room<\/span>\n                <\/div>\n<div class=\"comment-content\">Narration Room is a native Mac app, not just a text-to-speech box. It turns source text into editable multi-voice scripts, then lets creators cast voices, adjust delivery, preview on a visual timeline, and export polished audio. Standouts: source-grounded AI modes, 40+ on-device voices, PDF\/Word\/Markdown import, dictation mode; offline and local.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The offline and local-first approach is what stands out to me. Feels like a refreshing change from everything being cloud-based these days.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@workout097_collab\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@workout097_collab<\/a>&nbsp;thank you, Vasyl. On-device and privacy is very important to us and we\u2018ll strive to provide more voices and naturalness in the future<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey Product Hunt, I&#8217;m Stefan, maker of Narration Room.<\/p>\n<p>I build Narration Room because I wanted an app that did exactly what I would do manually using several different tools: come up with the source material, transform it into something that can be spoken, then use AI to create the audio for it.<\/p>\n<p>Narration Room unifies that same workflow into one app.<\/p>\n<p>Import your text files, paste an article or email, or use dictation. Then turn your source material into an editable script, select speakers and voices, change emphasis, pitch, add and breaks. Preview the final result and export.<\/p>\n<p>For this launch the focus is on-device: no account, no subscription; everything runs locally on your Mac. <\/p>\n<p>Built for creators, educators, authors, podcasters, and anyone who wants to turn what they read into what they can hear.<\/p>\n<p>I&#8217;d love feedback on the workflow, audio quality, the AI, and what kinds of templates or export options you&#8217;d want next.<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The &#8220;source text to spoken script to AI audio&#8221; pipeline is something I&#8217;d genuinely use. I run a podcast on financial modeling (ModeLoop Podcast on Spotify) and the unglamorous reality is that turning written research into something that sounds natural out loud is most of the work. A multi-voice script editor that handles that transform in one place could cut my prep time a lot. Does it hold up for longer-form, dialogue-style episodes, or is it best for shorter narration?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#18<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/GNAHQVTF4YJAVE\" class=\"app-title\">Prism<\/a><\/p>\n<div class=\"one-liner\">Al Companion for macOS<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">83<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Prism\u662f\u4e00\u6b3e\u96c6\u6210\u591a\u6a21\u578bAI\u52a9\u624b\u3001\u7cfb\u7edf\u7ea7AI\u5de5\u5177\u4e0e\u9690\u79c1\u4f18\u5148\u7684macOS\u539f\u751f\u5de5\u4f5c\u53f0\uff0c\u5e2e\u52a9\u7528\u6237\u514d\u4e8e\u5728\u591a\u4e2aAI\u5e73\u53f0\u95f4\u5207\u6362\uff0c\u89e3\u51b3\u6548\u7387\u4e2d\u65ad\u4e0e\u5de5\u4f5c\u6d41\u788e\u7247\u5316\u7684\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/bd3d97d7-3a09-460f-8df4-51fda5fefddd.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/e4890c79-2e0d-4c95-b4e4-03f58f9a6d11.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/2d51c271-cbcc-4330-80d6-5a30a50ccc99.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/104592cd-1cf3-4106-93ee-932921d73de4.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/552116df-d283-4ff9-a849-a1bd8d21e6a0.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/7tZb9D3XwZg\"><source src=\"https:\/\/youtu.be\/7tZb9D3XwZg\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">API<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u5de5\u4f5c\u53f0<\/span><br \/>\n            <span class=\"tag\">macOS\u539f\u751f<\/span><br \/>\n            <span class=\"tag\">\u591a\u6a21\u578b\u5207\u6362<\/span><br \/>\n            <span class=\"tag\">\u7cfb\u7edf\u7ea7AI<\/span><br \/>\n            <span class=\"tag\">\u9690\u79c1\u4f18\u5148<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u6a21\u578b<\/span><br \/>\n            <span class=\"tag\">\u751f\u4ea7\u529b\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u5b66\u4e60\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u6d4f\u89c8\u5668\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">AI\u4f34\u4fa3<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u5f00\u53d1\u8005Aarav\u5206\u4eab\u4e86\u4ece\u591a\u6807\u7b7e\u5207\u6362\u75db\u70b9\u51fa\u53d1\u7684\u521b\u4e1a\u5386\u7a0b\u3002\u7528\u6237\u79f0\u8d5e\u5176Quick AI\u9762\u677f\u548c\u591a\u6a21\u578b\u5207\u6362\u7684\u6838\u5fc3\u4ef7\u503c\uff0c\u5e76\u8be2\u95ee\u65e5\u5e38\u5de5\u4f5c\u4e2d\u66ff\u4ee3\u4e86\u54ea\u4e9b\u4efb\u52a1\uff0c\u4ee5\u53ca\u671f\u5f85\u8fdb\u4e00\u6b65\u63d0\u5347\u8be5\u573a\u666f\u4e0b\u7684\u4e0d\u53ef\u6216\u7f3a\u6027\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Prism\u5728\u201cAI\u5de5\u5177\u6cdb\u6ee5\u201d\u4e0e\u201c\u5de5\u4f5c\u6d41\u788e\u7247\u5316\u201d\u7684\u77db\u76fe\u4e2d\u627e\u5230\u4e86\u7cbe\u51c6\u5207\u5165\u53e3\u3002\u5176\u771f\u6b63\u4ef7\u503c\u5e76\u975e\u53c8\u4e00\u4e2aAI\u804a\u5929\u7a97\u53e3\uff0c\u800c\u662f\u4ee5\u201c\u672c\u5730\u4f18\u5148+\u7cfb\u7edf\u7ea7\u6e17\u900f\u201d\u7b56\u7565\uff0c\u5c06AI\u4ece\u7f51\u9875\u63d2\u4ef6\u5347\u7ea7\u4e3amacOS\u7684\u5e95\u5c42\u57fa\u5efa\u3002\u4eae\u70b9\u5728\u4e8e\uff1a1\uff09\u901a\u8fc7MCP\u6ce8\u518c\u8868\u548c@\u5de5\u5177\u8bed\u6cd5\uff0cPrism\u8bd5\u56fe\u6784\u5efa\u4e00\u4e2aAI\u539f\u751f\u7684\u64cd\u4f5c\u534f\u8bae\uff0c\u8ba9\u7528\u6237\u50cf\u8c03\u7528\u6587\u4ef6\u4e00\u6837\u8c03\u7528AI\u80fd\u529b\uff0c\u8fd9\u6bd4\u7b80\u5355\u805a\u5408\u6a21\u578b\u66f4\u524d\u77bb\uff1b2\uff09\u6d4f\u89c8\u5668\u81ea\u52a8\u5316\u4e0e\u5b66\u4e60\u5de5\u5177\u7684\u7ed3\u5408\uff0c\u663e\u793a\u51fa\u5411\u201cAI\u4ee3\u7406\u201d\u8fdb\u5316\u7684\u91ce\u5fc3\uff0c\u800c\u975e\u6b62\u6b65\u4e8e\u95ee\u7b54\uff1b3\uff09\u652f\u6301Ollama\u672c\u5730\u6a21\u578b\u4e0e\u79bb\u7ebf\u6a21\u5f0f\uff0c\u5728\u4e91\u7aefAI\u6613\u7528\u6027\u6cdb\u6ee5\u7684\u5f53\u4e0b\uff0c\u7528\u9690\u79c1\u724c\u7cbe\u51c6\u5207\u5165\u6ce8\u91cd\u6570\u636e\u5b89\u5168\u7684\u4e13\u4e1a\u7528\u6237\u7fa4\u4f53\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u98ce\u9669\u540c\u6837\u660e\u663e\uff1a\u4f5c\u4e3a\u4e2a\u4eba\u5f00\u53d1\u8005\u4ea7\u54c1\uff0c\u591a\u6a21\u578b\u5207\u6362\u7684\u4f53\u9a8c\u4f9d\u8d56\u6301\u7eed\u7684API\u517c\u5bb9\u4e0e\u7ef4\u62a4\uff0c\u4e00\u65e6\u6a21\u578b\u63a5\u53e3\u53d8\u66f4\u6216\u6027\u80fd\u964d\u7ea7\uff0c\u7528\u6237\u6d41\u5931\u4f1a\u5f88\u5feb\uff1b\u7cfb\u7edf\u7ea7\u6743\u9650\u7684\u6ee5\u7528\u62c5\u5fe7\uff08\u5982\u6d4f\u89c8\u5668\u81ea\u52a8\u5316\u3001\u5199\u5165\u6743\u9650\uff09\u53ef\u80fd\u89e6\u53d1macOS\u6c99\u76d2\u5b89\u5168\u673a\u5236\u3002\u6b64\u5916\uff0c83\u7968\u7684\u65e9\u671f\u6210\u7ee9\u5c1a\u672a\u8131\u79bb\u201c\u5c0f\u800c\u7f8e\u201d\u7684\u8303\u7574\uff0c\u5bf9\u6bd4\u7ade\u54c1\uff08\u5982Raycast AI\u6216TypingMind\uff09\uff0cPrism\u7f3a\u5c11\u751f\u6001\u6760\u6746\u3002\u5982\u679c\u80fd\u5c06MCP\u5f00\u53d1\u751f\u6001\u505a\u8d77\u6765\uff0c\u8ba9\u7528\u6237\u548c\u5f00\u53d1\u8005\u53ef\u81ea\u7531\u6784\u5efaAI\u5de5\u5177\u94fe\uff0cPrism\u6709\u671b\u4ece\u201c\u751f\u4ea7\u529b\u5de5\u5177\u201d\u8715\u53d8\u4e3a\u201cAI\u64cd\u4f5c\u7cfb\u7edf\u7684\u4e00\u5c42\u58f3\u201d\uff0c\u5426\u5219\u6781\u53ef\u80fd\u6ca6\u4e3a\u53c8\u4e00\u4e2a\u6f02\u4eae\u7684\u3001\u4f46\u88ab\u5feb\u901f\u9057\u5fd8\u7684macOS\u83dc\u5355\u680f\u5e94\u7528\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Prism<\/span>\n                <\/div>\n<div class=\"comment-content\">Prism \u2014 The native macOS AI workspace with multi-provider chat, Prism Hosted, MCP registry and @-tools, Quick AI, browser automation, system-wide writing, study tools with linked quizzes and flash cards, file creation, and local-first privacy.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hi Product Hunt community! \ud83d\udc4b <\/p>\n<p>I&#8217;m Aarav, the solo developer behind Prism, and I&#8217;m incredibly excited to share it with you all today. <\/p>\n<p>**What inspired me to build Prism?**<br \/>Like many of you, I found myself constantly switching back and forth between different browser tabs just to use various AI models for coding, writing, and research. Web-based AI tools felt slow, clunky, broke my focus, and lacked any real integration with my Mac&#8217;s operating system. I wanted a fast, native tool that fit perfectly into the macOS experience, but existing AI wrappers were either locked to a single model provider or felt like web views inside a container.<\/p>\n<p>**The problems I wanted to solve:**<br \/>1. **Multi-Model Access in one place:** I wanted to switch between Anthropic (Claude), OpenAI (ChatGPT), Google (Gemini), Grok, Kimi, and local offline models (via Ollama) instantly under one beautiful, native SwiftUI interface.<br \/>2. **True System-wide Utility:** I wanted to quickly pull up AI without breaking my flow. So, I built a Spotlight-like **Quick AI Panel** (summoned instantly with `Ctrl + Space`), a system-wide writing assistant, project knowledge bases, and custom prompt templates.<br \/>3. **Power-user Features:** Beyond chat, I needed tools that competitors lacked\u2014specifically **Model Comparison Mode** (sending a prompt to multiple models at once and synthesizing the best parts), local **browser automation** (Playwright\/Puppeteer), and built-in **study creators** (quizzes and spaced repetition flashcards).<\/p>\n<p>**How Prism evolved during development:**<br \/>What started as a simple menu bar shortcut quickly turned into a deep OS-level productivity suite as I integrated developer tools (like the Prism CLI and IDE proxies). As I worked toward this launch, privacy became a top priority, leading me to build robust local-first privacy options, support for private offline models (Ollama &amp; Apple Intelligence), and optional iCloud history sync.<\/p>\n<p>Prism has a permanent free tier, an affordable hosted plan, and a **Lifetime License** (you can use code **SPECIAL25OFF** at checkout for 25% off during launch week!).<\/p>\n<p>I\u2019m actively shipping updates based on user feedback. I would love to hear what features you\u2019d like to see next or how Prism can better fit into your day-to-day workflow. Please let me know what you think! \ud83d\ude80<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@aarav_goyal\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aarav_goyal<\/a>&nbsp;Congrats. For people who use Prism every day, what one task does it replace from your previous workflow? And what&#8217;s one tiny improvement that would make Prism indispensable in that task?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The Quick AI Panel and multi-model switching feel like the strongest parts here. Having Claude, ChatGPT, Gemini, Grok, Kimi, and local models in a native macOS flow could save a lot of context switching.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#19<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/2FSGN5X6IIEG7R\" class=\"app-title\">Upsolve AI<\/a><\/p>\n<div class=\"one-liner\">Build grounded, governed, trustworthy data agents<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">82<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Upsolve AI\u662f\u4e00\u4e2a\u6570\u636e\u4ee3\u7406\u4e0a\u4e0b\u6587\u5e73\u53f0\uff0c\u5e2e\u52a9\u4f01\u4e1a\u5728\u6570\u636e\u4ed3\u5e93\u6216LLM\u5e94\u7528\u573a\u666f\u4e2d\uff0c\u901a\u8fc7\u7f16\u7801\u7ed3\u6784\u3001\u8bed\u4e49\u548c\u4fe1\u4efb\u4e09\u5c42\u77e5\u8bc6\uff0c\u6784\u5efa\u53ef\u843d\u5730\u3001\u53ef\u4fe1\u8d56\u3001\u53ef\u6cbb\u7406\u7684\u6570\u636e\u5206\u6790\u4ee3\u7406\uff0c\u89e3\u51b3AI\u6570\u636e\u5206\u6790\u9879\u76ee\u56e0\u4e0a\u4e0b\u6587\u7f3a\u5931\u800c\u65e0\u6cd5\u4e0a\u7ebf\u7684\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/786b3f07-59aa-45dc-b535-3bf50f5d8f3e.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/6fc4dc39-9416-4bc3-9b05-de264e795dee.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/96bb32a3-9e5b-4bad-9141-5a3073f025ad.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/e16442eb-548d-451d-9f5f-28d9042f5d57.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/3838f8f6-ef7c-4084-a220-e43a19bf6909.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/2bXZb6D-cNA\"><source src=\"https:\/\/youtu.be\/2bXZb6D-cNA\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Analytics<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">Business Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u6570\u636e\u4ee3\u7406<\/span><br \/>\n            <span class=\"tag\">\u4e0a\u4e0b\u6587\u5c42<\/span><br \/>\n            <span class=\"tag\">\u4ee3\u7406\u5206\u6790<\/span><br \/>\n            <span class=\"tag\">\u53ef\u4fe1AI<\/span><br \/>\n            <span class=\"tag\">\u6cbb\u7406<\/span><br \/>\n            <span class=\"tag\">\u8bed\u4e49\u5c42<\/span><br \/>\n            <span class=\"tag\">\u4f01\u4e1a\u7ea7BI<\/span><br \/>\n            <span class=\"tag\">\u81ea\u7136\u8bed\u8a00\u67e5\u8be2<\/span><br \/>\n            <span class=\"tag\">\u6570\u636e\u6743\u9650<\/span><br \/>\n            <span class=\"tag\">Agent Studio<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u63a2\u8ba8\u4e86\u53ef\u4fe1\u7b54\u6848\u4e4b\u540e\u7684\u64cd\u4f5c\u8ffd\u8e2a\u95ee\u9898\uff0c\u7591\u95ee\u662f\u5426\u5c06\u6d1e\u5bdf\u8f6c\u5316\u4e3a\u62a5\u544a\u6216\u884c\u52a8\u540e\uff0c\u540c\u4e00\u4e0a\u4e0b\u6587\u5c42\u80fd\u5426\u4fdd\u7559\u884c\u52a8\u8f68\u8ff9\u3002\u8fd8\u6709\u4eba\u8be2\u95ee\u662f\u5426\u6709\u4e0d\u540c\u6743\u9650\u7ea7\u522b\u4ee5\u9650\u5236\u7528\u6237\u7684\u5199\u64cd\u4f5c\uff0c\u4f5c\u8005\u786e\u8ba4\u652f\u6301\u6570\u636e\u7ea7\u548c\u89d2\u8272\u7ea7\u6743\u9650\u81ea\u5b9a\u4e49\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Upsolve AI\u786e\u5b9e\u6233\u4e2d\u4e86\u4e00\u4e2a\u884c\u4e1a\u666e\u904d\u4f46\u5e38\u88ab\u7f8e\u5316\u7684\u95ee\u9898\uff1aAI\u6570\u636e\u5206\u6790\u9879\u76ee\u7684\u201c\u6f14\u793a\u5373\u5dc5\u5cf0\u201d\u3002\u521b\u59cb\u4eba\u5bf9\u201c95%\u7684POC\u65e0\u6cd5\u4e0a\u7ebf\u201d\u7684\u6d1e\u5bdf\uff0c\u6bd4\u8bb8\u591a\u8ddf\u98ce\u7092\u4f5cLLM+BI\u7684\u5382\u5546\u66f4\u4e3a\u6e05\u9192\u3002\u5176\u201c\u4e0a\u4e0b\u6587\u5c42\u201d\u7684\u63d0\u51fa\uff0c\u5c06\u95ee\u9898\u4ece\u201c\u6a21\u578b\u4e0d\u591f\u806a\u660e\u201d\u8f6c\u79fb\u5230\u201c\u4f01\u4e1a\u8bb0\u5fc6\u6ca1\u6709\u6570\u5b57\u5316\u201d\uff0c\u8fd9\u672c\u8eab\u5c31\u662f\u4e00\u79cd\u4ef7\u503c\u56de\u5f52\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u503c\u5f97\u8b66\u60d5\u7684\u662f\uff1a\u5c06\u201c\u7ed3\u6784\u3001\u8bed\u4e49\u3001\u4fe1\u4efb\u201d\u4e09\u5c42\u62bd\u8c61\u6210\u5e73\u53f0\uff0c\u672c\u8d28\u4e0a\u662f\u628a\u8fc7\u53bb\u6563\u843d\u5728\u6587\u6863\u3001\u4ee3\u7801\u548c\u8d44\u6df1\u5458\u5de5\u5927\u8111\u4e2d\u7684\u9690\u6027\u77e5\u8bc6\uff0c\u5f3a\u5236\u5b9a\u4e49\u4e3a\u663e\u6027\u89c4\u5219\u3002\u8fd9\u56fa\u7136\u80fd\u89e3\u51b3\u6df7\u6dc6ARR\u548c\u8425\u6536\u7684\u5c34\u5c2c\uff0c\u4f46\u4e5f\u610f\u5473\u7740\u2014\u2014\u6570\u636e\u56e2\u961f\u9700\u8981\u4e3a\u6bcf\u4e2a\u4e1a\u52a1\u5b9a\u4e49\u4e00\u5957\u201cAI\u80fd\u7406\u89e3\u7684\u771f\u7406\u201d\uff0c\u8fd9\u4f9d\u7136\u662f\u6781\u5176\u6602\u8d35\u7684\u5de5\u7a0b\u5316\u5b9e\u8df5\u3002\u5bf9\u4e8e\u4e2d\u5c0f\u56e2\u961f\uff0c\u201c1\u5929\u641e\u5b9a\u201d\u6050\u6015\u4ecd\u662f\u7406\u60f3\u5c42\u9762\uff0c\u800cFortune 500\u7684\u6210\u529f\u6848\u4f8b\u5f80\u5f80\u63a9\u76d6\u4e86\u6570\u636e\u6cbb\u7406\u6c34\u5e73\u7684\u524d\u7f6e\u6295\u5165\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ea7\u54c1\u6700\u5927\u7684\u521b\u65b0\u4e0d\u5728Agent\u672c\u8eab\uff0c\u800c\u5728\u201cAgent Context Studio\u201d\u8fd9\u4e2a\u4e2d\u95f4\u5c42\u3002\u5b83\u8bd5\u56fe\u6210\u4e3aLLM\u548cBI\u7cfb\u7edf\u4e4b\u95f4\u7684\u201c\u4ef2\u88c1\u8005\u201d\uff0c\u800c\u4e0d\u662f\u53c8\u4e00\u4e2a\u6570\u636e\u53ef\u89c6\u5316\u5de5\u5177\u3002\u4f46\u6210\u8d25\u5173\u952e\u4e0d\u5728\u4e8e\u662f\u5426\u652f\u6301RLS\u6743\u9650\uff0c\u800c\u5728\u4e8e\u4f01\u4e1a\u662f\u5426\u613f\u610f\u4e14\u6709\u7eaa\u5f8b\u5730\u4e3a\u6bcf\u4e2a\u6307\u6807\u3001\u89c4\u5219\u3001\u8bed\u4e49\u7f16\u5199\u4e00\u5957\u673a\u5668\u53ef\u6267\u884c\u7684\u201c\u89c4\u8303\u201d\u3002\u8fd9\u672c\u8d28\u4e0a\u662f\u4e00\u573a\u5411\u5de6\uff08\u4fdd\u6301\u4eba\u7684\u7075\u6d3b\u6027\uff09\u8fd8\u662f\u5411\u53f3\uff08\u5f3a\u884c\u673a\u5668\u5316\uff09\u7684\u535a\u5f08\u3002Upsolve\u9009\u62e9\u540e\u8005\uff0c\u52c7\u6c14\u53ef\u5609\uff0c\u4f46\u666e\u53ca\u4e4b\u8def\uff0c\u4ecd\u6709\u5927\u91cf\u201c\u8ba4\u77e5\u6469\u64e6\u201d\u9700\u8981\u5316\u89e3\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Upsolve AI<\/span>\n                <\/div>\n<div class=\"comment-content\">Upsolve AI: the platform to build, deploy, and evaluate grounded, governed, trustworthy data agents. Agent Context Studio is the context layer agentic analytics needs.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey Product Hunt \ud83d\udc4b I&#8217;m Ka Ling, founder of Upsolve AI.<\/p>\n<p>You centralized everything in a data warehouse. You bolted an LLM on top. The demo was magic. Then it hit production and confused ARR with run rate in front of your CEO. Project shelved. You&#8217;re not alone, 95% of AI data POCs never ship.<\/p>\n<p>The problem was never the model. It&#8217;s context. How your company defines &#8220;revenue,&#8221; which table is the source of truth, the business rules that live in someone&#8217;s head and a dbt file from 2021. Models can&#8217;t guess that. a16z and OpenAI both said the same thing this year.<\/p>\n<p>Upsolve AI is the context infrastructure for analytics agents. We encode your institutional knowledge across three layers: Structure (schemas, lineage), Meaning (your metrics + rules), and Trust (verified answers, evals, full observability).<\/p>\n<p>Two sides, one platform:<br \/>\nAgent Studio: data teams encode, test, and tune agents that reason like your best analyst. 1 day, not 6 months.<br \/>\nAgentic Dashboard: anyone asks questions in plain English. No SQL, no queue, no 3-day wait.<\/p>\n<p>Deploy the same agent everywhere your team already works, Slack, Teams, your own product, or Claude.<\/p>\n<p>Already live with Fortune 500s, 60+ person BI teams, and growth-stage companies like Effi, Skylink, and Arthur AI.<\/p>\n<p>What&#8217;s broken about data and analytics agents in your world? I&#8217;m here all day. \ud83d\ude4f<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Strong framing. The hard part with analytics agents is usually not the chart, it is what happens after the answer gets trusted. If someone turns an insight into a report, Slack update, or downstream task, do you keep that action trail in the same context layer or outside it?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Can you set different permission levels so some users can ask questions but not trigger write actions?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@thamibenjelloun\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thamibenjelloun<\/a>&nbsp;Yeah! We support both data-level permissions (RLS, CLS, etc) for your users, as well as role-level permissions (admin, editor, read-only, etc) with full customization for both <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#20<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/I2IG3PTJZNHJNJ\" class=\"app-title\">Portia<\/a><\/p>\n<div class=\"one-liner\">The ultimate 1-click hunter for blocked macOS ports<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">82<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Portia\u662f\u4e00\u6b3emacOS\u539f\u751f\u83dc\u5355\u680f\u5de5\u5177\uff0c\u53ea\u9700\u4e00\u6b21\u70b9\u51fb\u5373\u53ef\u5feb\u901f\u5b9a\u4f4d\u5e76\u6740\u6b7b\u5360\u7528\u7aef\u53e3\uff08\u5982EADDRINUSE\u9519\u8bef\uff09\u7684\u50f5\u5c38\u8fdb\u7a0b\uff0c\u89e3\u51b3\u5f00\u53d1\u8005\u9891\u7e41\u4f7f\u7528\u547d\u4ee4\u884c\u67e5\u6740\u7aef\u53e3\u7684\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/302ffe0b-17e7-4631-b4a8-e275ee745177.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/B3XG2X1oQ_o\"><source src=\"https:\/\/youtu.be\/B3XG2X1oQ_o\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/4acf9fea-1476-455b-af39-320b44bcdedc.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/9675cbeb-beb6-495f-9e7a-9e1ae5d98205.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/f3862249-3502-45fb-9ab1-cfaf4f389bc1.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Mac<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">Menu Bar Apps<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">macOS\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u7aef\u53e3\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u8fdb\u7a0b\u67e5\u6740<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u83dc\u5355\u680f\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u539f\u751f\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u4e00\u952e\u64cd\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u514d\u8d39\u589e\u503c\uff08Freemium\uff09<\/span><br \/>\n            <span class=\"tag\">AI\u8f85\u52a9\u5f00\u53d1<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u4e00\u4f4d\u7528\u6237\u8868\u793a\u6b64\u524d\u5e38\u9700\u82b1\u8d39\u51e0\u5206\u949f\u56de\u5fc6\u5982\u4f55\u67e5\u627e\u9057\u5fd8\u7684Node\u8fdb\u7a0b\uff0c\u5e76\u79f0\u8d5e\u8be5\u5de5\u5177\u201c\u8d85\u7ea7\u7b80\u5355\u201d\u3002\u5f00\u53d1\u8005\u5728\u81ea\u8ff0\u4e2d\u8be6\u7ec6\u5206\u4eab\u4e86\u4ece\u96f6\u57fa\u7840\u7528AI\u8f85\u52a9\u5f00\u53d1\u3001\u514b\u670d\u82f9\u679c\u6c99\u76d2\u9650\u5236\u7684\u7ecf\u5386\uff0c\u5e76\u4ecb\u7ecd\u4e86\u514d\u8d39\u7248\uff08\u6c99\u76d2\u5185\u67e5\u7aef\u53e3\uff09\u4e0e\u4ed8\u8d39\u7248\uff08\u4e00\u952e\u6740\u8fdb\u7a0b\uff09\u7684\u5dee\u5f02\u3002\u6574\u4f53\u53cd\u9988\u6b63\u9762\uff0c\u65e0\u8d1f\u9762\u6216\u91cd\u5927\u5efa\u8bae\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Portia\u7cbe\u51c6\u5207\u4e2d\u4e86\u5f00\u53d1\u8005\u7fa4\u4f53\u4e2d\u4e00\u4e2a\u9ad8\u9891\u3001\u5fae\u5c0f\u4f46\u6781\u5176\u607c\u4eba\u7684\u9700\u6c42\u2014\u2014\u7aef\u53e3\u88ab\u5360\u7528\u7684\u201c\u8840\u6d41\u6210\u6cb3\u201d\u3002\u5b83\u6ca1\u6709\u8bd5\u56fe\u505a\u4e00\u4e2a\u5e9e\u5927IDE\u63d2\u4ef6\uff0c\u800c\u662f\u7528\u6781\u81f4\u7b80\u5355\u7684\u201c\u83dc\u5355\u680f+\u4e00\u952e\u67e5\u6740\u201d\u903b\u8f91\uff0c\u5c06\u539f\u672c\u9700\u89813\u6b65\u7ec8\u7aef\u64cd\u4f5c\uff08lsof\u627ePID\u3001\u8bb0\u4e0b\u6765\u3001kill -9\uff09\u538b\u7f29\u4e3a1\u6b65\uff0c\u8fd9\u672c\u8eab\u5c31\u662f\u5bf9\u7528\u6237\u4f53\u9a8c\u7684\u6df1\u5ea6\u5c0a\u91cd\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u4ea7\u54c1\u6700\u6709\u8da3\u7684\u5e76\u975e\u529f\u80fd\u672c\u8eab\uff0c\u800c\u662f\u5176\u8bde\u751f\u65b9\u5f0f\u3002\u5f00\u53d1\u8005\u81ea\u79f0\u975eMac\u539f\u751f\u5f00\u53d1\u8005\uff0c\u5b8c\u5168\u501f\u52a9AI\uff08\u5982ChatGPT\uff09\u4f5c\u4e3a\u201c\u9ad8\u7ea7\u534f\u4f5c\u8005\u201d\uff0c\u5728\u957f\u5468\u672b\u5185\u5b8c\u6210\u4ece\u67b6\u6784\u8bbe\u8ba1\u5230\u7a81\u7834\u82f9\u679c\u6c99\u76d2\u9650\u5236\u7684\u5168\u8fc7\u7a0b\u3002\u8fd9\u5370\u8bc1\u4e86\u4e00\u4e2a\u8d8b\u52bf\uff1aAI\u4e0d\u4ec5\u964d\u4f4e\u4e86\u4ee3\u7801\u4e66\u5199\u95e8\u69db\uff0c\u66f4\u964d\u4f4e\u4e86\u201c\u4ece\u60f3\u6cd5\u5230\u53d1\u5e03\u6210\u54c1\u201d\u7684\u5de5\u7a0b\u5316\u95e8\u69db\u3002Portia Lite\uff08\u514d\u8d39\u6c99\u76d2\u7248\uff09\u548cFull\uff08\u4ed8\u8d39\u975e\u6c99\u76d2\u7248\uff09\u7684\u5206\u5c42\u4e5f\u5f88\u806a\u660e\u2014\u2014\u65e2\u6ee1\u8db3\u5408\u89c4\u4e0a\u67b6App Store\uff0c\u53c8\u901a\u8fc7\u76f4\u63a5\u4e0b\u8f7d\u63d0\u4f9b\u6740\u624b\u7ea7\u201c\u4e00\u952e\u6740\u8fdb\u7a0b\u201d\u80fd\u529b\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4e0d\u8db3\u5728\u4e8e\uff0c\u8be5\u529f\u80fd\u672c\u8eab\u6280\u672f\u62a4\u57ce\u6cb3\u6781\u4f4e\u3002\u4e00\u65e6Apple\u5b98\u65b9\u6216\u7c7b\u4f3cCleanMyMac\u3001Alfred\u7b49\u5de5\u5177\u96c6\u6210\u6b64\u7279\u6027\uff0cPortia\u7684\u751f\u5b58\u7a7a\u95f4\u4f1a\u6025\u5267\u538b\u7f29\u3002\u5b83\u5f53\u524d\u7684\u6838\u5fc3\u4ef7\u503c\u662f\u201c\u7b2c\u4e00\u4e2a\u5403\u8783\u87f9\u7684\u9ad8\u989c\u503c\u539f\u751f\u65b9\u6848\u201d\uff0c\u800c\u975e\u4e0d\u53ef\u66ff\u4ee3\u7684\u6280\u672f\u58c1\u5792\u3002\u53e6\u5916\uff0c4.99\u7f8e\u5143\u5b9a\u4ef7\u5408\u7406\uff0c\u4f46\u7528\u6237\u662f\u5426\u4f1a\u4e3a\u201c\u7701\u6389\u4e00\u6b21\u590d\u5236PID\u201d\u4e70\u5355\uff0c\u4ecd\u9700\u89c2\u5bdf\u3002\u603b\u4f53\u6765\u770b\uff0c\u8fd9\u662f\u4e00\u6b21\u201cAI\u72ec\u7acb\u5f00\u53d1+\u7cbe\u51c6\u75db\u70b9\u6253\u51fb\u201d\u7684\u5178\u578b\u8303\u4f8b\uff0c\u503c\u5f97\u5173\u6ce8\uff0c\u4f46\u4e0d\u5fc5\u795e\u8bdd\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Portia<\/span>\n                <\/div>\n<div class=\"comment-content\">Portia is a native macOS utility that hunts down processes blocking your ports. Zero idle CPU, no shell plugins, just one-click precision.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hi Product Hunt! \ud83d\udc4b<\/p>\n<p>I am incredibly excited (and honestly, a little terrified) to finally share Portia with you today. \ud83d\udd77\ufe0f\ud83d\udc9c<\/p>\n<p>Here is a confession: I am not a macOS developer. I had zero prior experience with Swift, Apple\u2019s strict sandboxing rules, or the complexities of Xcode. But I had a massive, daily frustration that every developer here knows too well: the dreaded EADDRINUSE error.<\/p>\n<p>Like everyone else, I was tired of opening the terminal, running lsof -i :8080, finding the PID, and typing kill -9. I wanted a beautiful, native, 1-click solution that lives in the menu bar, or even works in the background instead of me. <\/p>\n<p>Since I didn\u2019t know how to code a native Mac app, I decided to partner up with AI as my virtual Senior co-pilot. \ud83e\udd16<\/p>\n<p>It wasn\u2019t a &#8220;generate an app in 5 seconds&#8221; kind of journey. It was a long weekend of heavy prompt engineering, architecture planning, overcoming Apple Sandbox limitations, and making sure the app runs with 0% idle CPU and absolute system safety. The result is Portia verbatim: a production-ready, ultra-fast, premium native utility that works flawlessly.<\/p>\n<p>We are launching two versions today:<\/p>\n<p>\ud83c\udf0e Portia Lite (Free on the App Store): It runs in a sandbox and helps you find the your blocked port, allowing you to track down the issue.<\/p>\n<p>\u26a1 Portia Full ($4.99 direct download): A non-sandboxed version with a background Launch Agent that lets you view the exact process path and kill (Strike!) the blocking process in exactly 1 click.<\/p>\n<p>Building this proved to me that AI can truly democratize software creation if you guide it right. I\u2019d love to hear your thoughts, feedback, and stories about your own battle with zombie processes!<\/p>\n<p>I\u2019ll be here all day to answer your questions. Thank you so much for the support! \ud83d\ude80<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This is one of those super simple tasks that take me several minutes to remember how to look for that one rouge node server running I forgot about. Nice!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<\/div>\n<p><!-- \u56fe\u7247\u653e\u5927\u6a21\u6001\u6846 --><\/p>\n<div id=\"imageModal\" class=\"modal\">\n    <span class=\"close\">&times;<\/span><br \/>\n    <img class=\"modal-content\" id=\"modalImage\">\n<\/div>\n<p><script>\n    \/\/ \u83b7\u53d6\u6a21\u6001\u6846\u5143\u7d20\n    const modal = document.getElementById(\"imageModal\");\n    const modalImg = document.getElementById(\"modalImage\");\n    const closeBtn = document.getElementsByClassName(\"close\")[0];<\/p>\n<p>    \/\/ \u68c0\u6d4b\u662f\u5426\u4e3a\u79fb\u52a8\u8bbe\u5907\n    const isMobile = \/iPhone|iPad|iPod|Android\/i.test(navigator.userAgent);<\/p>\n<p>    \/\/ \u4e3a\u79fb\u52a8\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u4f18\u5316\n    function addTouchOptimization() {\n        if (isMobile) {\n            \/\/ \u4e3a\u6240\u6709\u53ef\u70b9\u51fb\u5143\u7d20\u6dfb\u52a0\u89e6\u6478\u53cd\u9988\n            const clickableElements = document.querySelectorAll(\n                '.media-content, .close, .video-overlay, .play-icon'\n            );<\/p>\n<p>            clickableElements.forEach(el => {\n                el.style.touchAction = 'manipulation'; \/\/ \u9632\u6b62\u53cc\u51fb\u7f29\u653e\n            });\n        }\n    }<\/p>\n<p>    \/\/ \u4e3a\u6240\u6709\u56fe\u7247\u6dfb\u52a0\u70b9\u51fb\u4e8b\u4ef6\n    const images = document.querySelectorAll(\"img.media-content\");\n    images.forEach(img => {\n        img.onclick = function() {\n            modal.style.display = \"block\";\n            modalImg.src = this.src;\n            \/\/ \u963b\u6b62\u80cc\u666f\u6eda\u52a8\n            document.body.style.overflow = \"hidden\";\n        }<\/p>\n<p>        \/\/ \u4e3a\u79fb\u52a8\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u4e8b\u4ef6\u652f\u6301\n        if (isMobile) {\n            img.addEventListener('touchstart', function(e) {\n                \/\/ \u9632\u6b62\u89e6\u6478\u4e8b\u4ef6\u89e6\u53d1\u4e0d\u5fc5\u8981\u7684\u884c\u4e3a\n                e.preventDefault();\n                this.click();\n            }, { passive: false });\n        }\n    });<\/p>\n<p>    \/\/ \u4e3a\u89c6\u9891\u6dfb\u52a0\u70b9\u51fb\u4e8b\u4ef6 - \u8df3\u8f6c\u5230\u89c6\u9891URL\n    const videos = document.querySelectorAll(\"video.media-content\");\n    videos.forEach(video => {\n        \/\/ \u70b9\u51fb\u89c6\u9891\u672c\u8eab\u65f6\u8df3\u8f6c\u5230\u89c6\u9891URL\n        video.onclick = function(e) {\n            \/\/ \u68c0\u67e5\u70b9\u51fb\u76ee\u6807\u662f\u5426\u662f\u89c6\u9891\u63a7\u4ef6\u6216\u5176\u5b50\u5143\u7d20\n            let isControlClick = false;\n            let target = e.target;<\/p>\n<p>            \/\/ \u5411\u4e0a\u904d\u5386DOM\uff0c\u68c0\u67e5\u662f\u5426\u70b9\u51fb\u4e86\u63a7\u4ef6\u5143\u7d20\n            while (target && target !== this) {\n                \/\/ \u68c0\u67e5\u662f\u5426\u6709\u63a7\u4ef6\u76f8\u5173\u7684\u7c7b\u540d\u6216\u5c5e\u6027\n                if (target.classList.contains('video-js') || \n                    target.tagName.toLowerCase() === 'button' || \n                    target.tagName.toLowerCase() === 'input' || \n                    target.tagName.toLowerCase() === 'select' ||\n                    target.className.includes('control')) {\n                    isControlClick = true;\n                    break;\n                }\n                target = target.parentElement;\n            }<\/p>\n<p>            \/\/ \u53ea\u6709\u5f53\u70b9\u51fb\u7684\u662f\u89c6\u9891\u672c\u8eab\u800c\u975e\u63a7\u4ef6\u65f6\u624d\u8df3\u8f6c\n            if (!isControlClick && e.target.tagName.toLowerCase() === 'video') {\n                const videoUrl = this.getAttribute('data-video-url') || this.querySelector('source').src;\n                window.open(videoUrl, '_blank');\n            }\n        }<\/p>\n<p>        \/\/ \u4e3a\u79fb\u52a8\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u4e8b\u4ef6\u652f\u6301\n        if (isMobile) {\n            video.addEventListener('touchstart', function(e) {\n                \/\/ \u68c0\u67e5\u662f\u5426\u70b9\u51fb\u4e86\u63a7\u4ef6\n                let isControlClick = false;\n                let target = e.target;<\/p>\n<p>                while (target && target !== this) {\n                    if (target.tagName.toLowerCase() === 'button' || \n                        target.tagName.toLowerCase() === 'input' || \n                        target.className.includes('control')) {\n                        isControlClick = true;\n                        break;\n                    }\n                    target = target.parentElement;\n                }<\/p>\n<p>                if (!isControlClick) {\n                    e.preventDefault();\n                    const videoUrl = this.getAttribute('data-video-url') || this.querySelector('source').src;\n                    window.open(videoUrl, '_blank');\n                }\n            }, { passive: false });\n        }\n    });<\/p>\n<p>    \/\/ \u4e3a\u89c6\u9891\u906e\u7f69\u6dfb\u52a0\u70b9\u51fb\u4e8b\u4ef6\uff0c\u786e\u4fdd\u70b9\u51fb\u906e\u7f69\u4e5f\u80fd\u8df3\u8f6c\n    const videoOverlays = document.querySelectorAll('.video-overlay');\n    videoOverlays.forEach(overlay => {\n        overlay.onclick = function(e) {\n            \/\/ \u963b\u6b62\u4e8b\u4ef6\u5192\u6ce1\u5230\u89c6\u9891\u5143\u7d20\n            e.stopPropagation();\n            const video = this.parentElement.querySelector('video.media-content');\n            if (video) {\n                const videoUrl = video.getAttribute('data-video-url') || video.querySelector('source').src;\n                window.open(videoUrl, '_blank');\n            }\n        }<\/p>\n<p>        \/\/ \u4e3a\u79fb\u52a8\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u4e8b\u4ef6\u652f\u6301\n        if (isMobile) {\n            overlay.addEventListener('touchstart', function(e) {\n                e.preventDefault();\n                e.stopPropagation();\n                const video = this.parentElement.querySelector('video.media-content');\n                if (video) {\n                    const videoUrl = video.getAttribute('data-video-url') || video.querySelector('source').src;\n                    window.open(videoUrl, '_blank');\n                }\n            }, { passive: false });\n        }\n    });<\/p>\n<p>    \/\/ \u5173\u95ed\u6a21\u6001\u6846\n    closeBtn.onclick = function() {\n        modal.style.display = \"none\";\n        \/\/ \u6062\u590d\u80cc\u666f\u6eda\u52a8\n        document.body.style.overflow = \"auto\";\n    }<\/p>\n<p>    \/\/ \u4e3a\u79fb\u52a8\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u4e8b\u4ef6\u652f\u6301\n    if (isMobile) {\n        closeBtn.addEventListener('touchstart', function(e) {\n            e.preventDefault();\n            modal.style.display = \"none\";\n            document.body.style.overflow = \"auto\";\n        }, { passive: false });\n    }<\/p>\n<p>    \/\/ \u70b9\u51fb\u6a21\u6001\u6846\u5916\u90e8\u5173\u95ed\n    window.onclick = function(event) {\n        if (event.target === modal) {\n            modal.style.display = \"none\";\n            document.body.style.overflow = \"auto\";\n        }\n    }<\/p>\n<p>    \/\/ \u4e3a\u79fb\u52a8\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u4e8b\u4ef6\u652f\u6301\n    if (isMobile) {\n        modal.addEventListener('touchstart', function(e) {\n            if (e.target === modal) {\n                modal.style.display = \"none\";\n                document.body.style.overflow = \"auto\";\n            }\n        }, { passive: true });\n    }<\/p>\n<p>    \/\/ \u6309ESC\u952e\u5173\u95ed\u6a21\u6001\u6846\n    document.addEventListener('keydown', function(event) {\n        if (event.key === 'Escape' && modal.style.display === 'block') {\n            modal.style.display = 'none';\n            document.body.style.overflow = \"auto\";\n        }\n    });<\/p>\n<p>    \/\/ \u68c0\u67e5\u6bcf\u4e2a\u5a92\u4f53\u753b\u5eca\u4e2d\u662f\u5426\u53ea\u6709\u4e00\u4e2a\u9879\u76ee\uff0c\u5982\u679c\u662f\uff0c\u6dfb\u52a0single-item\u7c7b\n    document.querySelectorAll('.media-gallery').forEach(gallery => {\n        if (gallery.querySelectorAll('.media-item-wrapper').length === 1) {\n            gallery.classList.add('single-item');\n        }\n    });<\/p>\n<p>    \/\/ \u521d\u59cb\u5316\u89e6\u6478\u4f18\u5316\n    addTouchOptimization();<\/p>\n<p>    \/\/ \u7a97\u53e3\u5927\u5c0f\u53d8\u5316\u65f6\u91cd\u65b0\u68c0\u67e5\u753b\u5eca\u72b6\u6001\n    window.addEventListener('resize', function() {\n        document.querySelectorAll('.media-gallery').forEach(gallery => {\n            if (gallery.querySelectorAll('.media-item-wrapper').length === 1) {\n                gallery.classList.add('single-item');\n            } else {\n                gallery.classList.remove('single-item');\n            }\n        });\n    });<\/p>\n<p>    \/\/ --- \u8bc4\u8bba\u533a\u57df\u6298\u53e0\/\u5c55\u5f00\u529f\u80fd ---\n    const commentToggles = document.querySelectorAll('.comments-toggle');<\/p>\n<p>    commentToggles.forEach(toggle => {\n        toggle.addEventListener('click', function() {\n            \/\/ \u5207\u6362\u5f53\u524dtoggle\u7684open\u72b6\u6001\n            this.classList.toggle('open');<\/p>\n<p>            \/\/ \u83b7\u53d6\u5bf9\u5e94\u7684\u8bc4\u8bba\u5bb9\u5668\n            const commentsContainer = this.nextElementSibling;\n            if (commentsContainer && commentsContainer.classList.contains('comments-container')) {\n                commentsContainer.classList.toggle('open');\n            }\n        });\n    });\n<\/script><\/p>\n<p><\/body><br \/>\n<\/html><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Product Hunt \u6bcf\u65e5\u70ed\u699c 2026-06-19 PH\u70ed\u699c | 2026-06-19 #1 Claud [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"template-clean-canvas.php","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-257","post","type-post","status-publish","format-standard","hentry","category-producthunt"],"_links":{"self":[{"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/posts\/257","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/comments?post=257"}],"version-history":[{"count":0,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/posts\/257\/revisions"}],"wp:attachment":[{"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/media?parent=257"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/categories?post=257"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/tags?post=257"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}