{"id":175,"date":"2026-03-29T11:41:17","date_gmt":"2026-03-29T03:41:17","guid":{"rendered":"https:\/\/ph.listeningo.cn\/index.php\/2026\/03\/29\/2026-03-28\/"},"modified":"2026-03-29T11:41:17","modified_gmt":"2026-03-29T03:41:17","slug":"2026-03-28","status":"publish","type":"post","link":"https:\/\/ph.listeningo.cn\/index.php\/2026\/03\/29\/2026-03-28\/","title":{"rendered":"PH\u70ed\u699c | 2026-03-28"},"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-03-28<\/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-03-28<\/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\/SUJSASEPYC5QFK\" class=\"app-title\">SlapMac<\/a><\/p>\n<div class=\"one-liner\">Slap your MacBook. It screams back. That&#8217;s it.<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">343<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>\u4e00\u6b3e\u901a\u8fc7\u8c03\u7528MacBook\u5185\u7f6e\u52a0\u901f\u5ea6\u8ba1\uff0c\u4f7f\u5176\u5728\u88ab\u62cd\u6253\u3001\u6447\u6643\u65f6\u53d1\u51fa\u641e\u7b11\u97f3\u6548\uff08\u5982\u547b\u541f\u3001\u5c71\u7f8a\u53eb\uff09\u7684\u5a31\u4e50\u5e94\u7528\uff0c\u5728\u65e0\u804a\u6216\u9700\u8981\u89e3\u538b\u7684\u573a\u666f\u4e0b\u63d0\u4f9b\u4e86\u4e00\u79cd\u65e0\u5398\u5934\u7684\u4e92\u52a8\u4e50\u8da3\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\/df1e6cd1-2a9e-40e8-9de1-bb0963589ce7.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\/8dedec3f-c2fd-4f27-b439-2eab02f315b7.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\/09c3325a-1297-42e6-af82-ff34c30ba4c3.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/shorts\/OGzPdzjHDGU\"><source src=\"https:\/\/www.youtube.com\/shorts\/OGzPdzjHDGU\" 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\">Funny<\/span><br \/>\n            <span class=\"tag\">Side Project<\/span><br \/>\n            <span class=\"tag\">Memes<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u5a31\u4e50\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u6076\u641e\u8f6f\u4ef6<\/span><br \/>\n            <span class=\"tag\">Mac\u8f6f\u4ef6<\/span><br \/>\n            <span class=\"tag\">\u89e3\u538b\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u75c5\u6bd2\u5f0f\u8425\u9500<\/span><br \/>\n            <span class=\"tag\">\u8da3\u5473\u4e92\u52a8<\/span><br \/>\n            <span class=\"tag\">\u52a0\u901f\u5ea6\u8ba1\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u730e\u5947\u4ea7\u54c1<\/span><br \/>\n            <span class=\"tag\">\u6781\u7b80\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\u8ba4\u4e3a\u4ea7\u54c1\u6709\u8da3\u3001\u75af\u72c2\u4e14\u4f20\u64ad\u529b\u60ca\u4eba\uff0c\u5bf92\u5343\u4efd\u9500\u91cf\u8868\u793a\u60ca\u8bb6\u3002\u4e3b\u8981\u95ee\u9898\/\u5efa\u8bae\u5305\u62ec\uff1a\u62c5\u5fc3\u97f3\u6548\u5185\u5bb9\u5c3a\u5ea6\u3001\u8be2\u95eeWindows\/iOS\u7248\u672c\u5f00\u53d1\u8ba1\u5212\u3001\u5173\u6ce8\u75c5\u6bd2\u4f20\u64ad\u540e\u7684\u957f\u671f\u8425\u9500\u7b56\u7565\u3001\u4ee5\u53ca\u5efa\u8bae\u589e\u52a0\u5bf9AI\u5de5\u5177\u7684\u96c6\u6210\uff08MCP\u670d\u52a1\u5668\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                SlapMac\u672c\u8d28\u4e0a\u662f\u4e00\u4e2a\u5c06\u786c\u4ef6\u4f20\u611f\u5668\u529f\u80fd\u5a31\u4e50\u5316\u7684\u6781\u7b80Demo\uff0c\u5176\u771f\u6b63\u7684\u4ef7\u503c\u5e76\u975e\u4ea7\u54c1\u672c\u8eab\uff0c\u800c\u662f\u4e00\u6b21\u5b8c\u7f8e\u7684\u201c\u6ce8\u610f\u529b\u7ecf\u6d4e\u201d\u64cd\u76d8\u6848\u4f8b\u3002\u4ea7\u54c1\u903b\u8f91\u7b80\u5355\u5230\u8fd1\u4e4e\u8352\u8c2c\uff0c\u5374\u7cbe\u51c6\u51fb\u4e2d\u4e86\u51e0\u4e2a\u5173\u952e\u70b9\uff1a\u5229\u7528MacBook\u8fd9\u4e00\u9ad8\u4ef7\u503c\u8bbe\u5907\u7684\u201c\u53cd\u5dee\u840c\u201d\u3001\u793e\u4ea4\u5a92\u4f53\u5bf9\u730e\u5947\u548c\u201c\u6897\u201d\u5185\u5bb9\u7684\u9965\u6e34\u3001\u4ee5\u53ca\u6781\u4f4e\u7684\u51b3\u7b56\u6210\u672c\uff083.5\u7f8e\u5143\uff09\u3002\u521b\u59cb\u4ebaTonino\u5c55\u73b0\u4e86\u4e00\u4e2a\u8d44\u6df1\u5de5\u7a0b\u5e08\u88ab\u5e02\u573a\u201c\u6559\u80b2\u201d\u540e\u7684\u5feb\u901f\u53cd\u5e94\u80fd\u529b\uff1a\u4eceInstagram\u4e0a\u53d1\u73b0\u9700\u6c42\uff08\u8bc4\u8bba\u8be2\u95ee\uff09\uff0c\u523024\u5c0f\u65f6\u5185\u5feb\u901f\u6253\u5305\u4e0a\u7ebf\uff0c\u5b8c\u6210\u4ece\u521b\u610f\u5230\u5546\u54c1\u7684\u95ea\u7535\u8f6c\u5316\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5b83\u7684\u6210\u529f\u63ed\u9732\u4e86\u5f53\u524d\u4ea7\u54c1\u751f\u6001\u7684\u4e00\u4e2a\u4fa7\u9762\uff1a\u5728\u6ce8\u610f\u529b\u7a00\u7f3a\u65f6\u4ee3\uff0c\u4e00\u4e2a\u5177\u6709\u5f3a\u4f20\u64ad\u5c5e\u6027\u7684\u201c\u73a9\u5177\u201d\u6216\u201c\u793e\u4ea4\u8d27\u5e01\u201d\uff0c\u5176\u77ed\u671f\u7206\u53d1\u529b\u53ef\u80fd\u8fdc\u8d85\u4e00\u4e2a\u590d\u6742\u4f46\u5e73\u5eb8\u7684\u201c\u5de5\u5177\u201d\u30022\u5343\u4efd\u9500\u91cf\u7684\u80cc\u540e\uff0c\u662f\u6570\u5343\u4e07\u7684\u793e\u4ea4\u6d41\u91cf\uff0c\u8f6c\u5316\u7387\u672c\u8eab\u5df2\u4e0d\u91cd\u8981\uff0c\u5b83\u9a8c\u8bc1\u4e86\u201c\u5feb\u901f\u6784\u5efa-\u6295\u653e\u5e02\u573a-\u83b7\u53d6\u53cd\u9988\u201d\u8fd9\u4e00\u7cbe\u76ca\u7406\u5ff5\u7684\u6781\u7aef\u5f62\u5f0f\u3002\u7136\u800c\uff0c\u5176\u6838\u5fc3\u98ce\u9669\u4e5f\u5728\u4e8e\u6b64\uff1a novelty wears off\uff08\u65b0\u5947\u611f\u6d88\u9000\uff09\u3002\u8bc4\u8bba\u4e2d\u5173\u4e8e\u957f\u671f\u8425\u9500\u7684\u7591\u95ee\u76f4\u6307\u8981\u5bb3\u3002\u4ea7\u54c1\u7684\u672a\u6765\u4e0d\u5728\u4e8e\u589e\u52a0\u66f4\u591a\u97f3\u6548\uff0c\u800c\u5728\u4e8e\u80fd\u5426\u4ece\u201c\u4e00\u6b21\u6027\u73a9\u7b11\u201d\u8fdb\u5316\u4e3a\u4e00\u4e2a\u201c\u5a31\u4e50\u5e73\u53f0\u201d\u6216\u201c\u4e92\u52a8API\u201d\uff08\u5982\u8bc4\u8bba\u4e2d\u63d0\u5230\u7684MCP\u670d\u52a1\u5668\u96c6\u6210\uff09\uff0c\u5c06\u8fd9\u79cd\u65e0\u5398\u5934\u4ea4\u4e92\u80fd\u529b\u8d4b\u4e88\u66f4\u591a\u573a\u666f\uff0c\u4f8b\u5982\u76f4\u64ad\u9053\u5177\u6216\u56e2\u961f\u6076\u4f5c\u5267\u5de5\u5177\u5305\u3002\u5426\u5219\uff0c\u5b83\u5c06\u53ea\u662f\u521b\u59cb\u4eba\u7b80\u5386\u4e0a\u4e00\u4e2a\u6709\u8da3\u7684\u6ce8\u811a\uff0c\u4ee5\u53ca\u79d1\u6280\u5708\u4e00\u4e2a\u77ed\u6682\u7684\u8c08\u8d44\u3002\u5b83\u63d0\u9192\u6211\u4eec\uff1a\u6709\u65f6\uff0c\u201c\u4e0d\u8981\u60f3\u592a\u591a\uff0c\u5148\u53d1\u5e03\u201d\u7684\u83bd\u649e\uff0c\u6bd4\u5b8c\u7f8e\u7684\u62d6\u5ef6\u66f4\u80fd\u89e6\u53ca\u5e02\u573a\u7684\u771f\u5b9e\u8109\u640f\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\">SlapMac<\/span>\n                <\/div>\n<div class=\"comment-content\">I don&#8217;t think this product should be here.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hello Hunters! My name is Tonino and today I&#8217;m launching <strong>SlapMac<\/strong> \ud83d\udc4b<\/p>\n<p><em>Have you ever wanted to slap your Macbook and hear it moan? Me neither.<\/em><br \/>But now I&#8217;ve built it, so pls buy my thing.<\/p>\n<p><strong>Story<\/strong><br \/>I made a viral video on IG reviewing some code that make your laptop moan, and in 24h I took the idea and turned it into a simple funny product and went even more viral. <\/p>\n<p><strong>What is it<\/strong><br \/>SlapMac turns your MacBook&#8217;s built-in accelerometer into a sound machine: slap it, tap it, shake it, and it reacts with hilarious sound effects. Moans, goat screams, impacts, and more. Built on Apple Silicon. Zero shame. 100% questionable decisions.<\/p>\n<p><strong>Discount<\/strong><br \/>Use Code &#8220;NotThatPh&#8221; to get it for only 3.5$. <br \/>(limited to 69 activations )<\/p>\n<p><strong>Stats <\/strong>as of today (28\/03\/2026)<br \/>&#8211; <strong>~4M<\/strong> organic views on my IG<br \/>&#8211; <strong>3M+<\/strong> views from reposts on X<br \/>&#8211; <strong>140K<\/strong> views on \/r\/SaaS on reddit (top post)<br \/>&#8211; <strong>2K+<\/strong> licenses sold<\/p>\n<p>Make your product simple, ship it. Don&#8217;t overthink it.<\/p>\n<p>Have fun! \ud83e\udee6<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>10<\/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\/@tonnoz\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@tonnoz<\/a>&nbsp;&#8220;Moans, goat screams, impacts and more&#8221; I am worried about what you mean by &#8220;more&#8221;<\/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=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@tonnoz\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@tonnoz<\/a>&nbsp;This is so much fun! Hope you launch one for windows PC&#8217;s too soon<\/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\/@tonnoz\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@tonnoz<\/a>&nbsp;2K licenses sold from a moan app is genuinely impressive, what&#8217;s the conversion rate from views to purchase, and did you do anything to push it or did it just happen on its own?<\/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 am so happy that I didn&#8217;t try this in some public space without wearing my headphones \ud83d\ude00<\/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\/@busmark_w_nika\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@busmark_w_nika<\/a>&nbsp;good call, I added a warning in the last release \ud83d\ude00<\/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<blockquote>\n<p>I can\u2019t believe this is a real thing, but also fair play, the reach you\u2019ve had from it is insane. Did you expect it to take off like that?<\/p>\n<\/blockquote>\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\/@becky_gaskell\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@becky_gaskell<\/a>&nbsp;&nbsp;&nbsp;Right?? The reach on this is actually insane.<\/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\/@becky_gaskell\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@becky_gaskell<\/a>&nbsp;I am as surprised as everyone else honestly. I am a seasoned swe with 14y of exp. in corporate. I could never imagine this turn of events.<\/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\">finally it reaches PH launch \ud83d\ude4c\ud83d\ude4c<br \/>\ngreat work on this @tonnoz \ud83d\udc4c<\/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\/@seantiffonnet\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@seantiffonnet<\/a>&nbsp;Thank you Sean!<\/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>Love this. So simple. But just damn fun! Deserve all the upvotes. Would love to make some fun apps with you in the future? I&#8217;m always building.<\/p>\n<p>P.S. My 7 year old son watched the video. He doesn&#8217;t get it, but found it amusing. My wife was not happy \ud83d\ude42<\/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\/@mrcndrw\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mrcndrw<\/a>&nbsp;ahaha don&#8217;t show it to your kid! But thank you!<\/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>Crazy idea. SlapMac name is so apt. <\/p>\n<p>Congrats on the launch \ud83c\udf89 <\/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\/@basharath\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@basharath<\/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\">Still better product than OpenClaw<\/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\/@je_suis_yaroslav\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@je_suis_yaroslav<\/a>&nbsp;ahaha you think so?<\/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 hilarious, but how do you plan to market it beyond memes? The novelty might wear off quick!<\/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 so funny, what a crazy idea!<\/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\/@maxont\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@maxont<\/a>&nbsp;Thank you! IKR<\/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>Literally just saw this on X! How did you even come up with this? hahaha<\/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\/@marina_romero\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@marina_romero<\/a>&nbsp;<br \/>1) I went viral on IG reviewing something like that<br \/>2) people asked about the app in the comments<br \/>3) at the third comment saying: &#8220;where is the app&#8221; I acted as fast as I could and shipped it in record time<\/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\">We actually need this for all the laptops and PCs especially nowadays when AI is not doing its job as it should and you want to slap it! Congrats on your launch \ud83d\ude80\ud83d\ude80\ud83d\ude80<\/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\/@vladimir_zivkovic\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@vladimir_zivkovic<\/a>&nbsp;I am adding soon an mcp server functionality so you can integrate it easily with AI \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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">what the heck \ud83e\udd23\ud83e\udd23<\/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\/@rohitks7\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rohitks7<\/a>&nbsp;I know lol<\/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\">This is hilariously R rates!! \ud83d\ude02\ud83d\ude02\ud83d\ude02<\/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\/@mahdibeee\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mahdibeee<\/a>&nbsp;ahah 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>Incredible app to install to your coworkers without them knowing.<\/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\/@alexintosh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alexintosh<\/a>&nbsp;\ud83e\udee6<\/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>Hahaha this is hilarious! Is there an iOS app 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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@mauricekleine\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mauricekleine<\/a>It&#8217;s on the roadmap! Live hopefully by the first half of April.<\/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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>tried it once it was released. lmao. <br \/>forgot i had it running and opened laptop next day to start the day getting moaned at: absolutely priceless.<\/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\/@chrisdietr\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@chrisdietr<\/a>&nbsp;ahah careful!<\/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 wish I had a MacBook just to buy this app<\/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\">@antonioescudero \ud83e\udee6<\/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>&lt;3<\/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>RIP for people who forget this is on in public.<\/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 hilarious and congrats on the launch!<\/p>\n<p>It&#8217;d be great use the same mechanism of tapping your macbook to get claude to think harder (although I&#8217;m sure it would want to settle the score once it becomes sentient and grows thumbs)<\/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>Great app been thinking about doing a version of SlapRick. So when you slap mac rick roll plays. <\/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, the website is down, really funny app<\/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>whats the tech stack man ? from a developer \ud83d\ude42<\/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>Really funny concept: turning your MacBook into something that literally reacts when you hit it is the kind of chaotic idea that somehow just works \ud83d\ude02 Congrats on the launch! What made you decide to turn a viral joke into a full product so fast instead of letting it stay a meme? \ud83d\ude80<\/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>I love a good tagline \u2014 I clicked just because of it! This is hilarious&#8230; sometimes you need a little fun in your day, especially when you&#8217;re in front of a computer all day. Good luck with 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>2000 licenses sold is genuinely insane haha<\/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\">#2<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/37A2GEWBOXLPGI\" class=\"app-title\">Crossnode<\/a><\/p>\n<div class=\"one-liner\">Vibe code AI agents and put them behind a payment wall<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">328<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Crossnode\u662f\u4e00\u4e2a\u8ba9AI\u5f00\u53d1\u8005\u548c\u673a\u6784\u80fd\u591f\u5c06AI\u5de5\u4f5c\u6d41\u6216\u667a\u80fd\u4f53\u5feb\u901f\u6253\u5305\u6210\u53ef\u91cd\u590d\u9500\u552e\u3001\u81ea\u5e26\u8ba1\u8d39\u548c\u5ba2\u6237\u7ba1\u7406\u7684\u767d\u6807SaaS\u4ea7\u54c1\u7684\u5e73\u53f0\uff0c\u89e3\u51b3\u4e86\u4e3a\u4e0d\u540c\u5ba2\u6237\u91cd\u590d\u90e8\u7f72\u3001\u96c6\u6210\u548c\u624b\u52a8\u7ba1\u7406\u6240\u5e26\u6765\u7684\u89c4\u6a21\u5316\u96be\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\/724baf9a-b600-43ee-91f8-7d08c82f8b2d.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\/4929f844-990b-4da0-8f0f-cce0996d3b24.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\/b60f0207-4637-4ef4-a561-029a9c21f685.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\/6ec5bebd-14a0-4a9a-a282-4ff7a4f949aa.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\/4fb7cbdb-c3ce-4986-a115-7008cb59fabf.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\/bc3aa317-6bd7-46b2-af39-aec942816370.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\/7605dc25-b152-4849-bff0-4196e582c6b7.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\/1584f874-3653-4ec0-9d54-a0b57699e228.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\/7f15366d-f35c-43a5-bcfc-957e0ec6e83e.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\/c19428c9-8933-4b6e-b561-3d2d0684c43a.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\/b765be2c-69bd-45b3-8c9b-0c3ac9af45f2.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\/e78632eb-68fd-4c25-a42c-8eb0ab2e5ece.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=XC8q6BPSVjs\"><source src=\"https:\/\/www.youtube.com\/watch?v=XC8q6BPSVjs\" 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\">No-Code<\/span><br \/>\n            <span class=\"tag\">Business<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u667a\u80fd\u4f53\u5546\u4e1a\u5316<\/span><br \/>\n            <span class=\"tag\">\u65e0\u4ee3\u7801\/\u4f4e\u4ee3\u7801\u5e73\u53f0<\/span><br \/>\n            <span class=\"tag\">SaaS\u4ea7\u54c1\u5316\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u767d\u6807\u89e3\u51b3\u65b9\u6848<\/span><br \/>\n            <span class=\"tag\">\u5de5\u4f5c\u6d41\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">\u591a\u79df\u6237\u90e8\u7f72<\/span><br \/>\n            <span class=\"tag\">\u96c6\u6210\u652f\u4ed8\u4e0e\u8ba1\u8d39<\/span><br \/>\n            <span class=\"tag\">\u51ed\u8bc1\u5b89\u5168\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u4ee3\u7406\u5373\u670d\u52a1<\/span><br \/>\n            <span class=\"tag\">\u4f01\u4e1a\u7ea7AI\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\u666e\u904d\u8ba4\u53ef\u5176\u89e3\u51b3\u201c\u4e3a\u6bcf\u4e2a\u5ba2\u6237\u91cd\u590d\u6784\u5efa\u201d\u7684\u6838\u5fc3\u75db\u70b9\uff0c\u521b\u59cb\u4eba\u4eb2\u8eab\u7ecf\u5386\u589e\u5f3a\u4e86\u53ef\u4fe1\u5ea6\u3002\u4e3b\u8981\u95ee\u9898\u96c6\u4e2d\u5728\uff1a\u7248\u672c\u66f4\u65b0\u7b56\u7565\u3001\u51ed\u8bc1\u5b89\u5168\u4e0e\u6570\u636e\u5408\u89c4\u7ec6\u8282\u3001API\u652f\u6301\u3001\u652f\u4ed8\u65b9\u5f0f\u7075\u6d3b\u6027\uff08\u5982\u5370\u5ea6\u5e02\u573a\u66ff\u4ee3\u65b9\u6848\uff09\uff0c\u4ee5\u53ca\u6280\u672f\u67b6\u6784\u7684\u53ef\u9760\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                Crossnode\u7684\u91ce\u5fc3\u4e0d\u5728\u4e8e\u6253\u9020\u53e6\u4e00\u4e2aAI\u667a\u80fd\u4f53\u6784\u5efa\u5668\uff0c\u800c\u5728\u4e8e\u6210\u4e3a\u201cAI\u670d\u52a1\u89c4\u6a21\u5316\u201d\u7684\u57fa\u7840\u8bbe\u65bd\u3002\u5b83\u654f\u9510\u5730\u523a\u4e2d\u4e86\u5f53\u524dAI\u4ee3\u7406\u70ed\u6f6e\u4e0b\u4e00\u4e2a\u9690\u79d8\u800c\u5173\u952e\u7684\u74f6\u9888\uff1a\u5982\u4f55\u5c06\u5b9e\u9a8c\u6027\u7684\u3001\u9879\u76ee\u5236\u7684AI\u5de5\u4f5c\u6d41\uff0c\u8f6c\u5316\u4e3a\u7a33\u5b9a\u3001\u53ef\u91cd\u590d\u3001\u53ef\u8ba1\u8d39\u7684\u6807\u51c6\u5316\u4ea7\u54c1\u3002\u5176\u4ef7\u503c\u5e76\u975e\u6765\u81ea\u6280\u672f\u4e0a\u7684\u98a0\u8986\u6027AI\u7a81\u7834\uff0c\u800c\u662f\u6765\u81ea\u5bf9\u5546\u4e1a\u5316\u8def\u5f84\u4e2d\u90a3\u4e9b\u201c\u810f\u6d3b\u7d2f\u6d3b\u201d\u2014\u2014\u8ba1\u8d39\u3001\u9274\u6743\u3001\u591a\u79df\u6237\u9694\u79bb\u3001\u767d\u6807\u4ea4\u4ed8\u2014\u2014\u7684\u7cfb\u7edf\u6027\u5c01\u88c5\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ea7\u54c1\u5448\u73b0\u51fa\u660e\u663e\u7684\u201c\u7531\u75db\u70b9\u5230\u4ea7\u54c1\u201d\u7279\u5f81\uff0c\u521b\u59cb\u4eba\u7684Agency\u80cc\u666f\u4f7f\u5176\u5bf9\u76ee\u6807\u5ba2\u6237\uff08AI\u670d\u52a1\u673a\u6784\u3001\u81ea\u7531\u804c\u4e1a\u8005\uff09\u7684\u8fd0\u8425\u6ce5\u6f6d\u6709\u5207\u80a4\u4e4b\u75db\u3002\u8fd9\u89e3\u91ca\u4e86\u5176\u521d\u671f\u5438\u5f15\u529b\uff1a\u5b83\u63d0\u4f9b\u7684\u4e0d\u662f\u53ef\u80fd\u6027\uff0c\u800c\u662f\u89e3\u8131\u3002\u5c06Zapier\/n8n\u5de5\u4f5c\u6d41\u76f4\u63a5\u8f6c\u5316\u4e3a\u53ef\u6536\u8d39\u670d\u52a1\u7684\u80fd\u529b\uff0c\u662f\u6781\u5177\u8bf4\u670d\u529b\u7684\u201c\u589e\u957f\u9ed1\u5ba2\u201d\u7b56\u7565\uff0c\u65e8\u5728\u5feb\u901f\u6355\u83b7\u65e9\u671f\u91c7\u7528\u8005\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u5176\u957f\u671f\u6311\u6218\u540c\u6837\u6e05\u6670\u3002\u9996\u5148\uff0c\u5b83\u672c\u8d28\u4e0a\u662f\u4e00\u4e2a\u201c\u5e73\u53f0\u4e4b\u4e0a\u7684\u5e73\u53f0\u201d\uff0c\u6df1\u5ea6\u4f9d\u8d56\u4e0b\u6e38AI\u670d\u52a1\uff08\u5982OpenAI\u3001Anthropic\uff09\u4e0e\u4e0a\u6e38\u96c6\u6210\u5de5\u5177\uff08\u5982Slack\u3001Gmail\uff09\u7684API\u7a33\u5b9a\u6027\u4e0e\u653f\u7b56\uff0c\u81ea\u8eab\u4f5c\u4e3a\u7ba1\u9053\uff0c\u6297\u98ce\u9669\u80fd\u529b\u9700\u8981\u9a8c\u8bc1\u3002\u5176\u6b21\uff0c\u5176\u5ba3\u79f0\u7684\u201c\u81ea\u6211\u4fee\u590d\u201d\u7b49\u9ad8\u7ea7\u8fd0\u7ef4\u80fd\u529b\uff0c\u5728\u590d\u6742\u7684\u4f01\u4e1a\u7ea7\u573a\u666f\u4e2d\u80fd\u5426\u7ecf\u53d7\u4f4f\u8003\u9a8c\uff0c\u4ecd\u6709\u5f85\u89c2\u5bdf\u3002\u6700\u540e\uff0c\u5176\u5546\u4e1a\u6a21\u5f0f\u662f\u5426\u8db3\u591f\u539a\u5b9e\uff1f\u5982\u679c\u5de8\u5934\uff08\u5982\u5fae\u8f6fPower Platform\u3001Zapier\u81ea\u8eab\uff09\u51b3\u5b9a\u5411\u7c7b\u4f3c\u201cAI\u5de5\u4f5c\u6d41\u4ea7\u54c1\u5316\u201d\u65b9\u5411\u5ef6\u4f38\uff0cCrossnode\u7684\u62a4\u57ce\u6cb3\u2014\u2014\u5bf9\u7ec6\u5206\u75db\u70b9\u7684\u6df1\u5ea6\u7406\u89e3\u4e0e\u654f\u6377\u5f00\u53d1\u2014\u2014\u80fd\u5426\u62b5\u5fa1\u51b2\u51fb\uff1f\n            <\/p>\n<p class=\"ai-content\">\n                \u7b80\u8a00\u4e4b\uff0cCrossnode\u662fAI\u5e94\u7528\u6d6a\u6f6e\u6b65\u5165\u201c\u6df1\u6c34\u533a\u201d\u7684\u4e00\u4e2a\u6807\u5fd7\u6027\u4ea7\u7269\u3002\u5b83\u4e0d\u518d\u9f13\u5439AI\u7684\u4e07\u80fd\uff0c\u800c\u662f\u52a1\u5b9e\u5730\u9762\u5411\u90a3\u4e9b\u8bd5\u56fe\u7528AI\u8d5a\u94b1\u7684\u6784\u5efa\u8005\uff0c\u63d0\u4f9b\u5c06\u521b\u610f\u8f6c\u5316\u4e3a\u53ef\u6301\u7eed\u751f\u610f\u7684\u5de5\u5177\u7bb1\u3002\u5b83\u7684\u6210\u529f\u4e0e\u5426\uff0c\u5c06\u6210\u4e3a\u8861\u91cfAI\u4ee3\u7406\u9886\u57df\u80fd\u5426\u4ece\u201c\u6f14\u793a\u9636\u6bb5\u201d\u8fc8\u5411\u201c\u5546\u4e1a\u9636\u6bb5\u201d\u7684\u91cd\u8981\u8bd5\u91d1\u77f3\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\">Crossnode<\/span>\n                <\/div>\n<div class=\"comment-content\">Crossnode is the fastest way to turn AI agents into paid products. Just connect your workflow (upload from n8n or build using natural language), we handle logins, billing, usage caps, no backend or payment setup needed, all you have to do is put in the email of your clients and assign agents to them \ud83d\ude42<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hellooo everyone!! \ud83d\udc4b<\/p>\n<p>While running my AI agency 2 years ago, everything worked super well, managed to make some good money at 19 but it didn\u2019t scale \ud83d\ude41 <\/p>\n<p>Every new client meant rebuilding workflows, setting up integrations again, asking for api keys over Whatsapp, and managing everything manually&#8230; so we built something for ourselves to fix it<\/p>\n<p>We wanted one system where workflows could be <strong>deployed once, clients could connect their own accounts, and everything would just run without us in the loop, <\/strong>that\u2019s what turned into Crossnode, we let you take workflows or ai agents and turn them into actual products with:<\/p>\n<ul>\n<li>\n<p><strong><em>White-label client portals<\/em><\/strong><\/p>\n<\/li>\n<li>\n<p><strong><em>Built-in billing<\/em><\/strong><\/p>\n<\/li>\n<li>\n<p><strong><em>Secure credential handling<\/em><\/strong><\/p>\n<\/li>\n<li>\n<p><strong><em>Multi-client deployments<\/em><\/strong><\/p>\n<\/li>\n<\/ul>\n<p>We want to accelerate the deployment of ai, and if this is how we can help, we\u2019ll gladly do it \ud83d\ude4f\ud83d\ude4f\ud83d\ude4f<\/p>\n<p>If you&#8217;re running AI services today, I\u2019d genuinely love to know about your biggest operational pain point&#8230;<\/p>\n<p>We\u2019re fixing bugs in &lt;24h and shipping improvements daily!!<\/p>\n<p>Hope you like the product!! Feel free to reach out directly \u2192<br \/>Rania: <a href=\"https:\/\/www.linkedin.com\/in\/rania-rimali\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/www.linkedin.com\/in\/rani&#8230;<\/a><\/p>\n<p>Islam: <a href=\"https:\/\/www.linkedin.com\/in\/islam-hachimi\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/www.linkedin.com\/in\/islam-hachimi\/<\/a><\/p>\n<p>We\u2019ve been debating launching for a few weeks\u2026 but at some point you just have to stop overthinking and ship!! The fastest way to know if something works is to put it in people\u2019s hands :))<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>15<\/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\/@rania_rimali\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rania_rimali<\/a>&nbsp;Congrats! The &#8220;build once, deploy to many clients&#8221; angle is exactly what&#8217;s missing for most AI agencies. how do you handle versioning when you update an agent -do all clients get the update automatically, or can you roll it out selectively?<\/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\/@rania_rimali\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rania_rimali<\/a>&nbsp;Hey! When a client connects their own accounts through the portal, who has access to those credentials at the infrastructure level, and what happens to them if a client cancels or the agency relationship ends?<\/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 everyone \ud83d\udc4b Islam here, CTO of Crossnode \ud83d\udd7a<\/p>\n<\/p>\n<p>Super excited (and a bit nervous tbh) to finally share this after being heads-down in the codebase for the past few months!<\/p>\n<\/p>\n<p>While building the core engine, one thing became clear: building an AI agent is easy but when you try to scale that agent across 20 different clients. Suddenly you&#8217;re drowning in a mess of isolated API keys, empty executions, timeout errors, and trying to hack together a way to bill for usage without losing your margin\u2026<\/p>\n<\/p>\n<p>So we built Crossnode to handle that entire infrastructure layer. The idea is simple: you build an agent once, and you can deploy it across infinite clients as a white-labeled SaaS.<\/p>\n<\/p>\n<p>To make this actually work reliably in production, we had to go deep. Under the hood:<\/p>\n<\/p>\n<p>We spin up persistent Daytona sandboxes so your agents have real state, memory, and secure file systems across runs.<\/p>\n<\/p>\n<p>We built a DAG execution engine that handles circuit-breaking for API limits.<\/p>\n<\/p>\n<p>Instead of just failing and alerting you, the engine actually tries to self-correct broken nodes.<\/p>\n<\/p>\n<p>And because we know nobody wants to rebuild from scratch&#8230; we built a 1-click Zapier &amp; n8n importer so you can just drop your existing JSON workflows right into our infrastructure.<\/p>\n<\/p>\n<p>It\u2019s still early and we\u2019re shipping code every day, but we\u2019re really happy to finally have people try it and give feedback.<\/p>\n<\/p>\n<p>If you\u2019re building AI workflows or agents for clients, I\u2019d genuinely love to hear: how are you managing state, sandboxing, and billing right now?<\/p>\n<\/p>\n<p>Please go break the importer, roast the architecture, and let me know what you think! \ud83d\ude4f<\/p>\n<\/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\/@thislam\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thislam<\/a>&nbsp;LFGGGGG\ud83d\ude80\ud83d\ude80\ud83d\ude80\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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">I love Crossnode, I already have tons of ideas I\u2019d like to build with it, like platform-specific scrapers offered as a service.<\/p>\n<p>I have two questions:<br \/>\n\t1.\tWhat payment models do you support for end clients?<br \/>\n\t2.\tCan clients access and run the automations via an API?<\/p><\/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\/@bengeekly\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@bengeekly<\/a>&nbsp;Thank you so much!! We&#8217;re really grateful for all the support \ud83d\ude4c \ud83d\ude80<\/p>\n<p>On payments, you can structure it however you want depending on your clients! Subscription with a free trial, one-off projects, split payments like pay half now and the rest later\u2026 all of that works :))) The idea is that you\u2019re not locked into one model, you can adapt to how you already sell + we try to stay very flexible with our agencies!<\/p>\n<\/p>\n<p>And yes, we do have the API! We believe that automations are the next software, so giving people the ability to run and embed them programmatically is a big part of that vision!!<\/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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Holy integrations!<\/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\/@apparentforgmail\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@apparentforgmail<\/a>&nbsp;Thank you!!!<\/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>Interesting angle.<\/strong><br \/>A lot of people can build agents now, but packaging them into something users can actually pay for is where the real business starts.<br \/>Making distribution + billing simpler is a strong move. 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>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\/@mikita_aliaksandrovich\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mikita_aliaksandrovich<\/a>&nbsp;Thank you so much for the support!!! that&#8217;s also exactly how we see it! <\/p>\n<p>We\u2019d love for people to focus on selling outcomes rather than all the setup around it! The value shouldn\u2019t be in wiring things together, it should be in what the automation actually delivers \ud83d\ude42<\/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>Congrats on the launch \ud83d\ude80<br \/>this is seriously exciting to see \ud83d\udc40<\/p>\n<p>The idea of turning AI services into something repeatable instead of rebuilding every time is great!! Once you standardize deployments and add proper monitoring and billing, you\u2019re no longer selling projects, you\u2019re building something that behaves like a product.<\/p>\n<p>Over time, this kind of system naturally compounds. More usage means more data, better performance, and smoother deployments. That kind of leverage is what actually enables scale.<\/p>\n<p>Curious, what has been the hardest part so far when it comes to managing multiple clients and keeping everything running reliably?<\/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\/@cem_ozcelik\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@cem_ozcelik<\/a>&nbsp;Thank you Cem :))) really appreciate the support !!\ud83d\ude4c<\/p>\n<p>This is actually something I personally struggled with when I had my agency. We kept rebuilding the same things over and over, and it just didn\u2019t scale. At some point I realized the real problem wasn\u2019t building, it was everything around it. Deployments alone are a whole different layer, and once you add monitoring and billing, you\u2019re not really selling services anymore, you\u2019re building something closer to software.<\/p>\n<p>And you\u2019re exactly right on the compounding side. Over time we want to leverage as much data as possible to improve performance, understand what actually works across different companies, and identify which agents are being used the most and performing best. We track everything on the backend so we can keep improving that loop.<\/p>\n<p>Now as per managing multiple clients, it isn\u2019t that hard anymore since we\u2019re using Crossnode ourselves hehehe but before that it was a mess!! And during validation, pretty much every AI agency I spoke to was dealing with the exact same issue.<\/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>Congratulations on the launch \ud83c\udf89 \ud83c\udf89 <\/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\/@shubham_pratap\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@shubham_pratap<\/a>&nbsp;Thank you so much for 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>Congratulations <\/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\/@madalina_barbu\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@madalina_barbu<\/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>the &#8220;rebuild everything for every client&#8221; pain point is so real &#8211; the fact that you hit it yourself running an agency before building the solution means you actually know which parts hurt most<\/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\/@liviu_chita\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@liviu_chita<\/a>&nbsp;Thank you so much for 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>Really cool to see this, we ran into the exact same scaling problem building TalkBuildr (AI chatbots as a service for agencies). The white-label portal + billing combo is where it gets tricky. How are you handling the credential handoff when clients need to swap their own API keys mid-deployment?<\/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\/@cuygun\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@cuygun<\/a>&nbsp;100% \ud83d\ude4c that was the biggest advantage we had going into this! We know exaclty the pain points :)))<\/p>\n<p>What we do is keep that layer fully separated per client, so they can manage and update their own credentials without breaking the setup. The system picks up the changes without you having to redeploy everything or jump in 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<\/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\/@rania_rimali\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"rania_rimali\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rania_rimali<\/a> <a href=\"https:\/\/www.producthunt.com\/@thislam\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"thislam\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thislam<\/a> Congrats on the launch. How do you ensure end-to-end data privacy and regulatory compliance (such as GDPR and emerging AI governance laws) when client data, API credentials, and autonomous agent activities are processed across multiple third-party integrations and workflows?<\/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\/@rania_rimali\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rania_rimali<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@mssulthan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mssulthan<\/a>&nbsp;Great question! We take a multi-layered approach to privacy and compliance to ensure you\u2019re ready for the most rigorous security audits.<\/p>\n<p>First, we use <strong>AES-256 (Fernet) encryption<\/strong> for all sensitive credentials, and they are only decrypted at runtime within isolated execution environments. Second, we built Crossnode on a <strong>strict multi-tenant architecture<\/strong>, ensuring total data isolation between agencies and their respective clients using row-level security logic.<\/p>\n<p>For GDPR and privacy specifically, our <strong>Dynamic Tool Resolution<\/strong> is the key. It allows your clients to connect their own third-party tools (Slack, Gmail, etc.) within their own branded portal. This means you, as the agency, never have to touch or store your client\u2019s sensitive API keys; the client remains the &#8216;Data Controller&#8217; for their own accounts. Finally, our built-in <strong>Audit Logging<\/strong> tracks every configuration change and agent activity, giving you the complete visibility needed for modern AI governance.<\/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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">I was searching for thiss!! Thanks guys<\/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\/@jaber23\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jaber23<\/a>&nbsp;Thanks a lot Jaber!!<\/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 in the launch <a href=\"https:\/\/www.producthunt.com\/@thislam\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"thislam\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thislam<\/a> and <a href=\"https:\/\/www.producthunt.com\/@rania_rimali\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"rania_rimali\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rania_rimali<\/a> !!<br \/>Quick question: Can we connect our stripe with Crossnode for direct billing?<\/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\/@ajaykumar1018\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ajaykumar1018<\/a>&nbsp; Yessirrr \ud83d\ude04 that\u2019s exactly how we operate! You can connect your Stripe and handle billing directly through Crossnode! We want the agencies\/freelancers to operate on one singular platform! <\/p>\n<p>Thank you for your support btw!!<\/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\/@rania_rimali\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rania_rimali<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@ajaykumar1018\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ajaykumar1018<\/a>&nbsp;Yes, absolutely! We&#8217;ve built Crossnode with a native <strong>Stripe Connect<\/strong> integration specifically for agencies!!<\/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 Rania and Islam \ud83d\ude80\ud83d\ude80\ud83d\ude80 <\/p>\n<p>Agencies have always been known for delivering services, which works, but it also means everything stays manual and every new client turns into a new project&#8230; What\u2019s interesting here is that you\u2019re giving agencies a way to turn those services into something more productized. Instead of starting from scratch every time, they can actually offer something repeatable!<\/p>\n<p>Feels like a big shift in how agencies can operate long term. Are you seeing interest from agencies trying to scale??<\/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\/@munjitso\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@munjitso<\/a>&nbsp;<br \/>Thank you so muuch Mohamed Amine!!!  \ud83d\ude80\ud83d\ude80<\/p>\n<p>And yeah 100%.!! Most of the interest is coming from agencies that already hit that wall where everything is manual and just doesn\u2019t scale anymore!!<\/p>\n<p>Once they start thinking in terms of productized services, it changes everything. Same workflows, but now repeatable and wayyyyyy easier to manage.<\/p>\n<p><\/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>Oleee!! Congrats on the launch Rania!! \ud83d\ude80<\/p>\n<p>Have you thought about alternatives to Stripe for markets like India? There\u2019s a lot of freelance and agency activity there, especially among the kind of users you\u2019re targeting.<\/p>\n<p>Would be interesting to see how you handle payments in those regions.<\/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\/@dhanushreddy29\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dhanushreddy29<\/a>&nbsp;Thank you so much \ud83d\ude4c I really appreciate it<\/p>\n<p>Yeah we\u2019ve been thinking about that. Stripe works great in some regions, but markets like India are very different. I\u2019ve heard good things about Dodo Payments and Razorpay as well, so we\u2019re exploring options in that direction. The goal is really to keep it flexible so people can use whatever works best locally instead of being tied to one provider!<\/p>\n<p>If you\u2019ve seen others working well there, would love to know \ud83d\udc40<\/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 someone who has watched hours of tutorial videos for n8n, for zapier, for make.com, and for relevance ai and still struggled to find the perfect way to build your marketplace is a game changer!!! <\/p>\n<p>How user friendly is the platform for someone who is just getting started? Are your current users typically established agencies, or are they mostly individuals just starting out like me?<\/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\/@mar_merino\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mar_merino<\/a>&nbsp;Thank you for your support!! We tried to make Crossnode as simple as possible to pick up. You can build using natural language or import existing workflows, so you don\u2019t need to be suuuper technical to figure things out!!<\/p>\n<p>Right now we\u2019re seeing a mix tho some established agencies using it to scale, but also individuals just starting out and trying to turn their first workflows into something they can actually sell :))<\/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>Like the idea!  Building things is one challenge, but keeping them running across clients is another story.<\/p>\n<p>If it works as you intend, it could really change how teams deliver and manage their automation. How are you thinking about making it easy for smaller teams to plug in and use?<\/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\/@kate_ramakaieva\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@kate_ramakaieva<\/a>&nbsp;Really appreciate your support Kate!! <\/p>\n<p>We\u2019re primarily built for smaller teams looking to scale, but also for larger teams that need to keep things running reliably. One of the core pieces is an engine that continuously monitors logs and, instead of requiring a human in the loop, automatically detects and fixes issues as they come up.<\/p>\n<p>On top of that, you can either build workflows directly on Crossnode or import them from tools like n8n. From there, everything gets deployed across clients with billing and access handled out of the box!<\/p>\n<\/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\">Good luck with your launch!<\/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\/@dmitry_zakharov_ai\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dmitry_zakharov_ai<\/a>&nbsp;Thank you so much Dmitry!<\/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>Crossnode looks awesome. Let&#8217;s get you guys in the Fastlane!<\/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\/@gauravthapa\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@gauravthapa<\/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>Biggest challenge won&#8217;t be building agents. It will be making them reliable under real client usage. Billing is easy. Production-grade agents are hard.<\/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\/@ion_simion_bajinaru\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ion_simion_bajinaru<\/a>&nbsp;We totally agree!!!<\/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>Really interesting idea: turning AI agents into actual monetizable products without dealing with billing or backend setup removes a huge barrier for builders. Congrats on the launch! How do you handle pricing models or usage limits so creators can scale without underpricing their agents? \ud83d\ude80<\/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\/@thegreatphon\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thegreatphon<\/a>&nbsp;hehehe Thank youuu!! We have an earnings dashboard that tracks infra costs and usage per client, so you can actually see what each workflow is costing you in real time!  you will know for sure if you\u2019re undercharging (or overcharging ;)) ) and can adjust pricing accordingly!<\/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>Love the vision behind Crossnode! A solid solution for AI agencies tired of the chaotic cycle of client onboarding and manual setups. The one-click importer for Zapier and n8n is a smart touch, it&#8217;s those little friction points that really derail progress. How have you tackled scaling the infrastructure to support varied client needs while maintaining performance?<\/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\/@trydoff\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@trydoff<\/a>&nbsp;Thanks for the kind words! Basically we tackle scaling by decoupling the &#8216;heavy lifting&#8217; from the main interface: we offload long-running AI tasks to a background layer so the user experience stays snappy.<\/p>\n<p>The entire system is completely stateless and architected for horizontal expansion, with a heavy focus on keeping data retrieval instant even as your agency grows.<\/p>\n<p>Basically, we handle the &#8216;boring&#8217; infrastructure so you can focus on the AI part! \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>With the AI agent builder, are there ways to debug issues or customize it further based upon specific client needs?<\/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\/@lienchueh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@lienchueh<\/a>&nbsp;Yes, absolutely! We built this specifically so you don\u2019t hit that &#8220;no-code ceiling&#8221; when delivering for clients.<\/p>\n<\/p>\n<p><strong>For debugging:<\/strong> Every execution gives you a granular, step-by-step visual trace. You can click any node to see the exact inputs, outputs, latency, and errors. If a run fails, our AI &#8220;Smart Fixer&#8221; analyzes the logs and actually suggests the specific prompt or code tweak to fix it.<\/p>\n<\/p>\n<p><strong>For customization:<\/strong> You aren&#8217;t limited to our pre-built integrations. You can drop into raw Python to write custom tools (running in secure cloud sandboxes) to hit any obscure client API. You can also mix AI reasoning with strict, deterministic logic (switches, routers, loops) to guarantee their exact business rules are followed.<\/p>\n<p>Happy to share a quick video of the debugger in action if you&#8217;re curious!<\/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\">This is really great! Especially for  folks with a lot of great ideas but not enough scope to execute by themselves. Congrats on the launch!<\/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\/@chimwemwe\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@chimwemwe<\/a>&nbsp;Thanks for 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>Congrats on the launch \ud83d\ude80 absolutely love the UI, super clean!! Great job<\/p>\n<\/p>\n<p>I\u2019m thinking of implementing it for a few workflows I\u2019m running, this feels like it could simplify things a lot! Is it to get started from scratch?<\/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\/@obezzad\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@obezzad<\/a>&nbsp;Totally! We designed the whole experience to be as low-friction as possible for agencies and tinkerers. You can either drag in your existing n8n or Zapier JSONs and we\u2019ll convert them into agents in seconds, or you can just describe what you want to our &#8216;Architect&#8217; (like, &#8216;A lead researcher that pokes Slack&#8217;) and it\u2019ll draft the whole workflow for you. Most people have their first client-ready agent billable in under 5 minutes!<\/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!!! Super cool product i love it!!<\/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\/@itsmasa\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@itsmasa<\/a>&nbsp;Thank you so much for 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><a href=\"https:\/\/www.producthunt.com\/@rania_rimali\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"rania_rimali\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rania_rimali<\/a> <a href=\"https:\/\/www.producthunt.com\/@thislam\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"thislam\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thislam<\/a> <\/p>\n<p>Let\u2019s gooo Rania and Islam!!! \ud83d\ude80 you guys never disappoint<\/p>\n<p>Love that you tackled one of the biggest barriers when switching tools, which is migration. Including n8n and Zapier is huge, because that\u2019s usually what stops teams from even trying something new.<\/p>\n<p>This really feels like a game changer for agencies that want to move away from selling hours and start operating more like a product, with something structured and repeatable instead of starting from scratch every time.<\/p>\n<p>How are the API keys shared then??<\/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\/@rania_rimali\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rania_rimali<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@amraniyasser\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@amraniyasser<\/a>&nbsp;That&#8217;s actually one of the coolest parts! We use something called <strong>dynamic tool resolution<\/strong> so you never have to ask a client to &#8216;hand over&#8217; their sensitive API keys. You build the agent exactly how you want it, and you get to decide which parts use your own infrastructure and which parts require the client to connect their own accounts (like their Slack or Gmail). When they log into their portal, they just see a simple &#8216;Connect&#8217; button for the specific tools you&#8217;ve delegated to them. It keeps their credentials totally private and makes the handover feel like a seamless product experience.<\/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>love the origin story, happy launch day! quick one: when clients need to connect their own tools (Google, Slack, etc.), do they do that themselves inside the portal or do you still have to set it up on their behalf?<\/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\/@jens_deryckere1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jens_deryckere1<\/a>&nbsp;They do it themselves! That\u2019s the beauty of it. Once you assign an agent to their portal, the system automatically detects which tools need their personal accounts. They just log into their branded portal, click a single &#8220;Connect&#8221; button (for Google, Slack, etc.), and they\u2019re good to go. You never have to touch their credentials, and they never have to touch yours.<\/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 product interface is far too complex; it is unclear what is happening.<\/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\/@river_ray\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@river_ray<\/a>&nbsp;I totally hear you. We&#8217;ve packed a lot of power under the hood to handle complex agency workflows, but I know that can definitely feel like a lot to take in at first glance. We&#8217;re already working on simplifying the onboarding and adding more intuitive templates, so this feedback is actually super helpful for us. I&#8217;d love to hear more about which specific parts felt the most confusing if you&#8217;re up for 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>This is a very smart solution for a very real pain point \u2014 every AI agency hits that wall where scaling means chaos. Love how Crossnode shifts that burden off the agency completely. The white-label portal + built-in billing combo is exactly what&#8217;s been missing. Congrats on the launch, Rania and Islam \u2014 curious to see where you take the multi-client deployment features next!<\/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\/45ASS7UPWHFNKV\" class=\"app-title\">Aera Browser<\/a><\/p>\n<div class=\"one-liner\">The browser built for automation<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">199<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Aera Browser\u662f\u4e00\u6b3e\u4e3a\u81ea\u52a8\u5316\u771f\u5b9e\u5de5\u4f5c\u6d41\u800c\u6784\u5efa\u7684\u6d4f\u89c8\u5668\uff0c\u5141\u8bb8\u7528\u6237\u521b\u5efa\u5e76\u81ea\u52a8\u6267\u884c\u8de8\u7f51\u7ad9\u7684\u590d\u6742\u4efb\u52a1\uff0c\u89e3\u51b3\u4e86\u4f20\u7edf\u81ea\u52a8\u5316\u5de5\u5177\u96be\u4ee5\u5904\u7406\u4e0a\u4e0b\u6587\u3001\u6613\u4e2d\u65ad\u4e14\u65e0\u6cd5\u5b9e\u9645\u6267\u884c\u64cd\u4f5c\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                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/c4d131fc-f930-4e8a-8bad-733d520d8693.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=ZuYkb-6hOBc\"><source src=\"https:\/\/www.youtube.com\/watch?v=ZuYkb-6hOBc\" 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\/237b2d90-7087-41cb-896c-7be9b9a54b58.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\/8e827ead-e6b3-4e5a-af1d-7c26175cd82c.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\/c28763e8-3cf6-4fc9-ab44-7ce291e7ce75.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\/67dca7cd-9ff2-483c-b9d5-739501201d24.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\/bb3b2b8a-1c78-4423-851e-05637da175da.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>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u6d4f\u89c8\u5668\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">\u667a\u80fd\u4f53\u6d4f\u89c8\u5668<\/span><br \/>\n            <span class=\"tag\">\u5de5\u4f5c\u6d41\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">RPA<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u9690\u79c1<\/span><br \/>\n            <span class=\"tag\">MCP\u96c6\u6210<\/span><br \/>\n            <span class=\"tag\">\u81ea\u4e3b\u6267\u884c<\/span><br \/>\n            <span class=\"tag\">Chromium\u5185\u6838<\/span><br \/>\n            <span class=\"tag\">\u65e0\u4ee3\u7801\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">\u540e\u53f0\u4efb\u52a1<\/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\u5bf9MCP\u96c6\u6210\u548c\u5b9e\u9645\u6267\u884c\u80fd\u529b\u8868\u793a\u9ad8\u5ea6\u5174\u8da3\uff0c\u8ba4\u4e3a\u8fd9\u662f\u533a\u522b\u4e8e\u4ec5\u63d0\u4f9b\u5efa\u8bae\u7684AI\u5de5\u5177\u7684\u5173\u952e\u3002\u4e3b\u8981\u95ee\u9898\u96c6\u4e2d\u5728\uff1a1. \u5982\u4f55\u5e94\u5bf9\u590d\u6742\u7f51\u7ad9\u53ca\u9632\u722c\u673a\u5236\uff08\u5f00\u53d1\u8005\u56de\u590d\u901a\u8fc7\u6df1\u5ea6\u96c6\u6210Chromium\u6a21\u62df\u4eba\u7c7b\u4ea4\u4e92\u89e3\u51b3\uff09\uff1b2. \u662f\u5426\u652f\u6301\u591a\u4efb\u52a1\u5e76\u884c\uff1b3. \u4e0e\u4e3b\u6d41\u6d4f\u89c8\u5668\u7684\u57fa\u7840\u6027\u80fd\u5bf9\u6bd4\u3002\u53e6\u6709\u7528\u6237\u4e3b\u52a8\u63d0\u51fa\u4ed8\u8d39\u6d4b\u8bd5\u670d\u52a1\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                Aera Browser\u7684\u91ce\u5fc3\u4e0d\u5728\u4e8e\u505a\u4e00\u4e2a\u66f4\u597d\u7684\u6d4f\u89c8\u5668\uff0c\u800c\u5728\u4e8e\u6210\u4e3a\u8fde\u63a5AI\u667a\u80fd\u4f53\u4e0e\u73b0\u5b9e\u6570\u5b57\u4e16\u754c\u7684\u201c\u6267\u884c\u5c42\u201d\u3002\u5176\u771f\u6b63\u7684\u98a0\u8986\u6027\u4ef7\u503c\u4f53\u73b0\u5728\u4e24\u4e2a\u5c42\u9762\uff1a\u7b2c\u4e00\uff0c\u5b83\u901a\u8fc7\u6df1\u5ea6\u4fee\u6539Chromium\u5185\u6838\uff0c\u5c06\u81ea\u52a8\u5316\u5f15\u64ce\u690d\u5165\u6d4f\u89c8\u5668\u5e95\u5c42\uff0c\u8bd5\u56fe\u4ece\u6839\u672c\u4e0a\u89e3\u51b3\u4f20\u7edfRPA\u6216\u6269\u5c55\u811a\u672c\u5728\u52a8\u6001\u7f51\u9875\u9762\u524d\u8106\u5f31\u3001\u6613\u5931\u6548\u7684\u987d\u75be\uff0c\u5176\u5ba3\u79f0\u7684\u6a21\u62df\u4eba\u7c7b\u4ea4\u4e92\u4e0e\u89c6\u89c9\u9a8c\u8bc1\u662f\u6280\u672f\u4e0a\u7684\u5173\u952e\u8d4c\u6ce8\u3002\u7b2c\u4e8c\uff0c\u4e5f\u662f\u66f4\u5177\u6218\u7565\u773c\u5149\u7684\u4e00\u6b65\uff0c\u662f\u5185\u7f6eMCP\uff08\u6a21\u578b\u4e0a\u4e0b\u6587\u534f\u8bae\uff09\u3002\u8fd9\u4f7f\u5b83\u4ece\u5355\u4e00\u7684\u81ea\u52a8\u5316\u5de5\u5177\uff0c\u5347\u7ea7\u4e3aAI\u667a\u80fd\u4f53\u7684\u201c\u624b\u548c\u773c\u201d\u3002\u5f53Cursor\u3001Claude Code\u7b49\u7f16\u7801\u667a\u80fd\u4f53\u80fd\u76f4\u63a5\u8c03\u7528\u6d4f\u89c8\u5668\u6267\u884c\u4efb\u52a1\uff0c\u800c\u4e0d\u4ec5\u4ec5\u662f\u751f\u6210\u4ee3\u7801\u5efa\u8bae\u65f6\uff0c\u4eba\u673a\u534f\u4f5c\u7684\u8303\u5f0f\u624d\u53ef\u80fd\u53d1\u751f\u8d28\u53d8\u2014\u2014\u4ece\u201cAI\u5efa\u8bae\uff0c\u4eba\u64cd\u4f5c\u201d\u53d8\u4e3a\u201c\u4eba\u6307\u6325\uff0cAI\u5168\u6808\u6267\u884c\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u5149\u73af\u4e4b\u4e0b\u9690\u5fe7\u5e76\u5b58\u3002\u4f5c\u4e3a\u4e2a\u4eba\u5f00\u53d1\u8005\u9879\u76ee\uff0c\u5176\u5de5\u7a0b\u590d\u6742\u5ea6\u548c\u957f\u671f\u7ef4\u62a4\u80fd\u529b\u9762\u4e34\u4e25\u5cfb\u8003\u9a8c\uff0c\u5c24\u5176\u662f\u5bf9\u6297\u65e5\u76ca\u590d\u6742\u7684\u53cd\u673a\u5668\u4eba\u68c0\u6d4b\u662f\u4e00\u573a\u6c38\u65e0\u6b62\u5883\u7684\u519b\u5907\u7ade\u8d5b\u3002\u6b64\u5916\uff0c\u5176\u5546\u4e1a\u6a21\u5f0f\u4f9d\u8d56\u7684\u201c\u66f4\u9ad8\u6027\u80fd\u6a21\u578b\u4e0e\u89c6\u89c9\u5de5\u5177\u201d\u7684\u8ba2\u9605\u5236\uff0c\u53ef\u80fd\u5c06\u6838\u5fc3\u80fd\u529b\u8bbe\u9650\uff0c\u514d\u8d39\u7248\u80fd\u5426\u63d0\u4f9b\u8db3\u591f\u7684\u7a33\u5b9a\u6027\u548c\u80fd\u529b\u4ee5\u5f62\u6210\u7f51\u7edc\u6548\u5e94\u5b58\u7591\u3002\u5f53\u524dAI\u667a\u80fd\u4f53\u9886\u57df\u4ecd\u5904\u4e8e\u201c\u5efa\u8bae\u591a\uff0c\u6267\u884c\u5c11\u201d\u7684\u63a2\u7d22\u671f\uff0cAera\u63d0\u524d\u5361\u4f4d\u6267\u884c\u67a2\u7ebd\u7684\u4f4d\u7f6e\u9887\u5177\u524d\u77bb\u6027\uff0c\u4f46\u5176\u6210\u529f\u4e0e\u5426\uff0c\u4e0d\u4ec5\u53d6\u51b3\u4e8e\u6280\u672f\u53ef\u9760\u6027\uff0c\u66f4\u53d6\u51b3\u4e8e\u80fd\u5426\u5438\u5f15\u5230\u8db3\u591f\u591a\u7684\u667a\u80fd\u4f53\u5e73\u53f0\u4e0e\u5176\u5171\u5efa\u751f\u6001\uff0c\u5426\u5219\u5c06\u9762\u4e34\u5b64\u638c\u96be\u9e23\u7684\u7a98\u5883\u3002\u5b83\u4e0d\u662f\u5728\u6311\u6218Chrome\uff0c\u800c\u662f\u5728\u8bd5\u56fe\u6210\u4e3a\u4e0b\u4e00\u4ee3AI\u539f\u751f\u64cd\u4f5c\u7cfb\u7edf\u7684\u5165\u53e3\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\">Aera Browser<\/span>\n                <\/div>\n<div class=\"comment-content\">Meet Aera, the browser built for automating real workflows. Create tasks, and Aera runs full workflows in the background, handling context, execution, and reporting automatically. Connect tools like Cursor or Claude Code with MCP so agents can take real action, not just suggest it. Keep your data + history private and local-only. Try for free!<\/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<\/p>\n<p>I&#8217;m Andrew, and I built Aera to address the core issue with current agentic browsers: they just don&#8217;t help me get any real work done.<\/p>\n<p>Aera does. <\/p>\n<p>Instead of just helping you browse, Aera lets you automate real workflows in your browser, even while you\u2019re away.<\/p>\n<p>Here&#8217;s how it works:<br \/>\n\u2022 Create a task (or just ask the sidebar!)<br \/>\n\u2022 Schedule it to run automatically<br \/>\n\u2022 It executes, tracks context across runs, and generates reports<br \/>\n\u2022 You get notified when it\u2019s done<\/p>\n<p>If you can do it in a browser, you can automate it.<\/p>\n<p>But with Aera, I wanted to take this a step further. Agentic tools can be helpful in their own right, but are even more useful when connected to other agentic systems. So Aera ships with MCP. You can connect tools like Cursor, Gemini CLI, OpenClaw, and Claude Code directly to Aera so that they can use the browser&#8217;s automation toolkit to actually execute tasks, not just suggest them.<\/p>\n<p>On privacy:<br \/>\n\u2022 Your browsing + chat history stays local-only.<br \/>\n\u2022 Inference handled directly by model providers and never passes through Aera servers.<br \/>\n\u2022 All subscription models use ZDR (Zero Data Retention).<\/p>\n<p>Aera comes with a free tier, with higher performance models and vision tools that greatly increase capabilities available in subscription plans.<\/p>\n<p>Aera is still in early access, and is developed solely by me for the time being. I&#8217;d genuinely love to hear your feedback and see what you automate as Aera continues to scale!<\/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\/@arivers\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@arivers<\/a>&nbsp;this looks excellent. 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<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@arivers\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@arivers<\/a>&nbsp;Hey! I just came across your launch on Product Hunt \u2013 really cool what you\u2019ve built \ud83d\ude4c<\/p>\n<p>I like the direction you\u2019re going in. I usually help founders test their products and catch bugs or UX issues before users run into them.<\/p>\n<p>I\u2019d be happy to do a full test and send you a clear, structured report (bugs, edge cases, usability improvements).<\/p>\n<p>I normally charge around $25 for this, but happy to start there and see if it\u2019s useful for you \ud83d\ude42<\/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\/@arivers\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@arivers<\/a>&nbsp;Hey Andrew, super intrigued by Aera&#8217;s MCP integration. What&#8217;s one quick-win automation you&#8217;ve seen users pull off that blew your mind?<\/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>Are you dog fooding your own product to get more users? If so, how are you using it?<\/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>Automation is easy.<br \/>Reliable automation across real workflows is hard.<\/p>\n<p>If this solves context, failures and retries, this gets very interesting.<\/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>Congrats on the launch <a href=\"https:\/\/www.producthunt.com\/@arivers\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"arivers\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@arivers<\/a> , does it have an MCP?<\/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\">@talal_bazerbachi2 Yes! It comes with MCP which is free to use and more advanced MCP tools on the subscription plan<\/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 the launch! How do you handle complex sites or edge cases where workflows might break mid-run?<\/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\">@thegreatphon Aera uses vision and a verification sub process that verifies that intended actions have completed and tries alternative methods if it does not. Helps keep background tasks running more stable on long runs<\/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 MCP integration is what sets this apart for me. Having coding agents actually execute browser tasks instead of just generating instructions is a huge workflow difference. Also respect that it&#8217;s a solo dev project built on Chromium \u2014 that&#8217;s no small feat. Will definitely try connecting it to my existing agent setup.<\/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\">@letian_wang3 would love to hear your thoughts, and appreciate the kind words! It has been quite the project!<\/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 someone who&#8217;s worked on automation tools, I love the idea of Aera tackling real workflows directly in the browser. The integration with tools like Cursor and Claude Code is a smart move to boost functionality without compromising user data security. How have you ensured Aera can effectively handle complex websites without getting flagged as a bot?<\/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\/@trydoff\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@trydoff<\/a>&nbsp;Yep, and that is one of the reasons why forking Chromium became a priority over the original Electron application. Having access to the browser&#8217;s core functionality at the deepest level allows Aera to perform actions like clicking\/typing in a way that emulates human actions, rather than simply programmatically clicking buttons. This is taken a step further for subscription accounts, which can complete most levels of Captchas (there are a few really complex ones that it deals with) without user interaction.<\/p>\n<p>That is one of the things this Chromium version of Aera highly prioritized, as the original Electron build would get flagged as automated behavior due to the limited access to the browser internals. <\/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 exceptional, there are so many simple but important tasks I always wanted to automate, this will surely help me do that, but how well it can handle mimicking the human behavior because if websites get a feel that its not a real person, it will be blocked?<\/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\">@nayan_surya98 Thank you, and great question! Because Aera is built as a browser and not just an extension, the interaction engine has been built into the browser itself so that automated events appear as human inputs to the web page. Interactions like clicking\/typing, etc. all have various internal processes to emulate virtual mouse movement and clicks, instead of being purely programmatic. This also means (on the subscription version) that it can solve captchas visually, which is a major blocker for agentic browsers otherwise, especially for background automated tasks.<\/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 Aera browser looks promising. Congrats on the launch \ud83c\udf89 <\/p>\n<p>Btw, is it based on Chromium?<\/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\">@basharath Yep! It was originally built in Electron, but feature parity was becoming a major issue, so to move focus back into building agentic features, the project was rebuilt in Chromium<\/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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Do you plan to support running multiple tasks at the same time, or does Aera handle them one by one?<\/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 the launch and best of luck! Apart from the Agentic stuff, how good would you say your browser is versus legacy ones in terms of speed, memory management, UI, etc? What I would like to figure out is, if it weren&#8217;t for the Agentic part, would it still be better to use versus Chrome, Edge, Safari, etc.<\/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\/MVLWQNIV4PJAZJ\" class=\"app-title\">Apparent for Gmail<\/a><\/p>\n<div class=\"one-liner\">Make Gmail easier to read and manage.<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">188<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>\u4e00\u6b3e\u901a\u8fc7\u91cd\u65b0\u7ec4\u7ec7\u90ae\u4ef6\u4f1a\u8bdd\u89c6\u56fe\u3001\u9690\u85cfAI\u6458\u8981\u548c\u7b80\u5316\u754c\u9762\u6765\u63d0\u5347Gmail\u53ef\u8bfb\u6027\u4e0e\u7ba1\u7406\u6548\u7387\u7684\u6d4f\u89c8\u5668\u6269\u5c55\uff0c\u4e3b\u8981\u89e3\u51b3\u4e86\u7528\u6237\u5728\u7e41\u6742\u90ae\u4ef6\u7ebf\u7a0b\u4e2d\u96be\u4ee5\u5feb\u901f\u5b9a\u4f4d\u5173\u952e\u4fe1\u606f\u3001\u754c\u9762\u5e72\u6270\u8fc7\u591a\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\/74f49379-9aaf-4b11-b4c3-536740b9f9f8.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\/f579e864-aca2-4d81-9323-27086689fd96.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\/0b91f74d-4c29-441a-8729-06af47b0adca.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\/f2373d29-5ca8-4fcc-a67a-4459199db637.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\">Email<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Gmail\u589e\u5f3a\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u6d4f\u89c8\u5668\u6269\u5c55<\/span><br \/>\n            <span class=\"tag\">\u90ae\u4ef6\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u754c\u9762\u7b80\u5316<\/span><br \/>\n            <span class=\"tag\">\u9690\u79c1\u4fdd\u62a4<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u5904\u7406<\/span><br \/>\n            <span class=\"tag\">\u751f\u4ea7\u529b\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u7528\u6237\u4f53\u9a8c\u4f18\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>\u7528\u6237\u666e\u904d\u8d5e\u8d4f\u5176\u6838\u5fc3\u514d\u8d39\u529f\u80fd\u4e0e\u9690\u79c1\u4fdd\u62a4\uff08\u672c\u5730\u8fd0\u884c\u3001\u65e0\u9700\u8d26\u6237\uff09\u3002\u4e3b\u8981\u7591\u95ee\u4e0e\u5efa\u8bae\u96c6\u4e2d\u5728\uff1a\u9690\u79c1\u5b89\u5168\u7684\u5177\u4f53\u4fdd\u969c\u63aa\u65bd\u3001\u5bf9\u590d\u6742\/\u6df7\u4e71\u90ae\u4ef6\u7ebf\u7a0b\u7684\u5904\u7406\u80fd\u529b\u3001\u672a\u6765\u5546\u4e1a\u5316\u8ba1\u5212\uff0c\u4ee5\u53ca\u5bf9\u6807\u7b7e\u7ba1\u7406\u3001\u6df1\u8272\u6a21\u5f0f\u7b49\u6269\u5c55\u529f\u80fd\u7684\u671f\u5f85\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                Apparent for Gmail \u63ed\u793a\u4e86\u4e00\u4e2a\u6b8b\u9177\u7684\u73b0\u5b9e\uff1a\u5373\u4fbf\u5982Gmail\u8fd9\u822c\u7edf\u6cbb\u5e02\u573a20\u5e74\u7684\u5de8\u5934\u4ea7\u54c1\uff0c\u5176\u57fa\u7840\u7528\u6237\u4f53\u9a8c\u4ecd\u5b58\u5728\u4ee4\u4eba\u8d39\u89e3\u7684\u201c\u672a\u5b8c\u6210\u611f\u201d\u3002\u8fd9\u6b3e\u4ea7\u54c1\u7684\u771f\u6b63\u4ef7\u503c\uff0c\u4e0d\u5728\u4e8e\u6280\u672f\u98a0\u8986\uff0c\u800c\u5728\u4e8e\u5bf9\u7528\u6237\u201c\u9690\u6027\u75db\u82e6\u201d\u7684\u7cbe\u51c6\u7f1d\u5408\u2014\u2014\u5c06\u90a3\u4e9b\u7528\u6237\u5df2\u8fd1\u4e4e\u9ebb\u6728\u7684\u75db\u70b9\uff08\u5982\u5f3a\u5236AI\u6458\u8981\u3001\u53cd\u76f4\u89c9\u7684\u4f1a\u8bdd\u6392\u5e8f\u3001\u89c6\u89c9\u6742\u4e71\uff09\u91cd\u65b0\u6446\u4e0a\u53f0\u9762\uff0c\u5e76\u901a\u8fc7\u6781\u7b80\u3001\u672c\u5730\u7684\u6280\u672f\u8def\u5f84\u4e88\u4ee5\u89e3\u51b3\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5176\u201c\u65e0\u9700\u8d26\u6237\u3001\u672c\u5730\u8fd0\u884c\u201d\u7684\u6838\u5fc3\u4e3b\u5f20\uff0c\u5728\u5f53\u4e0b\u4e91\u7aef\u4e0eAI\u6570\u636e\u9965\u6e34\u75c7\u6cdb\u6ee5\u7684\u80cc\u666f\u4e0b\uff0c\u6784\u6210\u4e86\u4e00\u79cd\u5c16\u9510\u4e14\u8ba8\u5de7\u7684\u4ef7\u503c\u89c2\u8425\u9500\u3002\u5b83\u5de7\u5999\u5730\u5c06\u81ea\u5df1\u5b9a\u4f4d\u4e3a\u201c\u7528\u6237\u4e3b\u6743\u201d\u7684\u634d\u536b\u8005\uff0c\u4e0e\u5e73\u53f0\u53ef\u80fd\u7684\u201c\u6570\u636e\u8d8a\u754c\u201d\u884c\u4e3a\u5f62\u6210\u5bf9\u7acb\uff0c\u8fd9\u65e2\u662f\u4ea7\u54c1\u4eae\u70b9\uff0c\u4e5f\u662f\u5176\u6700\u6709\u6548\u7684\u589e\u957f\u6760\u6746\u3002\u7136\u800c\uff0c\u8fd9\u79cd\u5b9a\u4f4d\u4e5f\u5e26\u6765\u4e86\u6df1\u5c42\u6311\u6218\uff1a\u4f5c\u4e3a\u4e00\u6b3e\u6df1\u5ea6\u4f9d\u9644\u4e8eGmail UI\u7684\u6269\u5c55\uff0c\u5176\u529f\u80fd\u8fb9\u754c\u88ab\u4e25\u683c\u9650\u5b9a\u5728\u201c\u89c6\u56fe\u5c42\u4f18\u5316\u201d\uff0c\u96be\u4ee5\u89e6\u53ca\u66f4\u590d\u6742\u7684\u90ae\u4ef6\u903b\u8f91\uff08\u5982\u6807\u7b7e\u3001\u8fc7\u6ee4\u5668\uff09\u3002\u8bc4\u8bba\u4e2d\u5173\u4e8e\u5904\u7406\u6df7\u4e71\u7ebf\u7a0b\u7684\u63d0\u95ee\uff0c\u6070\u6070\u523a\u4e2d\u4e86\u5176\u5929\u82b1\u677f\u2014\u2014\u5b83\u64c5\u957f\u91cd\u65b0\u6392\u5217\u5df2\u77e5\u4fe1\u606f\uff0c\u5374\u7f3a\u4e4f\u771f\u6b63\u7684\u4fe1\u606f\u4f18\u5148\u7ea7\u7b97\u6cd5\u6765\u201c\u7406\u89e3\u201d\u5185\u5bb9\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u521b\u59cb\u4eba\u5173\u4e8e\u672a\u6765\u901a\u8fc7\u201c\u81ea\u52a8\u5316\u529f\u80fd\u201d\u8fdb\u884c\u5546\u4e1a\u5316\u7684\u6784\u60f3\uff0c\u9690\u7ea6\u900f\u9732\u51fa\u514d\u8d39\u5de5\u5177\u5bfb\u6c42\u53ef\u6301\u7eed\u6027\u7684\u7ecf\u5178\u8def\u5f84\u3002\u4f46\u8fd9\u6761\u8def\u5e03\u6ee1\u8346\u68d8\uff1a\u9ad8\u7ea7\u81ea\u52a8\u5316\u529f\u80fd\u5f88\u53ef\u80fd\u9700\u8981\u66f4\u9ad8\u7684\u6570\u636e\u6743\u9650\u6216\u4e91\u7aef\u5904\u7406\uff0c\u8fd9\u4e0e\u5f53\u524d\u6781\u529b\u5ba3\u626c\u7684\u201c\u672c\u5730\u3001\u9690\u79c1\u201d\u6838\u5fc3\u5356\u70b9\u53ef\u80fd\u4ea7\u751f\u6839\u672c\u6027\u51b2\u7a81\u3002\u4ea7\u54c1\u6b64\u523b\u7684\u6210\u529f\uff0c\u6e90\u4e8e\u5176\u514b\u5236\u4e0e\u805a\u7126\uff1b\u800c\u672a\u6765\u7684\u8003\u9a8c\uff0c\u5219\u5728\u4e8e\u5982\u4f55\u5728\u5546\u4e1a\u5316\u548c\u4ef7\u503c\u89c2\u4e4b\u95f4\u53d6\u5f97\u5e73\u8861\uff0c\u907f\u514d\u9677\u5165\u81ea\u6211\u6096\u8bba\u3002\u672c\u8d28\u4e0a\uff0c\u5b83\u662f\u4e00\u9762\u955c\u5b50\uff0c\u65e2\u7167\u51fa\u4e86Gmail\u7684\u50b2\u6162\u4e0e\u758f\u5ffd\uff0c\u4e5f\u6620\u7167\u51fa\u8f7b\u91cf\u7ea7\u5de5\u5177\u5728\u5e73\u53f0\u751f\u6001\u4e2d\u201c\u4fee\u8865\u201d\u4e0e\u201c\u4f9d\u9644\u201d\u7684\u6c38\u6052\u77db\u76fe\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\">Apparent for Gmail<\/span>\n                <\/div>\n<div class=\"comment-content\">Make Gmail easier to read and manage. Features: *Read the latest message first. *Show every message in conversations. *Hide AI overviews in emails. *Reduce visual clutter. No account. No remote processing, runs locally in your browser.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">I built this because Gmail still feels incomplete. It\u2019s missing a few features that should have existed from the start, so I added them in a way that feels simple, native, and genuinely useful.<\/p>\n<p>Also, it&#8217;s FREE. My gift to the world.<\/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\/@apparentforgmail\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@apparentforgmail<\/a>&nbsp;Gmail has been around for 20 years and still has things that just feel off &#8211; like AI summaries appearing where you didn&#8217;t ask for them or threads that are hard to follow. It&#8217;s interesting that small fixes like this can make a tool you use every day feel noticeably better. 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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This looks amazing. How is the privacy handled?<\/p>\n<p>Congrats on the launch \ud83c\udf89 <\/p>\n<\/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\/@basharath\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@basharath<\/a>&nbsp;Essentially, we&#8217;ve put it together in a way so everything is done in your browser, in the same way &#8220;on-device&#8221; works. There&#8217;s no need for an account, for data to be processed by us, and we use the fewest Chrome permissions possible. Anything that&#8217;s done with your email is between you, god, and the local copy of Apparent.<\/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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>How do you handle edge cases where threads get overwhelmed with irrelevant replies?<\/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\/@trydoff\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@trydoff<\/a>&nbsp;Would you be able to elaborate on what you mean? Would be interested to learn more about this.<\/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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hello, I tried to download the feature but Chrome sent me like 3 reminders that this extension should not be trusted, and TBH it kinda made me nervous. Why chrome mentioned it so much? and how can we ensure privacy?<\/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\/@carolinahunts\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@carolinahunts<\/a>&nbsp;Hi Carolina! I&#8217;d love to make sure that doesn&#8217;t happen again. Do you have any more details on what they looked like? We don&#8217;t need or want to access any user data ever.<\/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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Needed! It&#8217;s super cool Jared. Is it free for ever or do you plan to monetize it in the future?<\/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\/@german_merlo1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@german_merlo1<\/a>&nbsp;The core feature set &#8220;buckets&#8221; will be free forever. Anything that makes conversations easier to read, simplifies the layout, or is a very small repetitive workflow. We&#8217;ve thought about adding an additional paid bucket with automations, like auto mark archived as read, auto delete drafts according to set rules, auto empty trash, etc.<\/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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I meant cases where a single email thread goes off-track \u2014 like long reply chains with \u2018+1\u2019, side discussions, or irrelevant CCs. It becomes hard to follow the actual important updates. Curious how your approach handles separating signal vs noise in those messy threads.<\/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\/@trydoff\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@trydoff<\/a>&nbsp;That&#8217;s a great point. I&#8217;m going to need to import some test data and ensure it covers cases like these. Thanks for the suggestion!<\/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 few things I\u2019m considering adding, but I\u2019m not sure how widely useful they are:<\/p>\n<\/p>\n<p>* persistent undo\/redo list<\/p>\n<p>* adjustable left sidebar width<\/p>\n<p>* collapsible labels list<\/p>\n<p>* keeping the right sidebar minimized<\/p>\n<p>* built-in dark mode<\/p>\n<\/p>\n<p>Curious which of these, if any, people would actually care about. Can email me at <a href=\"mailto:useapparent@gmail.com\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">useapparent@gmail.com<\/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 a really nice take on Gmail &#8211; especially like the \u201clatest message first\u201d idea and reducing clutter without adding another full email client.<\/p>\n<p>Quick question: how does this handle more complex workflows (labels, filters, multiple accounts)? Does it fully respect Gmail\u2019s native logic or override some of 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<\/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\/ZAAIAYTYC43FIJ\" class=\"app-title\">CrabTalk<\/a><\/p>\n<div class=\"one-liner\">The agent daemon that hides nothing. 8MB. Open Source<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">179<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>CrabTalk \u662f\u4e00\u6b3e\u4ec58MB\u7684\u5f00\u6e90AI\u667a\u80fd\u4f53\u5b88\u62a4\u8fdb\u7a0b\uff0c\u901a\u8fc7\u6d41\u5f0f\u4f20\u8f93\u6240\u6709\u601d\u8003\u6b65\u9aa4\u4e0e\u5de5\u5177\u8c03\u7528\u4e8b\u4ef6\uff0c\u4e3a\u5f00\u53d1\u8005\u63d0\u4f9b\u4e86\u9ad8\u5ea6\u6a21\u5757\u5316\u3001\u53ef\u5b9a\u5236\u4e14\u7a33\u5b9a\u7684\u5e95\u5c42\u67b6\u6784\uff0c\u89e3\u51b3\u4e86\u73b0\u6709\u667a\u80fd\u4f53\u6846\u67b6\u81c3\u80bf\u3001\u6346\u7ed1\u8fc7\u591a\u5de5\u5177\u548c\u7f3a\u4e4f\u900f\u660e\u5ea6\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\/5bc6fde0-15fc-4204-bf9f-67feae3e5a13.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\/8dd98e52-f25f-466b-a657-354acf73d374.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\/2c080c4e-5a1c-4e6a-83de-6accdf78112c.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\/9884bc48-f5a1-4120-9a8a-657949edcc87.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\/30d88495-2646-4d43-a147-02508486993a.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\/15197da5-0659-4e5e-a621-be778c3dc4ba.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\/728be1d1-fe69-486b-bac9-5171f0843942.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/GDtsd4KAA3k\"><source src=\"https:\/\/youtu.be\/GDtsd4KAA3k\" 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\u667a\u80fd\u4f53\u6846\u67b6<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90<\/span><br \/>\n            <span class=\"tag\">\u8f7b\u91cf\u5316<\/span><br \/>\n            <span class=\"tag\">\u6a21\u5757\u5316\u8bbe\u8ba1<\/span><br \/>\n            <span class=\"tag\">\u5b88\u62a4\u8fdb\u7a0b<\/span><br \/>\n            <span class=\"tag\">\u4e8b\u4ef6\u6d41<\/span><br \/>\n            <span class=\"tag\">Rust<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u53ef\u89c2\u6d4b\u6027<\/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\u8d5e\u8d4f\u51768MB\u8f7b\u91cf\u5316\u4e0e\u6a21\u5757\u5316\u8bbe\u8ba1\uff0c\u8ba4\u4e3a\u5176\u5e95\u5c42\u5b9a\u4f4d\u4f18\u4e8e\u7ade\u54c1\u3002\u4e3b\u8981\u95ee\u9898\u96c6\u4e2d\u4e8e\uff1a\u7ec4\u4ef6\u6545\u969c\u5982\u4f55\u53cd\u9988\u7ed9\u667a\u80fd\u4f53\u3001\u5e76\u53d1\u5de5\u5177\u8c03\u7528\u7684\u6d41\u5f0f\u8fde\u8d2f\u6027\u3001\u4e8b\u4ef6\u6d41\u7684\u53cd\u538b\u5904\u7406\u673a\u5236\uff0c\u4ee5\u53ca\u70ed\u91cd\u8f7d\u662f\u5426\u4f1a\u4e2d\u65ad\u957f\u4efb\u52a1\u3002\u5f00\u53d1\u8005\u5bf9\u90e8\u5206\u95ee\u9898\u8fdb\u884c\u4e86\u6280\u672f\u6027\u56de\u590d\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                CrabTalk \u7684\u53d1\u5e03\uff0c\u4e0e\u5176\u8bf4\u662f\u4e00\u4e2a\u65b0AI\u5e94\u7528\uff0c\u4e0d\u5982\u8bf4\u662f\u4e00\u4efd\u5bf9\u5f53\u524d\u667a\u80fd\u4f53\u5f00\u53d1\u8303\u5f0f\u81c3\u80bf\u5316\u7684\u201c\u6297\u8bae\u4e66\u201d\u3002\u5176\u6838\u5fc3\u4ef7\u503c\u4e0d\u5728\u4e8e\u63d0\u4f9b\u4e86\u66f4\u5f3a\u7684AI\u80fd\u529b\uff0c\u800c\u5728\u4e8e\u901a\u8fc7\u201c\u5b88\u62a4\u8fdb\u7a0b+\u4e8b\u4ef6\u6d41\u201d\u7684\u6781\u7b80\u67b6\u6784\uff0c\u91cd\u65b0\u5b9a\u4e49\u4e86\u667a\u80fd\u4f53\u4e0e\u5de5\u5177\u3001\u8fd0\u884c\u65f6\u4e0e\u5ba2\u6237\u7aef\u7684\u5173\u7cfb\u3002\u5b83\u5c06\u667a\u80fd\u4f53\u201c\u9ed1\u7bb1\u201d\u8fd0\u4f5c\u5f7b\u5e95\u900f\u660e\u5316\uff0c\u8ba9\u6bcf\u4e00\u6b65\u601d\u8003\u3001\u6bcf\u4e00\u6b21\u5de5\u5177\u8c03\u7528\u90fd\u6210\u4e3a\u53ef\u89c2\u5bdf\u3001\u53ef\u7ba1\u7406\u7684\u6d41\u5f0f\u4e8b\u4ef6\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u8fd9\u80cc\u540e\u662f\u6df1\u523b\u7684\u5de5\u7a0b\u54f2\u5b66\uff1a\u53cd\u5bf9\u6346\u7ed1\uff0c\u5021\u5bfc\u7ec4\u5408\u3002\u5f00\u53d1\u8005\u4e0d\u518d\u88ab\u8feb\u63a5\u53d7\u4e00\u4e2a\u5305\u542b\u6570\u5341\u79cd\u5de5\u5177\u3001\u4f53\u79ef\u5e9e\u5927\u7684\u8fd0\u884c\u65f6\uff0c\u800c\u662f\u53ef\u4ee5\u81ea\u4e3b\u9009\u62e9\u5e76\u6302\u8f7d\u6240\u9700\u7ec4\u4ef6\uff08\u641c\u7d22\u3001\u7f51\u5173\u7b49\uff09\u3002\u8fd9\u79cd\u201c\u7ec4\u4ef6\u72ec\u7acb\u5d29\u6e83\u3001\u53ef\u70ed\u63d2\u62d4\u201d\u7684\u8bbe\u8ba1\uff0c\u63d0\u5347\u4e86\u7cfb\u7edf\u6574\u4f53\u7684\u5065\u58ee\u6027\u4e0e\u53ef\u7ef4\u62a4\u6027\u3002\u4ece\u8bc4\u8bba\u770b\uff0c\u8d44\u6df1\u5f00\u53d1\u8005\u5bf9\u6b64\u7406\u5ff5\u5171\u9e23\u5f3a\u70c8\uff0c\u5176\u95ee\u9898\u4e5f\u76f4\u6307\u5206\u5e03\u5f0f\u7cfb\u7edf\u6838\u5fc3\uff1a\u6545\u969c\u9694\u79bb\u4e0e\u53cd\u9988\u3001\u5e76\u53d1\u4e00\u81f4\u6027\u4e0e\u80cc\u538b\u5904\u7406\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u5176\u5b9a\u4f4d\u4e5f\u51b3\u5b9a\u4e86\u5b83\u7684\u95e8\u69db\u548c\u5c40\u9650\u3002\u5b83\u63d0\u4f9b\u7684\u662f\u201c\u7ba1\u9053\u201d\u548c\u201c\u534f\u8bae\u201d\uff0c\u800c\u975e\u201c\u6210\u54c1\u201d\u3002\u771f\u6b63\u7684\u751f\u4ea7\u529b\u63d0\u5347\u4f9d\u8d56\u4e8e\u5728\u5176\u4e0a\u6784\u5efa\u5e94\u7528\u3002\u5bf9\u4e8e\u8ffd\u6c42\u5f00\u7bb1\u5373\u7528\u7684\u666e\u901a\u7528\u6237\u6216\u5e94\u7528\u5f00\u53d1\u8005\uff0c\u5b83\u53ef\u80fd\u8fc7\u4e8e\u5e95\u5c42\uff1b\u4f46\u5bf9\u4e8e\u9700\u8981\u6df1\u5ea6\u5b9a\u5236\u3001\u6784\u5efa\u7a33\u5b9a\u4f01\u4e1a\u7ea7\u667a\u80fd\u4f53\u5de5\u4f5c\u6d41\u6216\u4e8c\u6b21\u5f00\u53d1\u6846\u67b6\u7684\u56e2\u961f\uff0cCrabTalk \u63d0\u4f9b\u4e86\u4e00\u4e2a\u73cd\u8d35\u4e14\u5e72\u51c0\u7684\u5e95\u5c42\u9009\u62e9\u3002\u5b83\u80fd\u5426\u6210\u529f\uff0c\u4e0d\u5728\u4e8e\u81ea\u8eab\u529f\u80fd\u591a\u5be1\uff0c\u800c\u5728\u4e8e\u5176\u6784\u5efa\u7684\u751f\u6001\u80fd\u5426\u5438\u5f15\u8db3\u591f\u591a\u7684\u201c\u7ec4\u4ef6\u201d\u63d0\u4f9b\u8005\u548c\u201c\u5ba2\u6237\u7aef\u201d\u5f00\u53d1\u8005\u3002\u8fd9\u662f\u4e00\u573a\u5bf9\u5f00\u53d1\u6548\u7387\u4e0e\u81ea\u4e3b\u63a7\u5236\u6743\u7684\u91cd\u65b0\u5206\u914d\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\">CrabTalk<\/span>\n                <\/div>\n<div class=\"comment-content\">An 8 MB daemon that streams every agent event to your client \u2014 text deltas, tool calls, thinking steps, all of it. Connect what you need, skip what you don&#8217;t. One curl to install. Bring your own model.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I write systems software. I looked at OpenClaw \u2014 1.2 GB. Hermes \u2014 40+ bundled tools. Why does your agent ship someone else&#8217;s choices?<\/p>\n<\/p>\n<p>CrabTalk is a daemon. 8 MB. You put what you need on your PATH \u2014 your search, your gateway, your tools. They connect as components. They crash alone. They swap without restarts.<\/p>\n<\/p>\n<p>You could build any of those apps on top of CrabTalk. You can&#8217;t build a CrabTalk underneath them.<\/p>\n<\/p>\n<p>Open source. Rust. One curl to install.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>9<\/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\/@clearloop\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@clearloop<\/a>&nbsp;What&#8217;s a real-world workflow where CrabTalk&#8217;s 8MB modularity saved you time vs. bloated agents like OpenClaw?<\/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\/@clearloop\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@clearloop<\/a>&nbsp;HEYYY! \ud83d\ude42 If a component crashes alone without taking down the daemon, how does CrabTalk surface that failure to the agent so it doesn&#8217;t silently continue a task assuming the tool is still working?<\/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>Been nipping at your heels all day. Congrats on the launch, amazing product!<\/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\/@apparentforgmail\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@apparentforgmail<\/a>&nbsp;Hey, thanks! Been fun having you right behind me all day.<\/p>\n<p>Honestly, I used to think a weekend launch would be simpler\u2026 but I\u2019ve been stressed out the whole time \ud83d\ude02<\/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>streaming thinking steps alongside tool calls in one feed is what almost nothing does by default. curious what happens with concurrent tool calls &#8211; does the stream stay coherent? also 8MB is impressive, what&#8217;s the runtime?<\/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\/@mykola_kondratiuk\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mykola_kondratiuk<\/a>&nbsp; Valuable questions \ud83e\udd80<\/p>\n<p><strong>1. Concurrent tool calls<\/strong><\/p>\n<p>An updated version is exactly in my TODOs, see <a href=\"https:\/\/github.com\/crabtalk\/crabtalk\/issues\/90\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">crabtalk#90<\/a>, there are mainly 2 cases about this:<\/p>\n<ul>\n<li>\n<p>agent request batch tool calls \u2014 LLM APIs natively support multiple tool calls in response, we simply spawn a future to `join_all` for performing the concurrency execution<\/p>\n<\/li>\n<li>\n<p>agent spawn multiple agents doing M x N tool calls, this is recursive case of above, since we delegate agent is a tool call in our design, this case is natively supported as well<\/p>\n<\/li>\n<\/ul>\n<p><strong>2. What&#8217;s the runtime<\/strong><\/p>\n<p>This question is direct and also very challengeable!<\/p>\n<\/p>\n<p>To be specific, CrabTalk is a <strong>daemon<\/strong> (you can imagine it&#8217;s a pg service or a `dockerd`), we have the TUI client and people can develop any client of it based on our <a href=\"https:\/\/crabtalk.github.io\/crabtalk\/rfcs\/0018-protocol.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">base protocol<\/a><\/p>\n<\/p>\n<pre><code>Layer 0 \u2500 Foundation\n  \u2514\u2500 core                Agent, Session, Runtime, Protocol, Hook, ToolRegistry\n\nLayer 1 \u2500 Backends (independent of each other)\n  \u251c\u2500 model                ProviderRegistry (OpenAI, Anthropic, Google...)\n  \u251c\u2500 transport            UDS + TCP socket layers\n  \u2514\u2500 command              Service management (systemd), proc macro codegen\n\nLayer 2 \u2500 Engine\n  \u2514\u2500 runtime              RuntimeHook, tool dispatch, MCP, skills, memory\n\nLayer 3 \u2500 Server\n  \u2514\u2500 daemon               Event loop, transport setup, cron, config, hot reload\n\n---- (Layer 4 is not in runtime)\n\nLayer 4 \u2500 Adapters\n  \u251c\u2500 gateway              DaemonClient, message types for platform adapters\n  \u251c\u2500 cli                  REPL, TUI, daemon control\n  \u2514\u2500 apps\/                telegram, search, hub, wechat, outlook&lt;\/code&gt;&lt;\/pre&gt;<\/code><\/pre>\n<\/p>\n<p>For the <strong>runtime<\/strong>, referenced from <a href=\"https:\/\/github.com\/crabtalk\/crabtalk?tab=contributing-ov-file#layering\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">the layering<\/a><\/p>\n<ul>\n<li>\n<p>it&#8217;s somewhere we babysitting <strong>the agent standard stuffs<\/strong> (e.g. tools, MCP, skills)<\/p>\n<\/li>\n<li>\n<p>plus a super light <strong>memory <\/strong>based on fs and BM25 (yes, the memory can be swapped by your customized memory).<\/p>\n<\/li>\n<\/ul>\n<p>And if we count on the <strong>daemon<\/strong> stuffs, we&#8217;ll have context isolation, cron jobs, event loop, protocol configs.<\/p>\n<\/p>\n<p>For the size, if we kick out the TUI, the runtime + daemon may have just <strong>2~3 MB<\/strong>, and the http related stuffs for model API and related MCP implementations are taking the most of the size<\/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 daemon architecture with Unix Domain Sockets and TCP layers is a solid choice for low-latency IPC, but how does CrabTalk handle backpressure when a slow client can&#8217;t consume the event stream fast enough? Also, with hot reload support mentioned in the layering, does config reload guarantee session continuity for long-running agent tasks or does it force a reconnect?<\/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\">#6<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/ZOGEDIIJJKRU5L\" class=\"app-title\">Cohere Transcribe<\/a><\/p>\n<div class=\"one-liner\">New state-of-the-art in open source speech recognition<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">126<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Cohere Transcribe\u662f\u4e00\u6b3e\u9876\u5c16\u7684\u5f00\u6e90\u8bed\u97f3\u8bc6\u522b\u6a21\u578b\uff0c\u901a\u8fc7\u63d0\u4f9b\u9ad8\u541e\u5410\u91cf\u548c\u4f4e\u8bcd\u9519\u7387\uff0c\u89e3\u51b3\u4e86\u4f01\u4e1a\u5728\u9690\u79c1\u654f\u611f\u573a\u666f\u4e0b\u9700\u8981\u672c\u5730\u5316\u3001\u9ad8\u6027\u80fd\u8f6c\u5f55\u670d\u52a1\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\/57bb312f-62ec-4381-ad60-afa0d1e4aa29.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=5wu1heeMkZA\"><source src=\"https:\/\/www.youtube.com\/watch?v=5wu1heeMkZA\" 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\/c41e98cd-b16c-4fdf-a26d-145a3cc7e8b8.webp?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\/9f8bf321-5f65-49c6-a4b9-3344060c302c.avif?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\/3a429853-d7b2-41ff-96c8-6a0544304f00.avif?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\/2d71fe6e-4943-4fd2-bc3b-52a6295bfcb9.avif?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\/ff2a2215-eaa0-4347-ad2e-c4d1076a0c0a.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\/af408a5c-b8a1-4966-beef-0e243f3bd230.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\/7f602899-2330-41d7-899a-4e8d9c49c684.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\">Audio<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u8bed\u97f3\u8bc6\u522b<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90\u6a21\u578b<\/span><br \/>\n            <span class=\"tag\">\u4f01\u4e1a\u7ea7\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u90e8\u7f72<\/span><br \/>\n            <span class=\"tag\">\u9690\u79c1\u5b89\u5168<\/span><br \/>\n            <span class=\"tag\">\u591a\u8bed\u8a00\u652f\u6301<\/span><br \/>\n            <span class=\"tag\">\u9ad8\u7cbe\u5ea6\u8f6c\u5f55<\/span><br \/>\n            <span class=\"tag\">\u4eba\u5de5\u667a\u80fd<\/span><br \/>\n            <span class=\"tag\">\u97f3\u9891\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\u666e\u904d\u8ba4\u53ef\u5176\u9ad8\u6027\u80fd\u4e0e\u9690\u79c1\u4f18\u52bf\uff0c\u8ba4\u4e3a\u5176\u662f\u4f01\u4e1a\u7ea7\u672c\u5730\u5e94\u7528\u7684\u4f18\u79c0\u9009\u62e9\u3002\u4e3b\u8981\u95ee\u9898\u4e0e\u5efa\u8bae\u96c6\u4e2d\u5728\uff1a\u6a21\u578b\u4f53\u79ef\u5bf9\u79fb\u52a8\u7aef\u90e8\u7f72\u7684\u9002\u5e94\u6027\u3001\u9700\u81ea\u884c\u6dfb\u52a0\u8bf4\u8bdd\u4eba\u5206\u79bb\u548c\u65f6\u95f4\u6233\u7b49\u540e\u5904\u7406\u529f\u80fd\u3001\u5bf9\u590d\u6742\u73af\u5883\uff08\u5982\u566a\u97f3\u3001\u53e3\u97f3\u3001\u8bed\u79cd\u5207\u6362\uff09\u7684\u9c81\u68d2\u6027\u6d4b\u8bd5\uff0c\u4ee5\u53ca\u4e0e\u7ade\u54c1\u7684\u8be6\u7ec6\u5bf9\u6bd4\u548c\u5b9a\u4ef7\u4fe1\u606f\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                Cohere Transcribe\u7684\u53d1\u5e03\uff0c\u7edd\u975e\u53c8\u4e00\u4e2a\u201c\u5f00\u6e90Whisper\u201d\u7684\u7b80\u5355\u6545\u4e8b\uff0c\u800c\u662f\u4e00\u4efd\u7cbe\u51c6\u5207\u5165\u4f01\u4e1aAI\u57fa\u7840\u8bbe\u65bd\u8d5b\u9053\u7684\u6218\u7565\u5ba3\u8a00\u3002\u5176\u6838\u5fc3\u4ef7\u503c\u4e0d\u5728\u4e8e\u5728\u5b66\u672f\u6307\u6807\u4e0a\u78be\u538b\u5bf9\u624b\uff0c\u800c\u5728\u4e8e\u5c06\u201c\u5f00\u6e90\u6743\u91cd\u201d\u3001\u201c\u9ad8\u541e\u5410\u91cf\u201d\u4e0e\u201c\u4f01\u4e1a\u7ea7\u4f18\u5316\u201d\u8fd9\u4e09\u4e2a\u5173\u952e\u8bcd\u6346\u7ed1\u9500\u552e\uff0c\u76f4\u6307\u5f53\u524dAI\u5de5\u4e1a\u5316\u90e8\u7f72\u4e2d\u6700\u654f\u611f\u7684\u795e\u7ecf\uff1a\u6570\u636e\u9690\u79c1\u3001\u6210\u672c\u63a7\u5236\u4e0e\u81ea\u4e3b\u53ef\u63a7\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ea7\u54c1\u4ecb\u7ecd\u4e2d\u5f3a\u8c03\u201cprivate, local, or desktop deployment\u201d\uff0c\u4e0e\u8bc4\u8bba\u4e2d\u201cprivacy-first\u201d\u7684\u5171\u9e23\uff0c\u63ed\u793a\u4e86\u5176\u771f\u6b63\u7684\u6218\u573a\u2014\u2014\u90a3\u4e9b\u53d7\u4e25\u683c\u76d1\u7ba1\u6216\u5bf9\u6570\u636e\u51fa\u5883\u6709\u987e\u8651\u7684\u884c\u4e1a\uff0c\u4ee5\u53ca\u4e0d\u613f\u88abAPI\u8c03\u7528\u6b21\u6570\u548c\u8d39\u7528\u6346\u7ed1\u7684\u89c4\u6a21\u5316\u5e94\u7528\u30025.42%\u7684\u8bcd\u9519\u7387\uff08WER\uff09\u662f\u5165\u573a\u5238\uff0c\u800c\u201c\u9ad8\u541e\u5410\u91cf\u201d\u624d\u662f\u5176\u4e3a\u4f01\u4e1a\u8bbe\u8ba1\u7684\u771f\u6b63\u5f15\u64ce\uff0c\u610f\u5473\u7740\u66f4\u4f4e\u7684\u5355\u4f4d\u8f6c\u5f55\u6210\u672c\u548c\u66f4\u5f3a\u7684\u6279\u5904\u7406\u80fd\u529b\uff0c\u8fd9\u6bd4\u5355\u7eaf\u8ffd\u6c42\u96f6\u70b9\u51e0\u4e2a\u767e\u5206\u70b9\u7684\u7cbe\u5ea6\u63d0\u5347\uff0c\u5bf9CIO\u800c\u8a00\u66f4\u5177\u5438\u5f15\u529b\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u8bc4\u8bba\u4e5f\u7280\u5229\u5730\u6233\u7a7f\u4e86\u5176\u201c\u5f00\u7bb1\u5373\u7528\u201d\u7684\u5e7b\u8c61\u3002\u7f3a\u4e4f\u8bf4\u8bdd\u4eba\u5206\u79bb\u3001\u8bcd\u7ea7\u65f6\u95f4\u6233\u7b49\u7279\u6027\uff0c\u4f7f\u5176\u66f4\u50cf\u4e00\u4e2a\u5f3a\u5927\u7684\u201c\u542c\u89c9\u82af\u7247\u201d\uff0c\u800c\u975e\u5b8c\u6574\u7684\u201c\u542c\u89c9\u7cfb\u7edf\u201d\u3002\u8fd9\u66b4\u9732\u4e86Cohere\u7684\u5b9a\u4f4d\uff1a\u5b83\u5e76\u975e\u610f\u56fe\u670d\u52a1\u8ffd\u6c42\u4fbf\u6377\u7684\u5f00\u53d1\u8005\uff0c\u800c\u662f\u7784\u51c6\u4e86\u90a3\u4e9b\u62e5\u6709\u5de5\u7a0b\u80fd\u529b\u3001\u9700\u8981\u6df1\u5ea6\u5b9a\u5236\u548c\u96c6\u6210\u3001\u5e76\u5c06\u8f6c\u5f55\u4f5c\u4e3a\u6838\u5fc3\u6d41\u7a0b\u4e00\u73af\u7684\u4f01\u4e1a\u5ba2\u6237\u3002\u5c06\u590d\u6742\u7684\u524d\u540e\u5904\u7406\u7559\u7ed9\u7528\u6237\uff0c\u81ea\u5df1\u5219\u7262\u7262\u5360\u636e\u6a21\u578b\u5c42\u8fd9\u4e00\u4ef7\u503c\u5236\u9ad8\u70b9\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4e0eWhisper\u7684\u5bf9\u6bd4\u662f\u4e0d\u53ef\u907f\u514d\u7684\u3002Cohere\u7684\u7b56\u7565\u662f\u201c\u4ee5\u4e13\u6253\u6cdb\u201d\u3002\u5728\u901a\u7528\u6027\u3001\u6613\u7528\u6027\u548c\u793e\u533a\u751f\u6001\u4e0a\uff0c\u77ed\u671f\u5185\u96be\u4ee5\u64bc\u52a8Whisper\u3002\u4f46\u5176\u901a\u8fc7\u4f01\u4e1a\u7ea7\u4f18\u5316\u548c\u660e\u786e\u7684\u9690\u79c1\u672c\u5730\u5316\u90e8\u7f72\u8def\u5f84\uff0c\u5b9e\u73b0\u4e86\u5dee\u5f02\u5316\u7a81\u56f4\u3002\u5b83\u56de\u7b54\u4e86\u4e00\u4e2a\u5173\u952e\u95ee\u9898\uff1a\u5f53\u5f00\u6e90\u6a21\u578b\u7684\u6027\u80fd\u5dee\u8ddd\u8fdb\u5165\u201c\u6beb\u5398\u4e4b\u95f4\u201d\u65f6\uff0c\u51b3\u80dc\u7684\u5173\u952e\u662f\u4ec0\u4e48\uff1f\u7b54\u6848\u662f\uff1a\u5bf9\u7279\u5b9a\u573a\u666f\uff08\u4f01\u4e1a\u79c1\u6709\u5316\uff09\u7684\u6df1\u5ea6\u4f18\u5316\uff0c\u4ee5\u53ca\u5bf9\u5546\u4e1a\u5316\u8bc9\u6c42\uff08\u541e\u5410\u91cf\u4e0e\u6210\u672c\uff09\u7684\u7cbe\u51c6\u6ee1\u8db3\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u98ce\u9669\u540c\u6837\u660e\u663e\u30022B\u53c2\u6570\u7684\u201c\u91cd\u91cf\u7ea7\u201d\u8eab\u6750\uff0c\u4e0e\u201c\u79fb\u52a8\u7aef\u201d\u3001\u201c\u5b9e\u65f6\u201d\u7b49\u8fb9\u7f18\u8ba1\u7b97\u8d8b\u52bf\u5b58\u5728\u5f20\u529b\u3002\u82e5\u4e0d\u80fd\u901a\u8fc7\u91cf\u5316\u3001\u84b8\u998f\u7b49\u624b\u6bb5\u6709\u6548\u201c\u7626\u8eab\u201d\uff0c\u5176\u5e94\u7528\u573a\u666f\u5c06\u88ab\u56fa\u5b88\u5728\u670d\u52a1\u5668\u673a\u623f\uff0c\u53ef\u80fd\u9519\u5931\u66f4\u5e7f\u9614\u7684\u5b9e\u65f6\u4ea4\u4e92\u8bbe\u5907\u5e02\u573a\u3002\u6b64\u5916\uff0c\u5728\u566a\u97f3\u3001\u53e3\u97f3\u7b49\u771f\u5b9e\u4e16\u754c\u6df7\u6c8c\u573a\u666f\u4e0b\u7684\u7a33\u5065\u6027\uff0c\u4ecd\u662f\u6240\u6709\u8bed\u97f3\u6a21\u578b\u9700\u8981\u81ea\u8bc1\u7684\u96be\u9898\uff0cCohere\u4ecd\u9700\u7528\u66f4\u4e30\u5bcc\u7684\u57fa\u51c6\u6d4b\u8bd5\u6765\u5efa\u7acb\u4fe1\u4efb\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u603b\u800c\u8a00\u4e4b\uff0cCohere Transcribe\u662f\u4e00\u6b3e\u6781\u5177\u6218\u7565\u610f\u56fe\u7684\u201cB\u7aef\u6b66\u5668\u201d\u3002\u5b83\u4e0d\u8ba8\u597d\u6240\u6709\u4eba\uff0c\u800c\u662f\u4e3a\u7279\u5b9a\u6218\u573a\uff08\u9690\u79c1\u4f18\u5148\u3001\u9ad8\u541e\u5410\u9700\u6c42\u7684\u4f01\u4e1a\u73af\u5883\uff09\u63d0\u4f9b\u4e86\u4e00\u6b3e\u7cbe\u826f\u3001\u81ea\u4e3b\u4e14\u9ad8\u6548\u7684\u88c5\u5907\u3002\u5b83\u7684\u6210\u529f\u4e0e\u5426\uff0c\u5c06\u4e0d\u53d6\u51b3\u4e8e\u6781\u5ba2\u793e\u533a\u7684\u6b22\u547c\uff0c\u800c\u53d6\u51b3\u4e8e\u6709\u591a\u5c11\u4f01\u4e1a\u5c06\u5176\u5d4c\u5165\u81ea\u5df1\u7684\u6838\u5fc3\u5de5\u4f5c\u6d41\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\">Cohere Transcribe<\/span>\n                <\/div>\n<div class=\"comment-content\">Cohere Transcribe is a state-of-the-art, 2B open-weights speech recognition model. Optimized for enterprise workloads, it delivers high throughput and a leading 5.42% WER across 14 languages, making it ideal for private, local, or desktop deployment.<\/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>Cohere just open-sourced Transcribe, and the core metrics here, especially the <strong>throughput<\/strong> and the<strong> 5.42% average WER<\/strong>, are genuinely impressive.<\/p>\n<p>From an engineering point of view, this looks like a fantastic model for <strong>Mac\/PC<\/strong> local apps or private enterprise servers. At 2B parameters, though, it still feels a bit heavy for raw on-device mobile deployment.<\/p>\n<p>It is also worth noting that this is a highly optimized transcription engine, not a fully packaged meeting intelligence stack. Out of the box, you will still want to add your own layer for things like word-level timestamps and speaker diarization<em>.<\/em><\/p>\n<p>It also seems to perform best when you specify the language and avoid heavy code-switching.<\/p>\n<p>But if you handle those pre- and post-processing steps and keep the audio mostly in a single language, this open-weight model looks extremely strong for privacy-first, local speech workflows.<\/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\/@zaczuo\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@zaczuo<\/a>&nbsp;Have you tested quantization or distillation tweaks to slim it down for mobile edge cases, like real-time podcast transcription on iOS?<\/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\/@zaczuo\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@zaczuo<\/a>&nbsp;This is awesome! I used Cohere&#8217;s Rerank API while building Octopus (an open-source AI code reviewer) and it worked great for improving search relevance across codebases. Love seeing Cohere push more into open source, Transcribe looks really promising, especially for privacy-first use cases.<\/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\/@zaczuo\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@zaczuo<\/a>&nbsp;The diarization gap is the real missing piece for meeting intelligence use cases , at 2B params it&#8217;s already pushing the edge for local deployment, so adding speaker separation on top would likely require a separate lightweight model running in parallel rather than baking it in. Has anyone tested how it handles overlapping speech or heavy accents compared to Whisper large-v3 on the same hardware?<\/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 Zac! Was looking for something like this. What about the pricing? Is there a benchmark to compare with current competitors?<\/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>Really impressive direction: Cohere\u2019s focus on secure, enterprise-ready AI instead of just consumer tools feels like a smart differentiation in the space. Congrats on the launch! What has been the biggest challenge in making models both highly customizable for enterprises and still easy to integrate for developers? \ud83d\ude80<\/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>Really glad to see this open-sourced. The WER numbers are competitive with Whisper large-v3 and the throughput advantage matters a lot for batch processing. Curious how it handles noisy real-world audio though \u2014 conference calls, street noise, etc. That&#8217;s usually where models diverge from benchmark performance.<\/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\/QWK26XU6MFBQF5\" class=\"app-title\">RepoLens<\/a><\/p>\n<div class=\"one-liner\">Know what changed and what matters across your codebase<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">110<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>RepoLens V2 \u901a\u8fc7\u7ed3\u6784\u5316\u5206\u6790\u4ee3\u7801\u4ed3\u5e93\u4e0e\u53d8\u66f4\uff0c\u5e2e\u52a9\u5de5\u7a0b\u56e2\u961f\u5728\u4ee3\u7801\u8bc4\u5ba1\u4e0e\u5408\u5e76\u6d41\u7a0b\u4e2d\uff0c\u5feb\u901f\u3001\u53ef\u4fe1\u5730\u7406\u89e3PR\u4e2d\u7684\u5173\u952e\u6539\u52a8\u3001\u53d7\u5f71\u54cd\u6a21\u5757\u53ca\u6f5c\u5728\u98ce\u9669\uff0c\u89e3\u51b3\u4ee3\u7801\u5e93\u6301\u7eed\u6f14\u8fdb\u4e2d\u53d8\u66f4\u611f\u77e5\u4e0e\u5f71\u54cd\u8bc4\u4f30\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\/b3712b1a-2005-4f88-ad99-70e9f22a266a.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/ZDMIB509560?si=PxlDhvZHg4vUnvqI\"><source src=\"https:\/\/youtu.be\/ZDMIB509560?si=PxlDhvZHg4vUnvqI\" 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\/62193e39-ed0e-4da5-a5b7-c579db3f27c8.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\/59afc4ac-d1e0-4983-b458-ab8f23bcdfa1.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\/b6c51fec-3a3b-4958-ae61-9e28aa2e99f6.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\/b88b970d-0d95-42f6-9b28-ac0e064a2aa2.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\/20654451-b534-4561-836a-7e556cff5d36.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\/7704682f-11bc-41a8-b250-de9e2526215a.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><br \/>\n            <span class=\"tag\">GitHub<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u4ee3\u7801\u53d8\u66f4\u5206\u6790<\/span><br \/>\n            <span class=\"tag\">PR\u667a\u80fd\u6458\u8981<\/span><br \/>\n            <span class=\"tag\">\u5de5\u7a0b\u6548\u80fd\u5e73\u53f0<\/span><br \/>\n            <span class=\"tag\">\u4ee3\u7801\u4ed3\u5e93\u6d1e\u5bdf<\/span><br \/>\n            <span class=\"tag\">AI\u8f85\u52a9\u5f00\u53d1<\/span><br \/>\n            <span class=\"tag\">\u67b6\u6784\u6f02\u79fb\u68c0\u6d4b<\/span><br \/>\n            <span class=\"tag\">\u5206\u652f\u5bf9\u6bd4<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u4ee3\u7801\u8bc4\u5ba1\u8f85\u52a9<\/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\u4ea7\u54c1\u89e3\u51b3\u201c\u7406\u89e3\u53d8\u66f4\u201d\u75db\u70b9\u7684\u4ef7\u503c\uff0c\u5e76\u8be2\u95ee\u5177\u4f53\u6280\u672f\u5b9e\u73b0\uff08\u5982\u7aef\u70b9\u68c0\u6d4b\u65b9\u6cd5\uff09\u3002\u4e3b\u8981\u53cd\u9988\u96c6\u4e2d\u5728\u529f\u80fd\u5b9e\u7528\u6027\u63a2\u8ba8\uff08\u5982\u591aPR\u91cd\u53e0\u6a21\u5757\u7684\u5904\u7406\uff09\u3001\u4e0e\u901a\u7528AI\u5de5\u5177\uff08\u5982ChatGPT\uff09\u7684\u5dee\u5f02\u5316\uff0c\u4ee5\u53ca\u5efa\u8bae\u589e\u52a0\u793e\u4ea4\u5206\u4eab\u7b49\u589e\u957f\u529f\u80fd\u3002\u521b\u59cb\u4eba\u79ef\u6781\u56de\u5e94\u6280\u672f\u8def\u7ebf\u4e0e\u8fed\u4ee3\u65b9\u5411\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                RepoLens V2 \u5ba3\u79f0\u7684\u6838\u5fc3\u4ef7\u503c\uff0c\u5728\u4e8e\u8bd5\u56fe\u5c06\u201c\u4ee3\u7801\u53d8\u66f4\u7406\u89e3\u201d\u4ece\u4e00\u79cd\u4f9d\u8d56\u4e2a\u4eba\u7ecf\u9a8c\u4e0e\u8017\u65f6\u7684\u6587\u672cdiff\u9605\u8bfb\u7684\u6a21\u7cca\u827a\u672f\uff0c\u8f6c\u5316\u4e3a\u4e00\u79cd\u53ef\u89c4\u6a21\u5316\u3001\u53ef\u9a8c\u8bc1\u7684\u7ed3\u6784\u5316\u5206\u6790\u8fc7\u7a0b\u3002\u8fd9\u76f4\u51fb\u4e86\u73b0\u4ee3\u8f6f\u4ef6\u5f00\u53d1\u4e2d\uff0c\u968f\u7740\u5fae\u670d\u52a1\u3001\u5355\u4f53\u4ed3\u5e93\u53ca\u9891\u7e41\u5408\u5e76\u5e26\u6765\u7684\u8ba4\u77e5\u8d1f\u8377\u7206\u70b8\u8fd9\u4e00\u6838\u5fc3\u987d\u75be\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5176\u4ea7\u54c1\u601d\u8def\u7684\u7280\u5229\u4e4b\u5904\uff0c\u5728\u4e8e\u6ca1\u6709\u505c\u7559\u5728\u201c\u7528AI\u804a\u5929\u770b\u4ee3\u7801\u201d\u7684\u5c42\u9762\uff0c\u800c\u662f\u9009\u62e9\u5148\u6784\u5efa\u4ee3\u7801\u4ed3\u5e93\u7684\u7ed3\u6784\u5316\u6a21\u578b\uff08\u6a21\u5757\u3001\u4f9d\u8d56\u3001\u7aef\u70b9\uff09\uff0c\u518d\u5c06\u5177\u4f53\u7684\u53d8\u66f4\uff08PR\u3001\u5206\u652f\u5bf9\u6bd4\uff09\u6620\u5c04\u5230\u8fd9\u4e2a\u6a21\u578b\u4e0a\u8fdb\u884c\u5206\u6790\u3002\u8fd9\u4f7f\u5176\u8f93\u51fa\u7684\u201c\u53d7\u5f71\u54cd\u6a21\u5757\u201d\u3001\u201c\u53d8\u66f4\u7aef\u70b9\u201d\u3001\u201c\u8bc4\u5ba1\u70ed\u70b9\u201d\u7b49\u6d1e\u5bdf\uff0c\u5177\u5907\u4e86\u4f20\u7edfAI\u804a\u5929\u6240\u7f3a\u4e4f\u7684\u201c\u53ef\u5bfc\u822a\u6027\u201d\u4e0e\u201c\u53ef\u9a8c\u8bc1\u6027\u201d\u2014\u2014\u5de5\u7a0b\u5e08\u53ef\u4ee5\u5feb\u901f\u5b9a\u4f4d\u5230\u5177\u4f53\u4ee3\u7801\u5757\uff0c\u800c\u975e\u9762\u5bf9\u4e00\u6bb5\u53ef\u80fd\u201c\u5e7b\u89c9\u201d\u7684\u6982\u62ec\u6587\u672c\u3002\u8fd9\u662f\u4e00\u79cd\u201c\u589e\u5f3a\u667a\u80fd\u201d\u800c\u975e\u201c\u66ff\u4ee3\u667a\u80fd\u201d\u7684\u52a1\u5b9e\u8def\u5f84\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u5176\u9762\u4e34\u7684\u6311\u6218\u540c\u6837\u5c16\u9510\u3002\u9996\u5148\uff0c\u5176\u5206\u6790\u6df1\u5ea6\u4e0e\u51c6\u786e\u5ea6\u9ad8\u5ea6\u4f9d\u8d56\u4e8e\u5bf9\u591a\u6837\u6280\u672f\u6808\uff08\u5373\u8bc4\u8bba\u4e2d\u63d0\u5230\u7684\u201c\u591a\u8bed\u8a00\u5355\u4f53\u4ed3\u5e93\u201d\uff09\u7684\u9759\u6001\u5206\u6790\u80fd\u529b\uff0c\u8fd9\u5de5\u7a0b\u590d\u6742\u5ea6\u6781\u9ad8\u3002\u5176\u6b21\uff0c\u201c\u4f55\u8c13\u91cd\u8981\u53d8\u66f4\u201d\u7684\u5224\u65ad\u6807\u51c6\u6781\u5177\u4e3b\u89c2\u6027\uff0c\u7b97\u6cd5\u4fe1\u53f7\uff08\u5982\u4ee3\u7801\u884c\u6570\u3001\u4f9d\u8d56\u5f71\u54cd\u8303\u56f4\uff09\u80fd\u5426\u771f\u6b63\u5339\u914d\u56e2\u961f\u7684\u5b9e\u9645\u98ce\u9669\u5b9a\u4e49\uff0c\u4ecd\u9700\u5927\u91cf\u573a\u666f\u6253\u78e8\u3002\u6700\u540e\uff0c\u5728\u5feb\u8282\u594f\u56e2\u961f\u4e2d\uff0c\u5982\u4f55\u5904\u7406\u5e76\u53d1\u3001\u91cd\u53e0\u7684PR\u6240\u5f15\u53d1\u7684\u4fe1\u53f7\u51b2\u7a81\u4e0e\u566a\u97f3\uff0c\u662f\u5176\u5fc5\u987b\u89e3\u51b3\u7684\u73b0\u5b9e\u95ee\u9898\uff0c\u521b\u59cb\u4eba\u7684\u56de\u5e94\u663e\u793a\u4ed6\u4eec\u5df2\u610f\u8bc6\u5230\u8fd9\u4e00\u70b9\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u603b\u4f53\u800c\u8a00\uff0cRepoLens \u7684\u4ef7\u503c\u4e0d\u5728\u4e8e\u66ff\u4ee3\u4ee3\u7801\u8bc4\u5ba1\uff0c\u800c\u5728\u4e8e\u4e3a\u8bc4\u5ba1\u63d0\u4f9b\u9ad8\u8d28\u91cf\u7684\u201c\u524d\u7f6e\u60c5\u62a5\u7b80\u62a5\u201d\uff0c\u5c06\u5de5\u7a0b\u5e08\u7684\u6ce8\u610f\u529b\u5f15\u5bfc\u81f3\u6700\u53ef\u80fd\u9700\u8981\u5173\u6ce8\u7684\u533a\u57df\u3002\u5b83\u7684\u6210\u529f\u4e0e\u5426\uff0c\u5c06\u4e0d\u53d6\u51b3\u4e8eAI\u662f\u5426\u8db3\u591f\u201c\u901a\u7528\u806a\u660e\u201d\uff0c\u800c\u53d6\u51b3\u4e8e\u5176\u5e95\u5c42\u4ee3\u7801\u5206\u6790\u5f15\u64ce\u662f\u5426\u8db3\u591f\u201c\u7cbe\u51c6\u548c\u6df1\u523b\u201d\u3002\u8fd9\u662f\u4e00\u6761\u66f4\u8270\u96be\u4f46\u6216\u8bb8\u66f4\u6b63\u786e\u7684\u8d5b\u9053\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\">RepoLens<\/span>\n                <\/div>\n<div class=\"comment-content\">RepoLens Version Two helps engineering teams understand what changed and what matters across repositories, branches, and pull requests. It analyzes PRs, detects affected modules and changed endpoints, highlights review hotspots, powers branch-aware chat with grounded code references, compares branches structurally, and sends alerts for important changes so teams can understand evolving codebases faster with more trust.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">I built RepoLens Version Two to solve the next problem after repository understanding: understanding change.<\/p>\n<p>Version One helped developers understand unfamiliar repositories faster through module maps, dependency graphs, API discovery, generated docs, grounded repo chat, and branch comparison.<\/p>\n<p>But understanding a repository once is not enough. Repositories keep changing. Pull requests introduce risk. APIs evolve. Architecture drifts. Teams need to know what changed, what was affected, and what actually matters.<\/p>\n<p>RepoLens Version Two is built for that workflow.<\/p>\n<p>It can now analyze pull requests, generate engineering summaries, detect affected modules and changed endpoints, highlight likely review hotspots, support branch-aware and PR-aware repo chat with exact code references, compare branches structurally, detect architecture drift, and send alerts for meaningful changes.<\/p>\n<p>What makes RepoLens different is that it does not rely on generic AI output alone. It first builds a structured understanding of the repository and its changes, then uses that foundation to provide more grounded, navigable, and verifiable insights.<\/p>\n<p>I would love feedback on the PR intelligence workflow, branch-aware chat experience, change detection quality, and which signals would be most useful for real engineering teams.<\/p><\/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>We need this in my team!!<\/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\/@rania_rimali\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rania_rimali<\/a>&nbsp;Thank you. I really appreciate that.<\/p>\n<p>I would be interested to know which capability would be most useful for your team in practice  PR summaries, review hotspots, changed endpoints, or branch aware chat.<\/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>Love the focus on structured understanding, but how do you plan to handle situations where multiple PRs touch overlapping modules? That could muddy the waters for teams relying on clear insights.<\/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\/@trydoff\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@trydoff<\/a>&nbsp;That\u2019s a really good point, and it\u2019s exactly one of the problems I want RepoLens to get better at over time.<\/p>\n<p>Right now the model is to keep analysis scoped to each PR\u2019s actual diff and commit context, so even if multiple PRs touch the same module, the insight stays grounded in that PR\u2019s changed files, affected modules, endpoints, and review signals, rather than mixing everything together.<\/p>\n<p>But you\u2019re right that overlapping PRs can still create ambiguity for teams. The direction I\u2019m exploring next is cross-PR overlap detection: flagging shared modules, shared endpoints, and potential review\/conflict hotspots across open PRs so teams can see not just \u201cwhat this PR changes,\u201d but also \u201cwhat else is changing around it.\u201d<\/p>\n<p>That would make the insight much more useful in fast-moving teams where multiple changes are landing at once.<\/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 &#8220;changed endpoints&#8221; detection is the most interesting claim here is this static analysis over OpenAPI specs or route decorators, or does it use AST diffing to infer HTTP surface changes ? The accuracy of that feature alone would determine whether this is genuinely useful in a polyglot monorepo versus a single-framework codebase.<\/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 the launch <a href=\"https:\/\/www.producthunt.com\/@mohosin2126\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"mohosin2126\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mohosin2126<\/a> , I think a feature that could help get more client is just like stripe has a screenshot feature to for people to share MRR achievement on social media, you could have something similar where solo SAAS builders can share the timeline there product being built. If you can do that with a good UI\/UX I think it work get traction<\/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>Really powerful idea: understanding what actually changed across PRs, branches, and the codebase instead of just scanning diffs could save devs a ton of mental overhead. Congrats on the launch! What has been the hardest part about accurately identifying \u201cwhat actually matters\u201d versus just listing changes? \ud83d\ude80<\/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>One thing I\u2019d really love feedback on:<\/p>\n<p>If you work in fast-moving repositories, which signal would be most useful to you first?<\/p>\n<p>PR summaries<\/p>\n<p>affected modules<\/p>\n<p>changed endpoints<\/p>\n<p>review hotspots<\/p>\n<p>branch-aware chat<\/p>\n<p>architecture drift alerts<\/p>\n<p>Curious which one feels most valuable in real engineering workflows.<\/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>How is this different from just using ChatGPT on a repository or asking GitHub Copilot questions?<\/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\/@hira365\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@hira365<\/a>&nbsp;Great question.<\/p>\n<p>RepoLens is built around structured repository and change analysis, not just general code Q and A. Instead of only answering questions like ChatGPT or Copilot, it maps pull request changes, detects affected modules and endpoints, highlights review hotspots, and keeps the insight grounded in actual repository and diff context.<\/p>\n<p>The focus is helping teams understand what changed and what matters, not just chat with the codebase.<\/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\/6SIAEH7XH5JINV\" class=\"app-title\">Expect<\/a><\/p>\n<div class=\"one-liner\">Let agents test your code in a real browser<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">107<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Expect\u901a\u8fc7\u4e00\u6761\u547d\u4ee4\u626b\u63cf\u4ee3\u7801\u53d8\u66f4\uff0c\u5728\u771f\u5b9e\u6d4f\u89c8\u5668\u4e2d\u81ea\u52a8\u751f\u6210\u5e76\u6267\u884c\u6d4b\u8bd5\u8ba1\u5212\uff0c\u89e3\u51b3\u4e86\u5f00\u53d1\u8005\u5728\u5feb\u901f\u8fed\u4ee3\u4e2d\u624b\u52a8\u7f16\u5199\u548c\u8fd0\u884c\u524d\u7aef\u6d4b\u8bd5\u7684\u6548\u7387\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\/4ff0f3f6-585a-43fd-968f-49be8e858ed3.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\/5a972917-a06f-4a62-891c-cebd6521f73b.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\/ecdceaa8-e3af-4b2a-bfc9-4e8885e96f07.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\/a1d4d5e6-afa1-4eff-bc61-4978bcfe7db1.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\/77a2e94c-9ca4-425b-9e99-8d70545ee50c.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\">Design Tools<\/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\u6d4b\u8bd5\u4ee3\u7406<\/span><br \/>\n            <span class=\"tag\">\u81ea\u52a8\u5316\u6d4b\u8bd5<\/span><br \/>\n            <span class=\"tag\">\u524d\u7aef\u6d4b\u8bd5<\/span><br \/>\n            <span class=\"tag\">\u6d4f\u89c8\u5668\u6d4b\u8bd5<\/span><br \/>\n            <span class=\"tag\">\u4ee3\u7801\u53d8\u66f4\u626b\u63cf<\/span><br \/>\n            <span class=\"tag\">\u667a\u80fd\u6d4b\u8bd5\u751f\u6210<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u6548\u7387\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u8f6f\u4ef6\u8d28\u91cf\u4fdd\u969c<\/span><br \/>\n            <span class=\"tag\">DevOps<\/span><br \/>\n            <span class=\"tag\">\u667a\u80fd\u7f16\u7a0b\u52a9\u624b<\/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\u5176\u8282\u7701\u65f6\u95f4\u7684\u4ef7\u503c\uff0c\u5c24\u5176\u9002\u5408\u72ec\u7acb\u5f00\u53d1\u8005\u3002\u4e3b\u8981\u7591\u95ee\u96c6\u4e2d\u5728\uff1a\u662f\u5426\u652f\u6301\u79fb\u52a8\u7aef\u5e94\u7528\u6d4b\u8bd5\uff1b\u5982\u4f55\u5904\u7406\u4ec5\u51ed\u4ee3\u7801\u5dee\u5f02\u96be\u4ee5\u53d1\u73b0\u7684\u8fb9\u7f18\u60c5\u51b5\uff1b\u4ee5\u53ca\u5982\u4f55\u6a21\u62df\u590d\u6742\u7528\u6237\u4ea4\u4e92\u3001\u52a8\u6001\u5185\u5bb9\u548c\u4e0d\u540c\u8bbe\u5907\u72b6\u6001\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                Expect\u5c06\u201cAI\u4ee3\u7406\u201d\u6982\u5ff5\u7cbe\u51c6\u5207\u5165\u6d4b\u8bd5\u8fd9\u4e00\u5f3a\u75db\u70b9\u573a\u666f\uff0c\u5176\u201c\u4e00\u6761\u547d\u4ee4\u201d\u7684\u6781\u7b80\u4ea4\u4e92\u80cc\u540e\uff0c\u662f\u8bd5\u56fe\u7528AI\u91cd\u65b0\u5b9a\u4e49\u6d4b\u8bd5\u5de5\u4f5c\u6d41\u7684\u91ce\u5fc3\u3002\u4ea7\u54c1\u4ef7\u503c\u4e0d\u5728\u4e8e\u66ff\u4ee3\u6210\u719f\u7684\u5355\u5143\u6d4b\u8bd5\u6216E2E\u6846\u67b6\uff0c\u800c\u5728\u4e8e\u586b\u8865\u201c\u4ee3\u7801\u63d0\u4ea4\u524d\u201d\u90a3\u4e00\u7247\u654f\u6377\u4f46\u5371\u9669\u7684\u7a7a\u767d\u2014\u2014\u672a\u6682\u5b58\u53d8\u66f4\u4e0e\u5206\u652f\u5dee\u5f02\u3002\u5b83\u7784\u51c6\u7684\u662f\u5f00\u53d1\u8005\u5fc3\u7167\u4e0d\u5ba3\u7684\u201c\u61d2\u60f0\u201d\u4e0e\u4fa5\u5e78\u5fc3\u7406\uff1a\u5728\u5feb\u901f\u63a8\u8fdb\u529f\u80fd\u65f6\uff0c\u5f80\u5f80\u758f\u4e8e\u4e3a\u7ec6\u5fae\u6539\u52a8\u7f16\u5199\u5168\u9762\u6d4b\u8bd5\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u4ece\u8bc4\u8bba\u7684\u8d28\u7591\u4e2d\uff0c\u6211\u4eec\u5f97\u4ee5\u7aa5\u89c1\u5176\u5929\u82b1\u677f\u4e0e\u786c\u4ed7\u6240\u5728\u3002\u5176\u4e00\uff0c**\u573a\u666f\u5c40\u9650\u6027**\uff1a\u771f\u5b9e\u6d4f\u89c8\u5668\u6d4b\u8bd5\u56fa\u7136\u53ef\u8d35\uff0c\u4f46\u590d\u6742\u72b6\u6001\uff08\u767b\u5f55\u6001\u3001\u591a\u6b65\u9aa4\u6d41\u7a0b\uff09\u3001\u52a8\u6001\u6570\u636e\u3001\u8fb9\u7f18\u4ea4\u4e92\u7684\u6a21\u62df\uff0c\u7edd\u975e\u4ec5\u9759\u6001\u5206\u6790\u4ee3\u7801\u5dee\u5f02\u6240\u80fd\u8986\u76d6\u3002\u8fd9\u89e6\u53ca\u4e86\u5f53\u524dAI\u57fa\u4e8e\u6a21\u5f0f\u5339\u914d\u7684\u56fa\u6709\u77ed\u677f\u3002\u5176\u4e8c\uff0c**\u5b9a\u4f4d\u6a21\u7cca\u6027**\uff1a\u5b83\u4ecb\u4e8e\u7b80\u5355\u7684\u8bed\u6cd5\u68c0\u67e5\u4e0e\u5b8c\u6574\u7684\u96c6\u6210\u6d4b\u8bd5\u4e4b\u95f4\u3002\u5bf9\u4e8e\u4e25\u8083\u9879\u76ee\uff0c\u5b83\u53ef\u80fd\u4e0d\u591f\u53ef\u9760\uff1b\u5bf9\u4e8e\u7b80\u5355\u9879\u76ee\uff0c\u8bbe\u7f6e\u6210\u672c\u6216\u8bb8\u4ecd\u9ad8\u4e8e\u624b\u52a8\u70b9\u51fb\u3002\u5176\u4e09\uff0c**\u201c\u6d4b\u8bd5\u8ba1\u5212\u751f\u6210\u201d\u7684\u9ed1\u76d2**\uff1a\u5176\u8ba1\u5212\u7684\u8d28\u91cf\u3001\u8986\u76d6\u5ea6\u4e0e\u5224\u65ad\u903b\u8f91\u662f\u6838\u5fc3\uff0c\u5374\u6700\u4e0d\u900f\u660e\u3002\u7528\u6237\u5c06\u90e8\u5206\u8d28\u91cf\u5b88\u95e8\u6743\u4ea4\u7ed9\u4e86AI\uff0c\u5374\u7f3a\u4e4f\u8bc4\u4f30\u5176\u5b88\u95e8\u80fd\u529b\u7684\u6807\u51c6\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u771f\u6b63\u7684\u98a0\u8986\u6027\u5728\u4e8e\uff0c\u5982\u679c\u5b83\u80fd\u6301\u7eed\u5b66\u4e60\u9879\u76ee\u4e0a\u4e0b\u6587\uff0c\u5c06\u6d4b\u8bd5\u4ece\u201c\u9884\u5148\u7f16\u5199\u201d\u7684\u8303\u5f0f\u8f6c\u5411\u201c\u5373\u65f6\u5206\u6790-\u9a8c\u8bc1\u201d\u7684\u8303\u5f0f\uff0c\u6216\u8bb8\u80fd\u5f00\u542f\u201c\u81ea\u9002\u5e94\u6d4b\u8bd5\u201d\u7684\u65b0\u8def\u5f84\u3002\u4f46\u76ee\u524d\u6765\u770b\uff0c\u5b83\u66f4\u50cf\u4e00\u4e2a\u806a\u660e\u7684\u3001\u9488\u5bf9\u524d\u7aef\u6539\u52a8\u7684\u81ea\u52a8\u5316\u5192\u70df\u6d4b\u8bd5\u589e\u5f3a\u5668\uff0c\u662f\u63d0\u6548\u7684\u8865\u5145\u5de5\u5177\uff0c\u800c\u975e\u6d4b\u8bd5\u4f53\u7cfb\u7684\u9769\u547d\u8005\u3002\u5176\u6210\u529f\u4e0e\u5426\uff0c\u5c06\u53d6\u51b3\u4e8eAI\u5728\u5177\u4f53\u4ee3\u7801\u8bed\u5883\u4e0b\u7406\u89e3\u5f00\u53d1\u8005\u201c\u771f\u5b9e\u610f\u56fe\u201d\u548c\u9884\u89c1\u201c\u5f02\u5e38\u72b6\u6001\u201d\u7684\u6df1\u5ea6\uff0c\u8fd9\u4ecd\u662f\u5f85\u653b\u514b\u7684\u6280\u672f\u9669\u5cf0\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\">Expect<\/span>\n                <\/div>\n<div class=\"comment-content\">One command scans your unstaged changes or branch diff, generates a test plan, and runs it against a live browser.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>A simple command to let agents test your code in a real browser. <\/p>\n<p>Interesting to see how 2026 is seeing a lot of agent-friendly products. <\/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>&lt;3&lt;3&lt;3<\/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 and could see myself using this when I launch my app. Does your software work on apps (iOS and Android)?<\/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>One command to generate and run a full test plan. that&#8217;s a massive time saver for solo devs shipping fast. curious, how does it handle edge cases that aren&#8217;t obvious from the diff alone?<\/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 looks promising for catching bugs early! However, I&#8217;m curious how Expect handles complex user interactions or dynamic content. The hardest part of automating tests tends to be accurately simulating user behavior in various states. Have you thought of ways to capture those edge cases, like different screen sizes or varied user inputs?<\/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\">#9<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/OBMSRIA7BCEITG\" class=\"app-title\">Lexaclaw<\/a><\/p>\n<div class=\"one-liner\">Startup legal compliance built on OpenClaw<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">104<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>\u4e00\u6b3e\u8fd0\u884c\u4e8e\u672c\u5730\u7684\u521b\u4e1a\u516c\u53f8\u5408\u89c4\u52a9\u624b\uff0c\u901a\u8fc7\u626b\u63cf\u672c\u5730\u6587\u6863\u3001\u8ffd\u8e2a\u6cd5\u5b9a\u4e49\u52a1\u4e0e\u622a\u6b62\u65e5\u671f\u3001\u81ea\u52a8\u586b\u5199\u653f\u5e9c\u8868\u683c\uff0c\u89e3\u51b3\u4e86\u521d\u521b\u56e2\u961f\u5408\u89c4\u7ba1\u7406\u5206\u6563\u3001\u6613\u9057\u6f0f\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\/a7a0c4e5-647c-4bf7-8597-3d38bd0a55de.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\/f813d8f7-4f39-4fb3-ad5a-832c1325fb7b.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\/bf69ac75-207f-495e-8b69-0ce314e6b0bb.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\/4bcd35fa-bdbd-44b3-b29e-cc407cfcf2a7.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\/c76926cd-40f7-400b-be34-2ebd9e42842b.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\/062e80ed-d2be-4c1b-9949-12844aa6d587.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\/0ca0097f-fb47-43ed-82d4-883c17bd0074.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/8kcQfiKop7s\"><source src=\"https:\/\/youtu.be\/8kcQfiKop7s\" 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\">Open Source<\/span><br \/>\n            <span class=\"tag\">Legal<\/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\">\u6cd5\u5f8b\u79d1\u6280<\/span><br \/>\n            <span class=\"tag\">\u521b\u4e1a\u5408\u89c4<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u5316\u90e8\u7f72<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90\u8f6f\u4ef6<\/span><br \/>\n            <span class=\"tag\">\u81ea\u52a8\u5316\u4ee3\u7406<\/span><br \/>\n            <span class=\"tag\">\u6587\u6863\u751f\u6210<\/span><br \/>\n            <span class=\"tag\">\u4e49\u52a1\u8ffd\u8e2a<\/span><br \/>\n            <span class=\"tag\">\u653f\u5e9c\u8868\u683c<\/span><br \/>\n            <span class=\"tag\">\u9690\u79c1\u5b89\u5168<\/span><br \/>\n            <span class=\"tag\">\u514d\u8d39\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\u53cd\u9988\u96c6\u4e2d\u5728\u4ea7\u54c1\u4ef7\u503c\u4e0e\u9002\u7528\u6027\uff1a\u80af\u5b9a\u5176\u672c\u5730\u8fd0\u884c\u548c\u81ea\u52a8\u586b\u8868\u7684\u6838\u5fc3\u4f18\u52bf\uff0c\u5e76\u5efa\u8bae\u5f3a\u5316\u4e3b\u9875\u4fe1\u606f\u5448\u73b0\u3002\u4e3b\u8981\u95ee\u9898\u6d89\u53ca\u591a\u53f8\u6cd5\u7ba1\u8f96\u533a\u5408\u89c4\u7684\u590d\u6742\u6027\u3001\u5bf9\u7279\u5b9a\u56fd\u5bb6\uff08\u5982\u5370\u5ea6\uff09\u6cd5\u89c4\u7684\u652f\u6301\u7a0b\u5ea6\uff0c\u4ee5\u53ca\u4ea7\u54c1\u5728\u65e0\u73b0\u6709\u5408\u89c4\u6587\u4ef6\u65f6\u662f\u5426\u53ef\u7528\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                Lexaclaw \u5207\u5165\u4e86\u4e00\u4e2a\u7cbe\u51c6\u4e14\u75bc\u75db\u7684\u8d5b\u9053\uff1a\u521d\u521b\u516c\u53f8\u7684\u5408\u89c4\u7ba1\u7406\u3002\u5176\u771f\u6b63\u7684\u98a0\u8986\u6027\u4ef7\u503c\u5e76\u975e\u529f\u80fd\u5806\u780c\uff0c\u800c\u5728\u4e8e\u4e24\u4e2a\u5173\u952e\u9009\u62e9\uff1a**\u672c\u5730\u5316\u8fd0\u884c**\u4e0e**\u5f00\u6e90**\u3002\u5728\u6570\u636e\u654f\u611f\u7684\u6cd5\u5f8b\u9886\u57df\uff0c\u8fd9\u76f4\u63a5\u6784\u5efa\u4e86\u81f3\u5173\u91cd\u8981\u7684\u4fe1\u4efb\u57fa\u77f3\uff0c\u5c24\u5176\u5bf9\u65e9\u671f\u3001\u8d44\u6e90\u6709\u9650\u7684\u521b\u4e1a\u56e2\u961f\u800c\u8a00\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u5176\u5ba3\u79f0\u7684\u201c100%\u514d\u8d39\u201d\u6a21\u5f0f\u4e0e\u201cPowered by OpenClaw\u201d\u7684\u67b6\u6784\uff0c\u4e5f\u66b4\u9732\u4e86\u5176\u5546\u4e1a\u5316\u548c\u80fd\u529b\u8fb9\u754c\u7684\u6838\u5fc3\u6311\u6218\u3002\u4ea7\u54c1\u9ad8\u5ea6\u4f9d\u8d56\u7528\u6237\u81ea\u8eab\u7684AI\u4ee3\u7406\uff0c\u8fd9\u5b9e\u8d28\u4e0a\u5c06\u6280\u672f\u590d\u6742\u6027\u548c\u8d23\u4efb\u90e8\u5206\u8f6c\u79fb\u7ed9\u4e86\u7528\u6237\u3002\u8bc4\u8bba\u4e2d\u5173\u4e8e\u591a\u5dde\u3001\u591a\u56fd\u5408\u89c4\u7684\u5c16\u9510\u63d0\u95ee\uff0c\u6070\u6070\u51fb\u4e2d\u4e86\u5176\u5f53\u524d\u4f5c\u4e3a\u201c\u5de5\u5177\u6846\u67b6\u201d\u800c\u975e\u201c\u6210\u719f\u89e3\u51b3\u65b9\u6848\u201d\u7684\u8f6f\u808b\u2014\u2014\u6df1\u5ea6\u3001\u5b9e\u65f6\u4e14\u51c6\u786e\u7684\u5408\u89c4\u77e5\u8bc6\u5e93\u4e0e\u903b\u8f91\u5f15\u64ce\uff0c\u624d\u662f\u8fd9\u7c7b\u4ea7\u54c1\u7684\u62a4\u57ce\u6cb3\uff0c\u800c\u8fd9\u9700\u8981\u5de8\u5927\u7684\u4e13\u4e1a\u8d44\u6e90\u6295\u5165\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u56e0\u6b64\uff0cLexaclaw \u66f4\u50cf\u4e00\u4e2a\u6781\u5177\u6f5c\u529b\u7684\u201c\u5408\u89c4\u64cd\u4f5c\u7cfb\u7edf\u201d\u539f\u578b\u3002\u5b83\u5c55\u793a\u4e86\u672a\u6765\u65b9\u5411\uff1a\u53bb\u4e2d\u5fc3\u5316\u3001\u79c1\u6709\u5316\u3001\u7531AI\u4ee3\u7406\u9a71\u52a8\u7684\u5408\u89c4\u5de5\u4f5c\u6d41\u3002\u4f46\u5176\u6210\u529f\u4e0e\u5426\uff0c\u53d6\u51b3\u4e8e\u80fd\u5426\u56f4\u7ed5\u5f00\u6e90\u751f\u6001\uff0c\u6784\u5efa\u8d77\u6301\u7eed\u66f4\u65b0\u3001\u8986\u76d6\u66f4\u5e7f\u6cd5\u57df\u7684\u4e49\u52a1\u89c4\u5219\u5e93\u4e0e\u6587\u6863\u6a21\u677f\uff0c\u5e76\u627e\u5230\u53ef\u6301\u7eed\u7684\u5546\u4e1a\u6a21\u5f0f\uff08\u5982\u4f01\u4e1a\u7ea7\u652f\u6301\u3001\u5408\u89c4\u6570\u636e\u670d\u52a1\uff09\u3002\u5426\u5219\uff0c\u5b83\u53ef\u80fd\u4ec5\u505c\u7559\u4e3a\u4e00\u4e2a\u4f18\u96c5\u7684\u6280\u672f\u6f14\u793a\uff0c\u96be\u4ee5\u627f\u53d7\u771f\u5b9e\u4e16\u754c\u590d\u6742\u3001\u52a8\u6001\u7684\u5408\u89c4\u91cd\u538b\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\">Lexaclaw<\/span>\n                <\/div>\n<div class=\"comment-content\">A startup compliance assistant that tracks obligations, fills government forms, and generates legal documents. Every obligation your startup owes can be discovered, tracked, and handled. Lexaclaw scans your documents to discover obligations, tracks every deadline, fills government forms, and generates legal documents from our templates. It also runs locally so your documents never leave your machine. Powered by OpenClaw. 100% free for startups. Just point your agent to our repo to get started<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey Product Hunt. Matt here, co-founder of Lexaclaw. Former corporate attorney, now startup founder.<\/p>\n<p>We built Lexaclaw after scrambling to file a late registration for my previous startup. It had slipped through our reminder system. That&#8217;s the thing with compliance: for most startups it&#8217;s a scattered mess. Documents in random folders, deadlines in spreadsheets (if they&#8217;re tracked at all). We wanted to fix that.<\/p>\n<p>Here&#8217;s what Lexaclaw does:<\/p>\n<p>You point your existing AI agent to Lexaclaw so it knows how to get started. It runs locally on your machine, finds your corporate documents, and figures out what obligations apply to you. You can also just share those details manually if you prefer. From there it builds out your full compliance system with all your obligations and deadlines in one place.<\/p>\n<p>It walks you through getting compliant step by step. We&#8217;re also introducing autonomous filing soon, so you can hand the tedious parts to your agent.<\/p>\n<p>Three things we care about:<br \/>\n1. It runs locally. Your information stays private.<br \/>\n2. We&#8217;ve open-sourced it so you can see how things work.<br \/>\n3. It&#8217;s 100% free for startups.<\/p>\n<p>Would love to hear which compliance headaches hit you the hardest. Helps us figure out what to build next. Happy to answer questions!<\/p><\/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\/@mattisinfact\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mattisinfact<\/a>&nbsp;Kudos on the launch, just a quick q: How well does it handle India-specific regs like ROC or international compliance for bootstrapped teams?<\/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\/@mattisinfact\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mattisinfact<\/a>&nbsp;When the agent &#8220;figures out what obligations apply to you&#8221; by reading your documents locally, how do you handle multi-jurisdictional complexity, a startup incorporated in Delaware, operating in California, with remote employees in three other states hits very different compliance requirements simultaneously?<\/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>Loved the concept of this,<\/p>\n<p>How have you segregated the pricing according to the correct needs of the end users, is it more on usage basis or a monthly subscription.<\/p>\n<p>How does this benefits any early stage startup.<\/p>\n<p>And on which levels <\/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\/@ayan_das12\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ayan_das12<\/a>&nbsp;Hey Ayan! Lexaclaw is free for startups <\/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>Congratulations, <a href=\"https:\/\/www.producthunt.com\/@mattisinfact\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"mattisinfact\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mattisinfact<\/a>. Super simple idea&#8230;  a compliance assistant that runs locally and helps fill government forms.  <\/p>\n<p>Your homepage has a list: \u201cSix things Lexaclaw does that other tools don\u2019t.\u201d  That list is good.  <\/p>\n<p>But the second item [<strong>Agent fills government forms for you<\/strong>] is your strongest point. It clearly shows why this tool is useful. The other items are just extra details. However, this strongest point is buried in the middle of the long list.  <\/p>\n<\/p>\n<p>And a visitor who scans quickly might only read the first and last points.  They could easily miss the main killer feature.<\/p>\n<\/p>\n<p>And your \u201cRight now, your compliance looks like this\u201d section is good. It shows scattered emails, a spreadsheet, and a penalty notice.  <\/p>\n<\/p>\n<p>It makes the problem feel real.<\/p>\n<\/p>\n<p>But&#8230; the solution part below it [<strong>Everything connected<\/strong>] is only two lines. The contrast is strong, but the payoff feels too short.  <\/p>\n<p>A visitor wants to see more clearly how the connection actually works.<\/p>\n<p>I noticed a couple more small things that could make the messaging better.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/14848650-4a6d-4d32-b491-bd58c9fb0e99.png?auto=compress&amp;codec=mozjpeg&amp;cs=strip&amp;auto=format\" style=\"max-width: 100%\"><\/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\">Hi Matt! Congratulations on the launch. Can I ask, do you need exiting compliance documents for this to work? Or is it able to provide them from scratch? I\u2019m assuming it also adapts to different compliances requirements per country?<\/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\/@leah_dyke\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@leah_dyke<\/a>&nbsp;Hey Leah&#8211;thank you! For this initial launch Lexaclaw is focused on US jurisdictions to start. You do not need existing compliance documents, although they can help the agent further build out your company profile.<\/p>\n<\/p>\n<p>What jurisdiction besides US would be most helpful? Any specific compliance requirements that Lexaclaw could help you with?<\/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\">#10<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/K2VLOEJFT2JJRR\" class=\"app-title\">WordPress Studio CLI<\/a><\/p>\n<div class=\"one-liner\">WordPress Studio now has an independently installable CLI<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">104<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>WordPress Studio CLI\u662f\u4e00\u6b3e\u53ef\u901a\u8fc7\u7ec8\u7aef\u547d\u4ee4\u63a7\u5236WordPress Studio\u529f\u80fd\u7684\u5de5\u5177\uff0c\u5b83\u5141\u8bb8\u5f00\u53d1\u8005\u5728\u811a\u672c\u5316\u5de5\u4f5c\u6d41\u4e2d\u96c6\u6210\u672c\u5730\u5f00\u53d1\uff0c\u65e0\u9700\u6253\u5f00\u684c\u9762\u5e94\u7528\u5373\u53ef\u5feb\u901f\u8fd0\u884cWordPress\uff0c\u63d0\u5347\u4e86\u5f00\u53d1\u81ea\u52a8\u5316\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\/595a9d5d-1eed-412d-8b17-a0b72075f065.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\/fedd01af-d6c8-42c1-968b-3bc220a18320.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\/a5b6c506-56ae-4324-9e1a-516ca35e2ea9.jpeg?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\">WordPress<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">WordPress\u5f00\u53d1\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u547d\u4ee4\u884c\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u5f00\u53d1<\/span><br \/>\n            <span class=\"tag\">\u811a\u672c\u96c6\u6210<\/span><br \/>\n            <span class=\"tag\">\u8de8\u5e73\u53f0<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u6548\u7387<\/span><br \/>\n            <span class=\"tag\">\u524d\u7aef\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u5de5\u4f5c\u6d41\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">AI\u7f16\u7801\u8f85\u52a9<\/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\u6ce8CLI\u7684\u72ec\u7acb\u5b89\u88c5\u4e0e\u8de8\u5e73\u53f0\u652f\u6301\uff0c\u80af\u5b9a\u5176\u4fbf\u5229\u6027\uff1b\u540c\u65f6\u96c6\u4e2d\u8be2\u95ee\u662f\u5426\u96c6\u6210MCP\uff08Model Context Protocol\uff09\u4ee5\u4fbf\u8fde\u63a5AI\u7f16\u7a0b\u52a9\u624b\uff0c\u4ee5\u53ca\u662f\u5426\u4ecd\u9700\u4ed8\u8d39\u4f7f\u7528WordPress MCP\uff0c\u53cd\u6620\u51fa\u5bf9AI\u5de5\u5177\u94fe\u6574\u5408\u4e0e\u6210\u672c\u95ee\u9898\u7684\u5173\u5207\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                WordPress Studio CLI\u770b\u4f3c\u53ea\u662f\u5c06\u56fe\u5f62\u754c\u9762\u529f\u80fd\u79fb\u690d\u5230\u7ec8\u7aef\uff0c\u5b9e\u5219\u89e6\u53ca\u4e86\u73b0\u4ee3\u5f00\u53d1\u5de5\u4f5c\u6d41\u7684\u6838\u5fc3\u77db\u76fe\uff1a\u5728AI\u7f16\u7801\u52a9\u624b\u65e5\u76ca\u666e\u53ca\u7684\u80cc\u666f\u4e0b\uff0c\u5f00\u53d1\u5de5\u5177\u662f\u5426\u5177\u5907\u201c\u53ef\u811a\u672c\u5316\u201d\u4e0e\u201c\u53ef\u5d4c\u5165\u6027\u201d\u5df2\u6210\u4e3a\u5173\u952e\u7ade\u4e89\u529b\u3002\u4ea7\u54c1\u901a\u8fc7\u63d0\u4f9b\u72ec\u7acb\u7684CLI\uff0c\u4e0d\u4ec5\u6ee1\u8db3\u4e86\u4f20\u7edf\u5f00\u53d1\u8005\u5bf9\u7ec8\u7aef\u64cd\u4f5c\u548c\u81ea\u52a8\u5316\u811a\u672c\u7684\u504f\u597d\uff0c\u66f4\u91cd\u8981\u7684\u662f\uff0c\u5b83\u4e3b\u52a8\u4e3aAI\u667a\u80fd\u4f53\uff08Coding Agents\uff09\u6253\u5f00\u4e86\u4ea4\u4e92\u63a5\u53e3\u2014\u2014\u8fd9\u6b63\u662f\u8bc4\u8bba\u4e2d\u7528\u6237\u53cd\u590d\u8ffd\u95eeMCP\u652f\u6301\u7684\u539f\u56e0\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5f53\u524d\u5de5\u5177\u7684\u5c40\u9650\u6027\u540c\u6837\u660e\u663e\u3002\u5176\u4ef7\u503c\u9ad8\u5ea6\u4f9d\u8d56\u4e8e\u540e\u7eed\u201c\u540c\u6b65\u3001\u5bfc\u5165\u3001\u5bfc\u51fa\u201d\u7b49\u627f\u8bfa\u529f\u80fd\u7684\u5b9e\u73b0\u7a0b\u5ea6\uff0c\u5426\u5219\u5b83\u53ea\u662f\u4e00\u4e2a\u8f7b\u91cf\u7ea7\u672c\u5730\u542f\u52a8\u5668\u3002\u7528\u6237\u5173\u4e8eMCP\u4e0e\u4ed8\u8d39\u7684\u7591\u95ee\uff0c\u5219\u66b4\u9732\u51fa\u66f4\u6df1\u5c42\u7684\u751f\u6001\u95ee\u9898\uff1aWordPress Studio\u662f\u5426\u610f\u5728\u6784\u5efa\u4e00\u4e2a\u5c01\u95ed\u7684AI\u670d\u52a1\u751f\u6001\uff0c\u8fd8\u662f\u771f\u6b63\u62e5\u62b1\u5f00\u653e\u5de5\u5177\u94fe\uff1f\u5982\u679cCLI\u4ec5\u662f\u901a\u5411\u4ed8\u8d39AI\u670d\u52a1\u7684\u201c\u5f15\u7ebf\u201d\uff0c\u5176\u957f\u671f\u5438\u5f15\u529b\u5c06\u5927\u6253\u6298\u6263\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7280\u5229\u70b9\u5728\u4e8e\uff1a\u5728\u201cAI+\u5f00\u53d1\u201d\u6d6a\u6f6e\u4e2d\uff0c\u5355\u7eaf\u63d0\u4f9bCLI\u5df2\u975e\u6280\u672f\u4eae\u70b9\uff0c\u800c\u662f\u5165\u573a\u5238\u3002\u4ea7\u54c1\u7684\u771f\u6b63\u4ef7\u503c\u5728\u4e8e\u80fd\u5426\u6210\u4e3a\u8fde\u63a5\u672c\u5730\u5f00\u53d1\u73af\u5883\u4e0e\u4e91\u7aefAI\u80fd\u529b\u7684\u201c\u4e2d\u6027\u7ba1\u9053\u201d\uff0c\u5e76\u5728\u6b64\u8fc7\u7a0b\u4e2d\u91cd\u65b0\u5b9a\u4e49WordPress\u9ad8\u7aef\u5f00\u53d1\u7684\u5de5\u4f5c\u6d41\u8303\u5f0f\u3002\u5426\u5219\uff0c\u5b83\u53ef\u80fd\u5f88\u5feb\u88ab\u66f4\u5f00\u653e\u3001\u66f4\u4e13\u6ce8\u7684\u7ade\u54c1\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\">WordPress Studio CLI<\/span>\n                <\/div>\n<div class=\"comment-content\">Control WordPress Studio features from the terminal. Integrate local development into scripting workflows with CLI tools.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Early access! WordPress Studio now has an independently installable CLI. One command to install: npm install -g wp-studio<\/p>\n<p>And another to run WordPress locally, no desktop app needed: npx wp-studio<\/p>\n<p>It works on Mac, Windows, and Linux and makes it easy for your AI coding tools to interact with Studio.<\/p>\n<p>Sync, import, export, and more are coming soon. \ud83d\udc40 Free to install and use.<\/p><\/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>does it have an MCP that can be connected to coding agnets?<\/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>Really impressive. Does this make it so you don&#8217;t have to pay for WordPress MCP or do you have to connect it through MCP still?<\/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\">#11<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/TSM3DBD6HQOYR5\" class=\"app-title\">BNA<\/a><\/p>\n<div class=\"one-liner\">AI agent that builds full-stack iOS &#038; Android apps with auth<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">91<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>BNA\u662f\u4e00\u6b3eAI\u667a\u80fd\u4f53\uff0c\u80fd\u5c06\u4ea7\u54c1\u60f3\u6cd5\u5373\u65f6\u751f\u6210\u4e3a\u5305\u542b\u5b9e\u65f6\u540e\u7aef\u3001\u6570\u636e\u5e93\u548c\u8eab\u4efd\u9a8c\u8bc1\u7684\u5168\u6808iOS\u4e0eAndroid\u5e94\u7528\uff0c\u89e3\u51b3\u4e86\u521b\u59cb\u4eba\u548c\u5f00\u53d1\u8005\u9a8c\u8bc1\u60f3\u6cd5\u3001\u5feb\u901f\u4e0a\u5e02\u65f6\u9762\u4e34\u7684\u57fa\u7840\u8bbe\u65bd\u642d\u5efa\u590d\u6742\u3001\u5f00\u53d1\u5468\u671f\u957f\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\/b1526183-64a9-4d8f-b187-7fefe9538781.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\/fb044895-a3fd-4c79-aa43-19bd4b9b03b7.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\/2510edc0-1fd6-46f6-8246-c4a0348d9a4f.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\/86302760-7bfb-48ab-bdad-2b1252dc7c02.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\/047a735d-3910-4d62-95ec-109c8adcc059.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\/968da452-39bb-4558-9ed4-c5331e60eae1.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\/47f1c1b8-6911-494c-9cac-2d157f783c59.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/PflqZPE1u6Q\"><source src=\"https:\/\/youtu.be\/PflqZPE1u6Q\" 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\">Vibe coding<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u4ee3\u7801\u751f\u6210<\/span><br \/>\n            <span class=\"tag\">\u5168\u6808\u79fb\u52a8\u5f00\u53d1<\/span><br \/>\n            <span class=\"tag\">\u5feb\u901f\u539f\u578b\u9a8c\u8bc1<\/span><br \/>\n            <span class=\"tag\">React Native<\/span><br \/>\n            <span class=\"tag\">Expo<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u65f6\u540e\u7aef<\/span><br \/>\n            <span class=\"tag\">\u8eab\u4efd\u9a8c\u8bc1<\/span><br \/>\n            <span class=\"tag\">\u4f4e\u4ee3\u7801<\/span><br \/>\n            <span class=\"tag\">\u521b\u4e1a\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u751f\u4ea7\u529b\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\u53cd\u9988\u96c6\u4e2d\u4e8e\u751f\u6210\u4ee3\u7801\u7684\u8d28\u91cf\u4e0e\u53ef\u5b9a\u5236\u6027\uff0c\u8be2\u95ee\u4ee3\u7801\u662f\u5426\u6e05\u6670\u53ef\u6269\u5c55\u3001\u54c1\u724c\u4e0eAPI\u5982\u4f55\u81ea\u5b9a\u4e49\uff0c\u4ee5\u53ca\u5f53AI\u751f\u6210\u7684\u903b\u8f91\uff08\u5982\u8eab\u4efd\u9a8c\u8bc1\u6d41\u7a0b\uff09\u4e0d\u5339\u914d\u65f6\u5982\u4f55\u5bb9\u9519\u3002\u5f00\u53d1\u8005\u56de\u590d\u79f0\u7cfb\u7edf\u80fd\u68c0\u6d4b\u9519\u8bef\u5e76\u81ea\u52a8\u4fee\u590d\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                BNA\u6240\u4ee3\u8868\u7684\u201c\u63cf\u8ff0\u5373\u751f\u6210\u201d\u5168\u6808\u5e94\u7528AI\u667a\u80fd\u4f53\uff0c\u6b63\u5728\u5c06\u5e94\u7528\u5f00\u53d1\u7684\u542f\u52a8\u6210\u672c\u538b\u7f29\u5230\u8fd1\u4e4e\u4e3a\u96f6\u3002\u5176\u771f\u6b63\u7684\u4ef7\u503c\u5e76\u975e\u66ff\u4ee3\u8d44\u6df1\u5f00\u53d1\u8005\uff0c\u800c\u662f\u7cbe\u51c6\u72d9\u51fb\u4e86\u201c\u60f3\u6cd5\u9a8c\u8bc1\u201d\u8fd9\u4e2a\u9ad8\u9891\u3001\u521a\u9700\u4e14\u5145\u6ee1\u6469\u64e6\u7684\u73af\u8282\u3002\u5b83\u9009\u62e9Expo React Native\u548cConvex\u540e\u7aef\uff0c\u662f\u6781\u5177\u7b56\u7565\u6027\u7684\u6280\u672f\u7ec4\u5408\uff0c\u5728\u8de8\u5e73\u53f0\u3001\u5b9e\u65f6\u6570\u636e\u4e0e\u7b80\u5316\u540e\u7aef\u7ba1\u7406\u95f4\u53d6\u5f97\u4e86\u73b0\u6210\u7684\u5e73\u8861\uff0c\u8ba9\u751f\u6210\u7684\u5e94\u7528\u8131\u79bb\u4e86\u73a9\u5177\u8303\u7574\uff0c\u5177\u5907\u4e86\u53ef\u4e0a\u67b6\u7684\u751f\u4ea7\u529b\u57fa\u7840\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u5149\u9c9c\u7684\u201c\u5206\u949f\u7ea7\u4e0a\u67b6\u201d\u627f\u8bfa\u80cc\u540e\uff0c\u6f5c\u85cf\u7740\u4ea7\u54c1\u903b\u8f91\u7684\u6df1\u6c34\u533a\u3002\u8bc4\u8bba\u4e2d\u7684\u62c5\u5fe7\u4e00\u9488\u89c1\u8840\uff1a\u751f\u6210\u4ee3\u7801\u662f\u201c\u53ef\u6269\u5c55\u7684\u84dd\u56fe\u201d\u8fd8\u662f\u201c\u5f85\u91cd\u6784\u7684\u8349\u7a3f\u201d\uff1f\u5f53AI\u5bf9\u590d\u6742\u4e1a\u52a1\u903b\u8f91\u7684\u7406\u89e3\u51fa\u73b0\u504f\u5dee\u65f6\uff0c\u662f\u4f18\u96c5\u5730\u81ea\u6211\u4fee\u590d\uff0c\u8fd8\u662f\u5c06\u7528\u6237\u62d6\u5165\u66f4\u68d8\u624b\u7684\u8c03\u8bd5\u8ff7\u5bab\uff1f\u76ee\u524d\u770b\uff0c\u5176\u5b9a\u4f4d\u66f4\u504f\u5411\u4e00\u4e2a\u9ad8\u5ea6\u667a\u80fd\u5316\u7684\u9879\u76ee\u811a\u624b\u67b6\u751f\u6210\u5668\uff0c\u5b83\u6781\u5927\u5730\u89e3\u51b3\u4e86\u201c\u4ece0\u52300.5\u201d\u7684\u51b7\u542f\u52a8\u95ee\u9898\uff0c\u4f46\u201c\u4ece0.5\u52301\u201d\u7684\u6df1\u5ea6\u5b9a\u5236\u548c\u8fed\u4ee3\uff0c\u4f9d\u7136\u4e25\u91cd\u4f9d\u8d56\u5f00\u53d1\u8005\u81ea\u8eab\u7684\u529f\u529b\u3002\u5b83\u7684\u6210\u529f\u4e0e\u5426\uff0c\u5c06\u53d6\u51b3\u4e8e\u5176\u751f\u6210\u4ee3\u7801\u7684\u6574\u6d01\u5ea6\u3001\u67b6\u6784\u7684\u5408\u7406\u6027\uff0c\u4ee5\u53caAI\u8c03\u8bd5\u80fd\u529b\u7684\u771f\u5b9e\u53ef\u9760\u6027\u3002\u5426\u5219\uff0c\u5b83\u53ef\u80fd\u53ea\u662f\u5c06\u5f00\u53d1\u74f6\u9888\u4ece\u9879\u76ee\u642d\u5efa\u9636\u6bb5\uff0c\u5411\u540e\u63a8\u79fb\u5230\u4e86\u4ee3\u7801\u4fee\u6539\u4e0e\u7ef4\u62a4\u9636\u6bb5\u3002\u5bf9\u4e8e\u975e\u6280\u672f\u51fa\u8eab\u7684\u521b\u59cb\u4eba\uff0c\u5b83\u964d\u4f4e\u4e86\u5165\u95e8\u95e8\u69db\uff1b\u4f46\u5bf9\u4e8e\u5f00\u53d1\u8005\uff0c\u5b83\u5fc5\u987b\u8bc1\u660e\u81ea\u5df1\u662f\u4e00\u4e2a\u503c\u5f97\u4fe1\u8d56\u7684\u201c\u521d\u7ea7\u5408\u4f19\u4eba\u201d\uff0c\u800c\u975e\u4e00\u4e2a\u751f\u6210\u540e\u5373\u9700\u629b\u5f03\u7684\u4e34\u65f6\u539f\u578b\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\">BNA<\/span>\n                <\/div>\n<div class=\"comment-content\">BNA the AI agent that turns your idea into a full-stack mobile app. Instantly generate iOS and Android apps using Expo React Native, powered by a real-time backend with database, APIs, and authentication included out of the box. BNA is built for founders and developers to validate ideas, move fast, and start acquiring users quickly. Go from idea to a production-ready app ready for the App Store and Play Store in minutes.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Introducing BNA, the AI agent that actually builds real full-stack mobile apps. Describe your idea and instantly generate iOS &amp; Android apps powered by a real-time backend, complete with database and authentication out of the box.<\/p>\n<\/p>\n<p>BNA is built to empower founders and developers to validate ideas, get to market quickly, and start acquiring users without the friction. It removes the repetitive setup so you can focus on what actually matters: building, iterating, and launching your ideas faster than ever. I\u2019ve spent months building apps that got zero traction, which is why I value fast MVPs now and BNA is here to validate ideas quickly,<\/p>\n<\/p>\n<p>Under the hood, apps runs as a development build with full native module support, so you\u2019re not limited by sandboxes or demos. You can ship production-ready iOS and Android apps with the same codebase, without spending months setting up infrastructure, wiring backend logic, or handling auth.<\/p>\n<p>Build Now: <a href=\"https:\/\/ai.ahmedbna.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/ai.ahmedbna.com<\/a><\/p>\n<p>Would love your feedback and what you\u2019d want to build with it \ud83d\ude80<\/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\/@ahmedbna\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ahmedbna<\/a>&nbsp;Congrats on the launch. For non-dev founders validating content\/branding apps, how customizable is the generated code for tweaks like custom APIs or branding?<\/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>expo + convex is a solid combo. what does the generated code actually look like? clean enough to build on top of or more of a starting point you&#8217;d rewrite? <\/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>Convex as the backend default is an interesting pick &#8211; real-time and schema-managed out of the box, which matters when the agent is generating the whole stack. curious what the failure mode looks like when the generated auth flow doesn&#8217;t quite match the app concept though, is that still a manual fix?<\/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\/@mykola_kondratiuk\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mykola_kondratiuk<\/a>&nbsp;Thanks, generally the agent detects failures, reads the error logs and the related files, then updates both the logic and app code to fix the issue.<\/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\">#12<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/WRCVVDHNIUPO5D\" class=\"app-title\">Domscribe<\/a><\/p>\n<div class=\"one-liner\">Give your AI coding agent eyes on your running frontend<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">89<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>\u4e00\u6b3e\u4e3aAI\u7f16\u7a0b\u52a9\u624b\u63d0\u4f9b\u201c\u89c6\u89c9\u201d\u80fd\u529b\u7684\u5f00\u53d1\u5de5\u5177\uff0c\u901a\u8fc7\u6784\u5efa\u65f6\u6ce8\u5165\u7a33\u5b9aID\u548c\u8fd0\u884c\u65f6\u6355\u83b7DOM\u4e0e\u7ec4\u4ef6\u72b6\u6001\uff0c\u7cbe\u51c6\u8fde\u63a5\u524d\u7aef\u4ee3\u7801\u4e0e\u8fd0\u884c\u754c\u9762\uff0c\u89e3\u51b3\u4e86AI\u4ee3\u7406\u5728\u4fee\u6539\u524d\u7aef\u4ee3\u7801\u65f6\u76f2\u76ee\u641c\u7d22\u3001\u5b9a\u4f4d\u4f4e\u6548\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\/4b65d2d1-c1d6-4aa9-afdc-d01b8047d9fe.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\/88349eb1-07eb-4e8c-a75c-6cd961cca155.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\/55fe3577-0bbf-4180-8d7d-a03808391266.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\/436647a4-5c11-446f-aa84-83da14326cd1.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\/8fd1d120-198a-453f-b35f-3ca1b16a0e56.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\/56b1e1f1-9726-4617-b973-086856ce2783.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\/e1f32f54-9225-4b3f-9c9e-e6317e4d18c6.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\/170451d4-5f3a-4ab6-be85-ac657741cb83.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\/5ce91f89-1fda-41a3-8fba-28045ce1b0bb.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\/d92172de-a78e-4e0c-8c81-31ff4fe53f22.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\/c4858a4e-3d0f-44ad-8f77-5a915ec75da2.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\/bee2ccfa-2f68-4b9d-ab46-fe877a0fc1a2.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\/1c8f1bdd-1504-4f40-8286-dbddbb861e32.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\/222a4690-30e2-4c56-8bb0-0c64d4a0694a.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\/19cafa45-81b3-4223-8eab-a381fff4223b.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\">AI\u7f16\u7a0b\u52a9\u624b\u589e\u5f3a\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u524d\u7aef\u5f00\u53d1\u63d0\u6548<\/span><br \/>\n            <span class=\"tag\">\u4ee3\u7801-UI\u53cc\u5411\u6620\u5c04<\/span><br \/>\n            <span class=\"tag\">\u591a\u6846\u67b6\u652f\u6301<\/span><br \/>\n            <span class=\"tag\">\u6784\u5efa\u65f6\u63d2\u6869<\/span><br \/>\n            <span class=\"tag\">MCP\u534f\u8bae<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u5de5\u4f5c\u6d41<\/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\u5176\u6784\u5efa\u65f6\u7a33\u5b9aID\u65b9\u6848\u7684\u957f\u8fdc\u4ef7\u503c\uff0c\u8ba4\u4e3a\u5176\u6bd4\u57fa\u4e8e\u5feb\u7167\u731c\u6d4b\u9009\u62e9\u5668\u66f4\u53ef\u9760\u3002\u5f00\u53d1\u8005\u8be6\u7ec6\u89e3\u7b54\u4e86\u5173\u4e8eShadow DOM\u3001Canvas\/SVG\u652f\u6301\u7684\u6280\u672f\u7ec6\u8282\uff0c\u5e76\u9610\u8ff0\u4e86\u63d2\u4ef6\u5316\u3001\u6846\u67b6\u65e0\u5173\u7684\u67b6\u6784\u8bbe\u8ba1\u7406\u5ff5\u3002\u6709\u7528\u6237\u63d0\u53ca\u6b64\u5de5\u5177\u53ef\u5e2e\u52a9\u8282\u7701AI\u4ee3\u7406\u7684token\u6d88\u8017\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                Domscribe\u7684\u91ce\u5fc3\u4e0d\u5728\u4e8e\u6210\u4e3a\u53c8\u4e00\u4e2a\u524d\u7aef\u8c03\u8bd5\u5de5\u5177\uff0c\u800c\u5728\u4e8e\u8bd5\u56fe\u6210\u4e3aAI\u65f6\u4ee3\u524d\u7aef\u4eba\u673a\u534f\u540c\u7684\u201c\u6807\u51c6\u534f\u8bae\u5c42\u201d\u3002\u5176\u771f\u6b63\u4ef7\u503c\u662f**\u5c06\u524d\u7aef\u754c\u9762\u4ece\u201c\u50cf\u7d20\u96c6\u5408\u201d\u548c\u201c\u6a21\u7cca\u6587\u672c\u63cf\u8ff0\u201d\u8fd8\u539f\u4e3a\u7cbe\u786e\u7684\u3001\u53ef\u7f16\u7a0b\u7684\u4ee3\u7801\u7ed3\u6784**\uff0c\u4ece\u800c\u586b\u5e73\u4e86\u81ea\u7136\u8bed\u8a00\u6307\u4ee4\u4e0e\u5177\u4f53\u4ee3\u7801\u4fee\u6539\u4e4b\u95f4\u7684\u5de8\u5927\u9e3f\u6c9f\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5f53\u524dAI\u7f16\u7801\u4ee3\u7406\u5728\u524d\u7aef\u4efb\u52a1\u4e0a\u8868\u73b0\u7b28\u62d9\uff0c\u6839\u6e90\u5728\u4e8e\u5176\u7f3a\u4e4f\u5bf9\u8fd0\u884c\u65f6\u5e94\u7528\u72b6\u6001\u7684\u201c\u611f\u77e5\u201d\u80fd\u529b\uff0c\u53ea\u80fd\u57fa\u4e8e\u9759\u6001\u4ee3\u7801\u8fdb\u884c\u6982\u7387\u731c\u6d4b\u3002Domscribe\u901a\u8fc7\u6784\u5efa\u65f6\u6ce8\u5165\u54c8\u5e0cID\u8fd9\u4e00\u770b\u4f3c\u6734\u7d20\u7684\u6280\u672f\uff0c\u5de7\u5999\u5730\u5efa\u7acb\u4e86\u6e90\u4ee3\u7801\u4f4d\u7f6e\u4e0e\u8fd0\u884c\u65f6\u5143\u7d20\u4e4b\u95f4\u6c38\u4e0d\u5931\u6548\u7684\u94fe\u63a5\u3002\u8fd9\u6bd4\u4f9d\u8d56\u6613\u53d8\u7684CSS\u9009\u62e9\u5668\u6216\u8106\u5f31\u7684\u622a\u56fe\u8bc6\u522b\uff0c\u5728\u5de5\u7a0b\u4e0a\u66f4\u4e3a\u575a\u5b9e\u3002\u5176\u901a\u8fc7MCP\u534f\u8bae\u66b4\u9732\u80fd\u529b\uff0c\u4e5f\u5c55\u73b0\u4e86\u826f\u597d\u7684\u751f\u6001\u601d\u7ef4\uff0c\u8bd5\u56fe\u6210\u4e3aAI\u4ee3\u7406\u7684\u6807\u51c6\u5316\u201c\u611f\u5b98\u8f93\u5165\u201d\u8bbe\u5907\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u5176\u9762\u4e34\u7684\u6838\u5fc3\u6311\u6218\u5728\u4e8e\u201c\u9002\u914d\u7684\u5e7f\u5ea6\u4e0e\u6df1\u5ea6\u201d\u3002\u867d\u7136\u5176\u67b6\u6784\u8bbe\u8ba1\u4e86\u826f\u597d\u7684\u6269\u5c55\u6027\uff0c\u4f46\u6bcf\u4e2a\u65b0\u6846\u67b6\uff08\u5982Svelte\u3001Solid\uff09\u6216\u590d\u6742\u573a\u666f\uff08\u5982\u6df1\u5ea6\u5b9a\u5236\u7684\u6e32\u67d3\u5f15\u64ce\u3001Canvas\u91cd\u5ea6\u5e94\u7528\uff09\u90fd\u9700\u8981\u4e13\u95e8\u7684\u9002\u914d\u5668\u5f00\u53d1\uff0c\u8fd9\u6784\u6210\u4e86\u5176\u751f\u6001\u6269\u5f20\u7684\u6280\u672f\u503a\u52a1\u3002\u6b64\u5916\uff0c\u5176\u4ef7\u503c\u9ad8\u5ea6\u4f9d\u8d56\u4e8eAI\u4ee3\u7406\u80fd\u5426\u771f\u6b63\u7406\u89e3\u5e76\u9ad8\u6548\u5229\u7528\u5176\u63d0\u4f9b\u7684\u201c\u4e0a\u4e0b\u6587\u201d\uff08DOM\u3001props\u3001state\uff09\u3002\u5982\u679c\u4ee3\u7406\u7684\u63a8\u7406\u80fd\u529b\u4e0d\u8db3\uff0c\u518d\u7cbe\u786e\u7684\u5b9a\u4f4d\u4fe1\u606f\u4e5f\u53ef\u80fd\u88ab\u6d6a\u8d39\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u957f\u8fdc\u770b\uff0cDomscribe\u82e5\u6210\u529f\uff0c\u53ef\u80fd\u63a8\u52a8\u524d\u7aef\u5f00\u53d1\u8303\u5f0f\u5411\u201c\u754c\u9762\u5373\u51c6\u786e\u4ee3\u7801\u5165\u53e3\u201d\u6f14\u8fdb\uff0c\u4f46\u5176\u5929\u82b1\u677f\u4e5f\u53d6\u51b3\u4e8eAI\u4ee3\u7406\u672c\u8eab\u7684\u667a\u80fd\u6c34\u5e73\u3002\u5b83\u662f\u4e00\u628a\u7cbe\u5fc3\u6253\u78e8\u7684\u201c\u624b\u672f\u5200\u201d\uff0c\u4f46\u6267\u5200\u8005\u7684\u6280\u827a\u540c\u6837\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\">Domscribe<\/span>\n                <\/div>\n<div class=\"comment-content\">AI coding agents edit your files blind; they can&#8217;t see your running frontend. Domscribe closes the gap. Code \u2192 UI: Query any source location via MCP, get back live DOM, props, and state. No screenshots, no guessing. UI \u2192 Code: Click any element, describe what you want in plain English. Domscribe resolves the exact file:line:col and your agent edits it. Build-time stable IDs. React, Vue, Next.js, Nuxt. Vite, Webpack, Turbopack. Any coding agent. MIT licensed. Zero production impact.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\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\/@kiranjohns\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@kiranjohns<\/a>&nbsp;Thanks Kiran! Big fan of <a href=\"https:\/\/layrr.dev\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">layrr.dev<\/a> &#8211; love what you are building. Appreciate 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<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the stable ID approach is what makes this actually useful long-term. agents guessing CSS selectors based on snapshots is brittle &#8211; they break on any refactor. connecting to the running DOM state via MCP is the right layer. does it handle shadow DOM components or is that still a gap?<\/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\/@mykola_kondratiuk\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mykola_kondratiuk<\/a>&nbsp;Really appreciate this comment Mykola, you nailed exactly why I went with build-time IDs. Selector-based approaches break the moment someone renames a class or restructures a component; I wanted something that survives refactors by design.<\/p>\n<\/p>\n<p>On shadow DOM: it depends on which layer you&#8217;re asking about.<\/p>\n<\/p>\n<p>The overlay itself runs inside shadow DOM (Lit web components) specifically so it doesn&#8217;t interfere with your app&#8217;s styles or DOM. So Domscribe is already using shadow DOM internally.<\/p>\n<\/p>\n<p>For your app&#8217;s components: if you&#8217;re using React or Vue components that happen to render inside a shadow root, the runtime adapters (fiber walking \/ VNode inspection) will capture props and state at the component level as normal, since those operate on the framework&#8217;s internal tree, not the DOM directly.<\/p>\n<\/p>\n<p>Where it gets tricky is native web components (Lit, Stencil, vanilla custom elements) with their own template syntax. The build-time transform layer would need a new parser; but that&#8217;s a clean integration. The injector is fully parser-agnostic: the Acorn, Babel, and Vue SFC parsers are all just implementations of a ParserInterface, and the injector handles all the ID generation, attribute injection, and manifest writing without knowing which parser produced the AST. A Lit tagged template parser would implement that same interface, and everything downstream (element tracking, context capture, the relay, MCP tools) works automatically.<\/p>\n<\/p>\n<p>It&#8217;s not supported today but it&#8217;s a single parser implementation away, not a rethink. Would love to hear more about your setup if you&#8217;re working with shadow DOM heavily.<\/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 and thanks for contributing with the MIT license, always appreciated! <\/p>\n<p>A question: Would it work on canvas based objects, e.g. I have a button made with canvas and I tag it on the canvas area. What about svg objects? <\/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\/@yodalr\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@yodalr<\/a>&nbsp;Thanks Lennart, really appreciate that!<\/p>\n<\/p>\n<p>Great question. SVG elements are regular DOM nodes, so Domscribe instruments them the same way as any other element. Each &lt;rect&gt;, &lt;path&gt;, &lt;g&gt;, etc. gets a data-ds ID mapped to its source location, and the runtime captures props and state from the parent component. So if you have an SVG button built from a &lt;g&gt; with some &lt;rect&gt; and &lt;text&gt; children in a React or Vue component, clicking any of those in the overlay resolves to the exact file and line.<\/p>\n<\/p>\n<p>Canvas is a different story. Everything drawn on a &lt;canvas&gt; exists as pixels, not as DOM nodes, so there&#8217;s nothing for Domscribe to attach an ID to. The &lt;canvas&gt; element itself would get instrumented, but the individual objects drawn inside it wouldn&#8217;t. That&#8217;s a fundamental limitation of how canvas works rather than something specific to Domscribe; any DOM-based tool hits the same wall.<\/p>\n<\/p>\n<p>That said, if your canvas buttons are wrapped in React\/Vue components (which they usually are for event handling), Domscribe would still resolve the component and give your agent the props, state, and source location; you&#8217;d just lose the per-shape granularity you&#8217;d get with SVG.<\/p>\n<\/p>\n<p>Short answer: use SVG if you can, and you&#8217;ll get full Domscribe coverage.<\/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 Product Hunt! \ud83d\udc4b<\/p>\n<p>I built Domscribe because of a problem that kept bugging me: every time I asked an AI coding agent to change something on the frontend, it would burn through thousands of tokens just searching for the right file. Grep through the codebase, read a dozen candidates, build up context on each one, ask me to confirm; all before writing a single line of code. Most of the agent&#8217;s time and token budget was spent on search, not on the actual edit.<\/p>\n<p><em>Domscribe bridges that gap in both directions<\/em>:<\/p>\n<p><strong>\u2192 Code to UI<\/strong>: Your agent calls an MCP tool with a file and line number and instantly gets back the live DOM snapshot, component props, and state \u2014 no screenshots or human intervention needed.<\/p>\n<p><strong>\u2192 UI to Code<\/strong>: You click an element in the browser overlay, type &#8220;make this button blue,&#8221; and submit. Domscribe resolves the exact source location and your agent edits the right file on the first try.<\/p>\n<\/p>\n<p>See demo videos on <a href=\"https:\/\/www.domscribe.com\/?ref=producthunt\" target=\"_blank\" rel=\"nofollow noopener noreferrer\"><strong>the website<\/strong><\/a>.<\/p>\n<p>One thing I&#8217;m particularly proud of is the architecture. I spent a lot of time making sure Domscribe wasn&#8217;t just a tool that works: it&#8217;s a platform you can build on. The system is split into clean layers: a parser-agnostic AST transform handles ID injection, a generic manifest maps IDs to source locations, and a FrameworkAdapter interface defines exactly what a runtime adapter needs to implement. If you&#8217;re using Svelte, Solid, Angular, or something entirely custom, <em>you can write an adapter that plugs directly into the existing pipeline<\/em> and everything else (element tracking, PII redaction, the relay, MCP tools, the overlay) just works. <strong>Next.js, React, Vue and Nuxt.js ship as first-party adapters<\/strong> built on the same public interface that any community contributor would use. No special internals or escape hatches:<\/p>\n<\/p>\n<ul>\n<li>\n<p><strong>Next.js adapter<\/strong>: <a href=\"https:\/\/www.npmjs.com\/package\/@domscribe\/next\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@domscribe\/next<\/a><\/p>\n<\/li>\n<li>\n<p><strong>Nuxt adapter<\/strong>: <a href=\"https:\/\/www.npmjs.com\/package\/@domscribe\/nuxt\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@domscribe\/nuxt<\/a><\/p>\n<\/li>\n<li>\n<p><strong>React adapter<\/strong>: <a href=\"https:\/\/www.npmjs.com\/package\/@domscribe\/react\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@domscribe\/react<\/a><\/p>\n<\/li>\n<li>\n<p><strong>Vue adapter<\/strong>: <a href=\"https:\/\/www.npmjs.com\/package\/@domscribe\/vue\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@domscribe\/vue<\/a><\/p>\n<\/li>\n<\/ul>\n<p>The same philosophy extends to the agent side. Domscribe exposes its full tool surface via MCP, so any compatible agent works out of the box. But I also built <strong>first-party plugins for Claude Code, GitHub Copilot CLI, Gemini CLI, and Cursor<\/strong>; each bundles the MCP config and a skill file that teaches the agent how to use Domscribe&#8217;s tools effectively. Install the plugin and you&#8217;re up and running in seconds, no manual config needed:<\/p>\n<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/github.com\/patchorbit\/domscribe?tab=readme-ov-file#claude-code\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Claude code plugin<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/patchorbit\/domscribe?tab=readme-ov-file#gemini-cli\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Gemini CLI extension<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/cursor.directory\/plugins\/domscribe\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Cursor plugin<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/patchorbit\/domscribe?tab=readme-ov-file#github-copilot\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">GitHub Copilot plugin<\/a><\/p>\n<\/li>\n<\/ul>\n<p>Under the hood it works at build time: an AST transform assigns every JSX\/Vue element a stable ID via xxhash64 hashing and writes a manifest mapping each ID to its file, line, and column. At runtime, framework adapters walk React fibers and Vue VNodes to capture live props and state. A local relay daemon connects the browser and your agent via REST, WebSocket, and MCP stdio.<\/p>\n<p>It&#8217;s fully open source (MIT), framework-agnostic (React, Vue, Next.js, Nuxt), works across bundlers (Vite, Webpack, Turbopack), and supports any MCP-compatible agent (Claude Code, Cursor, GitHub Copilot, Gemini CLI, Kiro). PII is auto-redacted, and everything is stripped in production builds \u2014 zero runtime cost.<\/p>\n<p>Would love to hear your feedback. What&#8217;s your biggest pain point when using AI agents for frontend 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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@narrator\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@narrator<\/a>&nbsp;This will surely help me save on precious tokens man, thanks a lot. Congract on 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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This looks really cool, I will definitely need to try it after launch day.  I have found that agents can get stuck on loops especially on the frontend trying to get the agent to change the right part or graph.<\/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\">#13<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/SPQQ4IGNBQXHPA\" class=\"app-title\">Spokk<\/a><\/p>\n<div class=\"one-liner\">Feedback, reviews, loyalty &#038; referrals for SMB<\/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>Spokk\u4e3a\u5c0f\u578b\u4f01\u4e1a\uff08\u5982\u9910\u5385\u3001\u5065\u8eab\u623f\u3001\u6c99\u9f99\uff09\u63d0\u4f9b\u4e00\u7ad9\u5f0f\u81ea\u52a8\u5316\u5ba2\u6237\u589e\u957f\u89e3\u51b3\u65b9\u6848\uff0c\u901a\u8fc7\u4e00\u6b21\u987e\u5ba2\u7b7e\u5230\u81ea\u52a8\u89e6\u53d1\u53cd\u9988\u6536\u96c6\u3001AI\u751f\u6210\u597d\u8bc4\u3001\u5fe0\u8bda\u5ea6\u5956\u52b1\u4e0e\u63a8\u8350\u8ffd\u8e2a\u6d41\u7a0b\uff0c\u89e3\u51b3\u4e86\u5546\u5bb6\u9700\u540c\u65f6\u4f7f\u7528\u591a\u4e2a\u72ec\u7acb\u5de5\u5177\u7ba1\u7406\u5ba2\u6237\u5173\u7cfb\u4e0e\u589e\u957f\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\/ec5b2f28-5265-4e61-bb4b-ebeb01c0d83c.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\/c2867a28-44b4-456f-8509-915775439996.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\/00ebac2d-dc24-464d-9b5e-28efe232a524.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\/9d91f366-a92c-426b-9c25-12dcc4265c24.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\/1305a83f-c67d-453d-9fb4-01e7987537f3.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\/96da136d-badb-4e93-acd7-76382dcc5ab4.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\">Customer Communication<\/span><br \/>\n            <span class=\"tag\">Marketing<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u5ba2\u6237\u53cd\u9988\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u5728\u7ebf\u8bc4\u8bba\u751f\u6210<\/span><br \/>\n            <span class=\"tag\">\u5fe0\u8bda\u5ea6\u8ba1\u5212<\/span><br \/>\n            <span class=\"tag\">\u63a8\u8350\u8425\u9500<\/span><br \/>\n            <span class=\"tag\">\u81ea\u52a8\u5316\u8425\u9500<\/span><br \/>\n            <span class=\"tag\">\u77ed\u4fe1\u8425\u9500<\/span><br \/>\n            <span class=\"tag\">\u5c0f\u4f01\u4e1aSaaS<\/span><br \/>\n            <span class=\"tag\">\u5ba2\u6237\u7559\u5b58\u4e0e\u589e\u957f<\/span><br \/>\n            <span class=\"tag\">AI\u9a71\u52a8<\/span><br \/>\n            <span class=\"tag\">\u4e00\u4f53\u5316\u5e73\u53f0<\/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>\u521b\u59cb\u4eba\u9610\u8ff0\u4e86\u4ea7\u54c1\u4ece\u5355\u4e00\u5de5\u5177\u5411\u4e00\u4f53\u5316\u589e\u957f\u5f15\u64ce\u7684\u6f14\u8fdb\u7406\u5ff5\u3002\u6709\u6548\u8bc4\u8bba\u96c6\u4e2d\u4e8e\u4e24\u4e2a\u95ee\u9898\uff1a1. \u975e\u6280\u672f\u7528\u6237\u80fd\u5426\u8f7b\u677e\u81ea\u5b9a\u4e49\u81ea\u52a8\u5316\u6d41\u7a0b\uff1b2. \u4ea7\u54c1\u5bf9\u4e0d\u540c\u7c7b\u578b\u9910\u5385\uff08\u4ece\u5feb\u9910\u5230\u9ad8\u7ea7\u9910\u5385\uff09\u8425\u9500\u7684\u5177\u4f53\u9002\u7528\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                Spokk\u7684\u91ce\u5fc3\uff0c\u5728\u4e8e\u5c06\u5c0f\u4f01\u4e1a\u4e3b\u96f6\u6563\u3001\u65ad\u7eed\u7684\u5ba2\u6237\u4e92\u52a8\uff0c\u6574\u5408\u6210\u4e00\u4e2a\u7531\u201c\u7b7e\u5230\u201d\u89e6\u53d1\u7684\u3001\u8fde\u8d2f\u7684\u81ea\u52a8\u5316\u589e\u957f\u98de\u8f6e\u3002\u5176\u771f\u6b63\u4ef7\u503c\u5e76\u975e\u529f\u80fd\u5806\u780c\uff0c\u800c\u5728\u4e8e\u5bf9\u201c\u4ea4\u6613\u7ed3\u675f\u5373\u5173\u7cfb\u5f00\u59cb\u201d\u8fd9\u4e00\u5546\u4e1a\u5e38\u8bc6\u7684\u6d41\u7a0b\u5316\u5c01\u88c5\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ea7\u54c1\u903b\u8f91\u7280\u5229\uff1a\u5b83\u6293\u4f4f\u4e86\u5c0f\u4f01\u4e1a\u8425\u9500\u7684\u6838\u5fc3\u77db\u76fe\u2014\u2014\u6df1\u77e5\u5ba2\u6237\u5fe0\u8bda\u4e0e\u53e3\u7891\u81f3\u5173\u91cd\u8981\uff0c\u5374\u65e0\u7cbe\u529b\u8fd0\u8425\u590d\u6742\u4f53\u7cfb\u3002\u901a\u8fc7\u5f3a\u5236\u6027\u7684\u6781\u7b80\u53cd\u9988\u4f5c\u4e3a\u8d77\u70b9\uff0c\u5e76\u667a\u80fd\u8df3\u8fc7\u5df2\u5b8c\u6210\u7684\u6b65\u9aa4\uff08\u5982\u5df2\u7559\u8bc4\u5219\u63a8\u9001\u63a8\u8350\u94fe\u63a5\uff09\uff0c\u5b83\u8bd5\u56fe\u5728\u4f4e\u6253\u6270\u5ea6\u4e0b\uff0c\u5c06\u5355\u6b21\u6d88\u8d39\u7684\u987e\u5ba2\u4e00\u6b65\u6b65\u8f6c\u5316\u4e3a\u201c\u53cd\u9988\u8005\u2192\u597d\u8bc4\u8005\u2192\u56de\u5934\u5ba2\u2192\u63a8\u5e7f\u8005\u201d\u3002AI\u751f\u6210\u8bc4\u8bba\u8349\u7a3f\u662f\u70b9\u775b\u4e4b\u7b14\uff0c\u5b83\u79fb\u9664\u4e86\u987e\u5ba2\u884c\u52a8\u7684\u6700\u5927\u969c\u788d\u2014\u2014\u4e0d\u77e5\u5982\u4f55\u4e0b\u7b14\uff0c\u5c06\u60c5\u611f\u8ba4\u540c\u8f6c\u5316\u4e3a\u53ef\u6267\u884c\u7684\u6587\u672c\uff0c\u6781\u5927\u63d0\u5347\u4e86\u4ece\u6ee1\u610f\u5230\u516c\u5f00\u597d\u8bc4\u7684\u8f6c\u5316\u7387\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u5176\u6311\u6218\u540c\u6837\u5c16\u9510\u3002\u9996\u5148\uff0c\u6807\u51c6\u5316\u6d41\u7a0b\u4e0e\u4e0d\u540c\u884c\u4e1a\uff08\u5982\u5feb\u9910\u4e0e\u9ad8\u7ea7\u9910\u5385\uff09\u6781\u5ea6\u5dee\u5f02\u5316\u7684\u5ba2\u6237\u4f53\u9a8c\u7ba1\u7406\u9700\u6c42\u4e4b\u95f4\u5b58\u5728\u5f20\u529b\u3002\u9ad8\u7ea7\u9910\u5385\u7684\u201c\u4f53\u9a8c\u7ef4\u62a4\u201d\u8fdc\u975e\u4e00\u4e2a\u56db\u6b65\u77ed\u4fe1\u5e8f\u5217\u80fd\u627f\u8f7d\u3002\u5176\u6b21\uff0c\u5176\u6a21\u5f0f\u9ad8\u5ea6\u4f9d\u8d56\u521d\u59cb\u7684\u201c\u7b7e\u5230\u201d\u89e6\u53d1\u70b9\uff0c\u8fd9\u5bf9\u8bb8\u591a\u6ca1\u6709\u5f3a\u5236\u7b7e\u5230\u73af\u8282\u7684\u5c0f\u4f01\u4e1a\uff08\u5982\u96f6\u552e\u5e97\uff09\u6784\u6210\u90e8\u7f72\u95e8\u69db\u3002\u6700\u540e\uff0c\u5c06\u5982\u6b64\u591a\u5173\u952e\u589e\u957f\u73af\u8282\u6346\u7ed1\u4e8e\u4e00\u4e2a\u5e73\u53f0\uff0c\u56fa\u7136\u65b9\u4fbf\uff0c\u4f46\u4e5f\u610f\u5473\u7740\u98ce\u9669\u96c6\u4e2d\uff0c\u4efb\u4e00\u73af\u8282\uff08\u5982\u77ed\u4fe1\u9001\u8fbe\u7387\u3001AI\u8349\u7a3f\u8d28\u91cf\uff09\u7684\u5931\u6548\u90fd\u53ef\u80fd\u5f71\u54cd\u6574\u4f53\u94fe\u6761\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u603b\u4f53\u800c\u8a00\uff0cSpokk\u662f\u4e00\u6b21\u6709\u4ef7\u503c\u7684\u6574\u5408\u521b\u65b0\uff0c\u5b83\u8bd5\u56fe\u6210\u4e3a\u5c0f\u4f01\u4e1a\u7684\u201c\u589e\u957f\u81ea\u52a8\u9a7e\u9a76\u4eea\u201d\u3002\u4f46\u5176\u6210\u529f\u4e0e\u5426\uff0c\u4e0d\u53d6\u51b3\u4e8e\u529f\u80fd\u5217\u8868\uff0c\u800c\u53d6\u51b3\u4e8e\u5176\u6d41\u7a0b\u80fd\u5426\u771f\u6b63\u9002\u914d\u4e0d\u540c\u5546\u4e1a\u573a\u666f\u7684\u201c\u9a7e\u9a76\u8def\u51b5\u201d\uff0c\u5e76\u5728\u81ea\u52a8\u5316\u4e0e\u4eba\u6027\u5316\u4e4b\u95f4\u53d6\u5f97\u7cbe\u5999\u5e73\u8861\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\">Spokk<\/span>\n                <\/div>\n<div class=\"comment-content\">Spokk combines feedback, AI-powered reviews, loyalty, referrals, and automation into one platform for small businesses. A check-in starts the full sequence: customers get a 15-second feedback form, then an AI-generated Google review draft they copy and post in seconds, visit-based loyalty reward tracking, and a unique referral link \u2014 all delivered via SMS\/email at exactly the right time. No more juggling separate tools. Set up in 5 minutes and Spokk runs your customer growth engine on autopilot<\/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 Samesh here, founder of Spokk.<\/p>\n<p>We launched a few year ago as a simple review collection tool. It was good but it was missing something. Getting a review is a one-time win. Building a growing business means retaining customers, rewarding loyalty, and turning happy customers into referrals. We were only solving one piece of a much bigger puzzle.<\/p>\n<p>So we rebuilt Spokk from the ground up.<\/p>\n<p>What&#8217;s new:<br \/>\n&#8211; Loyalty program \u2014 Check-ins, visit-based rewards, automatic SMS notifications. No app download required.<br \/>\n&#8211; Referrals \u2014 every customer gets a unique referral link via SMS. Dual rewards for referrer and new customer. Fully tracked.<br \/>\n&#8211; Testimonials \u2014 collect video and text testimonials automatically as part of the same flow.<br \/>\n&#8211; Full SMS automation \u2014 a smart 4-step sequence per visit: feedback \u2192 AI review draft \u2192 loyalty tracking \u2192 referral link. Each step skips intelligently if it&#8217;s already been handled.<\/p>\n<p>The core idea is simple: one check-in starts the entire growth engine. You set it up once, and Spokk handles retention, reviews, loyalty, and referrals on autopilot \u2014 forever.<\/p>\n<p>We built this for the small business owner who&#8217;s great at their craft but doesn&#8217;t have time to manage five different tools. A restaurant owner. A gym. A salon. Someone who just wants it to work.<\/p>\n<p>I&#8217;d love to hear your thoughts \u2014 and if you&#8217;re a small business owner or know one, I&#8217;d genuinely appreciate you giving Spokk a try. The feedback from this community has shaped everything we&#8217;ve built so far.<\/p>\n<p>\u2014 Samesh<\/p><\/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\/@samesh13\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@samesh13<\/a>&nbsp;Congrats on the launch. For a small team juggling content and clients, how easy is it to customize the 4-step sequence without coding, and what&#8217;s the biggest uplift you&#8217;ve seen in repeat visits\/referrals from early users?<\/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>Hi <a href=\"https:\/\/www.producthunt.com\/@samesh13\" target=\"_blank\" rel=\"nofollow noopener noreferrer\"><strong>Samesh<\/strong><\/a><strong> <\/strong>congrats on your relaunch! If I worked with restaurants to handle their digital marketing, how might Spokk be able to help them? These restaurants could be QSR, casual dining or even fine dining (which have a certain experience to maintain).<\/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\/KZEXIEBGXACBJ2\" class=\"app-title\">Bulk Exporter for Sora<\/a><\/p>\n<div class=\"one-liner\">1-click backup for your Sora videos, images &#038; prompts.<\/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>\u4e00\u6b3e\u8f7b\u91cf\u7ea7Chrome\u6269\u5c55\uff0c\u4e00\u952e\u6279\u91cf\u5bfc\u51faSora\u751f\u6210\u7684\u89c6\u9891\u3001\u56fe\u50cf\u53ca\u63d0\u793a\u8bcd\uff0c\u89e3\u51b3\u521b\u4f5c\u8005\u5728\u4e91\u7aef\u7ba1\u7406AI\u751f\u6210\u8d44\u4ea7\u6df7\u4e71\u3001\u624b\u52a8\u4fdd\u5b58\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\/304b7064-a69a-4f0e-bde8-bde459aaf130.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\/fed51b97-5d88-4117-a469-2fbda30183c4.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\/b989c9b0-453f-43d0-85d4-f25a8311a279.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\/17abf5cc-47c6-49c0-91ad-7a852646e1a8.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\/92d6118d-ea92-47b9-b1da-7cbde2e52167.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=1DW7fDU3zC0\"><source src=\"https:\/\/www.youtube.com\/watch?v=1DW7fDU3zC0\" 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\">Chrome Extensions<\/span><br \/>\n            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Chrome\u6269\u5c55<\/span><br \/>\n            <span class=\"tag\">AI\u8d44\u4ea7\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">Sora\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u6279\u91cf\u5bfc\u51fa<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u5907\u4efd<\/span><br \/>\n            <span class=\"tag\">\u77e5\u8bc6\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u5de5\u4f5c\u6d41\u4f18\u5316<\/span><br \/>\n            <span class=\"tag\">\u6570\u5b57\u8d44\u4ea7\u5f52\u6863<\/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\u8005\u81ea\u8ff0\u5f00\u53d1\u52a8\u673a\u6e90\u4e8e\u81ea\u8eab\u5c06AI\u8d44\u4ea7\u6574\u5408\u8fdbObsidian\u7b49\u201c\u7b2c\u4e8c\u5927\u8111\u201d\u5de5\u4f5c\u6d41\u7684\u9700\u6c42\u3002\u8bc4\u8bba\u4e2d\u672a\u51fa\u73b0\u5176\u4ed6\u7528\u6237\u53cd\u9988\uff0c\u4e3b\u8981\u4e3a\u5f00\u53d1\u8005\u5f15\u5bfc\u8ba8\u8bba\uff0c\u8be2\u95ee\u7528\u6237\u7ba1\u7406AI\u8d44\u4ea7\u7684\u65b9\u5f0f\u5e76\u5f81\u96c6\u53cd\u9988\u4e0e\u529f\u80fd\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                \u8fd9\u6b3e\u4ea7\u54c1\u7cbe\u51c6\u5207\u5165\u4e86\u4e00\u4e2a\u65b0\u5174\u4e14\u8feb\u5207\u7684\u7ec6\u5206\u5e02\u573a\u2014\u2014AI\u751f\u6210\u5185\u5bb9\uff08AIGC\uff09\u7684\u8d44\u4ea7\u7ba1\u7406\u3002\u5176\u771f\u6b63\u4ef7\u503c\u4e0d\u5728\u4e8e\u6280\u672f\u6709\u591a\u590d\u6742\uff0c\u800c\u5728\u4e8e\u5b83\u654f\u9510\u5730\u6355\u6349\u5230\u4e86AIGC\u5de5\u4f5c\u6d41\u4e2d\u7684\u4e00\u4e2a\u5173\u952e\u65ad\u70b9\uff1a\u751f\u6210\u5e73\u53f0\u4e13\u6ce8\u4e8e\u201c\u521b\u9020\u201d\uff0c\u5374\u666e\u904d\u5ffd\u89c6\u4e86\u7528\u6237\u5bf9\u6210\u679c\u201c\u7ba1\u7406\u201d\u7684\u521a\u6027\u9700\u6c42\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ea7\u54c1\u5c06\u81ea\u8eab\u5b9a\u4f4d\u4e3a\u201c\u6865\u6881\u201d\uff0c\u4e00\u7aef\u8fde\u63a5\u7740\u5c01\u95ed\u3001\u6613\u5931\u7684\u4e91\u7aefWeb UI\uff08\u5982Sora\uff09\uff0c\u53e6\u4e00\u7aef\u5219\u5bf9\u63a5\u7528\u6237\u672c\u5730\u6210\u719f\u7684\u77e5\u8bc6\u7ba1\u7406\u4f53\u7cfb\uff08\u5982Obsidian\u3001Notion\uff09\u3002\u8fd9\u79cd\u8bbe\u8ba1\u601d\u8def\u662f\u660e\u667a\u7684\uff0c\u5b83\u6ca1\u6709\u8bd5\u56fe\u91cd\u5efa\u4e00\u4e2a\u7ba1\u7406\u5e73\u53f0\uff0c\u800c\u662f\u8d4b\u80fd\u7528\u6237\uff0c\u8ba9\u4ed6\u4eec\u80fd\u5728\u81ea\u5df1\u719f\u6089\u7684\u4fe1\u606f\u73af\u5883\u4e2d\uff0c\u5bf9AI\u8d44\u4ea7\u8fdb\u884c\u5f52\u6863\u3001\u6807\u7b7e\u5316\u548c\u5168\u6587\u68c0\u7d22\u3002\u5176\u5bfc\u51fa\u5e26YAML Front Matter\u7684Markdown\u6587\u4ef6\u529f\u80fd\uff0c\u66f4\u662f\u76f4\u63a5\u8fce\u5408\u4e86\u9ad8\u7ea7\u7b14\u8bb0\u8f6f\u4ef6\u7528\u6237\u7684\u7ed3\u6784\u5316\u6570\u636e\u9700\u6c42\uff0c\u63d0\u5347\u4e86\u63d0\u793a\u8bcd\u7684\u53ef\u590d\u7528\u6027\u548c\u53ef\u5206\u6790\u6027\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u5176\u6838\u5fc3\u98ce\u9669\u4e0e\u5929\u82b1\u677f\u4e5f\u663e\u800c\u6613\u89c1\u3002\u9996\u5148\uff0c\u5176\u751f\u5b58\u5b8c\u5168\u4f9d\u9644\u4e8eSora\u5e73\u53f0\u7684\u524d\u7aef\u5f62\u6001\u4e0e\u8bbf\u95ee\u7b56\u7565\uff0c\u4e00\u65e6\u5b98\u65b9\u754c\u9762\u66f4\u65b0\u6216API\u653f\u7b56\u53d8\u52a8\uff0c\u6269\u5c55\u53ef\u80fd\u5373\u523b\u5931\u6548\u3002\u5176\u6b21\uff0c\u529f\u80fd\u76f8\u5bf9\u5355\u4e00\uff0c\u62a4\u57ce\u6cb3\u8f83\u6d45\uff0c\u6613\u88ab\u540c\u7c7b\u5de5\u5177\u6216Sora\u5b98\u65b9\u53ef\u80fd\u63a8\u51fa\u7684\u5907\u4efd\u529f\u80fd\u6240\u8986\u76d6\u3002\u5f53\u524d82\u7684\u6295\u7968\u6570\u4e5f\u53cd\u6620\u51fa\u5e02\u573a\u70ed\u5ea6\u6709\u9650\uff0c\u8fd9\u53ef\u80fd\u4e0eSora\u672c\u8eab\u4ecd\u5904\u6709\u9650\u8bbf\u95ee\u9636\u6bb5\u3001\u7528\u6237\u57fa\u6570\u4e0d\u5927\u6709\u5173\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u672c\u8d28\u4e0a\uff0c\u8fd9\u662f\u4e00\u6b3e\u51fa\u8272\u7684\u201c\u65f6\u673a\u578b\u201d\u6548\u7387\u5de5\u5177\u3002\u5b83\u89e3\u51b3\u4e86\u65e9\u671f\u91cd\u5ea6\u7528\u6237\u7684\u71c3\u7709\u4e4b\u6025\uff0c\u4f46\u957f\u671f\u4ef7\u503c\u53d6\u51b3\u4e8e\u5176\u80fd\u5426\u4ece\u5355\u4e00\u5e73\u53f0\u7684\u201c\u5bfc\u51fa\u5668\u201d\uff0c\u6f14\u8fdb\u4e3a\u8de8\u591aAI\u751f\u6210\u5e73\u53f0\u7684\u201c\u7edf\u4e00\u8d44\u4ea7\u6536\u96c6\u4e0e\u9884\u5904\u7406\u4e2d\u5fc3\u201d\uff0c\u5e76\u6df1\u5ea6\u96c6\u6210\u5230\u66f4\u5e7f\u6cdb\u7684\u521b\u4f5c\u5de5\u4f5c\u6d41\u4e2d\u3002\u5728\u6b64\u4e4b\u524d\uff0c\u5b83\u66f4\u50cf\u4e00\u4e2a\u7cbe\u81f4\u800c\u8106\u5f31\u7684\u4e34\u65f6\u89e3\u51b3\u65b9\u6848\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\">Bulk Exporter for Sora<\/span>\n                <\/div>\n<div class=\"comment-content\">Creating amazing videos with Sora is mind-blowing, but managing the generated assets is a hassle. Manually saving files and copying prompts ruins the workflow. Bulk Exporter for Sora is a lightweight Chrome extension that lets you 1-click download your entire Sora library. It neatly organizes videos\/images into folders and exports prompts as Markdown files with YAML front matter. Stop leaving your AI generations scattered in the cloud. Take full control of your digital assets today!<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hi Hunters! \ud83d\udc4b<\/p>\n<p>I built this extension because I was tired of losing track of my best Sora generations. As someone who relies heavily on knowledge management tools like Obsidian and Notion for my daily workflows, having my AI prompts and assets trapped in a web UI was driving me crazy.<\/p>\n<p>I wanted a seamless way to bridge the gap between AI generation and my local second brain. That\u2019s exactly why I designed this tool to export prompts as clean Markdown files with Front Matter, while automatically sorting the videos and images into dedicated folders. Now, you can just drag and drop your entire AI library right into your workspace for easy tagging and full-text search.<\/p>\n<p>I&#8217;d love to know: how are you all currently managing and backing up your AI-generated assets?<\/p>\n<p>Please drop your feedback, questions, or feature requests below! I&#8217;ll be here all day answering them. \ud83d\udc47<\/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\">#15<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/KXA5GJKREA5M7E\" class=\"app-title\">Glance <\/a><\/p>\n<div class=\"one-liner\">Real browser for Claude Code Test, Screenshot, Automate     <\/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>Glance\u662f\u4e00\u6b3e\u5f00\u6e90MCP\u670d\u52a1\u5668\uff0c\u4e3aClaude Code\u63d0\u4f9b\u771f\u5b9e\u7684Chromium\u6d4f\u89c8\u5668\u73af\u5883\uff0c\u89e3\u51b3\u4e86\u5f00\u53d1\u8005\u5728AI\u7f16\u7a0b\u65f6\u9700\u8981\u9891\u7e41\u5207\u6362\u7a97\u53e3\u4ee5\u67e5\u770b\u548c\u63cf\u8ff0\u7f51\u9875\u6548\u679c\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\/3d3c08f0-7bd7-4f78-83e4-68f566fe3310.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=hOIXOklWegE\"><source src=\"https:\/\/www.youtube.com\/watch?v=hOIXOklWegE\" 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\/0b17d985-a80f-4691-a798-115b9c9f4b6f.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\/171c5bdb-405f-4e81-aff6-f9c624e3e151.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\/d0d7536b-1151-4127-9de1-60eb95f8c98a.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\">\u5f00\u6e90MCP\u670d\u52a1\u5668<\/span><br \/>\n            <span class=\"tag\">AI\u7f16\u7a0b\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u6d4f\u89c8\u5668\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">E2E\u6d4b\u8bd5<\/span><br \/>\n            <span class=\"tag\">\u89c6\u89c9\u56de\u5f52\u6d4b\u8bd5<\/span><br \/>\n            <span class=\"tag\">Playwright<\/span><br \/>\n            <span class=\"tag\">Claude\u751f\u6001<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u6548\u7387\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u7ec8\u7aef\u6d4f\u89c8\u5668<\/span><br \/>\n            <span class=\"tag\">\u6d4b\u8bd5\u81ea\u52a8\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>\u5f00\u53d1\u8005\u4ecb\u7ecd\u4ea7\u54c1\u521d\u8877\u5e76\u5bfb\u6c42\u53cd\u9988\u3002\u6709\u7528\u6237\u63d0\u51fa\u4e13\u4e1a\u6d4b\u8bd5\u5408\u4f5c\u9080\u7ea6\uff0c\u53e6\u6709\u7528\u6237\u8be2\u95ee\u6280\u672f\u7ec6\u8282\uff08\u5982CSS\u8c03\u8bd5\u3001\u50cf\u7d20\u5bf9\u6bd4\uff09\u3002\u4e00\u6761\u53cd\u9988\u6279\u8bc4\u6f14\u793a\u89c6\u9891\u4e0d\u4e13\u4e1a\u3001AI\u914d\u97f3\u4e0d\u4f73\uff0c\u5f71\u54cd\u7b2c\u4e00\u5370\u8c61\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                Glance\u7684\u5b9e\u8d28\uff0c\u662f\u5c06\u5927\u578b\u8bed\u8a00\u6a21\u578b\u7684\u4ee3\u7801\u751f\u6210\u80fd\u529b\u4e0e\u771f\u5b9e\u6d4f\u89c8\u5668\u73af\u5883\u7684\u6267\u884c\u4e0e\u9a8c\u8bc1\u80fd\u529b\u8fdb\u884c\u95ed\u73af\u8fde\u63a5\uff0c\u5176\u4ef7\u503c\u8fdc\u4e0d\u6b62\u4e8e\u201c\u622a\u56fe\u53ef\u89c1\u201d\u3002\u5b83\u7784\u51c6\u4e86\u5f53\u524dAI\u8f85\u52a9\u5f00\u53d1\u7684\u6838\u5fc3\u65ad\u5c42\uff1aAI\u80fd\u5199\u4ee3\u7801\uff0c\u4f46\u65e0\u6cd5\u81ea\u4e3b\u611f\u77e5\u8fd0\u884c\u7ed3\u679c\uff0c\u5bfc\u81f4\u8c03\u8bd5\u548c\u8fed\u4ee3\u4ecd\u9700\u4eba\u7c7b\u4f5c\u4e3a\u201c\u89c6\u89c9\u4f20\u611f\u5668\u201d\u548c\u201c\u64cd\u4f5c\u4e2d\u4ecb\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ea7\u54c1\u5c06Playwright\u7b49\u6210\u719f\u6d4f\u89c8\u5668\u81ea\u52a8\u5316\u5de5\u5177\u5c01\u88c5\u4e3aMCP\u670d\u52a1\u5668\uff0c\u662f\u660e\u667a\u7684\u6280\u672f\u6574\u5408\u3002\u5176\u5ba3\u79f0\u7684\u201c97%\u901a\u8fc7\u7387\u201d\u548c\u6d4b\u8bd5\u573a\u666f\u8fd0\u884c\u5668\uff0c\u6697\u793a\u4e86\u5176\u66f4\u6df1\u5c42\u7684\u91ce\u5fc3\u2014\u2014\u6210\u4e3aAI\u667a\u80fd\u4f53\uff08\u800c\u4e0d\u4ec5\u4ec5\u662f\u4eba\u7c7b\u5f00\u53d1\u8005\uff09\u8fdb\u884c\u7aef\u5230\u7aef\u6d4b\u8bd5\u548c\u4ea4\u4e92\u9a8c\u8bc1\u7684\u57fa\u7840\u8bbe\u65bd\u3002\u8fd9\u4e3a\u201cAI\u9a71\u52a8\u5f00\u53d1\u201d\u4ece\u4ee3\u7801\u7247\u6bb5\u751f\u6210\u8fc8\u5411\u5b8c\u6574\u529f\u80fd\u9a8c\u8bc1\u548c\u56de\u5f52\u6d4b\u8bd5\uff0c\u63d0\u4f9b\u4e86\u5173\u952e\u8def\u5f84\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u6311\u6218\u540c\u6837\u660e\u663e\u3002\u9996\u5148\uff0c\u5176\u4ef7\u503c\u9ad8\u5ea6\u7ed1\u5b9a\u4e8eClaude Code\u751f\u6001\uff0c\u5e02\u573a\u5929\u82b1\u677f\u53d7\u9650\u3002\u5176\u6b21\uff0c\u8bc4\u8bba\u4e2d\u5173\u4e8e\u50cf\u7d20\u7ea7\u65ad\u8a00\u548cCSS\u8fb9\u7f18\u6848\u4f8b\u7684\u63d0\u95ee\uff0c\u76f4\u6307\u5176\u4f5c\u4e3a\u6d4b\u8bd5\u5de5\u5177\u7684\u6838\u5fc3\u80fd\u529b\u6df1\u5ea6\u2014\u2014\u7cbe\u51c6\u7684\u89c6\u89c9\u5dee\u5f02\u6bd4\u5bf9\u8fdc\u6bd4\u622a\u56fe\u590d\u6742\u3002\u6700\u540e\uff0c\u6f14\u793a\u89c6\u9891\u7684\u8d1f\u9762\u53cd\u9988\u867d\u770b\u4f3c\u8868\u9762\uff0c\u5374\u63ed\u793a\u4e86\u5de5\u5177\u7c7b\u4ea7\u54c1\u5728\u4f20\u8fbe\u5176\u6280\u672f\u590d\u6742\u6027\u65f6\uff0c\u9762\u4e34\u7528\u6237\u4f53\u9a8c\u4e0e\u4e13\u4e1a\u5f62\u8c61\u5e73\u8861\u7684\u666e\u904d\u96be\u9898\u3002\u82e5\u60f3\u4ece\u201c\u6709\u8da3\u5de5\u5177\u201d\u6210\u957f\u4e3a\u201c\u5fc5\u5907\u8bbe\u65bd\u201d\uff0c\u5b83\u5fc5\u987b\u5728\u6d4b\u8bd5\u65ad\u8a00\u667a\u80fd\u6027\u3001\u591aAI\u52a9\u624b\u517c\u5bb9\u6027\u4ee5\u53ca\u4f01\u4e1a\u7ea7\u90e8\u7f72\u7684\u5b89\u5168\u4e0e\u7ba1\u63a7\u4e0a\uff0c\u5c55\u73b0\u66f4\u539a\u91cd\u7684\u5b9e\u529b\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\">Glance <\/span>\n                <\/div>\n<div class=\"comment-content\">Glance is an open-source MCP server that gives Claude Code a real Chromium browser with 30 tools. Navigate pages, take screenshots Claude can actually see, click buttons, fill forms, run multi-step E2E test scenarios, do visual regression testing, and record sessions all from your terminal. Built on Playwright with security profiles, rate limiting, and URL filtering. Battle-tested: 97% pass rate across 300+ test steps in production.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey Product Hunt! I am Meri\u00e7 the developer behind Glance.<\/p>\n<p>I built Glance because I kept alt-tabbing between Claude Code and Chrome to describe what my app looked like. Claude could write code but couldn&#8217;t see the result.<\/p>\n<p>Glance fixes that. It&#8217;s an MCP server that gives Claude a real Chromium browser \u2014 30 tools for navigation, screenshots, form filling, and testing. When Claude takes a screenshot, it sees the actual pixels inline. No more &#8220;the button should be on the right<br \/>\nside&#8221; it just looks.<\/p>\n<p>The coolest part is the test scenario runner. You describe a<br \/>\nmulti-step test in plain English, Claude translates it to steps,<br \/>\nruns it, and shows you screenshots at each stage. We use it daily at<br \/>\nDebugBase \u2014 300+ test steps, 97% pass rate.<\/p>\n<p>It&#8217;s fully open-source, installs in one command (`npm i -g glance-mcp`), and works with any Claude Code setup.<\/p>\n<p>Would love your feedback \u2014 what would you test first?<\/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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@meric_ozkayagan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@meric_ozkayagan<\/a>&nbsp;Hey! I just came across your launch on Product Hunt \u2013 really cool what you\u2019ve built \ud83d\ude4c<\/p>\n<p>I like the direction you\u2019re going in. I usually help founders test their products and catch bugs or UX issues before users run into them.<\/p>\n<p>I\u2019d be happy to do a full test and send you a clear, structured report (bugs, edge cases, usability improvements).<\/p>\n<p>I normally charge around $25 for this, but happy to start there and see if it\u2019s useful for you \ud83d\ude42<\/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\/@meric_ozkayagan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@meric_ozkayagan<\/a>&nbsp;For complex debugging like CSS edge cases or responsive flows, how does Glance handle screenshot diffs or pixel-perfect assertions in tests?<\/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>Hello Meric,<\/p>\n<\/p>\n<p>This is a great idea but I honestly feel like the video you created is not professional. <\/p>\n<\/p>\n<p>I would love to try your product. But the AI voice is just not it.<\/p>\n<\/p>\n<p>Just wanted to give you some feedback and good luck with your product <\/p>\n<\/p>\n<p>Mattia<\/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\">#16<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/O4C4S7VUDOZW3F\" class=\"app-title\">Able<\/a><\/p>\n<div class=\"one-liner\">One-click WCAG &#038; ADA accessibility audits for any webpage<\/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>Able\u662f\u4e00\u6b3eChrome\u4fa7\u8fb9\u680f\u63d2\u4ef6\uff0c\u4e00\u952e\u626b\u63cf\u7f51\u9875WCAG 2.2\u5408\u89c4\u6027\u95ee\u9898\uff0c\u7528\u901a\u4fd7\u8bed\u8a00\u63d0\u4f9b\u4fee\u590d\u5efa\u8bae\uff0c\u4e3a\u975e\u4e13\u4e1a\u5f00\u53d1\u4eba\u5458\u63d0\u4f9b\u9ad8\u6548\u3001\u6613\u61c2\u7684\u65e0\u969c\u788d\u5ba1\u8ba1\u89e3\u51b3\u65b9\u6848\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\/4b07c297-17f6-46fa-9142-93094d1ef179.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\/5d02883d-70fd-460f-bb5b-5c7b67ab9834.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\/b64793d6-c32a-48ca-8bc7-d729f514880b.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\/acc11cd2-4a21-4ada-8310-07c7ece3c3de.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\/49ce1470-e592-4b09-b673-49d2fd1089f0.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\/82acc330-6a8c-4a16-a084-fe0e62a52b81.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/3LlcI2YYg4U?si=QEBWPTfWY_f91j_e\"><source src=\"https:\/\/youtu.be\/3LlcI2YYg4U?si=QEBWPTfWY_f91j_e\" 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\">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\">\u7f51\u9875\u65e0\u969c\u788d\u68c0\u6d4b<\/span><br \/>\n            <span class=\"tag\">WCAG\u5408\u89c4<\/span><br \/>\n            <span class=\"tag\">ADA\u5408\u89c4<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u6d4f\u89c8\u5668\u63d2\u4ef6<\/span><br \/>\n            <span class=\"tag\">\u7528\u6237\u4f53\u9a8c<\/span><br \/>\n            <span class=\"tag\">\u8bbe\u8ba1\u8f85\u52a9<\/span><br \/>\n            <span class=\"tag\">\u4e00\u6b21\u6027\u4ed8\u8d39<\/span><br \/>\n            <span class=\"tag\">\u81ea\u52a8\u5316\u5ba1\u8ba1<\/span><br \/>\n            <span class=\"tag\">\u524d\u7aef\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>\u5f00\u53d1\u8005\u81ea\u8ff0\u4ea7\u54c1\u521d\u8877\u662f\u89e3\u51b3\u73b0\u6709\u5de5\u5177\u672f\u8bed\u6666\u6da9\u3001\u96be\u4ee5\u7406\u89e3\u7684\u95ee\u9898\uff0c\u76ee\u6807\u7528\u6237\u662f\u975e\u4e13\u5bb6\u7fa4\u4f53\u3002\u7528\u6237\u5efa\u8bae\u589e\u52a0Figma\u98ce\u683c\u9884\u89c8\u548c\u5e38\u89c1\u95ee\u9898CSS\u81ea\u52a8\u5efa\u8bae\u529f\u80fd\uff0c\u4ee5\u8fdb\u4e00\u6b65\u4f18\u5316\u8bbe\u8ba1\u5e08\u5de5\u4f5c\u6d41\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                Able\u770b\u4f3c\u662f\u53c8\u4e00\u4e2a\u57fa\u4e8eaxe-core\u5f15\u64ce\u7684\u65e0\u969c\u788d\u68c0\u6d4b\u5de5\u5177\uff0c\u4f46\u5176\u771f\u6b63\u7684\u950b\u8292\u5728\u4e8e\u7cbe\u51c6\u5207\u5165\u4e86\u4e00\u4e2a\u88ab\u5ffd\u89c6\u7684\u65ad\u5c42\uff1a\u5408\u89c4\u6027\u8981\u6c42\u4e0e\u5b9e\u65bd\u8005\u80fd\u529b\u4e4b\u95f4\u7684\u5de8\u5927\u9e3f\u6c9f\u3002\u5b83\u6ca1\u6709\u5728\u68c0\u6d4b\u7b97\u6cd5\u7684\u201c\u66f4\u5168\u66f4\u6df1\u201d\u4e0a\u5185\u5377\uff0c\u800c\u662f\u5c06\u4ef7\u503c\u91cd\u5fc3\u540e\u79fb\uff0c\u62bc\u6ce8\u5728\u201c\u89e3\u8bfb\u4e0e\u4fee\u590d\u201d\u7684\u5e73\u6c11\u5316\u7ffb\u8bd1\u4e0a\u3002\u8fd9\u51fb\u4e2d\u4e86\u4e2d\u5c0f\u56e2\u961f\u3001\u81ea\u7531\u804c\u4e1a\u8005\u548c\u975e\u6280\u672f\u51b3\u7b56\u8005\u7684\u6838\u5fc3\u75db\u70b9\u2014\u2014\u4ed6\u4eec\u4e0d\u9700\u8981\u7406\u89e3\u201cSC 1.4.3 Contrast (Minimum)\u201d\uff0c\u53ea\u9700\u8981\u77e5\u9053\u201c\u8fd9\u6bb5\u6587\u5b57\u770b\u4e0d\u6e05\uff0c\u8be5\u6362\u6210\u4ec0\u4e48\u989c\u8272\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5176\u201c\u6d4f\u89c8\u5668\u5185\u8fd0\u884c\u3001\u4e00\u6b21\u6027\u4e70\u65ad\u201d\u7684\u6a21\u5f0f\uff0c\u5728\u6570\u636e\u9690\u79c1\u654f\u611f\u548c\u8ba2\u9605\u75b2\u52b3\u7684\u5f53\u4e0b\uff0c\u6784\u6210\u4e86\u53e6\u4e00\u91cd\u5dee\u5f02\u5316\u7ade\u4e89\u529b\u3002\u7136\u800c\uff0c\u5176\u5929\u82b1\u677f\u4e5f\u663e\u800c\u6613\u89c1\uff1a\u4f5c\u4e3a\u4fa7\u91cd\u201c\u89e3\u91ca\u201d\u7684\u4e2d\u95f4\u5c42\u5de5\u5177\uff0c\u5176\u6df1\u5ea6\u4f9d\u8d56\u4e0a\u6e38\u5f15\u64ce\uff08axe-core\uff09\u7684\u89c4\u5219\u66f4\u65b0\u4e0e\u51c6\u786e\u6027\uff1b\u9762\u5bf9\u590d\u6742\u3001\u52a8\u6001\u7684\u73b0\u4ee3Web\u5e94\u7528\uff0c\u5176\u81ea\u52a8\u5316\u5efa\u8bae\u7684\u5b9e\u7528\u6027\u53ef\u80fd\u5927\u6253\u6298\u6263\u300229\u7f8e\u5143\u7684\u4e00\u6b21\u6027\u5b9a\u4ef7\u867d\u5bf9\u4e2a\u4eba\u53cb\u597d\uff0c\u4f46\u4f5c\u4e3a\u5546\u4e1a\u4ea7\u54c1\uff0c\u5176\u53ef\u6301\u7eed\u6027\u548c\u540e\u7eed\u8fed\u4ee3\u52a8\u529b\u5b58\u7591\u3002\u5b83\u672c\u8d28\u4e0a\u662f\u4e00\u4e2a\u201c\u80fd\u529b\u964d\u7ef4\u63a5\u53e3\u201d\uff0c\u6210\u529f\u4e0e\u5426\u53d6\u51b3\u4e8e\u80fd\u5426\u5728\u7b80\u5316\u4e0e\u4e13\u4e1a\u6df1\u5ea6\u95f4\u627e\u5230\u6700\u4f73\u5e73\u8861\u70b9\uff0c\u907f\u514d\u6ca6\u4e3a\u4ec5\u9002\u7528\u4e8e\u7b80\u5355\u9759\u6001\u9875\u9762\u7684\u201c\u73a9\u5177\u201d\u3002\u82e5\u80fd\u5728\u5efa\u8bae\u7684\u4e0a\u4e0b\u6587\u7cbe\u51c6\u5ea6\uff08\u5982\u7ed3\u5408\u8bbe\u8ba1\u7cfb\u7edf\uff09\u548c\u4e0e\u8bbe\u8ba1\u5de5\u5177\uff08\u5982Figma\uff09\u7684\u5de5\u4f5c\u6d41\u6574\u5408\u4e0a\u7a81\u7834\uff0c\u65b9\u80fd\u4ece\u201c\u6709\u7528\u7684\u5de5\u5177\u201d\u8fdb\u5316\u4e3a\u201c\u4e0d\u53ef\u6216\u7f3a\u7684\u5de5\u4f5c\u6d41\u7ec4\u4ef6\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\">Able<\/span>\n                <\/div>\n<div class=\"comment-content\">Able scans any webpage for WCAG 2.2 violations, scores compliance by severity, and gives you plain-language fixes, right in Chrome&#8217;s side panel. Free tier included. Pro ($29 one-time) adds PDF reports, contrast previews, and exact CSS fix suggestions.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey Product Hunt! I&#8217;m Ruben, the maker of Able.<\/p>\n<p>I built Able because I was frustrated with every accessibility tool I tried. They all spit out the same thing: cryptic WCAG rule IDs, DOM selectors, and jargon that only makes sense if you already know accessibility inside out.<\/p>\n<p>The thing is, most people who NEED to check accessibility, designers, project managers, small business owners, freelance developers, aren&#8217;t accessibility experts. They just want to know: &#8220;Is my site accessible? If not, what do I fix?&#8221;<\/p>\n<p>That&#8217;s what Able does.<\/p>\n<p>Click the icon, get a full WCAG 2.1 audit in under 3 seconds. Every issue is explained in plain language. And if you upgrade to Pro ($29, one-time \u2014 no subscription), you get exact hex codes, CSS snippets, and before\/after contrast previews so you can fix issues without Googling anything.<\/p>\n<p>A few things I&#8217;m proud of:<\/p>\n<p>&#8211; Built on axe-core (the same engine used by Microsoft and Google)<br \/>\n&#8211; Runs 100% in your browser, zero data sent to any server<br \/>\n&#8211; PDF compliance reports you can send to clients or attach to documentation<br \/>\n&#8211; One-time purchase, not another SaaS subscription<\/p>\n<p>I&#8217;d love your feedback. What features would make this more useful for your workflow? Drop a comment and I&#8217;ll respond to every one.<\/p>\n<p>Try it free: <a href=\"https:\/\/ablext.app\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/ablext.app<\/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\/@uiuxcreative\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@uiuxcreative<\/a>&nbsp;Would integrating Figma-style previews or auto-suggest CSS for common issues be on the roadmap to streamline designer workflows even more?<\/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\">#17<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/KDIPCYG2FHGAAK\" class=\"app-title\">DwellRecord<\/a><\/p>\n<div class=\"one-liner\">Keep your home records all together<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">81<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>DwellRecord\u4e3a\u623f\u4e3b\u63d0\u4f9b\u4e86\u4e00\u4e2a\u96c6\u4e2d\u7ba1\u7406\u5bb6\u5ead\u8d44\u4ea7\u3001\u7ef4\u4fee\u8bb0\u5f55\u3001\u6536\u636e\u3001\u4fdd\u4fee\u5355\u548c\u91cd\u8981\u6587\u6863\u7684\u5e73\u53f0\uff0c\u5728\u4fdd\u9669\u7d22\u8d54\u3001\u623f\u5c4b\u7ef4\u62a4\u548c\u51fa\u552e\u7b49\u573a\u666f\u4e0b\uff0c\u89e3\u51b3\u4e86\u4fe1\u606f\u5206\u6563\u6742\u4e71\u3001\u5173\u952e\u65f6\u523b\u96be\u4ee5\u67e5\u627e\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\/ea2dc72b-51cc-4f40-8fd3-b4d2ce8cd698.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\/75a0d436-abe3-49ae-8e5a-c583e11906ea.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\/56de769d-243b-4c88-9a7b-7fb2660b1002.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\/27bae100-cf07-445f-9777-eaf4210f0237.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\/e5922ca1-dedb-431c-b922-32ee73e86aaf.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\/b847441c-8d0b-40e4-9682-d39f13cf6bf1.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\/ecc3bb00-ce1a-4f3c-bc1e-bc073f3502a0.jpeg?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\">Home<\/span><br \/>\n            <span class=\"tag\">Home services<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u5bb6\u5ead\u8d44\u4ea7\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u623f\u5c4b\u7ef4\u62a4\u8bb0\u5f55<\/span><br \/>\n            <span class=\"tag\">\u6587\u6863\u6570\u5b57\u5316\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u4fdd\u4fee\u8ffd\u8e2a<\/span><br \/>\n            <span class=\"tag\">\u4fdd\u9669\u8f85\u52a9\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u623f\u4e3b\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u751f\u6d3b\u6548\u7387\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u8d22\u4ea7\u8bb0\u5f55<\/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\u5176\u89e3\u51b3\u201c\u4fe1\u606f\u5206\u6563\u201d\u75db\u70b9\u7684\u4ef7\u503c\uff0c\u7279\u522b\u8d5e\u8d4f\u4fdd\u4fee\u8ffd\u8e2a\u548c\u8bed\u97f3\/\u7167\u7247\u5feb\u901f\u5f55\u5165\u529f\u80fd\u3002\u4e3b\u8981\u95ee\u9898\u4e0e\u5efa\u8bae\u96c6\u4e2d\u5728\uff1a\u671f\u5f85\u81ea\u52a8\u63d0\u9192\/\u4fdd\u4fee\u5230\u671f\u8b66\u62a5\u529f\u80fd\u3001\u786e\u8ba4\u6587\u6863\u626b\u63cf\u4e0eOCR\u5bfc\u5165\u80fd\u529b\u3001\u4ee5\u53ca\u660e\u786e\u4ea7\u54c1\u4e3b\u8981\u9762\u5411\u4e2a\u4eba\u623f\u4e3b\u8fd8\u662f\u7269\u4e1a\u6295\u8d44\u5ba2\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                DwellRecord\u5207\u5165\u4e86\u4e00\u4e2a\u5e7f\u6cdb\u5b58\u5728\u4f46\u957f\u671f\u88ab\u5ffd\u89c6\u7684\u201c\u5bb6\u5ead\u6570\u636e\u7ba1\u7406\u201d\u771f\u7a7a\u5730\u5e26\u3002\u5b83\u7684\u771f\u6b63\u4ef7\u503c\u5e76\u975e\u7b80\u5355\u7684\u4fe1\u606f\u805a\u5408\uff0c\u800c\u5728\u4e8e\u8bd5\u56fe\u5c06\u201c\u623f\u5c4b\u201d\u8fd9\u4e00\u91cd\u5927\u8d44\u4ea7\u8fdb\u884c\u5168\u751f\u547d\u5468\u671f\u6570\u5b57\u5316\uff0c\u6784\u5efa\u5176\u201c\u6570\u636e\u5b6a\u751f\u201d\u3002\u8fd9\u76f4\u63a5\u7784\u51c6\u4e86\u4fdd\u9669\u7406\u8d54\u548c\u623f\u4ea7\u4ea4\u6613\u8fd9\u4e24\u4e2a\u9ad8\u4ef7\u503c\u3001\u9ad8\u75db\u70b9\u7684\u573a\u666f\u2014\u2014\u5728\u8fd9\u91cc\uff0c\u6709\u5e8f\u7684\u8bc1\u660e\u6587\u4ef6\u76f4\u63a5\u7b49\u540c\u4e8e\u7ecf\u6d4e\u5229\u76ca\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u5176\u9762\u4e34\u7684\u6311\u6218\u540c\u6837\u5c16\u9510\u3002\u9996\u5148\uff0c\u5b83\u5bf9\u6297\u7684\u662f\u4eba\u7c7b\u6700\u987d\u56fa\u7684\u884c\u4e3a\u60ef\u6027\uff1a\u975e\u7d27\u6025\u4e8b\u52a1\u7684\u62d6\u5ef6\u75c7\u3002\u5c3d\u7ba1\u4ea7\u54c1\u901a\u8fc7\u8bed\u97f3\u3001\u626b\u63cf\u7b49\u964d\u4f4e\u4e86\u5f55\u5165\u95e8\u69db\uff0c\u4f46\u201c\u6301\u7eed\u7ef4\u62a4\u201d\u8fd9\u4e00\u6838\u5fc3\u52a8\u4f5c\u4ecd\u9700\u7528\u6237\u4e3b\u52a8\u9a71\u52a8\uff0c\u8fd9\u6784\u6210\u4e86\u4ea7\u54c1\u53ef\u6301\u7eed\u4f7f\u7528\u7684\u6700\u5927\u969c\u788d\u3002\u5176\u6b21\uff0c\u5176\u5546\u4e1a\u6a21\u5f0f\u5b58\u5728\u6a21\u7cca\u5730\u5e26\u3002\u9762\u5411\u4e2a\u4eba\u623f\u4e3b\uff0c\u6216\u8bb8\u53ea\u80fd\u6536\u53d6\u4f4e\u5ec9\u7684\u8ba2\u9605\u8d39\uff1b\u82e5\u8f6c\u5411\u4e13\u4e1a\u7269\u4e1a\u7ba1\u7406\u8005\uff0c\u5176\u529f\u80fd\u6df1\u5ea6\u53c8\u53ef\u80fd\u4e0d\u53ca\u4e13\u4e1a\u7684\u7269\u4e1a\u7ba1\u7406\u8f6f\u4ef6\uff0c\u9677\u5165\u5c34\u5c2c\u7684\u4e2d\u95f4\u5730\u5e26\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u8bc4\u8bba\u53cd\u9988\u770b\uff0c\u56e2\u961f\u5df2\u610f\u8bc6\u5230\u201c\u63d0\u9192\u201d\u529f\u80fd\u7684\u5173\u952e\u6027\uff0c\u8fd9\u6b63\u662f\u6307\u5411\u7528\u6237\u884c\u4e3a\u60f0\u6027\u7684\u6b63\u786e\u4e00\u6b65\u3002\u672a\u6765\u7684\u7ade\u4e89\u58c1\u5792\u53ef\u80fd\u5728\u4e8e\u80fd\u5426\u901a\u8fc7\u5408\u4f5c\u4f19\u4f34\uff08\u5982\u4fdd\u9669\u516c\u53f8\u3001\u623f\u4ea7\u4e2d\u4ecb\uff09\u63d0\u4f9b\u201c\u4ef7\u503c\u524d\u7f6e\u201d\u7684\u6fc0\u52b1\uff0c\u8ba9\u7528\u6237\u4e3a\u4e86\u660e\u786e\u7684\u3001\u53ef\u9884\u671f\u7684\u6298\u6263\u6216\u6ea2\u4ef7\u670d\u52a1\u800c\u4e50\u4e8e\u7ef4\u62a4\u6570\u636e\u3002\u5426\u5219\uff0c\u5b83\u5f88\u53ef\u80fd\u6ca6\u4e3a\u53e6\u4e00\u6b3e\u201c\u4e0b\u8f7d\u5373\u9057\u5fd8\u201d\u7684\u7f8e\u597d\u5de5\u5177\u3002\u5b83\u7684\u6210\u529f\uff0c\u4e0d\u53d6\u51b3\u4e8e\u529f\u80fd\u6709\u591a\u7cbe\u5de7\uff0c\u800c\u5728\u4e8e\u80fd\u5426\u5c06\u81ea\u5df1\u4ece\u4e00\u4e2a\u201c\u8bb0\u5f55\u5de5\u5177\u201d\u91cd\u65b0\u5b9a\u4e49\u4e3a\u201c\u5bb6\u5ead\u8d44\u4ea7\u589e\u503c\u4e0e\u98ce\u9669\u7ba1\u63a7\u7684\u5fc5\u8981\u57fa\u7840\u8bbe\u65bd\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\">DwellRecord<\/span>\n                <\/div>\n<div class=\"comment-content\">DwellRecord gives homeowners one place to track home assets, improvements, repairs, receipts, warranties, and key documents. It creates a clear, organized home history that helps with insurance, maintenance, and resale.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hi Product Hunt, I\u2019m excited to share DwellRecord.<\/p>\n<p>I built it to give homeowners a better way to keep track of everything tied to their home, like assets, improvements, repairs, receipts, warranties, and important documents.<\/p>\n<p>A lot of homeowners have this information scattered across emails, folders, photos, and random notes. DwellRecord brings it into one organized place so it is actually useful when you need it, whether that is for insurance, maintenance, or when it is time to sell.<\/p>\n<p>The goal is simple: help people protect their investment and keep a clear history of their home.<\/p>\n<p>I\u2019d really love your feedback.<\/p>\n<p>Does this feel useful?<\/p>\n<p>What would you want to track most in a tool like this?<\/p>\n<p>Thanks for checking it out.<\/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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@matthew_price7\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@matthew_price7<\/a>&nbsp;Hey! I just came across your launch on Product Hunt \u2013 really cool what you\u2019ve built \ud83d\ude4c<\/p>\n<p>I like the direction you\u2019re going in. I usually help founders test their products and catch bugs or UX issues before users run into them.<\/p>\n<p>I\u2019d be happy to do a full test and send you a clear, structured report (bugs, edge cases, usability improvements).<\/p>\n<p>I normally charge around $25 for this, but happy to start there and see if it\u2019s useful for you \ud83d\ude42<\/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\/@matthew_price7\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@matthew_price7<\/a>&nbsp;Congratulations on the launch. Any plans for auto-reminders or warranty expiration 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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This is really helpful and much needed. The ability to track warranties and routine maintenance is a dream. I love that I can dictate descriptions and items as well as take photos. This is rad!<\/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\/@peter_heinrich\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@peter_heinrich<\/a>&nbsp;Thank you, really appreciate that. We wanted Dwell Record to be something people would actually keep up with, not just set up once and forget. That is why we focused on making it easy to add items with voice, photos, and quick notes, while also giving people a real way to stay on top of warranties, maintenance, and the history of their home.<\/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>keeping track of home stuff is a pain. can you import docs by scanning them or only manual upload?<\/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\/@gary_espinoza\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@gary_espinoza<\/a>&nbsp;Totally agree, that is one of the biggest problems we are trying to solve. And yes, you can scan, upload documents, and use OCR so the process is not limited to manual entry. We wanted Dwell Record to make it much easier to capture warranties, receipts, manuals, and other home records without turning it into a chore.<\/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 insurance claim angle is underrated &#8211; most people don&#8217;t realize how much having organized records matters until they&#8217;re scrambling to prove what they owned and when they bought 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\/@liviu_chita\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@liviu_chita<\/a>&nbsp;That\u2019s exactly it. Most people do not think about documentation until they actually need it, and by then it can be stressful trying to piece everything together. We built Dwell Record to make that easy ahead of time, so homeowners can keep a clear record of what they own, improvements they\u2019ve made, and the details that matter when it comes to insurance, resale, or just staying organized.<\/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\">Congratulations on the launch, seems like a genuinely useful tool!<\/p>\n<p>Do you envision this being used by independent \/ single homeowners or is it more suited to property developers \/ those with a portfolio of properties?<\/p>\n<p>Also, another question, does it track general house maintenance tasks, eg boiler service due dates etc and prompt reminders when such things are due?<\/p>\n<p>Good luck with this!<\/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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@dan_johnson7\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dan_johnson7<\/a>&nbsp;Thank you! This is more for single home owners, Or users who own multiple homes, we will have maintenance and warranty sections up this week. and yes also auto reminders for adding your inventory to your house. and reminders linked to your warranty info. So many folks don&#8217;t track any assets in their home and when its needed its not always a good thing, but having it can be a life saver for insurance claims or selling your home. <\/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\">#18<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/MADSGMJM4X5G7M\" class=\"app-title\">Santana by Deep Softworks<\/a><\/p>\n<div class=\"one-liner\">Performant, real-time data visualization in your terminal<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">78<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Santana\u662f\u4e00\u6b3e\u5b9e\u65f6\u7ec8\u7aef\u6570\u636e\u53ef\u89c6\u5316\u5de5\u5177\uff0c\u8ba9\u5de5\u7a0b\u5e08\u65e0\u9700\u79bb\u5f00\u547d\u4ee4\u884c\u5373\u53ef\u901a\u8fc7\u7ba1\u9053\u8f93\u5165\u6570\u503c\u6d41\uff0c\u76f4\u63a5\u751f\u6210\u81ea\u52a8\u7f29\u653e\u7684\u5b9e\u65f6\u56fe\u8868\uff0c\u89e3\u51b3\u4e86\u5728\u7eaf\u547d\u4ee4\u884c\u73af\u5883\u4e2d\u5feb\u901f\u3001\u76f4\u89c2\u76d1\u63a7\u6570\u636e\u6d41\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\/f275222b-f4dd-4ab5-8a8b-b32c1a42f193.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\/58a8d0d3-097f-4977-a9be-42cf06ad9d20.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\/e33cf4ca-a90c-45bf-ae75-eaedaacecac5.gif?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\/4cb796ef-73ec-4d10-a6c0-b22f979cc958.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\">Tech<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u7ec8\u7aef\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u6570\u636e\u53ef\u89c6\u5316<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u65f6\u76d1\u63a7<\/span><br \/>\n            <span class=\"tag\">\u547d\u4ee4\u884c\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8fd0\u7ef4<\/span><br \/>\n            <span class=\"tag\">\u6027\u80fd\u76d1\u63a7<\/span><br \/>\n            <span class=\"tag\">\u6570\u636e\u7ba1\u9053<\/span><br \/>\n            <span class=\"tag\">\u8f7b\u91cf\u7ea7\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u5de5\u7a0b\u5e08\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\u53cd\u9988\u9ad8\u5ea6\u8ba4\u53ef\u5176\u65e0\u9700\u4eea\u8868\u76d8\u548c\u590d\u6742\u914d\u7f6e\u3001\u76f4\u63a5\u7ba1\u9053\u7ed8\u56fe\u7684\u6838\u5fc3\u7406\u5ff5\uff0c\u8ba4\u4e3a\u5b83\u662f\u5bf9\u73b0\u6709\u5de5\u5177\uff08\u5982ttyplot\uff09\u7684\u73b0\u4ee3\u5316\u66ff\u4ee3\u3002\u4e3b\u8981\u5efa\u8bae\u53ef\u80fd\u96c6\u4e2d\u5728\u56fe\u8868\u7c7b\u578b\u6269\u5c55\u3001\u4e0e\u5176\u4ed6\u7ec8\u7aef\u5de5\u5177\u7684\u96c6\u6210\u6df1\u5ea6\u4e0a\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                Santana\u6240\u5207\u5165\u7684\uff0c\u662f\u4e00\u4e2a\u88ab\u56fe\u5f62\u754c\u9762\u548cWeb\u4eea\u8868\u76d8\u957f\u671f\u201c\u60ef\u574f\u201d\u5374\u5e76\u672a\u771f\u6b63\u6ee1\u8db3\u7684\u7f1d\u9699\u5e02\u573a\uff1a\u786c\u6838\u547d\u4ee4\u884c\u7528\u6237\u7684\u77ac\u65f6\u53ef\u89c6\u5316\u9700\u6c42\u3002\u5b83\u7684\u771f\u6b63\u4ef7\u503c\u5e76\u975e\u521b\u9020\u4e86\u65b0\u6280\u672f\uff0c\u800c\u662f\u7cbe\u51c6\u5730\u505a\u4e86\u4e00\u6b21\u201c\u573a\u666f\u964d\u7ef4\u6253\u51fb\u201d\u2014\u2014\u5c06\u6570\u636e\u53ef\u89c6\u5316\u8fd9\u4e00\u901a\u5e38\u9700\u8981\u6253\u5f00\u6d4f\u89c8\u5668\u3001\u767b\u5f55\u9762\u677f\u3001\u914d\u7f6e\u56fe\u8868\u7684\u9ad8\u5f00\u9500\u52a8\u4f5c\uff0c\u538b\u7f29\u6210\u4e00\u6761\u7b80\u5355\u7684\u7ba1\u9053\u547d\u4ee4\u3002\u8fd9\u672c\u8d28\u4e0a\u662f\u5c06\u201c\u89c2\u5bdf\u201d\u8fd9\u4e00\u8c03\u8bd5\u4e0e\u76d1\u63a7\u4e2d\u7684\u9ad8\u9891\u4f4e\u8ba4\u77e5\u8d1f\u8377\u884c\u4e3a\uff0c\u65e0\u7f1d\u5d4c\u5165\u5de5\u7a0b\u5e08\u73b0\u6709\u7684\u7ebf\u6027\u5de5\u4f5c\u6d41\uff0c\u5b9e\u73b0\u4e86\u4ece\u6570\u636e\u751f\u6210\u5230\u89c6\u89c9\u53cd\u9988\u7684\u8def\u5f84\u6700\u77ed\u5316\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5176\u5ba3\u79f0\u7684\u201c\u9ad8\u6027\u80fd\u201d\u4e0e\u201c\u9ad8\u5ea6\u53ef\u5b9a\u5236\u201d\uff0c\u5728\u7ec8\u7aef\u5b57\u7b26\u7ed8\u56fe\u7684\u6709\u9650\u6280\u672f\u8303\u5f0f\u4e0b\uff0c\u66f4\u50cf\u662f\u5bf9\u6838\u5fc3\u573a\u666f\u7684\u575a\u5b9a\u627f\u8bfa\u800c\u975e\u65e0\u9650\u6269\u5c55\u3002\u4ea7\u54c1\u660e\u667a\u5730\u9009\u62e9\u4e86\u517c\u5bb9ttyplot\uff0c\u8fd9\u5e76\u975e\u7b80\u5355\u7684\u529f\u80fd\u5bf9\u6807\uff0c\u800c\u662f\u4e00\u6b21\u4f4e\u6210\u672c\u7684\u751f\u6001\u4f4d\u593a\u53d6\uff0c\u76f4\u63a5\u8f6c\u5316\u73b0\u6709\u5b58\u91cf\u7528\u6237\u3002\u7136\u800c\uff0c\u5176\u5929\u82b1\u677f\u4e5f\u663e\u800c\u6613\u89c1\uff1a\u7ec8\u7aef\u6e32\u67d3\u7684\u5148\u5929\u9650\u5236\uff0c\u6ce8\u5b9a\u5176\u9002\u7528\u4e8e\u9ad8\u65f6\u95f4\u5bc6\u5ea6\u3001\u4f4e\u7ef4\u5ea6\u6307\u6807\u7684\u5feb\u901f\u6d1e\u5bdf\uff0c\u800c\u975e\u590d\u6742\u6570\u636e\u7684\u6df1\u5ea6\u5206\u6790\u3002\u5b83\u66f4\u50cf\u662f\u4e00\u628a\u7cbe\u608d\u7684\u201c\u89c6\u89c9\u745e\u58eb\u519b\u5200\u201d\uff0c\u5728\u9700\u8981\u5373\u65f6\u673a\u654f\u7684\u670d\u52a1\u5668\u76d1\u63a7\u3001\u7b97\u6cd5\u8f93\u51fa\u8ddf\u8e2a\u6216\u7f51\u7edc\u6d41\u91cf\u55c5\u63a2\u7b49\u573a\u666f\u4e0b\uff0c\u5176\u201c\u65e0\u5934\u201d\u7279\u6027\u662f\u5de8\u5927\u4f18\u52bf\uff1b\u4f46\u5bf9\u4e8e\u9700\u8981\u6301\u4e45\u5316\u3001\u4ea4\u4e92\u6216\u56e2\u961f\u534f\u4f5c\u7684\u6570\u636e\u89c2\u6d4b\uff0c\u5b83\u5219\u4e3b\u52a8\u9009\u62e9\u7f3a\u5e2d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5f53\u524d78\u7968\u7684\u70ed\u5ea6\uff0c\u5370\u8bc1\u4e86\u5176\u7cbe\u51c6\u51fb\u4e2d\u4e86\u7ec6\u5206\u7fa4\u4f53\u7684\u75d2\u70b9\u3002\u4f46\u957f\u8fdc\u770b\uff0c\u8fd9\u7c7b\u5de5\u5177\u7684\u4ef7\u503c\u7ef4\u7cfb\u4e8e\u80fd\u5426\u7262\u7262\u7ed1\u5b9a\u547d\u4ee4\u884c\u751f\u6001\uff0c\u5e76\u6301\u7eed\u4f18\u5316\u90a3\u201c\u6700\u540e\u4e00\u516c\u91cc\u201d\u7684\u4f53\u9a8c\u2014\u2014\u6bd4\u5982\u66f4\u4e30\u5bcc\u7684\u7f16\u7801\u652f\u6301\u3001\u66f4\u667a\u80fd\u7684\u5f02\u5e38\u6570\u636e\u6807\u6ce8\uff0c\u6216\u4e0ePrometheus\u3001Grafana\u7b49\u4e3b\u6d41\u751f\u6001\u7684\u8f7b\u91cf\u7ea7\u6865\u63a5\u3002\u5b83\u4e0d\u5fc5\u6210\u4e3a\u5168\u80fd\u7684\u201c\u7ec8\u7aefTableau\u201d\uff0c\u53ea\u9700\u505a\u90a3\u4e2a\u5728\u9ed1\u6697\u547d\u4ee4\u884c\u4e2d\uff0c\u6700\u5feb\u4eae\u8d77\u4fe1\u53f7\u706f\u7684\u4fe1\u4f7f\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\">Santana by Deep Softworks<\/span>\n                <\/div>\n<div class=\"comment-content\">Santana is a highly customizable, real-time terminal data visualization tool built for engineers who live in the command line. Just pipe any numeric stream into it and get a live, auto-scaling chart. No dashboards, no browser, no fuss.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Santana lets you pipe any live data stream straight into your terminal and get a beautiful, live chart instantly \u2014 no dashboards, no config files, no browser tabs. Just your shell and your data.<\/p>\n<p>FEATURES<br \/>&#8211; 3 chart types: line (braille-dot), bar, sparkline<br \/>&#8211; Dual-plot mode for comparing up to 10 streams (e.g. network rx\/tx)<br \/>&#8211; Auto-scaling Y axis with hard min\/max error indicators<br \/>&#8211; Stats footer: current, min, max, mean, sample count<br \/>&#8211; Beautiful color themes including vampire \ud83e\udddb<br \/>&#8211; ttyplot-compatible \u2014 drop-in for existing pipelines<\/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<\/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\/E6UEDOJBKI6L7D\" class=\"app-title\">PicButler<\/a><\/p>\n<div class=\"one-liner\">Find duplicates. Know why one&#8217;s best. Clean up the rest.<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">13<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>PicButler\u662f\u4e00\u6b3e\u5728iPhone\u4e0a\u901a\u8fc7\u626b\u63cf\u76f8\u518c\u3001\u667a\u80fd\u8bc6\u522b\u91cd\u590d\u53ca\u76f8\u4f3c\u7167\u7247\u5e76\u81ea\u52a8\u63a8\u8350\u6700\u4f73\u7167\u7247\u7684\u5de5\u5177\uff0c\u89e3\u51b3\u4e86\u7528\u6237\u624b\u52a8\u6574\u7406\u6d77\u91cf\u7167\u7247\u65f6\u6548\u7387\u4f4e\u4e0b\u3001\u96be\u4ee5\u6289\u62e9\u7684\u75db\u70b9\uff0c\u5c24\u5176\u9002\u7528\u4e8e\u9700\u8981\u91ca\u653e\u5b58\u50a8\u7a7a\u95f4\u548c\u4f18\u5316\u7167\u7247\u5e93\u7684\u573a\u666f\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\/9011ad7d-9962-46cd-8436-802a1c707ef0.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\/93c5d47c-149e-4061-9cd4-461dd781054d.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\/d35cc9d1-d0e8-4a80-be33-43715538b804.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\/3adb608b-00ea-47d8-a760-221142433d9e.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\/c4cf3976-7b1b-44b7-93f2-324bfb900dee.gif?auto=format\" data-video-url=\"https:\/\/www.loom.com\/share\/e38d9bdf105e4b4eb5a280defb220c61\"><source src=\"https:\/\/www.loom.com\/share\/e38d9bdf105e4b4eb5a280defb220c61\" 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\">Privacy<\/span><br \/>\n            <span class=\"tag\">Photography<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u7167\u7247\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u91cd\u590d\u7167\u7247\u6e05\u7406<\/span><br \/>\n            <span class=\"tag\">\u9690\u79c1\u4fdd\u62a4<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u5904\u7406<\/span><br \/>\n            <span class=\"tag\">\u667a\u80fd\u7b5b\u9009<\/span><br \/>\n            <span class=\"tag\">\u5de5\u5177\u7c7b\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u72ec\u7acb\u5f00\u53d1<\/span><br \/>\n            <span class=\"tag\">\u900f\u660e\u7b97\u6cd5<\/span><br \/>\n            <span class=\"tag\">\u65e0\u8ba2\u9605\u5236<\/span><br \/>\n            <span class=\"tag\">iOS\u5e94\u7528<\/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\u6b63\u9762\u8bc4\u4ef7\u5176\u4e3a\u6574\u7406\u7167\u7247\u7684\u5b9e\u7528\u5de5\u5177\u3002\u5f00\u53d1\u8005\u4e3b\u52a8\u8be2\u95ee\u201c\u89e3\u91ca\u63a8\u8350\u539f\u56e0\u201d\u7684\u529f\u80fd\u4ef7\u503c\uff0c\u6838\u5fc3\u5173\u6ce8\u70b9\u5728\u4e8e\u7528\u6237\u662f\u5426\u771f\u6b63\u9700\u8981\u77e5\u5176\u6240\u4ee5\u7136\uff0c\u8fd8\u662f\u4ec5\u8ffd\u6c42\u5feb\u901f\u6e05\u7406\u7ed3\u679c\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                PicButler\u5207\u5165\u4e86\u4e00\u4e2a\u62e5\u6324\u4f46\u666e\u904d\u5b58\u5728\u201c\u539f\u7f6a\u201d\u7684\u5e02\u573a\u3002\u5176\u771f\u6b63\u7684\u950b\u8292\u5e76\u975e\u5728\u4e8e\u201c\u627e\u51fa\u91cd\u590d\u7167\u7247\u201d\u8fd9\u4e00\u57fa\u7840\u529f\u80fd\uff0c\u800c\u662f\u53cc\u5203\u5251\u822c\u4eae\u51fa\u7684\u4e24\u5f20\u724c\uff1a\u7b97\u6cd5\u51b3\u7b56\u7684\u201c\u900f\u660e\u5316\u201d\u4e0e\u6570\u636e\u5904\u7406\u7684\u201c\u7edd\u5bf9\u672c\u5730\u5316\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5728\u529f\u80fd\u5c42\u9762\uff0c\u5b83\u8bd5\u56fe\u5c06AI\u4ece\u9ed1\u76d2\u63a8\u5411\u767d\u76d2\uff0c\u5c06\u201c\u4e3a\u4ec0\u4e48\u8fd9\u5f20\u66f4\u597d\u201d\u7684\u6307\u6807\uff08\u6e05\u6670\u5ea6\u3001\u5149\u7ebf\u7b49\uff09\u5177\u8c61\u5316\u3002\u8fd9\u770b\u4f3c\u4e00\u4e2a\u5fae\u5c0f\u7684\u4ea7\u54c1\u8bbe\u8ba1\uff0c\u5b9e\u5219\u662f\u5bf9\u5f53\u524d\u7528\u6237\u4e0eAI\u5de5\u5177\u5173\u7cfb\u7684\u4e00\u79cd\u6311\u6218\u2014\u2014\u5b83\u5047\u8bbe\u7528\u6237\u4e0d\u518d\u6ee1\u8db3\u4e8e\u88ab\u52a8\u63a5\u53d7\u7ed3\u679c\uff0c\u800c\u5e0c\u671b\u62e5\u6709\u53c2\u4e0e\u51b3\u7b56\u7684\u77e5\u8bc6\u4e0e\u6743\u529b\u3002\u7136\u800c\uff0c\u8fd9\u6070\u6070\u662f\u5176\u6700\u5927\u7684\u98ce\u9669\u70b9\uff1a\u5728\u8ffd\u6c42\u201c\u5feb\u201d\u7684\u6e05\u7406\u573a\u666f\u4e2d\uff0c\u8fd9\u79cd\u201c\u89e3\u91ca\u201d\u53ef\u80fd\u6210\u4e3a\u5197\u4f59\u4fe1\u606f\uff0c\u63d0\u5347\u8ba4\u77e5\u8d1f\u8377\u3002\u5f00\u53d1\u8005\u81ea\u5df1\u5728\u8bc4\u8bba\u533a\u7684\u63d0\u95ee\uff0c\u5df2\u66b4\u9732\u51fa\u5bf9\u8fd9\u4e00\u6838\u5fc3\u5356\u70b9\u5e02\u573a\u63a5\u53d7\u5ea6\u7684\u4e0d\u786e\u5b9a\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5176\u53e6\u4e00\u5f20\u724c\u2014\u2014\u9690\u79c1\uff0c\u5219\u66f4\u5177\u653b\u51fb\u6027\u3002\u901a\u8fc7\u63ed\u9732\u4e3b\u6d41\u7ade\u54c1\u52a0\u8f7d\u5927\u91cf\u8ffd\u8e2aSDK\u3001\u751a\u81f3\u5bf9\u4ed8\u8d39\u7528\u6237\u8fdb\u884c\u753b\u50cf\u7684\u884c\u4e1a\u6f5c\u89c4\u5219\uff0cPicButler\u5c06\u81ea\u8eab\u201c\u5168\u672c\u5730\u5904\u7406\u3001\u65e0\u7f51\u7edc\u8bf7\u6c42\u3001\u65e0\u5e7f\u544aSDK\u201d\u7684\u67b6\u6784\uff0c\u4ece\u6280\u672f\u7279\u70b9\u5347\u7ef4\u4e3a\u9053\u5fb7\u7acb\u573a\u3002\u8fd9\u7cbe\u51c6\u5730\u523a\u75db\u4e86\u5728\u6570\u636e\u6cc4\u9732\u65f6\u4ee3\u65e5\u76ca\u7126\u8651\u7684\u7528\u6237\u795e\u7ecf\uff0c\u5c06\u4e00\u6b3e\u5de5\u5177\u5e94\u7528\u5851\u9020\u6210\u4e86\u9690\u79c1\u634d\u536b\u8005\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u5176\u5546\u4e1a\u6a21\u5f0f\uff08\u4e70\u65ad\u5236\uff1f\u5b9a\u4ef7\u672a\u660e\uff09\u4e0e\u7b80\u964b\u7684\u63a8\u5e7f\uff08\u4ec513\u7968\uff09\u6697\u793a\u5176\u4f5c\u4e3a\u72ec\u7acb\u5f00\u53d1\u9879\u76ee\u7684\u751f\u5b58\u6311\u6218\u3002\u5b83\u7684\u4ef7\u503c\u5728\u4e8e\u4e3a\u4e00\u4e2a\u529f\u5229\u6027\u7684\u5de5\u5177\u5e02\u573a\u63d0\u4f9b\u4e86\u53e6\u4e00\u79cd\u201c\u6b63\u76f4\u201d\u7684\u53ef\u80fd\u6027\uff0c\u4f46\u5176\u6210\u529f\u4e0e\u5426\uff0c\u53d6\u51b3\u4e8e\u6709\u591a\u5c11\u7528\u6237\u613f\u610f\u4e3a\u201c\u900f\u660e\u201d\u4e0e\u201c\u9690\u79c1\u201d\u8fd9\u79cd\u975e\u5373\u65f6\u4f53\u9a8c\u5230\u7684\u4ef7\u503c\u4ed8\u8d39\uff0c\u5e76\u5bb9\u5fcd\u5176\u53ef\u80fd\u56e0\u672c\u5730\u7b97\u529b\u5bfc\u81f4\u7684\u901f\u5ea6\u59a5\u534f\u3002\u5b83\u66f4\u50cf\u4e00\u4e2a\u7406\u60f3\u4e3b\u4e49\u7684\u4ea7\u54c1\u5b9e\u9a8c\uff0c\u5176\u5b58\u5728\u672c\u8eab\uff0c\u5c31\u662f\u5bf9\u884c\u4e1a\u60ef\u4f8b\u7684\u7280\u5229\u8d28\u95ee\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\">PicButler<\/span>\n                <\/div>\n<div class=\"comment-content\">PicButler scans your iPhone photo library, finds duplicates and similar photos, and auto-selects the best one in each group. The difference: it tells you why. Sharpness, lighting, resolution \u2014 not just &#8220;this one&#8217;s better.&#8221; Every decision is transparent and overridable. Everything is processed on-device. Your photos never leave your phone. No account required.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>That&#8217;s a great tool to organize photos in iphone. <\/p>\n<p>Congrats on the PH launch \ud83c\udf89 <\/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>@basharath Thanks! If you try it, curious to hear if the &#8216;why this photo won&#8217; explanations actually change how you review the results.<\/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 PH! I&#8217;m Chris, indie dev from Argentina.<\/p>\n<\/p>\n<p>I started building PicButler after reading an audit of the top 50 photo cleaner apps. They average 5-6 tracking SDKs each \u2014 even for paying users. The same apps charging $7.99\/week are also profiling every tap you make. That felt wrong.<\/p>\n<\/p>\n<p>PicButler does one thing: finds duplicate and similar photos on your iPhone and tells you why it picks the best one in each group. Sharpness, lighting, resolution \u2014 not just &#8220;trust us.&#8221;<\/p>\n<\/p>\n<p>The privacy part is simple because it&#8217;s real: on-device processing, zero network calls during analysis, no advertising SDKs, no user tracking. Analytics are fully anonymous \u2014 I see trends, not people.<\/p>\n<p>No weekly subscriptions, no surprise charges.<\/p>\n<\/p>\n<p>I&#8217;d love to hear from you \u2014 does knowing why a photo wins actually matter, or do you just want duplicates gone fast?<\/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\">#20<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/HZHGO32WNSWV32\" class=\"app-title\">Hacker News Times<\/a><\/p>\n<div class=\"one-liner\">HN stories + comments side by side in a beautiful newspaper <\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">12<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>\u4e00\u6b3e\u5c06Hacker News\u6587\u7ae0\u4e0e\u8bc4\u8bba\u5e76\u6392\u5c55\u793a\u7684\u62a5\u7eb8\u98ce\u683c\u9605\u8bfb\u5668\uff0c\u89e3\u51b3\u4e86\u7528\u6237\u5728\u9605\u8bfb\u6587\u7ae0\u548c\u67e5\u770b\u8bc4\u8bba\u65f6\u9700\u8981\u53cd\u590d\u5207\u6362\u6807\u7b7e\u9875\u3001\u5bb9\u6613\u8ff7\u5931\u4e0a\u4e0b\u6587\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\/bafc2ac7-8b42-4a57-a4c0-00b06be2ec9b.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\/0a2f422a-8450-4345-a6a9-7993eb360397.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\/5068b219-4235-4841-8f8a-a706fe824347.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\">Newsletters<\/span><br \/>\n            <span class=\"tag\">Open Source<\/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\">Hacker News\u5ba2\u6237\u7aef<\/span><br \/>\n            <span class=\"tag\">\u9605\u8bfb\u5668<\/span><br \/>\n            <span class=\"tag\">\u4fe1\u606f\u805a\u5408<\/span><br \/>\n            <span class=\"tag\">PWA<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u4fa7\u8fb9\u680f\u8bc4\u8bba<\/span><br \/>\n            <span class=\"tag\">\u62a5\u7eb8\u6392\u7248<\/span><br \/>\n            <span class=\"tag\">\u751f\u4ea7\u529b\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\u80af\u5b9a\u5176\u89e3\u51b3\u6807\u7b7e\u5207\u6362\u75db\u70b9\u7684\u6838\u5fc3\u601d\u8def\u3002\u4e3b\u8981\u5efa\u8bae\u5305\u62ec\uff1a\u589e\u52a0\u201c\u9ad8\u4eae\u65b0\u8bc4\u8bba\u201d\u529f\u80fd\u4ee5\u63d0\u5347\u8ba8\u8bba\u8ffd\u8e2a\u4f53\u9a8c\u3002\u5f00\u53d1\u8005\u56de\u5e94\u79ef\u6781\uff0c\u4ea7\u54c1\u4e3a\u5f00\u6e90\u9879\u76ee\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                Hacker News Times \u7684\u201c\u62a5\u7eb8\u201d\u6392\u7248\uff0c\u672c\u8d28\u662f\u5bf9\u4fe1\u606f\u6d88\u8d39\u52a8\u7ebf\u7684\u4e00\u6b21\u5916\u79d1\u624b\u672f\u5f0f\u91cd\u6784\u3002\u5b83\u5207\u5165\u7684\u5e76\u975e\u6cdb\u8d44\u8baf\u9886\u57df\uff0c\u800c\u662f\u5782\u76f4\u3001\u9ad8\u5bc6\u5ea6\u7684Hacker News\u793e\u533a\uff0c\u8fd9\u51b3\u5b9a\u4e86\u5176\u7528\u6237\u5bf9\u4fe1\u606f\u6548\u7387\u6709\u7740\u8fd1\u4e4e\u82db\u523b\u7684\u9700\u6c42\u3002\u5176\u6838\u5fc3\u4ef7\u503c\u4e0d\u5728\u4e8e\u201c\u5e76\u6392\u663e\u793a\u201d\u8fd9\u4e00\u8868\u8c61\uff0c\u800c\u5728\u4e8e\u901a\u8fc7\u5f3a\u5236\u6027\u7684\u540c\u5c4f\u5e03\u5c40\uff0c\u5c06\u201c\u9605\u8bfb-\u601d\u8003-\u53c2\u7167\u793e\u533a\u89c2\u70b9\u201d\u8fd9\u4e00\u8fde\u8d2f\u7684\u8ba4\u77e5\u6d41\u7a0b\u7269\u7406\u5316\u3001\u56fa\u5b9a\u5316\uff0c\u51cf\u5c11\u4e86\u4e0a\u4e0b\u6587\u5207\u6362\u5e26\u6765\u7684\u8ba4\u77e5\u8d1f\u8377\u4e0e\u6ce8\u610f\u529b\u6d41\u5931\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u5176\u9762\u4e34\u7684\u6311\u6218\u540c\u6837\u6df1\u523b\u3002\u9996\u5148\uff0c\u6280\u672f\u4e0a\u7684\u201c\u5d4c\u5165\u5899\u201d\u95ee\u9898\uff08\u5982Substack\u3001Medium\u7684\u5c4f\u853d\uff09\u66b4\u9732\u4e86\u5176\u4f5c\u4e3a\u201c\u805a\u5408\u5c42\u201d\u7684\u5929\u7136\u8106\u5f31\u6027\uff0c\u88ab\u8feb\u91c7\u7528\u7684\u201c\u9605\u8bfb\u6a21\u5f0f\u201d\u867d\u4e3a\u89e3\u51b3\u65b9\u6848\uff0c\u4f46\u4e5f\u4f7f\u5176\u6e38\u8d70\u4e8e\u7248\u6743\u98ce\u9669\u7684\u7070\u8272\u5730\u5e26\uff0c\u5e76\u53ef\u80fd\u5265\u79bb\u539f\u9875\u9762\u7684\u90e8\u5206\u8bed\u5883\u3002\u5176\u6b21\uff0c\u5176\u4ef7\u503c\u9ad8\u5ea6\u4f9d\u8d56\u4e8e\u6e90\u793e\u533a\uff08HN\uff09\u7684\u6d3b\u8dc3\u5ea6\u4e0e\u8d28\u91cf\uff0c\u6a21\u5f0f\u672c\u8eab\u4e0d\u5177\u5907\u58c1\u5792\uff0c\u53ef\u88ab\u8f7b\u6613\u590d\u5236\u3002\u6700\u540e\uff0c\u4e5f\u662f\u6700\u5173\u952e\u7684\u4e00\u70b9\uff1a\u5b83\u4f18\u5316\u4e86\u201c\u6d88\u8d39\u201d\u4f53\u9a8c\uff0c\u4f46\u5e76\u672a\u89e6\u53ca\u201c\u4e92\u52a8\u201d\u73af\u8282\u3002\u6b63\u5982\u7528\u6237\u6240\u5efa\u8bae\u7684\u201c\u9ad8\u4eae\u65b0\u8bc4\u8bba\u201d\u529f\u80fd\uff0c\u8fd9\u6697\u793a\u4e86\u4ea7\u54c1\u7684\u6df1\u5c42\u9700\u6c42\u2014\u2014\u4ece\u9759\u6001\u9605\u8bfb\u5de5\u5177\u8f6c\u5411\u52a8\u6001\u8ba8\u8bba\u8ffd\u8e2a\u5668\u3002\u82e5\u80fd\u6574\u5408\u57fa\u4e8e\u7528\u6237\u5386\u53f2\u7684\u667a\u80fd\u8bc4\u8bba\u7b5b\u9009\u3001\u65f6\u95f4\u7ebf\u5bf9\u6bd4\u6216\u8ba8\u8bba\u8109\u7edc\u53ef\u89c6\u5316\uff0c\u4ea7\u54c1\u65b9\u80fd\u4ece\u201c\u66f4\u597d\u7684\u9605\u8bfb\u5668\u201d\u5347\u7ea7\u4e3a\u201c\u8ba8\u8bba\u5206\u6790\u52a9\u624b\u201d\uff0c\u6784\u5efa\u771f\u6b63\u7684\u62a4\u57ce\u6cb3\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u603b\u4f53\u800c\u8a00\uff0c\u8fd9\u662f\u4e00\u6b3e\u7cbe\u51c6\u89e3\u51b3\u9ad8\u9636\u7528\u6237\u75d2\u70b9\u7684\u201c\u950b\u5229\u5de5\u5177\u201d\uff0c\u5176\u5f00\u6e90\u5c5e\u6027\u66f4\u7b26\u5408\u5f00\u53d1\u8005\u793e\u533a\u7684\u7cbe\u795e\u3002\u4f46\u5b83\u4e5f\u6e05\u6670\u5730\u5c55\u793a\u4e86\u5de5\u5177\u7c7b\u4ea7\u54c1\u7684\u5929\u82b1\u677f\uff1a\u5728\u4f18\u5316\u5355\u4e00\u5de5\u4f5c\u6d41\u540e\uff0c\u662f\u9009\u62e9\u6df1\u8015\u7eb5\u5411\u573a\u666f\uff08\u5982\u589e\u5f3a\u8ba8\u8bba\u5206\u6790\uff09\uff0c\u8fd8\u662f\u6a2a\u5411\u6269\u5c55\u4fe1\u6e90\uff0c\u5c06\u51b3\u5b9a\u5176\u662f\u5c0f\u4f17\u7cbe\u54c1\u8fd8\u662f\u6f5c\u529b\u5e73\u53f0\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\">Hacker News Times<\/span>\n                <\/div>\n<div class=\"comment-content\">A newspaper-style Hacker News reader that shows articles and comments side by side. Dark mode, installable PWA, shareable story links, and a free weekly newsletter. Open-source.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hi, I&#8217;m Terry!<br \/>\nI wanted a way to read Hacker News articles and their comments without constantly switching between tabs. On the official HN site, you click a link, read it, go back, find the comments, read those, go back again.<\/p>\n<p>So I built Hacker News Times. You click a story, and the article loads right next to the comments. No tab switching, no losing your place.<\/p>\n<p>One tricky problem I ran into: a lot of popular sites (Substack, Medium, BBC) block you from embedding their pages. So I added a reader mode that fetches the article on the server and shows a clean version instead.<\/p>\n<p>It&#8217;s a PWA so you can install it on your phone, and there&#8217;s a weekly newsletter if you want the best stories in your inbox every Tuesday.<\/p>\n<p>Everything is open source: <a href=\"https:\/\/github.com\/terryds\/hackernewstimes\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/github.com\/terryds\/hacke&#8230;<\/a><\/p>\n<p>Would love to hear your feedback!<\/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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@terrydjony\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@terrydjony<\/a>&nbsp;very cool<\/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>That&#8217;s a cool idea. I too thought of reading the Hacker News articles, keeping the comments beside. <\/p>\n<p>You did a nice job. Congrats on the launch \ud83c\udf89 All 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\/@basharath\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@basharath<\/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>Upvoted! Just launched today as 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=\"comment-item\">\n<div class=\"comment-content\">\n<p>Love how you&#8217;ve tackled the tab-switching issue. Have you considered integrating a feature that highlights new comments since a user last read the story?<\/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 nice take on Hacker News having articles and comments side by side makes it much easier to actually follow discussions curious how much people stick with this over the default HN experience<\/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-03-28 PH\u70ed\u699c | 2026-03-28 #1 SlapM [&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-175","post","type-post","status-publish","format-standard","hentry","category-producthunt"],"_links":{"self":[{"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/posts\/175","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=175"}],"version-history":[{"count":0,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/posts\/175\/revisions"}],"wp:attachment":[{"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/media?parent=175"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/categories?post=175"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/tags?post=175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}