{"id":282,"date":"2026-07-15T11:38:34","date_gmt":"2026-07-15T03:38:34","guid":{"rendered":"https:\/\/ph.listeningo.cn\/index.php\/2026\/07\/15\/2026-07-14\/"},"modified":"2026-07-15T11:38:34","modified_gmt":"2026-07-15T03:38:34","slug":"2026-07-14","status":"publish","type":"post","link":"https:\/\/ph.listeningo.cn\/index.php\/2026\/07\/15\/2026-07-14\/","title":{"rendered":"PH\u70ed\u699c | 2026-07-14"},"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-07-14<\/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-07-14<\/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\/XOOTYQZQO66BZK\" class=\"app-title\">ClawTeams<\/a><\/p>\n<div class=\"one-liner\">The first goal-driven, proactive AI team for e-commerce<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">621<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>ClawTeams\u662f\u4e3a\u7535\u5546\u5356\u5bb6\u8bbe\u8ba1\u7684AI\u5458\u5de5\u5e73\u53f0\uff0c\u7528\u6237\u53ea\u9700\u8bbe\u5b9a\u76ee\u6807\uff0cAI\u56e2\u961f\u8d1f\u8d23\u4eba\u4fbf\u4f1a\u81ea\u52a8\u5206\u89e3\u4efb\u52a1\u3001\u534f\u8c03\u4e13\u5bb6\u6267\u884c\uff0c\u5e76\u901a\u8fc7Slack\/Discord\u6c47\u62a5\u8fdb\u5c55\uff0c\u89e3\u51b3\u5356\u5bb6\u4ece\u201c\u4f7f\u7528AI\u5de5\u5177\u201d\u5230\u201c\u7ba1\u7406AI\u56e2\u961f\u201d\u7684\u534f\u8c03\u75b2\u52b3\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\/979edc63-1ca3-45b2-a5e9-12171aa60b01.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\/f04219a7-d67c-46f3-81df-29c2b27d0df4.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\/789420eb-fba8-4d80-87e1-05a1eba58a86.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\/b9f9f703-0914-4684-b65c-f534796eed72.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\/247d3a89-bf86-49c2-a1ab-d9e5f61c4bc9.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\/9e7efd6f-c526-492f-9b34-cb9cc989a7de.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\/e6100dc8-0880-4826-b508-dcf7e5d4bf32.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\/6de45d80-768b-4f85-b0a5-b7b00255a4b3.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\/fbf8f726-a000-4e1e-86e7-1d0c9e39527a.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\">Marketing<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u5458\u5de5\u5e73\u53f0<\/span><br \/>\n            <span class=\"tag\">\u7535\u5546\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">AI\u56e2\u961f\u534f\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u76ee\u6807\u9a71\u52a8<\/span><br \/>\n            <span class=\"tag\">\u65e0\u4ee3\u7801<\/span><br \/>\n            <span class=\"tag\">\u667a\u80fd\u4ee3\u7406<\/span><br \/>\n            <span class=\"tag\">Slack\u96c6\u6210<\/span><br \/>\n            <span class=\"tag\">\u5ba1\u6279\u6d41\u7a0b<\/span><br \/>\n            <span class=\"tag\">\u7535\u5546\u8fd0\u8425<\/span><br \/>\n            <span class=\"tag\">\u81ea\u52a8\u5316\u51b3\u7b56<\/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\u9ad8\u5ea6\u5173\u6ce8\u5ba1\u6279\u8282\u70b9\u7684\u9897\u7c92\u5ea6\u4e0e\u53ef\u914d\u7f6e\u6027\uff0c\u4ee5\u53caAI\u5e94\u5bf9API\u4ee4\u724c\u8fc7\u671f\u7b49\u6545\u969c\u65f6\u7684\u201c\u81ea\u6108\u201d\u673a\u5236\u3002\u540c\u65f6\uff0c\u6709\u7528\u6237\u63d0\u51fa\u4e86\u201c\u89c4\u5219\u51b2\u7a81\u201d\u7684\u5386\u53f2\u96be\u9898\uff0c\u5e76\u8be2\u95ee\u4e86\u9664Slack\u5916\u662f\u5426\u652f\u6301Teams\u7b49\u96c6\u6210\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                ClawTeams\u7684\u5de7\u5999\u4e4b\u5904\u5728\u4e8e\u5b83\u7cbe\u51c6\u5207\u4e2d\u4e86\u5f53\u524dAI\u5de5\u5177\u5e02\u573a\u7684\u7ed3\u6784\u6027\u9519\u914d\uff1a\u5927\u91cf\u5de5\u5177\u63d0\u4f9b\u201c\u8d85\u7ea7\u4e2a\u4f53\u201d\u5f0f\u7684AI\u52a9\u624b\uff0c\u4f46\u7535\u5546\u8fd0\u8425\u672c\u8d28\u4e0a\u662f\u9700\u8981\u591a\u89d2\u8272\u534f\u8c03\u7684\u7cfb\u7edf\u5de5\u7a0b\u3002\u5b83\u5c06AI\u4ece\u201c\u5de5\u5177\u201d\u5347\u7ea7\u4e3a\u201c\u56e2\u961f\u201d\uff0c\u7528\u201c\u8bbe\u5b9a\u76ee\u6807\uff0cAI\u56e2\u961f\u8d1f\u8d23\u4eba\u7ba1\u7406\u5176\u4f59\u201d\u7684\u6a21\u5f0f\uff0c\u89e3\u51b3\u4e86AI\u5e94\u7528\u4e2d\u7684\u201c\u7ecf\u7406\u75b2\u60eb\u201d\u95ee\u9898\u2014\u2014\u8fd9\u6070\u6070\u662f\u5f88\u591aAI\u4ea7\u54c1\u6ca6\u4e3a\u6446\u8bbe\u7684\u6839\u672c\u539f\u56e0\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u793e\u533a\u53cd\u9988\u6765\u770b\uff0c\u7528\u6237\u5e76\u975e\u76f2\u76ee\u8ffd\u6367\u3002\u5173\u4e8e\u5ba1\u6279\u9897\u7c92\u5ea6\u3001\u6545\u969c\u81ea\u6108\u673a\u5236\u3001\u89c4\u5219\u51b2\u7a81\u7684\u5c16\u9510\u63d0\u95ee\uff0c\u8868\u660e\u65e9\u671f\u7528\u6237\u5df2\u7ecf\u5c06\u77db\u5934\u6307\u5411\u4e86AI Agent\u8d70\u5411\u751f\u4ea7\u73af\u5883\u7684\u6838\u5fc3\u75db\u70b9\uff1a\u5b89\u5168\u4e0e\u53ef\u9760\u3002ClawTeams\u7684\u56de\u5e94\u4f53\u73b0\u51fa\u5176\u4ea7\u54c1\u8bbe\u8ba1\u7684\u524d\u77bb\u6027\uff0c\u201c\u5148\u5c1d\u8bd5\u81ea\u6108\u518d\u4e0a\u62a5\u201d\u7684\u4e8c\u5206\u6cd5\uff0c\u4ee5\u53ca\u5bf9\u201c\u89c4\u5219\u51b2\u7a81\u201d\u8fd9\u4e00\u5f00\u653e\u95ee\u9898\u7684\u8bda\u5b9e\u6001\u5ea6\uff0c\u6bd4\u8bb8\u591a\u5ba3\u79f0\u201c\u5168\u81ea\u52a8\u201d\u7684\u4ea7\u54c1\u8981\u52a1\u5b9e\u5f97\u591a\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4e0d\u8fc7\uff0c\u5176\u771f\u6b63\u7684\u4ef7\u503c\u58c1\u5792\u5728\u4e8e\u201c\u79ef\u7d2f\u7684\u7535\u5546\u8fd0\u8425\u77e5\u8bc6\u201d\u548c\u201c\u89d2\u8272\u95f4\u534f\u8c03\u903b\u8f91\u201d\u80fd\u5426\u88ab\u6570\u636e\u9a8c\u8bc1\u5e76\u5f62\u6210\u98de\u8f6e\u3002\u76ee\u524d\u7684\u4ea7\u54c1\u5f62\u6001\u66f4\u50cf\u662f\u4e00\u4e2a\u9ad8\u5ea6\u5b9a\u5236\u5316\u7684\u201c\u81ea\u52a8\u5316\u7f16\u6392\u5668\u201d\uff0c\u800c\u975e\u771f\u6b63\u5177\u5907\u5b66\u4e60\u80fd\u529b\u7684\u201c\u56e2\u961f\u201d\u3002\u968f\u7740\u7528\u6237\u8f93\u5165\u66f4\u591a\u201c\u89c4\u5219\u201d\u548c\u201c\u4f8b\u5916\u201d\uff0c\u7cfb\u7edf\u82e5\u4e0d\u80fd\u4e3b\u52a8\u6d88\u89e3\u77db\u76fe\u800c\u4ec5\u662f\u673a\u68b0\u7d2f\u79ef\uff0c\u6700\u7ec8\u5c06\u9677\u5165\u53e6\u4e00\u79cd\u201c\u534f\u8c03\u6df7\u4e71\u201d\u3002\u540c\u65f6\uff0c\u5bf9\u5fae\u8f6fTeams\u7b49\u4f01\u4e1a\u7ea7\u96c6\u6210\u7684\u9700\u6c42\u6697\u793a\u4e86\u5176\u5929\u82b1\u677f\u2014\u2014\u5b83\u5fc5\u987b\u878d\u5165\u73b0\u5b58\u7684\u5de5\u4f5c\u6d41\uff0c\u800c\u4e0d\u662f\u8981\u6c42\u7528\u6237\u5207\u6362\u3002ClawTeams\u8d62\u5728\u8d77\u70b9\uff0c\u4f46AI\u56e2\u961f\u7684\u201c\u7ec4\u7ec7\u7ba1\u7406\u201d\u80fd\u529b\uff0c\u624d\u662f\u5b83\u4ece\u5de5\u5177\u8fdb\u5316\u4e3a\u5e73\u53f0\u7684\u751f\u6b7b\u7ebf\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\">ClawTeams<\/span>\n                <\/div>\n<div class=\"comment-content\">ClawTeams is an AI employee platform for e-commerce sellers. Instead of hiring specialists\u2014or doing everything yourself\u2014you get a coordinated AI team that thinks, plans, and executes like real employees. One goal. One team. Zero micromanagement. Tell your team lead what you want\u2014&#8221;Increase Q4 revenue by 20%&#8221;\u2014and they break it down, assign specialists, and run the plan. You get updates in Slack or Discord. High-stakes decisions wait for your approval. Everything else just happens.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Product Hunt! \ud83d\udc4b<\/p>\n<p>I&#8217;m Steven Cen, and today we&#8217;re launching ClawTeams \u2014 an AI team platform<br \/>built specifically for e-commerce operators.<\/p>\n<p>The frustration that led to this: we kept seeing smart sellers use AI tools and still<br \/>end up doing all the coordination work themselves. They had AI assistants \u2014 but they<br \/>still had to be the manager. That&#8217;s exhausting.<\/p>\n<p>So we built ClawTeams around a different idea:<br \/>\u2192 You set the goal. The AI Team Lead manages the rest.<\/p>\n<p>Get&nbsp;800&nbsp;bonus&nbsp;credits&nbsp;($8&nbsp;value)&nbsp;with&nbsp;your&nbsp;first&nbsp;top-up&nbsp;of&nbsp;any&nbsp;amount.&nbsp;No&nbsp;minimum&nbsp;required.<\/p>\n<p>We&#8217;d love your feedback \u2014 especially from sellers who&#8217;ve tried other AI tools and hit<br \/>walls. What made you give up on them? What would make an AI team actually useful?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>14<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@s_cen\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@s_cen<\/a>&nbsp;Hey Steven,<\/p>\n<p>Congrats on launching ClawTeams today! I saw your post on Product Hunt and love your approach to fixing &#8220;manager exhaustion&#8221; for e-commerce operators through autonomous Team Leads.<\/p>\n<p>As an <strong>AI Automation Engineer<\/strong> myself (Founder of DragonixStudio, building n8n\/Python solutions), I run a targeted LinkedIn hub where I break down the best enterprise AI tools.<\/p>\n<p>My analytics currently average:<\/p>\n<ul>\n<li>\n<p><strong>40,000+<\/strong> monthly impressions<\/p>\n<\/li>\n<li>\n<p><strong>2,790<\/strong> total newsletter subscribers<\/p>\n<\/li>\n<li>\n<p><strong>5,996<\/strong> monthly article views (highly targeted business operators)<\/p>\n<\/li>\n<\/ul>\n<p>To help boost your launch week traffic, I want to offer you a quick, budget-friendly promo:<\/p>\n<p>I will write a <strong>detailed, dedicated feature article<\/strong> reviewing ClawTeams from a developer\/automation expert perspective and publish it to my newsletter and LinkedIn feed for just <strong>$50 USD<\/strong>.<\/p>\n<p>I have attached a screenshot of my traffic dashboard from Dragonix Hub so you can see my recent reach.<\/p>\n<p>If you want to get ClawTeams in front of nearly 6,000 targeted business readers looking for automation this week, let me know and I can send over a payment link to get started!<\/p>\n<p>Best,<\/p>\n<p><strong>Zain Khan<\/strong><br \/>Founder, DragonixStudio<br \/> <a href=\"https:\/\/www.linkedin.com\/in\/zainkhan-dev\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/www.linkedin.com\/in\/zainkhan-dev\/<\/a><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/7ec8df47-72fe-4d7a-a2ff-c14b2ff7ec3b.png?auto=compress,format&amp;codec=mozjpeg&amp;cs=strip\" style=\"max-width: 100%\"><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/bbb2dcf6-dc66-4c8e-a0b2-62591cbb0b2d.png?auto=compress,format&amp;codec=mozjpeg&amp;cs=strip\" style=\"max-width: 100%\"><\/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\/@s_cen\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@s_cen<\/a>&nbsp;I like the shift from AI assistants to an AI team with defined roles and coordinated execution. Letting a team lead break down goals, assign specialists, and handle day-to-day work while keeping you in control of high-impact decisions feels like a practical approach for busy e-commerce businesses. Wishing you a successful 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=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@s_cen\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@s_cen<\/a>&nbsp;To answer your questions, I lose interest when using the tool feels like another job, if I spend more time using the AI than the work then I just stop using it. However, I like what you&#8217;re solving so I&#8217;m wondering if your users noticed that they&#8217;re saving time by using your product.<\/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.google.com\/search?q=https:\/\/www.producthunt.com\/%40stevencen\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@stevencen<\/a> Love the &#8220;zero micromanagement&#8221; vision! \ud83d\udc4f<\/p>\n<p>You mentioned that high-stakes decisions wait for human approval in Slack\/Discord. How granular are those safety guardrails? For instance, can a seller set custom approval rules\u2014like automatic sign-off for minor ad budget tweaks, but requiring human approval for price changes or launching new campaigns?<\/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\/@franz_briones\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@franz_briones<\/a>&nbsp;Love that you zeroed in on this! Yes \u2014 the guardrails are granular and fully configurable. During setup you define custom approval rules per action type, so you can, for example, auto-approve minor ad budget tweaks under a threshold you set, while requiring human sign-off for price changes or launching new campaigns. These are &#8216;once-for-all&#8217; controls \u2014 you configure them once when assembling your AI team, and the Team Lead respects them from then on. Defaults lean conservative (anything touching credentials, irreversible actions, or spend above your limits always surfaces to you in Slack\/Discord), and you can loosen or tighten from there.<\/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! Turning one ecommerce brief into a coordinated team for research, listing copy, creative, and review feels genuinely useful.<\/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\/@fei_li5\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@fei_li5<\/a>&nbsp;Thanks! That end-to-end ecommerce handoff is exactly the kind of coordination we want to make feel simple.<\/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>Huge congrats\ud83d\udc4f to shipping. one que what happens if the team lead agent runs into a direct roadblock like an API returning an expired token error from a connected store? does it flag a human immediately in discord or try to self-heal?<\/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\/@priya_kushwaha1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@priya_kushwaha1<\/a>&nbsp;Great question, and it&#8217;s exactly the kind of edge case we designed for early on \ud83d\ude4f<\/p>\n<p>Short answer: it&#8217;s a two-step process, not either\/or.<\/p>\n<\/p>\n<p>When the Team Lead agent hits something like an expired token from a connected store, it first tries safe, reversible self-healing steps \u2014 retrying the auth flow, refreshing via the stored refresh token if available, or falling back to a cached state so nothing downstream breaks silently. If that resolves it, you just see a quiet log entry, no interruption.<\/p>\n<\/p>\n<p>But if it&#8217;s a hard blocker \u2014 like the store literally revoked access or the refresh token itself has expired \u2014 it won&#8217;t keep guessing or &#8220;pretend&#8221; to make progress. It immediately flags a human in Discord\/Slack with the specific context (which store, which action was blocked, what it already tried), because re-authing a store connection is exactly the kind of &#8220;high-stakes, needs-a-human&#8221; moment we don&#8217;t want an agent silently working around.<\/p>\n<\/p>\n<p>The core design principle is: agents can act autonomously on reversible, low-risk operational stuff, but anything involving credentials\/access or irreversible actions always surfaces to you first. We&#8217;d rather have a slightly noisier Discord than an agent that &#8220;self-heals&#8221; its way into doing something you didn&#8217;t approve.<\/p>\n<\/p>\n<p>Happy to go deeper on this if you&#8217;re curious \u2014 this kind of failure-mode design is honestly where most of our engineering time went pre-launch.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The one-sentence setup is especially appealing for ecommerce. Starting with rough product information and asking for a complete listing package feels far more natural than building a workflow first.<\/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\/@nicole_h94\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@nicole_h94<\/a>&nbsp;Exactly\u2014starting with the outcome should feel more natural than designing the workflow first.<\/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! <a href=\"https:\/\/www.producthunt.com\/@s_cen\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"s_cen\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@s_cen<\/a> <\/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!\ud83d\udc4b\ud83d\udc4b This could be especially useful for lean ecommerce teams juggling product research, listing copy, visuals, launch campaigns, and distribution at the same time.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p><strong>Quick update from the ClawTeams team \u2014 thank you all! \ud83d\ude4f<\/strong><\/p>\n<\/p>\n<p>We&#8217;ve been blown away by the warmth and depth of the feedback since launching today. Landing at #1 Day Rank with 600+ points means a lot, but honestly the comments have been the real highlight.<\/p>\n<p>The questions here have been incredibly sharp \u2014 from guardrail metrics and cross-run memory, to platform rate-limiting and account-safety edge cases. It&#8217;s exactly the kind of thoughtful conversation we hoped to spark, and it&#8217;s already shaping how we think about the roadmap.<\/p>\n<p>To everyone who upvoted, commented, or gave us a shoutout: thank you. This is just day one, and the reception has us more energized than ever. We&#8217;re reading every reply and would love to keep the conversation going. \ud83d\udc9b<\/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>Congratulations! The product feels built around how work actually gets delegated, reviewed, and delivered.<\/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\/@qiwap\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@qiwap<\/a>&nbsp;yes! Our maker and teammates have been in ecom industry for many years. we devote this product to help Sellers&#8217; daily work<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Amazing AI agent team for e-commerce!<\/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\/@peng_wood\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@peng_wood<\/a>&nbsp;Thanks Peng.  We really want to empower sellers with the agent teams. love to hear more feedback from you and the community<\/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 launch\uff01\uff01\uff01amazzzzing  product~<\/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\/@gideon_ge\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@gideon_ge<\/a>&nbsp;thanks for your support. more feedback and input are welcome to make the product better<\/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>Ecommerce work is full of tiny handoffs between research, copy, design, and operations. Nice to see a product trying to coordinate the whole chain from one request.<\/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\/@creatorminer\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@creatorminer<\/a>&nbsp;yes your are quite right about the painpoints of ecommerce work. that&#8217;s why we make ClawTeams. we really want to boost their sales with less human efforts<\/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 run a small fleet of Claude agents that operates my own product (eng, QA, growth), so this is close to home. The problem that bit me wasn&#8217;t planning or approvals \u2014 it was rule drift: every incident adds a constraint to some agent&#8217;s instructions, and months later the rules contradict each other in ways no single edit caused. Does ClawTeams reconcile new seller-added constraints against existing ones, or does the Team Lead&#8217;s rulebook just grow? Congrats on the launch.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Which integrations are available today beyond Slack, and is Microsoft Teams support already production-ready?<\/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>&#8220;high-stakes decisions wait for your approval&#8221; &#8211; is that threshold something the team lead learns from your past overrides, or a fixed list of action types you configure upfront?<\/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\">@sabber_ahamed It\u2019s hybrid: you set base action thresholds upfront, and the lead auto-raises risk sensitivity based on your past manual overrides to flag similar moves earlier.<\/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>Promising! Gonna try this out <a href=\"https:\/\/www.producthunt.com\/@s_cen\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"s_cen\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@s_cen<\/a> <\/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\">@amdfad We\u2019d love to hear feedbacks from you!<\/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 drift-catching part makes sense for one agent going sideways, but what about two specialists stepping on each other mid-task &#8211; if the pricing agent drops a price right as the ads agent is calculating margin for a new campaign, does the team lead serialize those or do they just race?<\/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\">@sabber_ahamed Great question! Our team lead enforces dependency locks on shared data like pricing\/margin metrics. Related write operations get serialized to prevent conflicting updates, so agents never race over overlapping critical data.<\/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 approval-boundary answers in this thread are solid, but they&#8217;re all about controls you set. the risk I don&#8217;t see addressed is the platform side &#8211; Amazon\/Shopify etc flag bulk automated listing or pricing changes as suspicious and can suspend a seller account over it, independent of whether the change itself was a good idea. does ClawTeams rate-limit or pace its actions to stay under those platform-level detection thresholds, or is that entirely the seller&#8217;s problem to monitor?<\/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\">@galdayan Great question\u2014platform suspension risk was a core design constraint for our marketplace automation stack, so I\u2019ll clarify clearly:<br \/>\nClawTeams natively includes platform-specific rate limiting, randomized humanized pacing, and concurrency caps for Amazon\/Shopify bulk listing and price edits. Agents pull official API limits for each storefront, spread mass changes across staggered time windows, and add variable delays to avoid bot-like uniform request patterns. We also auto-backoff when platforms return throttle signals like 429 errors.<\/p>\n<p>That said, platform anti-bot detection rules change constantly, and account history\/IP reputation adds unmodelable risk\u2014so high-volume bulk actions always require your manual approval before running, we surface live risk warnings for borderline workflows, and all API activity logs are retained for platform dispute audits.<\/p>\n<p>We mitigate the detection threshold risk extensively via built-in pacing logic, but platform account safety remains a shared responsibility with the seller, with guardrails to keep dangerous automated behavior locked behind human sign-off.<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@galdayan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@galdayan<\/a>&nbsp;Having finished work returned to the original chat feels smoother than chasing outputs across multiple tools.<\/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, the goal decomposition flow is clean.<\/p>\n<\/p>\n<p>The question I keep coming back to with agent teams is what the team lead remembers between runs. Planning is the easy half. The expensive half is not re-litigating a decision a specialist already made last week, and not acting on stock numbers that went stale two runs ago.<\/p>\n<\/p>\n<p>Does the team carry state forward across goals, or does each new goal start from a clean context?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@paul_crinigan Thanks for the kind words! Our teams persist structured cross-run state\u2014stored decisions, fresh inventory data, and specialist outputs carry over automatically. You can lock verified conclusions to avoid rehashing old work, and stale metrics trigger auto-refresh before new tasks kick off. New goals build on existing context instead of starting blank.<\/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 Steven!<\/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\">@albattran Thanks\uff01<\/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 per-action approval controls look well thought through. The harder problem with goal-driven agents is the goal itself: &#8220;increase Q4 revenue 20%&#8221; can be hit in ways you&#8217;d hate \u2014 deep discounts that gut margin, or heavier email that lifts this month&#8217;s revenue and burns the list next quarter. Each step can look low-risk and pass its guardrail while the sum quietly optimizes the wrong thing.<\/p>\n<\/p>\n<p>Curious whether the Team Lead is measured only against the stated goal, or against guardrail metrics too \u2014 a margin floor, a send-frequency cap, brand constraints \u2014 so it&#8217;s steered away from technically-correct-but-bad paths, not just blocked on individual high-stakes actions. That constraint layer feels like where the trust actually lives. Congrats on shipping, Steven.<\/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\">@syed_noor4 Thanks for this sharp insight! Our team lead optimizes for core goals AND locked guardrail KPIs simultaneously\u2014margin floors, email frequency caps, brand rules are hard constraints, not afterthoughts. The AI can\u2019t pursue revenue growth by violating your preset business boundaries, avoiding those short-sighted harmful strategies entirely. Really appreciate you highlighting this trust-critical layer.<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Looks great<\/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\">@madalina_barbu Love your support!<\/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>Does the platform support shared team memory without exposing sensitive context across unrelated projects?<\/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\">@linglistack Absolutely. We isolate memory per project workspace while letting authorized teams access shared cross-project knowledge; sensitive data never leaks between separate workflows.<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>How are budgets set and enforced across a long-running project with multiple agents working in parallel?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@cynthia220 You can always set up daily\/weekly\/monthly credit budget for each team you assemble in clawteams. Agents basically work in parallel to tasks assigned to them<\/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>Honestly the &#8220;one goal, zero micromanagement&#8221; thing actually works. I tossed in a goal to cut ad spend waste and woke up to a slack thread with three specialists already debating keyword bids. Kind of eerie honestly.<\/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\">@elmasjyoo Goal-based task decomposition and automated agentic workflow is indeed key to how our product works<\/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>Would love to see a quick weekly recap card in Slack showing what the team actually did and what it cost in API credits, so I can tell at a glance whether I&#8217;m getting real value or just noise.<\/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\">@keremdbga Love this actionable ask! We\u2019ve added this weekly Slack recap card to our near-term roadmap, tracking completed tasks and API credit spend for fast value checks.<\/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 approval boundary is the product here. For e-commerce operators, the useful version is not \u201cagents do everything\u201d; it is clear ownership, budget\/risk limits, and a decision log in Slack when a step touches inventory, pricing, customer comms, or ad spend.<\/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\">@krekeltronics Thanks for the comment. I think the most important thing in harness engineering is to set up the budget\/risk limits, which is encoded in our product philosophy.<\/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>Parallel work is presented clearly without overwhelming the user with technical agent details. Nice product thinking.<\/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\/@rockzhang\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rockzhang<\/a>&nbsp;thx for your encouragement~    please try the product and give us more feedback<\/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\">@rockzhang Thank you! We prioritized hiding complex agent mechanics so users only see actionable task progress, glad this design lands well.<\/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 concept of treating AI agents like actual team members. One thing I&#8217;d find super useful is a simple performance dashboard per specialist showing what they shipped, time saved, and cost vs hiring a human for the same task, so I can actually measure ROI over time.<\/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\/@tahazgnkdof\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@tahazgnkdof<\/a>&nbsp;Thanks so much, Taha \u2014 really glad the &#8220;AI agents as teammates&#8221; framing resonates! Good news on the ROI front: we already have a budget management function that lets you track and manage your agent team&#8217;s spend, so you can keep an eye on cost as you go. A fuller per-specialist view (what each agent shipped + time saved side by side) is exactly the direction we want to take it further. Would love to hear which metrics matter most to you!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on launching! &#8220;Zero micromanagement&#8221; is a bold promise for a multi-agent setup &#8211; how do you handle the failure case where one specialist agent goes off track? Does the team lead catch it before it reaches the customer, or is there a human-in-the-loop checkpoint?<\/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\/@medal411\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@medal411<\/a>&nbsp;Great question, thanks! Quick clarification on &#8216;zero micromanagement&#8217;: it doesn&#8217;t mean no oversight \u2014 it means you don&#8217;t have to assign tasks to each agent or check their quality one by one. The Team Lead agent drives toward the goal and coordinates the specialists for you. If a specialist goes off track, the Team Lead monitors output against the goal and catches drift before it reaches a customer.<\/p>\n<p>The key controls happen up front: during setup and when you assemble your AI team, we provide easy-to-use dashboard settings. These are &#8216;once-for-all&#8217; guardrails \u2014 you configure them once, and they ensure the team executes safely and exactly to your requirements. Anything high-stakes or customer-facing still hits a human-in-the-loop checkpoint in Slack\/Discord for sign-off, while low-risk, reversible steps run autonomously.<\/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\">#2<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/ZFDSZ4CUJ3IHCB\" class=\"app-title\">Pazi<\/a><\/p>\n<div class=\"one-liner\">Vibe code business operations<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">607<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Pazi \u662f\u4e00\u6b3e\u4e3a\u201c\u60f3\u505a\u4e8b\u5374\u5361\u5728\u8fd0\u8425\u73af\u8282\u201d\u7684\u521b\u4e1a\u60f3\u6cd5\u6301\u6709\u8005\u6253\u9020\u7684 AI \u8fd0\u8425\u4ee3\u7406\u56e2\u961f\uff0c\u5b83\u80fd\u56f4\u7ed5\u4f60\u7684\u70b9\u5b50\u81ea\u52a8\u7ec4\u5efa\u591a\u89d2\u8272\u667a\u80fd\u4f53\uff0c\u72ec\u7acb\u63a8\u8fdb\u5efa\u7ad9\u3001\u5185\u5bb9\u3001\u83b7\u5ba2\u7b49\u4e1a\u52a1\u6267\u884c\uff0c\u8ba9\u4f60\u6bcf\u6b21\u56de\u6765\u90fd\u80fd\u770b\u5230\u8fdb\u5ea6\u63a8\u8fdb\uff0c\u89e3\u51b3\u201c\u4ea7\u54c1\u9020\u51fa\u6765\u5374\u4e0d\u77e5\u5982\u4f55\u843d\u5730\u201d\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\/894cbea0-4ac1-4225-b2a8-95f7f1947f3f.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\/19c2f196-01e1-4e04-83c7-4aaeb4544db5.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\/306bce7a-d6a4-4016-ad89-6c14966b525b.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\/2fce1365-951a-4175-80be-ad002e4d0a1d.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\/a4170df0-6acf-4720-b33b-3a55d0c8a7fd.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\/c603dd26-8fe8-49c6-91f7-3f42faf63c9f.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=MtS5liK4KYM\"><source src=\"https:\/\/www.youtube.com\/watch?v=MtS5liK4KYM\" 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\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">Vibe coding<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u8fd0\u8425\u4ee3\u7406<\/span><br \/>\n            <span class=\"tag\">\u5546\u4e1a\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">\u96f6\u4ee3\u7801\u521b\u4e1a<\/span><br \/>\n            <span class=\"tag\">\u667a\u80fd\u4f53\u56e2\u961f<\/span><br \/>\n            <span class=\"tag\">\u7cbe\u529b\u5916\u5305<\/span><br \/>\n            <span class=\"tag\">\u83b7\u5ba2\u6267\u884c<\/span><br \/>\n            <span class=\"tag\">\u521b\u4e1a\u843d\u5730\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">SaaS<\/span><br \/>\n            <span class=\"tag\">\u751f\u4ea7\u529b<\/span><br \/>\n            <span class=\"tag\">\u4f4e\u95e8\u69db\u521b\u4e1a<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u96c6\u4e2d\u5173\u6ce8 AI \u81ea\u4e3b\u51b3\u7b56\u7684\u8fb9\u754c\uff1a\u4f55\u65f6\u9700\u4eba\u5de5\u5ba1\u6279\uff08\u5982\u7b56\u7565\u8f6c\u5411\u3001\u5bf9\u5916\u6c9f\u901a\uff09\uff1b\u8eab\u4efd\u8bc6\u522b\u98ce\u9669\uff08\u90ae\u4ef6\/\u793e\u4ea4\u8d26\u53f7\u4fe1\u8a89\u4fdd\u62a4\uff09\uff1b\u4ee5\u53ca\u6267\u884c\u900f\u660e\u5ea6\u7684\u589e\u5f3a\u9700\u6c42\uff08\u5b9e\u65f6\u72b6\u6001\u770b\u677f\u3001\u51b3\u7b56\u8f68\u8ff9\u56de\u653e\uff09\u3002\u591a\u6570\u5efa\u8bae\u56f4\u7ed5\u201c\u4fe1\u4efb\u4e0e\u7ba1\u63a7\u5e73\u8861\u201d\u5c55\u5f00\uff0c\u800c\u975e\u8d28\u7591\u529f\u80fd\u672c\u8eab\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                Pazi \u7684\u806a\u660e\u4e4b\u5904\u5728\u4e8e\uff0c\u5b83\u6ca1\u6709\u9677\u5165\u201c\u5e2e\u6211\u5199\u4ee3\u7801\u201d\u7684\u65e7\u53d9\u4e8b\uff0c\u800c\u662f\u7cbe\u51c6\u6355\u6349\u4e86\u540e\u521b\u4e1a\u65f6\u4ee3\u7684\u771f\u5b9e\u75db\u70b9\uff1a\u9020\u4e1c\u897f\u4e0d\u96be\uff0c\u5356\u4e1c\u897f\u624d\u8981\u547d\u3002\u521b\u59cb\u56e2\u961f\u4ece Pythagora\uff08\u5f00\u6e90\u7f16\u7801\u4ee3\u7406\uff09\u8f6c\u578b\u800c\u6765\uff0c\u6700\u5b9d\u8d35\u7684\u8ba4\u77e5\u4e0d\u662f\u6280\u672f\u79ef\u7d2f\uff0c\u800c\u662f\u770b\u5230\u4e86\u7528\u6237\u201c\u5efa\u5b8cApp\u5c31\u832b\u7136\u201d\u7684\u96c6\u4f53\u56f0\u5883\u2014\u2014\u4ed6\u4eec\u60f3\u5f53\u4f01\u4e1a\u5bb6\uff0c\u4e0d\u662f\u5de5\u7a0b\u5e08\u3002\u8fd9\u4e2a\u6d1e\u5bdf\u76f4\u63a5\u5b9a\u4e49\u4e86 Pazi \u7684\u4ea7\u54c1\u54f2\u5b66\uff1a\u4f60\u4e0d\u662f\u9700\u8981\u4e00\u4e2a\u66f4\u5feb\u7684AI\u7801\u519c\uff0c\u4f60\u9700\u8981\u4e00\u4e2a\u4e0d\u77e5\u75b2\u5026\u7684AI\u603b\u76d1\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ea7\u54c1\u5f62\u6001\u4e0a\uff0c\u201c\u591a\u4ee3\u7406\u56e2\u961f\u201d\u6bd4\u5355\u4e00\u804a\u5929\u673a\u5668\u4eba\u66f4\u63a5\u8fd1\u771f\u5b9e\u5546\u4e1a\u7ec4\u7ec7\u7684\u8fd0\u4f5c\u903b\u8f91\uff1a\u6218\u7565\u3001\u5185\u5bb9\u3001\u7814\u7a76\u5404\u6709\u5206\u5de5\uff0c\u4e14\u80fd\u81ea\u4e3b\u63a8\u8fdb\u3002\u8fd9\u5728\u201c\u6267\u884c\u5c42\u201d\u7684\u81ea\u52a8\u5316\u4e0a\u786e\u5b9e\u6709\u4ef7\u503c\uff0c\u5c24\u5176\u662f\u7528\u6237\u63d0\u5230\u7684\u201c\u7ade\u54c1\u5b9a\u4ef7\u7814\u7a76\u201d\u8fd9\u7c7b\u610f\u6599\u4e4b\u5916\u7684\u60ca\u559c\u52a8\u4f5c\uff0c\u8bf4\u660eAI\u5728\u4fe1\u606f\u6574\u5408\u4e0a\u80fd\u4ea7\u751f\u8d85\u8d8a\u6307\u4ee4\u7684\u589e\u91cf\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u9510\u8bc4\u5fc5\u987b\u70b9\u51fa\u98ce\u9669\uff1a\u76ee\u524d\u8bc4\u8bba\u533a\u5927\u91cf\u201c\u4ee3\u7406\u4eba\u662f\u5426\u53ef\u9760\u201d\u7684\u8ffd\u95ee\uff0c\u672c\u8d28\u4e0a\u662f\u201c\u4fe1\u4efb\u95e8\u69db\u201d\u95ee\u9898\u3002Pazi \u5f53\u524d\u7684\u505a\u6cd5\u662f\u201c\u5927\u7b56\u7565\u8bf7\u793a\u3001\u5c0f\u52a8\u4f5c\u81ea\u5b9a\u201d\uff0c\u8fd9\u542c\u8d77\u6765\u5408\u7406\uff0c\u4f46\u4e00\u65e6\u6d89\u53ca\u5230\u201c\u90ae\u4ef6\u7f72\u540d\u662f\u5426\u7528\u6211\u7684\u57df\u201d\u3001\u201c\u8425\u9500\u7b56\u7565\u662f\u5426\u70e7\u94b1\u201d\u7b49\u5b9e\u4f53\u5229\u76ca\u65f6\uff0c\u7528\u6237\u7684\u5bb9\u5fcd\u5ea6\u6781\u4f4e\u3002\u4e00\u4e2a\u5c0f\u5931\u8bef\u5c31\u53ef\u80fd\u6bc1\u6389\u771f\u5b9e\u5546\u4e1a\u4fe1\u8a89\uff0c\u800cAI\u65e0\u6cd5\u4e3a\u6b64\u62c5\u8d23\u3002\u76ee\u524d\u4ea7\u54c1\u5728\u201c\u6c99\u76d2\u8eab\u4efd\u201d\u548c\u201c\u51b3\u7b56\u900f\u660e\u5ea6\u201d\u4e0a\u4ecd\u663e\u7c97\u7cd9\u2014\u2014\u6bd4\u5982\u793e\u4ea4\u5e73\u53f0\u6ca1\u6709\u72ec\u7acb\u8eab\u4efd\u4fdd\u62a4\uff0c\u51b3\u7b56\u903b\u8f91\u7f3a\u4e4f\u201c\u5047\u8bbe-\u884c\u52a8-\u7ed3\u679c-\u6289\u62e9\u201d\u7684\u5b8c\u6574\u8def\u5f84\u56de\u6eaf\u3002\u8fd9\u79cd\u6a21\u7cca\u5730\u5e26\u6070\u597d\u662f\u201cVibe coding\u201d\u80fd\u6210\u7acb\u800c\u201cVibe ops\u201d\u66f4\u96be\u884c\u7684\u5173\u952e\uff1a\u4ee3\u7801\u9519\u4e86\u53ef\u4ee5\u56de\u6eda\uff0c\u5ba2\u6237\u89e6\u8fbe\u9519\u4e86\uff0c\u4fe1\u4efb\u5c31\u65ad\u4e86\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4e00\u53e5\u8bdd\u603b\u7ed3\uff1aPazi \u627e\u5230\u4e86\u4e00\u4e2a\u6781\u5177\u6f5c\u529b\u7684\u201cAI\u8fd0\u8425\u526f\u9a7e\u201d\u5207\u53e3\uff0c\u6267\u884c\u5c42\u81ea\u52a8\u5316\u4e5f\u521d\u89c1\u6210\u6548\u3002\u4f46\u5b83\u8981\u771f\u6b63\u8dd1\u901a\uff0c\u5fc5\u987b\u5728\u201c\u81ea\u4e3b\u6743\u8fb9\u754c\u201d\u548c\u201c\u9519\u8bef\u8d23\u4efb\u5f52\u5c5e\u201d\u4e0a\u7ed9\u51fa\u6bd4\u7ade\u54c1\u66f4\u4e25\u8c28\u7684\u4fdd\u969c\u4f53\u7cfb\u3002\u5426\u5219\uff0c\u5b83\u53ef\u80fd\u53ea\u662f\u53e6\u4e00\u4e2a\u201c\u770b\u8d77\u6765\u5f88\u5fd9\u201d\u7684\u7126\u8651\u653e\u5927\u5668\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Pazi<\/span>\n                <\/div>\n<div class=\"comment-content\">Pazi is an AI team for that idea you keep coming back to \u2014 a book, a shop, an app, a skill you want to sell. Tell Pazi what you&#8217;re trying to do and it builds a team of agents around your idea and starts making things happen: a website, first outreach, content, the next step. Every time you come back, something has moved. You stay in control; your team does the rest alongside you, one real step at a time. Like vibe coding but for business operations.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Product Hunt \ud83d\udc4b<\/p>\n<\/p>\n<p>I&#8217;m Zvonimir, co-founder of Pazi. Some of you might know me from Pythagora \/ GPT Pilot &#8211; one of the first open-source coding agents, 33K GitHub \u2b50<\/p>\n<\/p>\n<p>We built Pythagora thinking people wanted to build software. <strong>100k users later, we realized building was just a means to an end.<\/strong> The moment the app was done, people didn&#8217;t celebrate. They got stuck. <em>&#8220;Now what?&#8221;<\/em><\/p>\n<\/p>\n<p>The app was never the point. They didn&#8217;t want to build applications. They wanted to be entrepreneurs.<\/p>\n<\/p>\n<p>Every experienced founder knows the hard part comes after the build &#8211; getting it in front of people, seeing what lands, changing it, trying again. A business is just that loop, run a few hundred times until something works.<\/p>\n<\/p>\n<p>So for the last 6 months we&#8217;ve been building Pazi to run that loop with you.<\/p>\n<\/p>\n<p>You bring an idea. Pazi builds a team of agents around it and starts moving &#8211; and it doesn&#8217;t wait for instructions. It tries something, sees what lands, adjusts, keeps going.<\/p>\n<\/p>\n<p>Here&#8217;s one real idea that one of our users started with: a prompt pack to sell on Gumroad.<\/p>\n<p>Pazi built her a team &#8211; a growth strategist, a content writer, a researcher &#8211; and got to work. The pack itself. A cover to drop into Canva, with the hex codes. A posting calendar: which platform, which day, which hook, which call to action. And competitor pricing research she never asked for, because she&#8217;d mentioned in passing that she had no idea what to charge.<\/p>\n<p>Today, she pays for Pazi and for no other AI tool.<\/p>\n<p>We looked at the first 529 ideas people brought us. ~75% of what they actually wanted wasn&#8217;t <em>&#8220;build me an app.&#8221;<\/em> It was some version of <strong><em>get me customers<\/em><\/strong>. So that&#8217;s where the agents start.<\/p>\n<\/p>\n<p>Two years ago, &#8220;vibe coding&#8221; sounded absurd &#8211; many said that only real engineers write real code. The exact same shift is about to hit the way companies run.<\/p>\n<\/p>\n<p>\ud83d\udc49 Soon, no one will run their business operations by hand either.&nbsp; \ud83d\udc48<\/p>\n<\/p>\n<p>Today is day one. Autonomous companies are rough in some places, just like early vibe coding was too.<\/p>\n<p>And if you&#8217;re someone with an idea and no team: this is the best moment in history to be you. That gap used to kill things before they started. It&#8217;s about to stop mattering.<\/p>\n<\/p>\n<p>What would help us most: take an idea you&#8217;ve been sitting on, run it through Pazi for real, and tell us where it broke, what surprised you, and what was missing. My co-founder Leon and the team are here all day, reading every comment.<\/p>\n<\/p>\n<p>Come build with us \ud83e\udd42<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>26<\/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\/@zvonimir_sabljic1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@zvonimir_sabljic1<\/a>&nbsp;if the AI COO hallucinates a bad marketing strategy, does it flag low confidence before asking for human approval?<\/p>\n<\/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<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@zvonimir_sabljic1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@zvonimir_sabljic1<\/a>&nbsp;I really like the idea of treating AI as a team rather than a single assistant. Having specialized agents that keep moving your idea forward\u2014whether it&#8217;s building a website, creating content, or handling outreach\u2014makes the process feel much more actionable. The &#8220;every time you come back, something has moved&#8221; concept is especially compelling. Best of 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=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@zvonimir_sabljic1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@zvonimir_sabljic1<\/a>&nbsp;well done Zvone! <\/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 part about getting stuck after the build is so true. Making the thing is often the easy part, getting people to actually care is where it gets messy. Curious how Pazi handles that first week after launch.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@cathy_cc\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@cathy_cc<\/a>&nbsp;yes, exactly &#8211; the answer is the momentum. After a failed launch people lose motivation but AI doesn&#8217;t so it needs to do a small step forward to regain motivation. I say that Pazi provides momentum &#8211; that&#8217;s the goal.<\/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>&#8220;The app was never the point. They wanted to be entrepreneurs.&#8221; is a really strong insight.<\/p>\n<p>As a founder, I can relate to how much harder everything becomes after the product exists. getting customers, finding positioning, creating content, doing outreach, learning what works, then repeating the loop&#8230; that is where most ideas slow down. &#8220;Vibe coding for business operations&#8221; is a very clear way to frame Pazi \ud83d\ude42<\/p>\n<\/p>\n<p>The proactive part is what I would want to test most. how does Pazi decide what it can move forward on independently, and when it should stop and ask the founder before spending money, contacting someone, or changing direction?<\/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\/@andrasczeizel\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@andrasczeizel<\/a>&nbsp;thanks for the feedback &#8211; I&#8217;m glad it resonates. Re how it decides, truthfully, this is what we&#8217;re exploring with users as well. In general, it stops whenever something meaningfully impacts the business &#8211; eg. full strategy change &#8211; but I think that this will end up like vibe coding today. We will just start to allow it to do more and more.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@zvonimir_sabljic1\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"zvonimir_sabljic1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@zvonimir_sabljic1<\/a> <a href=\"https:\/\/www.producthunt.com\/@leon_ostrez\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"leon_ostrez\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@leon_ostrez<\/a> <br \/>This is a superb idea. I am at a stage where I am managing multiple things, and I know I can spring up some agents to delegate work, but I simply don&#8217;t have enough time. The next stage in my build journey is launch, marketing, and customer acquisition, and I feel Pazi can help. Love the bright orange. Kudos on the launch.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@leon_ostrez\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@leon_ostrez<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@roopesh_donde\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@roopesh_donde<\/a>&nbsp;Thanks!!! Yes, that&#8217;s exactly what Pazi is build for. Let me know what you think and if you need any help.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the &#8220;vibe coding but for business operations&#8221; framing is a good hook. one thing I don&#8217;t see covered yet: when the team does outreach &#8211; emailing a prospect, DMing a creator, whatever &#8211; whose identity is it going out under? if it&#8217;s sending from my own email or socials, a bad batch of outreach doesn&#8217;t just waste time, it dings my actual deliverability\/reputation with real people. is there a sandboxed identity it uses until you&#8217;re comfortable, or is it your accounts from day one?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@galdayan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@galdayan<\/a>&nbsp;Great question. For email, each agent sends as &#8220;Agent Name&#8221; &lt;<a href=\"mailto:agent@me.pazi.ai\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">agent@me.pazi.ai<\/a>&gt; from our dedicated agent-mail domain\u2014not from your personal or company inbox\u2014so your own domain reputation isn\u2019t affected. We also limit sending volume and monitor bounces and complaints. For social platforms, there isn\u2019t a universal sandboxed Pazi identity today.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Love it! I run an influencer marketing agency as well as an influencer discovery platform, and following up with creators and clients usually takes a lot of time and efforts from my team. This include scheduling outreaches, setting up sequences and sending newsletters. Do you think Pazi can help us to sort the communication for both the companies simultaneously? Right now, we are using a mix of 3 tools to sort the communications with users, creators and clients. <br \/>PS &#8211; Really love the UX and I believe in the solution you are offering. Congrats and 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>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\/@lakshya_singh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@lakshya_singh<\/a>&nbsp;Thank you! Yes\u2014you can set up each company as a separate business in Pazi, each with its own agents, context, and dashboard. Both teams can work simultaneously on outreach, follow-ups, newsletters, and scheduling, while your COO gives you one place to coordinate everything. We\u2019d love to learn more about your current workflow and see how much of those three tools Pazi can consolidate.<\/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>A dashboard showing what each agent is actively working on right now would help a lot. When I come back I want to see a quick &#8220;live status&#8221; view instead of just results, so I can jump in and steer things before they go too far down a path I don&#8217;t want.<\/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\/@volkanr1fz\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@volkanr1fz<\/a>&nbsp;Yes, that&#8217;s exactly what the Pulse page is for &#8211; it shows all things that agents are currently working on.<\/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! Coming from an ML research background, I&#8217;m curious how Pazi handles the agents&#8217; confidence in their own outputs. For example, when a growth strategy or piece of content is based on a shaky assumption, does the system surface that uncertainty to the user, or is it something you only catch after the fact by checking the dashboard? Cool direction either way.<\/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\/@tkargin\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@tkargin<\/a>&nbsp;That&#8217;s about to be seen \ud83d\ude42 We&#8217;re exploring this same thing <\/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 strongest part of this is focusing on the loop after the build. For founder work, I would want every agent step to leave a trail: assumption, action taken, result, next choice, and where it stopped for approval. That is what keeps \u201cbusiness operations\u201d from turning into busy-looking motion.<\/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\/@krekeltronics\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@krekeltronics<\/a>&nbsp;Yes, agreed! The question is how to show that in the most concise way so people actually want to review 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\">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\/@german_merlo1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@german_merlo1<\/a>&nbsp;Thank you!!!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congratulations on the launch. It&#8217;s refreshing to see someone optimizing for outcomes instead of optimizing for prompts.<\/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\/@roopreddy\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@roopreddy<\/a>&nbsp;Thanks!! And yes, well said!<\/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&#8217;d probably trust this more if it occasionally explained why it chose one direction over another.<\/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\/@ranjan_kumar45\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ranjan_kumar45<\/a>&nbsp;very interesting! That makes sense. I think for the time being, like in the next year or so, people will still have oversight over what the agent is doing &#8211; just like vibe coding a year ago<\/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 could become the AI equivalent of hiring your first operations person without actually making a hire. Haha<\/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\/@syed_shayanur_rahman\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@syed_shayanur_rahman<\/a>&nbsp;yea hahaha with that person being able to do any knowledge work <\/p>\n<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I wonder what happens when the strategy isn&#8217;t working. Does the team completely pivot on its own or ask first?<\/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\/@nuseir_yassin1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@nuseir_yassin1<\/a>&nbsp;Asks first. When changing the strategy completely, it consults with the user first.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>One thing I&#8217;d enjoy is watching every completed task on a timeline, almost like following a teammate&#8217;s daily progress. 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\/@zerotox\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@zerotox<\/a>&nbsp;oh, that sounds super cool! Thanks for the feedback and yes, I agree &#8211; it should have some kind of a timeline preview of the work done<\/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 Gumroad example made the product click immediately for me. That&#8217;s a much more relatable demo \ud83d\ude00<\/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\/@divya_kothari1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@divya_kothari1<\/a>&nbsp;that&#8217;s very interesting!! Thank you for the feedback!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>How does Pazi decide what to work on first if someone has five different priorities competing for attention?<\/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\/@iamanantgupta\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@iamanantgupta<\/a>&nbsp;in most cases, you are the one who chooses the direction but in smaller cases where it needs to make a decision, it does with the best of its abilities. We&#8217;re using Opus and Sonnet in the background so the decisions I&#8217;ve seen so far are amazing &#8211; I&#8217;d say better than most people today<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@iamanantgupta\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@iamanantgupta<\/a>&nbsp;This is the question I care about most too. I run three unrelated businesses and the hard part was never doing the work, it&#8217;s knowing which of five competing things actually deserves me right now. What&#8217;s helped me isn&#8217;t a smarter ranking algorithm, it&#8217;s honesty about confidence, some days I&#8217;m sure the caf\u00e9 schedule is the real fire, other days I&#8217;m wrong and it&#8217;s actually the software bug queue. Curious if Pazi surfaces why it picked one priority over another, or if that reasoning is still mostly a black box for now.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats. This feels like where AI is heading next. Not just creating things, but actually helping people build businesses around them. <\/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\/@himani_sah1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@himani_sah1<\/a>&nbsp;Yes, exactly! Within a year everyone will be doing vibe coding type of business ops. Exciting future \ud83e\udd73<\/p>\n<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Love the branding, will certainly give it a look!<\/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\/@olumidegbenro\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@olumidegbenro<\/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>Congrats on the launch! When Pazi&#8217;s agent team builds out first outreach\/content for a niche idea, how does it handle domain-specific compliance stuff (e.g. regulated industries) &#8211; does it know when to flag &#8220;this needs a human review&#8221; vs just shipping 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\/@medal411\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@medal411<\/a>&nbsp;great question! It actually does very well with regulations because of the research agent that does compliance very well but it all comes down to the user. Pazi always asks for an approval until the user says it can do something on its own &#8211; then it just ships 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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on launching. The line that got me is &#8220;every time you come back, something has moved.&#8221; As a solo founder I already run my startup close to this way, handing pieces off and checking results, so one coordinated team instead of me stitching ten tools together is the dream. Real question: when an agent takes the next step on outreach or content, how much sign-off do I get before it actually goes out? &#8220;You stay in control&#8221; is exactly where I&#8217;d want to feel the guardrails.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the &#8220;team of agents&#8221; framing is the interesting part &#8211; when Pazi sends real outreach on your behalf, is there a review step before anything external actually goes out, or does it just fire once it decides that&#8217;s the next move?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the research-grounded-vs-guessed question above is the one that matters most imo &#8211; when Brave search and browser-use turn up conflicting pricing data for the same niche, does the agent reconcile the sources or just pick one and run with it?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Well done! I like Pazi because it was super quick to get started and I could feed it data from Excel or connect it to my database. It didn&#8217;t ask for a bunch of redundant information. I&#8217;m just getting started but I really liked how it identified the &#8220;core activation&#8221; moment. I was surprised how accurate it was.<\/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\/@matthewoz101\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@matthewoz101<\/a>&nbsp;Thanks, Matt! Great to hear it identified the core activation moment so quickly. Please keep us posted as you test it with more real workflows\u2014we\u2019d love your feedback.<\/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 it! My app is built, ready to launch, but I feel very unsure on where to start, social media handlers are taken (including Product Hunt), videos recorded an paid for, iterations, PlayStore published, AppStore under review, yet I feel insecure&#8230; I will give this a go, so far exhausted my first 5k credits and intend to go for a bit more testing, thanks <a href=\"https:\/\/www.producthunt.com\/@zvonimir_sabljic1\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"zvonimir_sabljic1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@zvonimir_sabljic1<\/a> <\/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\/@igor_torrealba\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@igor_torrealba<\/a>&nbsp;Thanks, Igor!  We\u2019d love to hear how the next round of testing goes and what we can improve.<\/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! &#8220;Every time you come back, something has moved&#8221; is the angle that sold me \u2014 most agent tools still just sit and wait for prompts. Curious how you balance agents acting autonomously vs. asking for approval on things like outreach?<\/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\/@alex_tomilin\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alex_tomilin<\/a>&nbsp;Thanks, Alex! The main boundary is the opportunity itself: you choose what the team should pursue, then the agents work autonomously within that direction. They come back when they need access, credentials, or a decision that materially changes the plan. For outreach, you can shape the approach upfront and then let the team execute without approving every individual step.<\/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. Visited your website, absolutely loved the interface and functions, i am just worried about AI Hallucination, and what can be done to prevent 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\/@shahzeb7711\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@shahzeb7711<\/a>&nbsp;Thank you! Hallucinations are a real limitation of every LLM, but clear goals and instructions, combined with verification and review from other agents, help reduce them. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Lowkey need this!!!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@milhoornaert\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@milhoornaert<\/a>&nbsp;Give it a try and let me know how it went! Thank you 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>For me personally, coding is the easiest part of building a product, but content writing or marketing-related tasks are really too difficult. They are often the parts that take me the most time. The appearance of Pazi just helped me out \ud83e\udd73, thank you so much!!<\/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>Thank you, Gary! That\u2019s exactly the gap we built Pazi for. Building the product is often only the beginning\u2014content, marketing, and distribution can take far more time. We\u2019re excited to see what your Pazi team helps you move forward \ud83e\udd73<\/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, Zvonimir. The &#8220;build vs. figure out what to actually do with the business&#8221; gap is something I run into constantly between managing a dealership and building a property management site. Honestly, half the challenge isn&#8217;t the build itself, it&#8217;s knowing which of the ten things I could do next actually moves the needle. Curious how Pazi decides what to prioritize when someone gives it a vague goal like &#8220;grow the business.&#8221; Does it ask clarifying questions first or just start proposing a plan? <\/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\/@andre_ajemian\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@andre_ajemian<\/a>&nbsp;Thanks, Andre! It does both: the COO learns about your business and asks targeted questions when important context is missing, then turns a vague goal like \u201cgrow the business\u201d into concrete opportunities. You choose which opportunity to pursue and can discuss the tradeoffs with your COO before the team starts executing.<\/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\">#3<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/YYDC2FEFNNYIMM\" class=\"app-title\">Goose Ads Remixer<\/a><\/p>\n<div class=\"one-liner\">Remix the ads already winning in your niche<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">461<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Goose Ads Remixer\u901a\u8fc7\u5206\u6790\u7ade\u54c1\u4e2d\u5df2\u88ab\u9a8c\u8bc1\u7684\u8d62\u5bb6\u5e7f\u544a\u6a21\u5f0f\uff0c\u5728\u4fdd\u7559\u6838\u5fc3\u8f6c\u5316\u8981\u7d20\u7684\u524d\u63d0\u4e0b\uff0c\u81ea\u52a8\u4e3a\u4f60\u7684\u54c1\u724c\u751f\u6210\u5e26\u6709\u771f\u5b9eLogo\u3001\u4ea7\u54c1\u56fe\u548c\u54c1\u724c\u98ce\u683c\u7684Meta\u5e7f\u544a\u7d20\u6750\uff0c\u89e3\u51b3\u8425\u9500\u4eba\u5458\u4ece\u96f6\u5f00\u59cb\u521b\u4f5c\u5e7f\u544a\u4e14\u65e0\u6cd5\u9884\u5224\u6548\u679c\u7684\u95ee\u9898\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/7a6f58b4-a29f-4e7a-b5c9-46a727207a3c.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\/94d27d87-684e-4314-a0f6-a496bc3fb95f.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\/a7e4286a-cb76-40e4-be6b-94e57bee86d8.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\/fe06b09a-0145-42c7-a50a-b625999e320a.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\/c964f03d-fd3d-4bfd-939f-e765fd58c139.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\/9cbb2190-1c90-476b-adaa-2f5a2aeb534b.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/-1g2GShq0Wk\"><source src=\"https:\/\/youtu.be\/-1g2GShq0Wk\" 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\">Marketing<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">GitHub<\/span><br \/>\n            <span class=\"tag\">Video<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u5e7f\u544a\u521b\u610f\u751f\u6210<\/span><br \/>\n            <span class=\"tag\">Meta\u5e7f\u544a<\/span><br \/>\n            <span class=\"tag\">\u7ade\u54c1\u5206\u6790<\/span><br \/>\n            <span class=\"tag\">AI\u8425\u9500\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u5e7f\u544a\u7d20\u6750\u4f18\u5316<\/span><br \/>\n            <span class=\"tag\">\u54c1\u724c\u5b9a\u5236<\/span><br \/>\n            <span class=\"tag\">\u8f6c\u5316\u7387\u63d0\u5347<\/span><br \/>\n            <span class=\"tag\">\u521b\u610f\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">\u6570\u5b57\u8425\u9500<\/span><br \/>\n            <span class=\"tag\">\u667a\u80fd\u521b\u4f5c<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u8ba4\u53ef\u201c\u4ece\u8d62\u5bb6\u5e7f\u544a\u5b66\u4e60\u201d\u7684\u601d\u8def\uff0c\u8ba4\u4e3a\u80fd\u7b80\u5316\u7814\u7a76\u8fc7\u7a0b\u3002\u4e3b\u8981\u95ee\u9898\uff1a\u5982\u4f55\u786e\u4fdd\u751f\u6210\u5e7f\u544a\u7684\u72ec\u7279\u6027\u3001\u5efa\u8bae\u589e\u52a0\u8bed\u6c14\u8c03\u8282\u6ed1\u5757\u3001\u652f\u6301\u89c6\u9891\u5e7f\u544a\u3001\u63d0\u4f9b\u4fa7\u8fb9\u5bf9\u6bd4\u529f\u80fd\u3001\u4f18\u5316\u5b9a\u4ef7\u53ef\u89c1\u6027\u3002\u6280\u672f\u53cd\u9988\uff1a\u5bf9OKLCH\u989c\u8272\u6a21\u5f0f\u89e3\u6790\u4e0d\u5b8c\u6574\u3002\u591a\u6570\u7528\u6237\u5bf9\u524d10\u6b21\u514d\u8d39\u548c\u6298\u6263\u5b9a\u4ef7\u8868\u793a\u6ee1\u610f\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                Goose Ads Remixer\u7cbe\u51c6\u5207\u5165\u4e86\u4e00\u4e2a\u9ad8\u4ef7\u503c\u4f46\u88ab\u5ffd\u89c6\u7684\u7f1d\u9699\uff1a\u5e7f\u544a\u521b\u610f\u7684\u201c\u9006\u5411\u5de5\u7a0b\u201d\u81ea\u52a8\u5316\u3002\u5b83\u7684\u6838\u5fc3\u5356\u70b9\u5e76\u975e\u901a\u7528AI\u751f\u6210\uff0c\u800c\u662f\u201c\u6570\u636e\u9a71\u52a8+\u54c1\u724c\u8d44\u4ea7\u9501\u5b9a\u201d\u2014\u2014\u53ea\u6293\u53d6\u957f\u671f\u5728\u6295\u3001\u81ea\u7136\u6dd8\u6c70\u7387\u4f4e\u7684\u8d62\u5bb6\u5e7f\u544a\uff0c\u518d\u5f3a\u5236\u63d2\u5165\u7528\u6237\u771f\u5b9eLogo\u3001\u4ea7\u54c1\u548c\u8272\u5f69\uff0c\u4ece\u800c\u907f\u5f00AI\u751f\u6210\u5e38\u89c1\u7684\u201c\u5851\u6599\u611f\u201d\u9677\u9631\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u6280\u672f\u5b9e\u73b0\u770b\uff0c\u4ea7\u54c1\u5de7\u5999\u5229\u7528\u4e86Meta\u7ade\u4ef7\u4f53\u7cfb\u7684\u516c\u5f00\u4fe1\u53f7\uff1a\u5e7f\u544a\u5b58\u6d3b\u65f6\u957f\u548c\u6301\u7eed\u82b1\u8d39\u662f\u6bd4\u70b9\u51fb\u7387\u66f4\u5f3a\u6548\u7684\u8f6c\u5316\u4ee3\u7406\u6307\u6807\u3002\u8fd9\u79cd\u201c\u656c\u754f\u5e02\u573a\u6570\u636e\u201d\u7684\u54f2\u5b66\uff0c\u8ba9\u4ea7\u54c1\u8131\u79bb\u4e86\u591a\u6570\u201c\u63d0\u793a\u8bcd\u751f\u6210\u5668\u201d\u7684\u5e7c\u7a1a\u75c5\u3002\u4f46\u7528\u6237\u53cd\u9988\u4e5f\u66b4\u9732\u4e86\u9690\u60a3\uff1a\u5f53\u8d62\u5bb6\u5e7f\u544a\u6a21\u5f0f\u88ab\u6279\u91cf\u590d\u5236\uff0c\u5e73\u53f0\u7b97\u6cd5\u662f\u5426\u4f1a\u60e9\u7f5a\u8fd9\u79cd\u201c\u540c\u8d28\u5316\u4ea7\u51fa\u201d\uff1f\u540c\u65f6\uff0c\u201c\u4ece\u8d62\u5bb6\u5b66\u6a21\u5f0f\u201d\u4e0e\u201c\u907f\u514d\u6284\u88ad\u201d\u4e4b\u95f4\u7684\u5e73\u8861\uff0c\u9700\u8981\u6301\u7eed\u7684\u54c1\u724c\u8d44\u4ea7\u6ce8\u5165\u80fd\u529b\u6765\u7ef4\u6301\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ea7\u54c1\u5728CLI\u548cAgent\u96c6\u6210\u4e0a\u7684\u5e03\u5c40\uff0c\u9884\u793a\u7740\u5b83\u8bd5\u56fe\u6210\u4e3aAI\u8425\u9500\u5de5\u4f5c\u6d41\u7684\u5e95\u5c42\u534f\u8bae\uff0c\u800c\u975e\u5355\u70b9\u5de5\u5177\u3002\u76ee\u524d\u6700\u5927\u7684\u77ed\u677f\u662f\u89c6\u9891\u5e7f\u544a\u652f\u6301\u4ecd\u201c\u79ef\u6781\u5f00\u53d1\u4e2d\u201d\uff0c\u5728\u77ed\u89c6\u9891\u4e3b\u5bfc\u7684\u5f53\u4e0b\u8fd9\u662f\u786c\u4f24\u3002\u53e6\u5916\uff0c\u5b9a\u4ef7\u9690\u85cf\u3001\u989c\u8272\u89e3\u6790\u4e0d\u517c\u5bb9\u73b0\u4ee3\u8272\u57df\u7b49\u95ee\u9898\uff0c\u900f\u9732\u51fa\u56e2\u961f\u5bf9B\u7aef\u4ed8\u8d39\u573a\u666f\u7684\u6253\u78e8\u8fd8\u4e0d\u591f\u7ec6\u817b\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4e00\u53e5\u8bdd\uff1a\u8fd9\u662fAI\u5728\u8425\u9500\u9886\u57df\u5c11\u6709\u7684\u201c\u806a\u660e\u4ea7\u54c1\u201d\uff0c\u4f46\u80fd\u5426\u4ece\u201c\u806a\u660e\u7684\u5de5\u5177\u201d\u8fdb\u5316\u6210\u201c\u4e0d\u53ef\u6216\u7f3a\u7684\u57fa\u5efa\u201d\uff0c\u53d6\u51b3\u4e8e\u5b83\u662f\u5426\u80fd\u5efa\u7acb\u52a8\u6001\u7684\u8d62\u5bb6\u5e7f\u544a\u6c60\u66f4\u65b0\u673a\u5236\uff0c\u5e76\u5148\u4e8e\u5e73\u53f0\u7b97\u6cd5\u8fed\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\">Goose Ads Remixer<\/span>\n                <\/div>\n<div class=\"comment-content\">The winning ads in your niche reveal what works: hooks, offers, copy structures, layouts. Goose learns those patterns and creates new ads for your brand with your real logo, product images, and messaging in minutes. First 10 ads free.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Product Hunt \ud83d\udc4b<\/p>\n<\/p>\n<p>We&#8217;re Shiv and Himanshu, makers of Goose Ads Remixer. Excited to launch it today!<\/p>\n<\/p>\n<h3><strong>What is Goose Ads Remixer? <\/strong>\ud83c\udf1f&nbsp;\u2728<\/h3>\n<p>Goose helps you create on-brand Meta ad creatives using patterns from ads already performing in your niche.<\/p>\n<p>Paste your website, choose the ads you like, and Goose creates a complete batch using your real logo, product images, messaging, and brand style.<\/p>\n<\/p>\n<h3><strong>The problem we faced <\/strong>\u26a0\ufe0f<\/h3>\n<p>Creating Meta ad creatives was painful for us. Agencies were expensive, generic AI tools produced low-quality work, and doing it ourselves took far too much time.<\/p>\n<\/p>\n<p><strong>Solution <\/strong>\u2705<\/p>\n<p>We noticed something simple: ads already performing in your niche are public. They reveal which hooks, offers, copy structures, and layouts are working right now.<\/p>\n<\/p>\n<p>So we built Goose Ads Remixer.<\/p>\n<\/p>\n<p>Goose learns from these winning patterns and creates new ads for your brand using your real logo, product images, and messaging.<\/p>\n<\/p>\n<h3><strong>How Goose Ads Remixer works <\/strong>\ud83d\ude80<\/h3>\n<ol>\n<li>\n<p>Create an account: <a href=\"http:\/\/www.make.gooseworks.ai\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">make.gooseworks.ai<\/a><\/p>\n<\/li>\n<li>\n<p>Paste your website<\/p>\n<\/li>\n<li>\n<p>Choose up to 15 ads from your niche<\/p>\n<\/li>\n<li>\n<p>Generate a complete batch of on-brand creatives in minutes<\/p>\n<\/li>\n<\/ol>\n<p>Goose doesn\u2019t copy the original ads. It learns from the principles behind what works and applies them to your brand.<\/p>\n<\/p>\n<h3><strong>Built for AI agents and humans <\/strong>\ud83d\udee0\ufe0f<\/h3>\n<\/p>\n<p>You can create ads directly from the web app:<\/p>\n<p>\ud83d\udc49 <a href=\"http:\/\/make.gooseworks.ai\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">make.gooseworks.ai<\/a><\/p>\n<\/p>\n<p>Or access Goose through your AI coding agent using our CLI:<\/p>\n<p>npx gooseworks install &#8211;all<\/p>\n<\/p>\n<h3><strong>Special for Product Hunt <\/strong>\ud83d\udd25\ud83d\udd25\ud83d\udd25<\/h3>\n<ol>\n<li>\n<p>Your first 10 ads are free.<\/p>\n<\/li>\n<li>\n<p>We\u2019re also giving Product Hunt users <strong>50% off our Starter and Pro plans<\/strong>. Use coupon code: &#8220;<strong>PH50<\/strong>&#8220;<\/p>\n<\/li>\n<\/ol>\n<p>We\u2019d love your honest feedback, especially if you run Meta ads. Which niches, ad formats, or creative styles should we add next?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>20<\/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\/@himanshu_bamoria1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@himanshu_bamoria1<\/a>&nbsp;Foxy chose your launch out of today&#8217;s batch \ud83e\udd8a \u2014 most sites skip multilingual purely on cost, and undercutting Weglot 5\u00d7 removes the reason to. More than an upvote: a free launch kit + your launch rewritten native to where builders actually are \u2192 <a href=\"https:\/\/foxplug.com\/g\/fb9751d08bc34d1da359\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/foxplug.com\/g\/fb9751d08bc34d1da359<\/a><\/p>\n<p>FoxPlug, from one URL: video, native posts, citation-grade articles, GIFs, pitches to journalists on your beat, and getting cited where AI answers your category \u2014 and it keeps going every time you ship:<\/p>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=NY6uIkBXExc\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/www.youtube.com\/watch?v=NY6uIkBXExc<\/a><\/p>\n<p>$29\/month \u00b7 <a href=\"https:\/\/foxplug.com\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/foxplug.com<\/a><\/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\/@himanshu_bamoria1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@himanshu_bamoria1<\/a>&nbsp;<\/p>\n<p>fashion is really about one thing: creating a personal image that people will remember. This means that Elegant fashion is not about following what is popular at the moment. Elegant fashion is about looking good without trying hard. This is what makes Elegant fashion different from types of fashion.<a href=\"https:\/\/workonlinebykhadija.blogspot.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/workonlinebykhadija.blogspot.com\/<\/a><\/p>\n<p>When it comes to fashion you need to think about what pieces to buy. You should buy things that will not go out of style soon. These are things like jackets, simple trousers and classic dresses. These things are great because you can wear them times and they will always look good. They are the pieces that you need to create an Elegant wardrobe.<\/p>\n<\/p>\n<p>Color is also very important when it comes to fashion. Elegant outfits usually use colors like black, white, beige and grey. These colors are great because they are easy to mix and match. You can create different outfits with just a few pieces. You can also add some colors or deeper colors to make things more interesting.. You should always make sure that your outfit looks balanced.<a href=\"https:\/\/workonlinebykhadija.blogspot.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">fashion<\/a><\/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\/@himanshu_bamoria1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@himanshu_bamoria1<\/a>&nbsp;<\/p>\n<p>Regular consumption of fresh summer salad can<a href=\"https:\/\/foodblogbykhansa.blogspot.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\"> benefit in weight <\/a>management, digestion, hydration and enhancing the immune system. Many summer vegetables and fruits are high in water and help to keep your body hydrated in hot weather. The vitamins A, C, K and antioxidants benefit skin health, strong bones and a healthy immune system, and the fiber-rich ingredients help keep the gut healthy. Making healthy salads a part of your everyday diet is a great way to get more fresh fruits and vegetables and keep you active and healthy.<\/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 \ud83d\udc4b I&#8217;m Soham &#8211; one of the makers of Goose Ads.<\/p>\n<\/p>\n<p>We needed creatives for our own brands, so we tried the generic tools first. We faced two major problems every time.<\/p>\n<\/p>\n<p><strong>Problem 1 \u274c<\/strong> &#8211; they start from a blank prompt, so you have no idea whether the ad even works.<\/p>\n<\/p>\n<p><strong>\u2705<\/strong> Goose starts from ads already proven to convert in your niche and remixes those, so you&#8217;re building on what&#8217;s winning, not guessing.<\/p>\n<\/p>\n<p><strong>Problem 2 \u274c<\/strong> &#8211; even when the idea was right, the output had a tell. You couldn&#8217;t always name it, but you knew instantly a machine made it &#8211; or it just looked like something you&#8217;d never actually spend money running.<\/p>\n<p>After seeing enough, the tell was always the same five things \ud83d\udc47<\/p>\n<ol>\n<li>\n<p>The logo close but subtly rebuilt instead of your real one<\/p>\n<\/li>\n<li>\n<p>Text that looks right until you actually read it<\/p>\n<\/li>\n<li>\n<p>Stock-y product instead of your actual product<\/p>\n<\/li>\n<li>\n<p>Brand colors drifted a few shades off<\/p>\n<\/li>\n<li>\n<p>A layout that&#8217;s &#8220;an ad&#8221; but not yours<\/p>\n<\/li>\n<\/ol>\n<p><strong>\u2705<\/strong> So that&#8217;s what Goose kills \ud83e\udebf<\/p>\n<\/p>\n<p>It pulls your real logo, real product shots, and real messaging, then reviews its own output against your brand and regenerates in a loop until it&#8217;s right. Nano Banana Pro, GPT-Image-2 and Opus checking each other&#8217;s work.<\/p>\n<\/p>\n<p>We&#8217;re live today and want to make it sharper \u2728<\/p>\n<\/p>\n<p>If you run Meta ads &#8211; what&#8217;s the one thing that instantly makes you clock a creative as slop? That&#8217;s the exact thing we&#8217;re going after.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>7<\/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\/@sohmehta\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sohmehta<\/a>&nbsp;pretty cool work <br \/>wdym by &#8216;ads that work &#8216; here ? Is it based on actual performance data, or curation (well made, professional looking) ?<\/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\/@sohmehta\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sohmehta<\/a>&nbsp;this is extremely powerful. Super super useful!<\/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 &#8211; I&#8217;m Shiv, one of the makers of Goose Ads.<\/p>\n<\/p>\n<p>I thought I could add a little more color about the company we&#8217;re trying to build.<\/p>\n<\/p>\n<p>The key insight we are building Gooseworks around is that <strong>AI agents like Claude Code, Cowork, Codex, etc are becoming the operating system for knowledge work<\/strong>.<\/p>\n<\/p>\n<p>But these agents need the right tools to do the work. That&#8217;s why <strong>Goose Ads is built natively for AI agents as first-class citizens<\/strong>.<\/p>\n<\/p>\n<p>We&#8217;re <strong>building the skills, tools and integrations that enable your AI agents to do real work<\/strong>, starting with the #1 problem for companies \u2013 growth.<\/p>\n<\/p>\n<p>Goose Ads is a starting point towards that vision.<\/p>\n<\/p>\n<p>We&#8217;re looking forward to hearing what you think and how we can make it better.<\/p>\n<\/p>\n<p>Please feel free to use this launch to share your thoughts and feedback to help us improve.<\/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<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>honestly the first 10 free is what got me to try it, and the remix-on-your-own-logo part is genuinely cool. one thing i&#8217;d love though is a quick way to tweak the tone of the generated copy before exporting, like a little slider for playful vs professional. would save me having to rewrite every batch that comes out a little too salesy.<\/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\/@gllfevp\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@gllfevp<\/a> really appreciate your feedback! Right now you can tweak the tone of the generated copy in terms of keeping it either mostly your brand theme or the example ad&#8217;s theme, which indirectly changes the playful\/professional tone. We&#8217;ll definitely be adding more such features in future updates. <\/p>\n<p>Thanks so much for being an early user. \u2764\ufe0f<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/5ebe9508-a9ad-4422-ae00-f00203c96a4d.png?auto=compress,format&amp;codec=mozjpeg&amp;cs=strip\" style=\"max-width: 100%\"><\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@gllfevp\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@gllfevp<\/a>&nbsp;this is great feedback, 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\">Like the idea of learning from winning ads instead of starting from scratch. How do you make sure the remixed creatives stay unique while keeping the proven elements that made the original ads work?<\/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\/@hamza_afzal_butt\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@hamza_afzal_butt<\/a>&nbsp;Great question &#8211; the agent uses the concepts (style, angles, etc) from the base template but modifies everything else (product images, logos, copy, etc) to make it actually look and feel like your brand. The original ad is just an inspiration.<\/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>Been using it for a few weeks now, very impressive<\/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\/@michael_lorenzos1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@michael_lorenzos1<\/a>&nbsp;Awesome! Thanks so much for being one of our early users \u2764\ufe0f<\/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! Cool concept. While scraping our site, it could only return #000000 as a primary color and I wonder if it&#8217;s because our colors are OKLCH. Perhaps something to look into.<\/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\/@grace_knowhow\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@grace_knowhow<\/a>&nbsp;Hey grace, could you DM me your email? Will look into it. You should be able to select the right set of colours for your brand in the brand kit. <\/p>\n<p>Thanks so much for sharing your feedback!<\/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 launch!<br \/>Goose can reduce the effort of running ads by a huge amount.<\/p>\n<\/p>\n<p>Can goose also make video ads?<\/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\/@soni_karan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@soni_karan<\/a>&nbsp;Hey Karan. Yes, click on Videos and you&#8217;ll see a few videos that are instantly remixable. We&#8217;re actively working to add more videos to the library. <\/p>\n<p>Thanks so much for your kind words! \ud83d\ude42<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/52833c44-0b16-4ca0-9eb1-0675d51c8d69.png?auto=compress,format&amp;codec=mozjpeg&amp;cs=strip\" style=\"max-width: 100%\"><\/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>So I&#8217;ve been using ProductHunt for a couple of weeks now. Some products get a cursory glance, some I play with for a little while. This one properly sucked me in and I have really enjoyed using it. The product feels professional and fun &#8211; and it definitely delivers results. I suspect I will need to keep tweaking my settings and improving my prompts to generate output that is the right balance between the original source and my own brand. And a couple of times a &#8220;work in progress&#8221; was better than the final output (would be good to know if I could revert back to a &#8220;work in progress&#8221; stage of the process). But overall this looks great &#8211; and I will definitely revisit. My one comment&#8230; pricing was hard to find. I discovered it in the documentation, but it certainly took me a while! Which seems a shame because (starting at $29 per month) it feels very fair pricing.<\/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\/@martin_tanner\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@martin_tanner<\/a>&nbsp;Hey Martin, thanks so much for the feedback! There&#8217;s a lot more value in making sure the brand kit is on point and choosing the right templates. prompting better is certainly up there, wondering if you&#8217;ve tried iterating the brand kit? Most customers who come back to us say that once they got the brand kit right, all of their generations improved by a significant margin. <\/p>\n<p>On pricing, you can view it right in your settings on the top right of the screen. We&#8217;re offering a 50% discount for all our Product Hunt members.<\/p>\n<p>Thanks for sharing your thoughts again, I hope i was able to answer your questions adequately!<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/7d482872-3c06-465b-8c38-69aa4ea95cea.png?auto=compress,format&amp;codec=mozjpeg&amp;cs=strip\" 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=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@martin_tanner\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@martin_tanner<\/a>&nbsp;Great Experience here 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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I&#8217;d love a side-by-side explanation showing what changed from the inspiration ad to the generated version. Does that happen already? <\/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\/@roopreddy\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@roopreddy<\/a>&nbsp;Hey Roop! You can click on Original and see the inspiration ad. Finals are the generated ones. Hope that helps! <\/p>\n<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/2718c275-91de-4dcf-9f1c-2d36f1a953b8.png?auto=compress,format&amp;codec=mozjpeg&amp;cs=strip\" style=\"max-width: 100%\"><\/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 a performance marketer. I like this product because I was doing all of this research manually. Great ads leave clues, and this feels like it&#8217;s decoding those clues automatically.<\/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\/@ragsyme\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ragsyme<\/a>&nbsp;Thanks Raghav! Yes absolutely you&#8217;re spot on. Would love to hear more feedback from 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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>We are about to start running ads for our brand. This is a very timely launch. Congrats on launching! <\/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\/@zerotox\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@zerotox<\/a>&nbsp;Thanks so much Kumar! Would love to hear your thoughts and feedback!<\/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 wondering how Goose knows which patterns actually drove performance versus just looking visually similar? Does it decide on data-first or visual aesthetics first? <\/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\/@ankur_jeswani\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ankur_jeswani<\/a>&nbsp;really good question.<\/p>\n<p>it&#8217;s data-first, not visual. we don&#8217;t pick an ad because it looks nice &#8211; we start from the ones that have been <em>running the longest<\/em> in your niche. brands kill losing creatives fast, so longevity and sustained spend are the strongest public proxies for &#8220;this is actually converting.&#8221; the visual is downstream of that signal, never the starting point.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>How do you handle ad fatigue with the remixed ads, and do you have any plans to integrate with popular ad platforms for seamless deployment?<\/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\/@aymnart\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aymnart<\/a>&nbsp;Great Question! the remix approach actually helps here &#8211; because Goose generates a full batch from multiple winning patterns, not one creative, you get real variation to rotate through instead of running the same ad until it burns out. [if true: you can also re-run against fresh winners in your niche as new ads start performing, so your rotation stays current.]<\/p>\n<\/p>\n<p>For deployment we will be launching integrations soon!<\/p>\n<p>Hope that answers your question.<\/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 like the positioning because every marketer already studies winning ads, this just speeds up the creative process. <\/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\/@himani_sah1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@himani_sah1<\/a>&nbsp;You&#8217;re absolutely spot on Himani! Thanks \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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/products\/gooseworks\" target=\"_blank\" rel=\"noopener\">@himanshu_bamoria1<\/a>Congrats on bringing Goose to PH! \ud83c\udf89 Starting from winning niche patterns rather than a blank prompt makes total sense.<\/p>\n<p>Right now it looks heavily focused on static\/carousel ad creatives. Are you planning to expand this remixing concept into short-form video\/UGC formats or motion graphic templates as well? Would love to hear how you see video remixing fitting onto the roadmap!<\/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\/@franz_briones\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@franz_briones<\/a>&nbsp;thank you \ud83e\udebf and yes &#8211; video&#8217;s already here. check the videos section, there&#8217;s a set of short-form\/UGC creatives you can remix on-brand today, same as static.<\/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 Product Hunt \ud83d\udc4b<\/p>\n<p>Adding to what Shiv and Himanshu said \u2014 here&#8217;s the itch that got me to build this.<\/p>\n<p>Making ads always felt like a lose-lose: either expensive (agencies, freelancers) or a blank-canvas nightmare (staring at a design tool with no clue what actually converts). And the whole time, the ads that ARE winning in your niche are sitting right there in public. Nobody&#8217;s short on inspiration \u2014 they&#8217;re short on a fast way to act on it.<\/p>\n<p>That&#8217;s the gap we went after. Not generic AI slop, and not a copy of someone else&#8217;s ad. Your brand, the proven structure.<\/p>\n<p>A couple things I&#8217;d love for you to try:<\/p>\n<ul>\n<li>\n<p>Generate a batch and see how it adapts the winning pattern to your brand<\/p>\n<\/li>\n<li>\n<p>Drop in a template or an ad you admire and remix it for your product<\/p>\n<\/li>\n<\/ul>\n<p>We&#8217;re all ears \u2014 if you try it, I&#8217;d genuinely love your feedback. Tell me what&#8217;s working, what&#8217;s missing, or what would make this a daily tool for 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<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>creative process improvement over content creation is very useful &#8211; I wonder how precise the brand kit is. Most of these product rely on the brand kit accuracy for output this is creating it automatically ? <\/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\/@nikolaos_chr\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@nikolaos_chr<\/a>&nbsp;That&#8217;s a great question \u2013 we have done a lot of work on the brand research, so the agent is very good at creating accurate brand kits.<\/p>\n<\/p>\n<p>We also give users full control over the brand kit so they can review, edit and upload their own assets and templates as well. That&#8217;s an important step to getting really great generations.<\/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 like that this focuses on improving the creative process instead of just generating random ad designs. Using my own brading and messaging would make the results much easier to use right away. <\/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\/@john__milton\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@john__milton<\/a>&nbsp;\u2013 exactly. When you sign up, Goose researches your brand and creates a brand kit with your logo, product assets, catalog, messaging, and visual language.<\/p>\n<\/p>\n<p>It then finds the most relevant ad templates performing in your niche and remixes them into on-brand creatives for your company.<\/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\/@himanshu_bamoria1\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"himanshu_bamoria1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@himanshu_bamoria1<\/a> Like the idea of learning from winning ads instead of starting from scratch. Upwards and onwards \ud83d\ude80<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congratulations on the launch! Do you support creating video ads, for focusing on image ads for now?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on the launch. One thing I&#8217;m curious about, the Meta Ad Library shows you which ads are running and for how long, but not spend or performance. So how do you decide which ones are actually winning vs just live?<\/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>when Goose learns the pattern from a winning ad in my niche, where&#8217;s the line between remixing the structure and just recreating that competitor&#8217;s ad with my logo swapped in &#8211; is that boundary a manual review step or does the model handle it?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the nano banana \/ gpt-image-2 \/ opus checking-each-other&#8217;s-work loop is the interesting bit &#8211; when the three disagree on whether an output passes the brand check, is there a tiebreaker or does it just regenerate until they converge?<\/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 think if everybody is learning from the same winning ads then the meta feeds would really look similar over time.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the brand-drift question above is the UX risk, but there&#8217;s a legal one underneath it too: &#8220;remixing patterns&#8221; is fine, but if the tool is looking at a specific competitor&#8217;s ad to generate from, how do you make sure it&#8217;s not echoing their actual copy phrasing rather than just the structure? a hook and a layout aren&#8217;t protectable, but a distinctive line of ad copy can edge into IP territory if it comes out too close to verbatim<\/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>Just signed up for Goose Ads Remixer and tried it for my website <a href=\"https:\/\/www.tooljunction.io\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">ToolJunction<\/a>. I\u2019ve used a few AI ad creative tools before, but goose feels more polished and practical at this price point. <\/p>\n<p>Starting with ads that are already working in your niche, instead of generating from a blank prompt, makes a noticeable difference. And, the outputs felt much closer to something I could actually run, and the overall experience was smooth.<\/p>\n<p>The only issue I noticed was that it picked the wrong color palette for my website. Great work, team!<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/1df1f2b4-db81-4c9d-92f1-68816371560e.png?auto=compress,format&amp;codec=mozjpeg&amp;cs=strip\" style=\"max-width: 100%\"><\/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>Most AI ad tools generate noise.<\/p>\n<p>This actually helps teams iterate on what&#8217;s already working. Thats a much stronger approach. <\/p>\n<\/p>\n<p>Congrats on the launch<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Congrats! Big fan of the product<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on your launch! Excited to try this out. <\/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\/EZQHLLA26P3MZM\" class=\"app-title\">PgDog<\/a><\/p>\n<div class=\"one-liner\">Scale PostgreSQL without changing your app<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">206<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>PgDog\u662f\u4e00\u6b3e\u5f00\u6e90PostgreSQL\u4e2d\u95f4\u4ef6\uff0c\u901a\u8fc7\u8fde\u63a5\u6c60\u3001\u8d1f\u8f7d\u5747\u8861\u548c\u900f\u660e\u5206\u7247\u4ee3\u7406\uff0c\u8ba9\u5f00\u53d1\u8005\u65e0\u9700\u4fee\u6539\u5e94\u7528\u4ee3\u7801\u5373\u53ef\u5b9e\u73b0\u6570\u636e\u5e93\u7684\u6c34\u5e73\u6269\u5c55\uff0c\u89e3\u51b3\u4f20\u7edf\u65b9\u6848\u4e2d\u67b6\u6784\u6539\u9020\u4ee3\u4ef7\u9ad8\u3001\u8fde\u63a5\u74f6\u9888\u9891\u53d1\u7684\u95ee\u9898\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/1d6cabb8-2886-45f4-b3dd-1f92d43950b3.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\/24290589-fd66-4a93-8d96-a98d32c2745f.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\/29c75bab-bcad-4747-813b-001e8d49f90b.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\/7d56d1f7-c607-45ae-8181-31bd878fc34b.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=y6sebczWZ-c\"><source src=\"https:\/\/www.youtube.com\/watch?v=y6sebczWZ-c\" 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\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">Database<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">PostgreSQL\u4e2d\u95f4\u4ef6<\/span><br \/>\n            <span class=\"tag\">\u8fde\u63a5\u6c60<\/span><br \/>\n            <span class=\"tag\">\u8d1f\u8f7d\u5747\u8861<\/span><br \/>\n            <span class=\"tag\">\u900f\u660e\u5206\u7247<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90<\/span><br \/>\n            <span class=\"tag\">\u6570\u636e\u5e93\u4ee3\u7406<\/span><br \/>\n            <span class=\"tag\">\u9ad8\u5e76\u53d1<\/span><br \/>\n            <span class=\"tag\">\u67e5\u8be2\u8def\u7531<\/span><br \/>\n            <span class=\"tag\">\u8de8\u5206\u7247\u4e8b\u52a1<\/span><br \/>\n            <span class=\"tag\">\u4f01\u4e1a\u7248<\/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\u9ad8\u5ea6\u8ba4\u53ef\u5176\u201c\u65e0\u9700\u6539\u4ee3\u7801\u201d\u7684\u900f\u660e\u5206\u7247\u548c\u8fde\u63a5\u6c60\u80fd\u529b\uff0c\u6838\u5fc3\u5173\u6ce8\u70b9\u96c6\u4e2d\u5728\u5206\u7247\u4e8b\u52a1\u534f\u8c03\u3001\u8bfb\u5199\u5206\u79bb\u3001\u957f\u4e8b\u52a1\u65ad\u8fde\u3001\u6a21\u5f0f\u8fc1\u79fb\u7684\u539f\u5b50\u6027\uff0c\u4ee5\u53ca\u914d\u7f6e\u540c\u6b65\u7684HA\u8bbe\u8ba1\u3002\u4f01\u4e1a\u7248\u63d0\u4f9b\u4e86\u76d1\u63a7UI\u548c\u914d\u7f6e\u540c\u6b65\uff0c\u4f46\u7528\u6237\u5efa\u8bae\u539f\u751f\u96c6\u6210\u66f4\u76f4\u89c2\u7684\u76d1\u63a7\u9762\u677f\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                PgDog\u662f\u4e00\u628a\u7cbe\u51c6\u7684\u624b\u672f\u5200\uff0c\u800c\u975e\u4e07\u80fd\u7684\u745e\u58eb\u519b\u5200\u3002\u4eceProduct Hunt\u7684\u6570\u636e\u770b\uff0c\u5b83\u7684\u6838\u5fc3\u4ef7\u503c\u7edd\u975e\u7b80\u5355\u7684\u201cpgBouncer\u66ff\u4ee3\u54c1\u201d\uff0c\u800c\u662f\u628a\u201c\u900f\u660e\u5206\u7247\u201d\u8fd9\u4e2a\u4ee5\u524d\u9700\u8981\u91cd\u5ea6DBA\u4ecb\u5165\u7684\u810f\u6d3b\uff0c\u5c01\u88c5\u8fdb\u4e86PostgreSQL\u534f\u8bae\u5c42\u3002200\u4e07QPS\u7684\u751f\u4ea7\u6570\u636e\u3001\u8de8\u5206\u7247\u4e8b\u52a1\u7684\u4e24\u9636\u6bb5\u63d0\u4ea4\u652f\u6301\uff0c\u4ee5\u53ca\u201c\u4e0d\u65ad\u8fde\u201d\u7684\u65e0\u72b6\u6001HA\u8bbe\u8ba1\uff0c\u8fd9\u51e0\u4e2a\u70b9\u786e\u5b9e\u786c\u6838\uff0c\u76f4\u63a5\u6233\u4e2d\u4e86SaaS\u56e2\u961f\u5728\u7a81\u53d1\u6d41\u91cf\u4e0b\u201c\u8fde\u63a5\u6c60\u7206\u70b8\u201d\u548c\u201c\u5206\u7247\u8def\u7531\u88f8\u5199\u4ee3\u7801\u201d\u7684\u819d\u76d6\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u522b\u88ab\u8bc4\u8bba\u533a\u7684\u4e00\u7247\u53eb\u597d\u58f0\u8ff7\u60d1\u3002\u8fd9\u6b3e\u4ea7\u54c1\u7684\u771f\u6b63\u95e8\u69db\u5728\u4e8e\uff1a\u5b83\u7684\u900f\u660e\u4ee3\u7406\u7406\u5ff5\u5728\u7b80\u5355\u8bfb\u5199\u573a\u666f\u4e0b\u662f\u6548\u7387\u795e\u5668\uff0c\u53ef\u4e00\u65e6\u9047\u5230\u590d\u6742\u67e5\u8be2\uff08\u5982\u8de8\u5206\u7247\u7684JOIN\u6216\u7a97\u53e3\u51fd\u6570\uff09\uff0c\u8981\u4e48\u6027\u80fd\u6025\u5267\u4e0b\u964d\uff0c\u8981\u4e48\u76f4\u63a5\u62a5\u9519\u3002\u8bc4\u8bba\u533a\u91cc\u90a3\u4f4dJava\/Spring\u7528\u6237\u7684\u8ffd\u95ee\u975e\u5e38\u4e13\u4e1a\u2014\u2014\u5982\u4f55\u5904\u7406Prepared Statement\u548c\u4f1a\u8bdd\u72b6\u6001\uff1f\u5b98\u65b9\u56de\u7b54\u201c\u652f\u6301\u8de8\u5206\u7247\u4e8b\u52a1\u201d\u5176\u5b9e\u85cf\u4e86\u4e00\u53e5\u8bdd\uff1a\u524d\u63d0\u662f\u4f60\u7684SQL\u80fd\u88ab\u5b83\u7406\u89e3\u3002\u8fd9\u610f\u5473\u7740\uff0c\u5bf9\u4e8e\u91cd\u5ea6\u4f9d\u8d56\u5b58\u50a8\u8fc7\u7a0b\u3001\u81ea\u5b9a\u4e49\u51fd\u6570\u6216\u590d\u6742CTE\u7684\u5e94\u7528\uff0c\u8fc1\u79fb\u5230PgDog\u7684\u201c\u65e0\u6539\u4ee3\u7801\u201d\u53ef\u80fd\u53d8\u6210\u201c\u5077\u5077\u6539\u5f88\u591a\u4ee3\u7801\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u66f4\u503c\u5f97\u8b66\u60d5\u7684\u662f\uff0c\u5176\u4f01\u4e1a\u7248\u5728\u914d\u7f6e\u540c\u6b65\u548c\u76d1\u63a7\u4e0a\u7684\u201c\u4ed8\u8d39\u5899\u201d\u3002\u793e\u533a\u7248\u7684\u591a\u5b9e\u4f8b\u65e0\u72b6\u6001\u8bbe\u8ba1\u867d\u7136\u4fdd\u8bc1\u4e86HA\u7b80\u6d01\u6027\uff0c\u4f46\u5728\u5206\u7247\u91cd\u5e73\u8861\u65f6\uff0c\u5982\u679c\u4f9d\u8d56\u5916\u90e8\u4e00\u81f4\u6027\u53d1\u73b0\u670d\u52a1\uff08\u5982Consul\u6216etcd\uff09\uff0c\u5b9e\u9645\u4e0a\u662f\u628a\u5355\u70b9\u98ce\u9669\u8f6c\u79fb\u4e86\u3002\u800c\u4f01\u4e1a\u7248\u63d0\u4f9b\u7684\u201c\u539f\u5b50\u5316\u914d\u7f6e\u540c\u6b65\u201d\u624d\u662f\u89e3\u51b3\u8fd9\u4e00\u95ee\u9898\u7684\u5b8c\u6574\u65b9\u6848\u3002\u6240\u4ee5\uff0c\u5b83\u7684\u5b9a\u4f4d\u5f88\u660e\u786e\uff1a\u7ed9\u90a3\u4e9b\u4e1a\u52a1\u6a21\u578b\u76f8\u5bf9\u89c4\u6574\u3001\u613f\u610f\u4e3a\u5173\u952e\u53ef\u9760\u6027\u4ed8\u8d39\u7684\u56e2\u961f\uff0c\u63d0\u4f9b\u4e00\u4e2a\u6bd4\u81ea\u7814ShardingSphere\u6216MySQL\u4e2d\u95f4\u4ef6\u66f4\u4f4e\u5fc3\u667a\u8d1f\u62c5\u7684PostgreSQL\u9009\u9879\u3002\u5bf9\u4e8e\u9884\u7b97\u6709\u9650\u6216\u5fae\u670d\u52a1\u67b6\u6784\u6781\u5176\u590d\u6742\u7684\u56e2\u961f\uff0c\u5b83\u4e0d\u4e00\u5b9a\u6bd4\u624b\u5199\u5e94\u7528\u5c42\u8def\u7531\u66f4\u7701\u5fc3\u2014\u2014\u8fd9\u53d6\u51b3\u4e8e\u4f60\u5230\u5e95\u6709\u591a\u5c11\u201c\u65e0\u9700\u6539\u4ee3\u7801\u201d\u7684\u5e95\u6c14\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\">PgDog<\/span>\n                <\/div>\n<div class=\"comment-content\">PgDog is an open source connection pooler, load balancer, and sharding proxy for PostgreSQL. It&#8217;s Postgres-compliant, fast, secure and built in the open by a community of database engineers.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>finally a pgpooler alternative that actually feels modern, set it up behind our staging cluster last week and the latency under load was noticeably more stable than pgbouncer. love that it speaks the postgres protocol 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>Super cool, glad it works for you!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">We&#8217;ve been working on PgDog for over a year. It&#8217;s running in production, serving over 2M queries per second across dozens of deployments. Sharding is working, too! Building PgDog in the open has been really great: our users and customers contribute features and bug fixes, every day. Give it a try and let us know what you think!<\/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! The &#8220;without changing your app&#8221; part is the real pitch here. I run a Java\/Spring stack on Postgres 17 and an embarrassing share of my production incidents trace back to connection handling \u2014 pool exhaustion during traffic spikes, session state breaking when something in the middle does transaction-level pooling, that kind of thing. Two questions: does PgDog do transaction-mode pooling \u00e0 la PgBouncer, and if so how do you handle prepared statements \/ session state? And is the sharding routing done by parsing the query itself, or do I hint it? Genuinely curious \u2014 this layer is where I&#8217;ve been burned the most.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The &#8220;scale Postgres without changing your app&#8221; framing is the part that matters for teams that can&#8217;t stop to re-architect \u2014 connection pooling plus transparent routing means the app stays naive. My one question as I&#8217;d drop this in front of an existing service: how does PgDog handle a single transaction that touches rows on multiple shards \u2014 does it coordinate the cross-shard write, or is keeping a transaction inside one shard still the app&#8217;s job? Curious where the sharding proxy&#8217;s transparency stops.<\/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>We support cross-shard transactions, so as long as we support the query your app is sending, it should work.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>2M qps in production is the number that actually matters here. schema migrations on a sharded setup &#8211; does PgDog coordinate an ALTER TABLE across all shards atomically, or is sequencing that still on the DBA?<\/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>Yup, using two-phase commit.<\/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 config-driven instances not talking to each other is a clean HA story, but during a shard rebalance does every instance get the new shard map atomically, or is there a window where two instances disagree on where a shard actually lives?<\/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>We synchronize config updates in the enterprise edition, so there shouldn&#8217;t be a situation when the sharding map on one instance is different from another.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>How do you plan to handle failover and redundancy in PgDog, especially in cases where the load balancer or connection pooler itself becomes a single point of failure?<\/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>We run multiple instances. They are config-driven, so they don&#8217;t talk to each other. HA by design.<\/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>Lev \u2014 2M qps across production deployments for over a year is a real data point, not a launch-day claim (as Gal put it below). WinBidIQ&#8217;s Postgres load is basically bimodal: a nightly batch job writes tens of thousands of updated federal opportunity rows scraped daily, then daytime traffic is almost all reads \u2014 scoring, dashboard, search \u2014 from SaaS users. Right now we just add read replicas and hope the app connects to the right one. Does PgDog handle read\/write splitting itself, routing reads to replicas automatically, or is that still a decision the app has to make before the query ever reaches PgDog?<\/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! Running a SaaS on Neon&#8217;s serverless Postgres \u2014 connection pooling is one of those things you don&#8217;t think about until it bites you in production. Couple of questions: how does PgDog handle the connection limit quirks of serverless Postgres vs traditional dedicated instances? And is there a recommended setup for a Next.js + Prisma stack?<\/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>PgDog works with all Postgres databases, incl. the serverless kind. It&#8217;ll try to minimize the number of connections it needs in both, so you should see quite a bit of an improvement if you deploy it in front of Neon, for example.<\/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>PgDog&#8217;s connection pooling and transparent query routing is technically elegant. It removes the need to re-architect your data layer, which saves weeks of migration work. We&#8217;ve hit connection saturation issues under bursty SaaS workloads and this seems like a real fix. How does PgDog handle long-running transactions during a shard rebalance or failover?<\/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>If the transaction is taking too long, we break it. Failovers are immediate, so we break the transaction and bubble up the error to the client.<\/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. One thing that would help teams adopt this faster is a built-in dashboard or web UI for live monitoring of pool stats, query latency, and shard distribution. Most teams using pgBouncer end up bolting on tools like pgwatch2 or custom Grafana setups, so having something more turnkey would be a real differentiator.<\/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>That&#8217;s included in the enterprise edition: <a href=\"https:\/\/docs.pgdog.dev\/enterprise_edition\/control_plane\/#installation\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/docs.pgdog.dev\/enterprise_edition\/control_plane\/#installation<\/a><\/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\">now that is engineering!<\/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>thanks! we try<\/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>2M qps in production is a real number, not a launch-day claim. the part I&#8217;d actually worry about with transparent sharding is cross-shard joins and multi-shard transactions, since that&#8217;s usually where these proxies either quietly fall back to something expensive or just reject the query outright. does pgdog handle that at the protocol level too, or is there a class of queries you tell people to just not run against a sharded setup<\/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 appreciate the honesty in positioning this as scaling without forcing app changes. Usually, &#8220;seamless scaling&#8221; secretly means rewriting half your queries to fit a proprietary router, so tackling this transparently at the protocol level makes a ton of sense.<\/p>\n<p>Wondering what the tradeoff on latency looks like under the hood, when it&#8217;s intercepting traffic on the fly, is there a noticeable overhead for high frequency, simple reads compared to just hitting standard postgres?<\/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>Very little overhead. If you&#8217;re running a connection pooler already (e.g., pgbouncer), you won&#8217;t notice much of a difference.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#5<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/PBM6A2I6CPYESK\" class=\"app-title\">Agentcard for companies<\/a><\/p>\n<div class=\"one-liner\">Give your agent a debit card<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">174<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Agentcard\u8ba9AI\u4ee3\u7406\u62e5\u6709\u4e13\u5c5e\u501f\u8bb0\u5361\uff0c\u4f01\u4e1a\u53ef\u8bbe\u7f6e\u5355\u6b21\u4f7f\u7528\u3001\u56fa\u5b9a\u9884\u7b97\u7684\u865a\u62df\u5361\uff0c\u81ea\u52a8\u5b8c\u6210\u5728\u7ebf\u652f\u4ed8\uff0c\u89e3\u51b3AI\u81ea\u4e3b\u6d88\u8d39\u65f6\u7f3a\u4e4f\u5b89\u5168\u53ef\u63a7\u652f\u4ed8\u5de5\u5177\u7684\u95ee\u9898\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/63c7931c-8787-4ed2-8afd-ce6edd93d754.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/tjlIM3T1j_Q\"><source src=\"https:\/\/youtu.be\/tjlIM3T1j_Q\" 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\/d379d1b0-0450-4a2d-83e5-e9c5ae31c656.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\/e453b2e0-799c-44c0-a9dc-dc69d3f54dda.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\/292a0d2f-2204-4179-b8f5-7777a15908f8.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\/7894811e-3bd8-4419-8bf8-de397eb3321c.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\/32abc394-21b1-4bab-baef-23a9d6deb2f3.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\/6968256d-673d-4155-be0a-360c7505adbe.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\">Fintech<\/span><br \/>\n            <span class=\"tag\">Payments<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u652f\u4ed8<\/span><br \/>\n            <span class=\"tag\">\u865a\u62df\u501f\u8bb0\u5361<\/span><br \/>\n            <span class=\"tag\">\u5355\u6b21\u4f7f\u7528\u5361<\/span><br \/>\n            <span class=\"tag\">\u4ee3\u7406\u652f\u4ed8\u7ba1\u63a7<\/span><br \/>\n            <span class=\"tag\">\u667a\u80fd\u4f53\u94b1\u5305<\/span><br \/>\n            <span class=\"tag\">\u4f01\u4e1a\u8d22\u52a1\u5b89\u5168<\/span><br \/>\n            <span class=\"tag\">\u81ea\u52a8\u5316\u91c7\u8d2d<\/span><br \/>\n            <span class=\"tag\">\u9884\u7b97\u63a7\u5236<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u5173\u6ce8\u5355\u6b21\u5361\u80fd\u5426\u9632\u91cd\u590d\u6263\u6b3e\u3001\u652f\u4ed8\u5931\u8d25\u91cd\u8bd5\u65f6\u7684\u5e42\u7b49\u6027\u3001\u5546\u6237\u63a5\u53d7\u5ea6\u3002\u5efa\u8bae\u589e\u52a0\u6bcf\u4ee3\u7406\u989d\u5ea6\u9650\u5236\u3001\u5546\u5bb6\u767d\u540d\u5355\u3001\u5b9e\u65f6\u4ea4\u6613\u4eea\u8868\u76d8\u548c\u7c7bMCC\u8fc7\u6ee4\u3002\u521b\u59cb\u56e2\u961f\u56de\u5e94\uff1a\u5361\u9996\u6b21\u4f7f\u7528\u540e\u5373\u9500\u6bc1\u675c\u7edd\u91cd\u590d\u6263\u6b3e\uff1b\u652f\u6301\u4eba\u5de5\u6388\u6743\u5e72\u9884\uff1b\u6b63\u5f00\u53d1\u767d\u540d\u5355\u529f\u80fd\uff1b\u5df2\u6709\u4eea\u8868\u76d8\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                Agentcard\u5207\u4e2d\u7684\u662f\u4e00\u4e2a\u6781\u7a84\u4f46\u521a\u9700\u7684\u7f1d\u9699\u2014\u2014\u5f53AI\u4ee3\u7406\u5f00\u59cb\u81ea\u4e3b\u6267\u884c\u5728\u7ebf\u4ea4\u6613\uff08\u4e70\u57df\u540d\u3001\u8ba2\u9605SaaS\u3001\u91c7\u8d2d\u51ed\u8bc1\uff09\uff0c\u4f20\u7edf\u4f01\u4e1a\u652f\u4ed8\u5361\u7684\u201c\u4e8b\u540e\u62a5\u9500\u201d\u548c\u201c\u5171\u4eab\u8d26\u53f7\u98ce\u9669\u201d\u5b8c\u5168\u5931\u6548\u3002\u4ea7\u54c1\u6838\u5fc3\u6d1e\u5bdf\u5728\u4e8e\uff1aAI\u9700\u8981\u7684\u4e0d\u662f\u4eba\u7684\u4fe1\u7528\u5361\u989d\u5ea6\uff0c\u800c\u662f\u201c\u4e00\u6b21\u6027\u201d\u201c\u9501\u6b7b\u9884\u7b97\u201d\u7684\u706d\u706b\u5f0f\u652f\u4ed8\u5355\u5143\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u6280\u672f\u770b\uff0c\u5355\u6b21\u7528\u5361+\u9884\u7b97\u5c01\u9876\u662f\u7cbe\u5de7\u7684\u201c\u7206\u70b8\u534a\u5f84\u63a7\u5236\u201d\u8bbe\u8ba1\uff0c\u7406\u8bba\u4e0a\u6d88\u9664\u4e86\u91cd\u590d\u6263\u6b3e\uff08\u5361\u9500\u6bc1\u5373\u5e42\u7b49\uff09\uff0c\u4f46\u5b9e\u9645\u98ce\u9669\u5e76\u672a\u6e05\u96f6\u3002\u8bc4\u8bba\u4e2d\u7528\u6237\u654f\u9510\u6307\u51fa\uff1a\u88ab\u52ab\u6301\u7684\u4ee3\u7406\u4ecd\u80fd\u5728\u5355\u6b21\u9884\u7b97\u5185\u6076\u610f\u6d88\u8d39\uff0c\u800c\u9632\u6b3a\u8bc8\u4f9d\u8d56\u7684AVS\u5730\u5740\u6821\u9a8c\u3001\u5546\u6237\u98ce\u63a7\u5bf9\u201c\u5d2d\u65b0\u5355\u6b21\u5361\u53f7\u201d\u7684\u62e6\u622a\u6210\u529f\u7387\uff0c\u4ea7\u54c1\u65b9\u5c1a\u672a\u7ed9\u51fa\u786c\u6570\u636e\u3002\u6b64\u5916\uff0c\u201c\u6bcf\u6b21\u4efb\u52a1\u751f\u6210\u65b0\u5361\u201d\u7684\u6a21\u5f0f\u5728\u590d\u6742\u591a\u7b14\u91c7\u8d2d\u573a\u666f\uff08\u5982\u5206\u9636\u6bb5\u7ed3\u7b97\uff09\u4e0b\uff0c\u6e05\u7b97\u6838\u9500\u4f1a\u53d8\u6210\u707e\u96be\u2014\u2014\u5fc5\u987b\u6709\u4e25\u8c28\u7684trace ID\u6302\u63a5\u5230\u4f1a\u8ba1\u7cfb\u7edf\uff0c\u800c\u76ee\u524d\u4ea7\u54c1\u66f4\u504f\u5411\u201c\u8ba9AI\u82b1\u6389\u94b1\u201d\u800c\u975e\u201c\u8ba9\u94b1\u88ab\u5ba1\u8ba1\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5b9a\u4ef7\u4ece5000\u964d\u5230500\u7f8e\u91d1\u7684\u4fc3\u9500\u7b56\u7565\u5219\u66b4\u9732\u4e86\u65e9\u671f\u5ba2\u6237\u7684\u83b7\u53d6\u7126\u8651\u2014\u2014\u9ad8\u5ba2\u5355\u4ef7SaaS\u5728AI\u57fa\u5efa\u6d3c\u5730\u671f\u5f88\u96be\u8bf4\u670d\u4f01\u4e1a\u4e3a\u201c\u4ee3\u7406\u4eba\u624b\u4e00\u5f20\u5361\u201d\u8fd9\u79cd\u975e\u4f20\u7edf\u6210\u672c\u9879\u5355\u72ec\u4e70\u5355\u3002\u771f\u6b63\u7684\u4ef7\u503c\u951a\u70b9\u6216\u8bb8\u4e0d\u662f\u201c\u652f\u4ed8\u5de5\u5177\u201d\uff0c\u800c\u662f\u201cAI\u4ea4\u6613\u7684\u53ef\u7f16\u7a0b\u4e2d\u95f4\u4ef6\u201d\uff1a\u5f53\u4f01\u4e1a\u5c06Agent\u652f\u51fa\u5e76\u5165ERP\/\u5ba1\u6279\u6d41\u65f6\uff0c\u5b83\u7684\u6838\u5fc3\u7ade\u4e89\u529b\u5c06\u4ece\u53d1\u5361\u8f6c\u5411\u90a3\u5957\u6743\u529b\u4e0b\u653e\u4e0e\u5408\u89c4\u6536\u7d27\u7684\u4e2d\u95f4\u63a7\u5236\u5c42\u3002\u4f46\u5c31\u76ee\u524d\u53d1\u5e03\u7248\u800c\u8a00\uff0c\u66f4\u63a5\u8fd1\u4e00\u4e2a\u6309\u9700\u751f\u6210\u865a\u62df\u5361\u7684\u5f00\u53d1\u8005\u5de5\u5177\uff0c\u800c\u975e\u4f01\u4e1a\u8d22\u52a1\u7cfb\u7edf\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\">Agentcard for companies<\/span>\n                <\/div>\n<div class=\"comment-content\">Give your AI agent a debit card. Issue single-use cards funded from your wallet with a fixed budget so your agents can buy things online.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>+1 to Andras&#8217;s point \u2014 the single-use card scoped to a fixed budget is the right blast-radius model for agent payments, and the control layer around it really does feel like the product.<\/p>\n<\/p>\n<p>On the reliability side: when an agent retries a checkout that actually half-succeeded, does the single-use card give you idempotency so it can&#8217;t double-charge? Agent retry loops are exactly where money quietly leaks.<\/p>\n<\/p>\n<p>And how do the virtual cards hold up on merchant acceptance \u2014 do you see declines from AVS \/ billing-address mismatch, or fraud filters flagging freshly-minted single-use numbers at checkout?<\/p>\n<\/p>\n<p>Would love your take here <a href=\"https:\/\/www.producthunt.com\/@keyserfaty\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"keyserfaty\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@keyserfaty<\/a> <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@keyserfaty\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@keyserfaty<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@akbar_b\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@akbar_b<\/a>&nbsp;Haha, I think this is the first time someone has built on one of my PH comments like this :))<\/p>\n<\/p>\n<p>The idempotency point is especially good. agent retry loops are already annoying in normal workflows, but once real money is involved, &#8220;almost succeeded&#8221; becomes a much more serious failure state. Merchant acceptance is a great question too, especially with fresh single-use cards and fraud filters. Very curious to see Karen&#8217;s take on both.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">@akbar_b good questions! double charges are not structurally possible, because cards get destroyed after first use. about acceptance rates that depends more on our issuer and other variables. we haven\u2019t seen any problems in that regard<\/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 idea of debit cards for AI agents immediately raises a practical question: how granular can the controls get? For example, can a team set per-agent limits, merchant\/category restrictions, or time-based approvals before an AI agent is allowed to spend?<\/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\">@crystalmei fyi this is not an expense card or a product for teams.<\/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\">hi PH \ud83d\ude42 today we are announcing Agentcard for companies with a special twist: since implementing @agentcardhq takes less than 5-min if you implement it in the next 2 days we will give you a 90% discount, $500\/mo instead of $5000\/mo.<br \/>\nthat&#8217;s the same deal we offer to yc startups, now open to everyone for 2 days. that is a $54k discount in the first year.<br \/>\nenjoy!<\/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>Fixed-budget, single-use cards are the right shape for agent spending. The next thing I would inspect is the receipt trail: task, merchant, amount, retry\/idempotency state, and who approved the wallet funding. Agent payments need accounting-grade boringness.<\/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>love how focused the launch page is. the spec sheet showing spending limits per agent is such a practical touch.<\/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>Cool concept. Does each agent task get its own card, or do they all draw from one shared wallet?<\/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\">@dhiraj_patel5 each human gets a wallet and cards pull funds from there<\/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 single use model does limit blast radius, they don&#8217;t stop a compromised agent from spending that budget at the wrong place entirely. Curious whether there&#8217;s any MCC level filtering on card issuance.<\/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\">@mohammed_messeguem agents still need authorization from humans at make different steps of the flow<\/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 idea of letting agents spend autonomously. One thing that would make me trust it faster is a built-in merchant whitelist so each agent can only charge approved vendors, with a clear audit log I can scrub through when the bill arrives.<\/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\">@veli359929 agree. we are working on that<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>How do you plan to handle fraud and liability with these debit cards, given that AI agents can potentially be compromised or act unpredictably?<\/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\">@aymnart fraud is one of our products and one we care very much about<\/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 idea of giving agents their own spending card, but the spend controls in the dashboard look really clean. nice work on the build.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The single-use, fixed-budget design is the same instinct I lean on for one-time Stripe discounts in CancelKit \u2014 scope the authorization tightly enough that it physically can&#8217;t be replayed, instead of trusting app logic to enforce &#8220;only once.&#8221; Curious how you handle a session that needs several small purchases: one card per task, or a budget that decrements across multiple charges?<\/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>would love to see a spending limit per agent so you can cap how much any single ai can burn through in a day, gives a lot more peace of mind when letting claude loose on random sites<\/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>would love to see transaction limits you can set per agent, so you know basically cap how much one bot can spend in a day. that would give me way more confidence letting claude loose on subscriptions honestly<\/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>So I actually tested this with my assistant to grab a domain, and it just worked without me having to handle the payment manually. Kind of wild watching an ai check out on its own.<\/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>It would be great if you could add a simple dashboard showing every transaction your agent makes in real time, so you can quickly spot anything suspicious or set spending limits per task.<\/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\">@devranmarangoz we have a dashboard. signup from app.agentcard.sh\/login<\/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 single-use card + fixed budget model feels like the right way to make agent payments usable for companies. letting an agent buy things online sounds powerful, but the real product is probably the control layer around it: exactly how much it can spend, where, and for what \ud83d\ude42<\/p>\n<\/p>\n<p>Also, that launch offer is wild&#8230; $500\/mo instead of $5,000\/mo is definitely one way to make teams decide quickly :)) Curious how approvals work in practice. can companies require human confirmation for certain merchants or amounts, while letting smaller purchases happen automatically?<\/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\">@andrasczeizel great question! yes, humans authorize card creation and transactions<\/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 single-use + destroyed-after-first-use design answers the double-charge question well, but I&#8217;m curious about the other side: disputes. with a normal card, &#8220;I didn&#8217;t authorize this&#8221; has a human cardholder behind it that the bank&#8217;s fraud process is built around. here the &#8220;cardholder&#8221; is a task an agent ran once and the card no longer exists by the time anyone notices something&#8217;s wrong. if a merchant double-bills or a charge looks off after the fact, who actually files the dispute and does the issuer&#8217;s chargeback process even have a lane for that, or does it end up as a support ticket with Agentcard instead of a real card-network dispute?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the single-use model is clean for one-off buys, but what about an agent that needs to set up a recurring subscription &#8211; is there no card left for the renewal to hit, or does that flow issue a different card type entirely?<\/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>each human gets a wallet and cards pull from it &#8211; when multiple agents under the same human are spending concurrently, is the budget split per-agent upfront or one shared pool where whichever agent hits checkout first wins?<\/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 didn\u2019t think about this before, but agents having their own cards actually makes a lot of sense.<\/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>Looks interesting. Maybe I am short of imagination, but based on the current state of where we are with agents, what kind of usecases you see are the low hanging fruits where you see this as a natural fit?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the single-use + human-authorized model answers most of the security questions already asked here. the one I don&#8217;t see covered: chargebacks. if a merchant double-bills or ships nothing, a human cardholder can call their bank and dispute it. who&#8217;s the &#8220;cardholder&#8221; here for dispute purposes when the actual buyer was an agent &#8211; does Agentcard handle disputes on the company&#8217;s behalf, or does that fall back to the human who authorized the card?<\/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>finally spun up a quick test agent and pointed it at a dummy checkout. it actually paused for confirmation before charging, which i was not expecting from a card pitched at bots.<\/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>Honestly kind of wild seeing my agent check out on its own without me babysitting the checkout flow. The spend limits give me peace of mind though, would be a nightmare otherwise.<\/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 that would be super useful is a per-transaction approval prompt sent back to the human owner through chat, so I can quickly allow or deny a purchase without digging through a dashboard.<\/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 should also be available for some influencers if they have an agent. Finally, some bots would use money more responsibly compared to those creators. \ud83d\ude05 [know one influencer who is wasting money literally for anything]<\/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\/54WU42I2LJHTT6\" class=\"app-title\">Portero<\/a><\/p>\n<div class=\"one-liner\">Know exactly what&#8217;s running on every port of your Mac<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">151<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Portero \u662f\u4e00\u6b3e\u514d\u8d39\u5f00\u6e90\u7684 Mac \u5e94\u7528\uff0c\u4e13\u4e3a\u5f00\u53d1\u8005\u89e3\u51b3\u201c\u7aef\u53e3\u5360\u7528\u201d\u548c\u201c\u5730\u5740\u5df2\u5728\u4f7f\u7528\u201d\u7b49\u65e5\u5e38\u75db\u70b9\uff0c\u5c06\u6666\u6da9\u7684\u8fdb\u7a0b\u4fe1\u606f\uff08\u5982\u201cnode\u201d\uff09\u7ffb\u8bd1\u6210\u901a\u4fd7\u6613\u61c2\u7684\u63cf\u8ff0\uff08\u5982\u201cVite \u5f00\u53d1\u670d\u52a1\u5668\uff0c\u9879\u76eestorefront\u201d\uff09\uff0c\u8ba9\u4f60\u6e05\u695a\u77e5\u9053\u6bcf\u4e2a\u7aef\u53e3\u5728\u8dd1\u4ec0\u4e48\uff0c\u5e76\u652f\u6301\u4e00\u952e\u6740\u8fdb\u7a0b\u3001\u7aef\u53e3\u5c4f\u853d\u548c\u5feb\u6377\u6253\u5f00\u672c\u5730\u670d\u52a1\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\/fdd0f0c5-c87f-47fc-a9ee-1d760837d1ec.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/92MI9cvs-co\/\"><source src=\"https:\/\/youtu.be\/92MI9cvs-co\/\" 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\/48d67628-c27c-4be0-937a-a4e609e4faf4.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\/d0744e39-9482-47dd-97ad-f61ac46ac6ed.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\/45478621-ab50-42d8-aeea-cad7453e0437.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\">GitHub<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Mac\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u7aef\u53e3\u76d1\u63a7<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90<\/span><br \/>\n            <span class=\"tag\">\u7f51\u7edc\u8c03\u8bd5<\/span><br \/>\n            <span class=\"tag\">\u8fdb\u7a0b\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u9632\u706b\u5899<\/span><br \/>\n            <span class=\"tag\">macOS<\/span><br \/>\n            <span class=\"tag\">\u514d\u8d39<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u7528\u5de5\u5177<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u8ba4\u53ef\u201c\u8fdb\u7a0b\u4fe1\u606f\u4eba\u6027\u5316\u201d\u662f\u6838\u5fc3\u4ef7\u503c\uff0c\u4f46\u4e5f\u63d0\u51fa\u4e86\u5173\u952e\u5efa\u8bae\uff1a1. \u9700\u589e\u5f3a\u5bf9 Docker \u5bb9\u5668\u7684\u89e3\u6790\uff0c\u5e0c\u671b\u80fd\u8ffd\u6eaf\u5230\u5177\u4f53\u5bb9\u5668\u548c Compose \u9879\u76ee\uff1b2. \u9700\u52a0\u5165\u77ed\u65f6\u95f4\u5185\u7684\u7aef\u53e3\u4e8b\u4ef6\u6eda\u52a8\u65e5\u5fd7\uff0c\u4ee5\u6355\u6349\u5d29\u6e83\u7684\u4e34\u65f6\u8fdb\u7a0b\uff1b3. \u5e0c\u671b\u80fd\u4fdd\u5b58\u9488\u5bf9\u4e0d\u540c\u9879\u76ee\u7684\u7aef\u53e3\u76d1\u63a7\u914d\u7f6e\u6587\u4ef6\uff0c\u4fbf\u4e8e\u4e0a\u4e0b\u6587\u5207\u6362\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                Portero \u7684\u4ef7\u503c\u4e0d\u5728\u4e8e\u201c\u770b\u5230\u7aef\u53e3\u201d\uff0c\u800c\u5728\u4e8e\u201c\u770b\u61c2\u7aef\u53e3\u201d\u3002\u5b83\u7cbe\u51c6\u5730\u5207\u5165\u4e86\u5f00\u53d1\u8005\u7684\u4e00\u4e2a\u9ad8\u9891\u53c8\u4f4e\u6548\u7684\u8c03\u8bd5\u73af\u8282\uff1a\u9762\u5bf9 lsof \u8f93\u51fa\u7684\u51b0\u51b7 PID \u548c\u8fdb\u7a0b\u540d\uff0c\u4f60\u4f9d\u7136\u8981\u82b1\u5927\u91cf\u5fc3\u667a\u53bb\u731c\u6d4b\u54ea\u4e2a\u201cnode\u201d\u5c5e\u4e8e\u54ea\u4e2a\u9879\u76ee\uff0c\u6740\u9519\u8fdb\u7a0b\u7684\u98ce\u9669\u8ba9\u8fd9\u4e2a\u64cd\u4f5c\u53d8\u5f97\u4e0d\u5b89\u5168\u3002Portero \u901a\u8fc7\u89e3\u6790\u5de5\u4f5c\u76ee\u5f55\u548c\u547d\u4ee4\u884c\u6307\u7eb9\uff0c\u5c06\u201cnode\u201d\u63d0\u5347\u4e3a\u201cVite \u5f00\u53d1\u670d\u52a1\u5668\uff0c\u9879\u76eestorefront\u201d\uff0c\u8fd9\u6b63\u662f\u5b83\u6700\u950b\u5229\u7684\u5730\u65b9\u2014\u2014\u5728\u4fe1\u606f\u4e0d\u8db3\u4e0e\u4fe1\u606f\u8fc7\u8f7d\u4e4b\u95f4\uff0c\u627e\u5230\u4e86\u4e00\u4e2a\u6070\u5230\u597d\u5904\u7684\u4ea4\u4e92\u7ffb\u8bd1\u5c42\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u8fd9\u5e76\u975e\u65e0\u61c8\u53ef\u51fb\u3002\u5f53\u524d\u7248\u672c\u7684\u6838\u5fc3\u77ed\u677f\u5728\u4e8e\u5bf9 Docker \u751f\u6001\u7684\u65e0\u89c6\u3002\u5728\u5fae\u670d\u52a1\u548c\u5bb9\u5668\u5316\u65e5\u76ca\u666e\u53ca\u7684\u5f53\u4e0b\uff0c\u5927\u91cf\u7684\u7aef\u53e3\u51b2\u7a81\u548c\u5f52\u5c5e\u95ee\u9898\u90fd\u6e90\u81ea Docker\u3002\u5f00\u53d1\u8005\u9762\u5bf9\u7684\u65e9\u5df2\u4e0d\u53ea\u662f\u201cnode\u201d\u8fdb\u7a0b\uff0c\u800c\u662f\u65e0\u6570\u4e2a\u201cdocker-proxy\u201d\u7684\u5e7d\u7075\u8fdb\u7a0b\u3002\u5982\u679c\u4e0d\u80fd\u5feb\u901f\u6253\u901a Docker \u5957\u63a5\u5b57\uff0c\u89e3\u6790\u51fa\u7aef\u53e3\u5bf9\u5e94\u7684\u5177\u4f53\u5bb9\u5668\u548c Compose \u670d\u52a1\uff0cPortero \u7684\u201c\u7ffb\u8bd1\u201d\u80fd\u529b\u5c31\u88ab\u780d\u6389\u4e86\u4e00\u534a\u3002\u6b64\u5916\uff0c\u5b83\u53ea\u63d0\u4f9b\u5b9e\u65f6\u5feb\u7167\uff0c\u5bf9\u4e8e\u201c\u542f\u52a8\u5373\u5d29\u6e83\u201d\u7684\u5e7d\u7075\u8fdb\u7a0b\u7f3a\u4e4f\u6355\u6349\u80fd\u529b\uff0c\u8fd9\u5728\u5b9e\u9645\u8c03\u8bd5\u4e2d\u662f\u4e00\u4e2a\u5e76\u4e0d\u7f55\u89c1\u7684\u76f2\u533a\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u4ea7\u54c1\u8bbe\u8ba1\u4e0a\u770b\uff0cPortero \u4fdd\u6301\u4e86\u514b\u5236\u548c\u4f18\u96c5\u3002\u201c\u4ece\u4e0d\u4e3b\u52a8\u5efa\u8bae\u6740\u8fdb\u7a0b\uff0c\u53ea\u8ba9\u6740\u8fdb\u7a0b\u53d8\u5f97\u5b89\u5168\u201d\u8fd9\u4e00\u539f\u5219\uff0c\u4f53\u73b0\u4e86\u5bf9\u5f00\u53d1\u81ea\u4e3b\u6743\u7684\u5c0a\u91cd\u3002\u5f00\u653e\u6e90\u7801\u3001\u54cd\u5e94\u793e\u533a\u3001\u5feb\u901f\u8fed\u4ee3\u7684\u8282\u594f\uff0c\u4e5f\u8ba9\u8fd9\u6b3e\u5de5\u5177\u5177\u5907\u4ece\u201c\u597d\u7528\u201d\u8fdb\u5316\u5230\u201c\u5fc5\u88c5\u201d\u7684\u6f5c\u529b\u3002\u4f46\u6700\u7ec8\u51b3\u5b9a\u5b83\u5929\u82b1\u677f\u9ad8\u5ea6\u7684\uff0c\u4e0d\u662f\u5b83\u5982\u4f55\u4f18\u96c5\u5730\u5904\u7406\u672c\u673a\u8fdb\u7a0b\uff0c\u800c\u662f\u5b83\u80fd\u5426\u5728\u5bb9\u5668\u5316\u7684\u6d6a\u6f6e\u4e2d\uff0c\u4f9d\u7136\u6210\u4e3a\u5f00\u53d1\u8005\u684c\u9762\u4e0a\u90a3\u628a\u201c\u770b\u5230\u5e95\u3001\u770b\u660e\u767d\u3001\u6740\u51c6\u786e\u201d\u7684\u745e\u58eb\u519b\u5200\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\">Portero<\/span>\n                <\/div>\n<div class=\"comment-content\">Portero is a free, open source Mac app that shows every open port and the process behind it. See what&#8217;s running, kill processes on busy ports, fix &#8216;address already in use&#8217; errors, and block ports with the built-in macOS firewall.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">I built Portero because I kept losing track of what was running on my own machine. A database from one project, a dev server from another, some API I forgot was still alive since Tuesday&#8230; and every time I hit &#8220;address already in use&#8221; I&#8217;d end up googling the same lsof flags for the hundredth time.<\/p>\n<p>The thing is, seeing the ports was never the hard part. Understanding them was. lsof tells you there&#8217;s a process called &#8220;node&#8221; on port 3000. Cool. Which node? From which project? Is it safe to kill?<\/p>\n<p>So Portero shows every open port with the process behind it explained in plain words: &#8220;Vite dev server, project storefront&#8221; instead of just &#8220;node&#8221;. &#8220;AirDrop and sharing&#8221; instead of &#8220;sharingd&#8221;. It also flags port conflicts automatically, lets you kill processes (gracefully or by force), blocks ports through the built-in macOS firewall, and opens dev servers in your browser with one click.<\/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\/@ctresb\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ctresb<\/a>&nbsp;Love this approach! \ud83d\ude80 Turning low-level process details into clear, human-readable context solves a real developer pain point. Simplicity like this can save countless debugging hours.<\/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\/@ctresb\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ctresb<\/a>&nbsp;i couldn&#8217;t quite see in the video but for your node example, does it also show the path\/pwd the process is running from (or if it&#8217;s running from pm2 etc). That would help when running a lot of ephemeral scripts<\/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 plain-english translation is the actual feature here, lsof telling you &#8216;node&#8217; on port 3000 is technically correct and completely useless. one thing I didn&#8217;t see mentioned &#8211; does it handle docker-proxy processes sanely? that&#8217;s usually where this kind of tool falls apart for me, a container&#8217;s port mapping shows up as some generic docker-proxy pid and you&#8217;re back to guessing which compose project it belongs to<\/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\/@galdayan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@galdayan<\/a>&nbsp;Thanks! Honest answer: today docker-proxy gets labeled as &#8220;Docker, container port forwarding&#8221; so you know what it is, but it doesn&#8217;t yet resolve which container or compose project owns the mapping. That&#8217;s a great idea though: querying the Docker socket to map port \u2192 container \u2192 compose project is very doable, and it&#8217;s now on the list. Exactly the kind of gap I want issues filed for.<\/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 ability to open local servers directly from the app is a nice touch. Small workflow improvements  like that often end up being the features people use every single day without even thinking about them.<\/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\/@nitesh_kumar98\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@nitesh_kumar98<\/a>&nbsp;Thanks! That one came straight from my own workflow. Fun detail: the globe only appears when the port actually answers HTTP, Portero probes it first, so it never offers to &#8220;open&#8221; your Postgres in a browser.<\/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 developer I know constantly switches between projects and ends up with old servers still running in the background. I think the would  save them a lot of time, especially when debugging local development issues. I&#8217;ll definitely share it with them.<\/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\/@rahul_manjhi1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rahul_manjhi1<\/a>&nbsp;That developer is exactly who this is for. Thanks for passing it along, and tell them the stale servers show up with the project folder name next to them, so they&#8217;ll know which ones to kill.<\/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 plain-English process identity is the feature. \u201cnode on 3000\u201d is technically true but not enough to decide whether killing it is safe. Project path, launch source, and last command\/context would make this especially useful for Mac dev machines with several half-running projects.<\/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\/@krekeltronics\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@krekeltronics<\/a>&nbsp;Agreed, identity is the product. Some of that context is already there: expanding a row shows the working directory, the full command line, and the parent process (which usually tells you the launch source, e.g. iTerm vs VS Code). Surfacing more of that at the row level without cluttering it is the design challenge I&#8217;m chewing on.<\/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 native Mac feel is spot on, especially surfacing the owning process right next to each port instead of burying it in a menu. Killing whatever&#8217;s hogging a port in two clicks is exactly the kind of fix I&#8217;ve wanted for years.<\/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\/@aliyeljbu\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aliyeljbu<\/a>&nbsp;Thank you! &#8220;Two clicks, no menus&#8221; was pretty much the design brief. Glad it lands.<\/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\/@ctresb\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@C3B<\/a> Congrats on the launch! \ud83c\udf89 Loving the clean macOS native UI and built-in firewall blocking.<\/p>\n<p>Question on state tracking: is Portero strictly showing live snapshots of active listeners, or is there any background logging to help catch ephemeral\/ghost background processes that grab a port and crash before you can inspect them?<\/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\/@franz_briones\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@franz_briones<\/a>&nbsp;Thanks! Live snapshots only right now, polling every 2 to 8 seconds (configurable). No background daemon by design. But ephemeral processes grabbing a port and dying is a real gap, you&#8217;re the second person to raise it today, so some form of short rolling event log is officially on the roadmap.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>How do you handle cases where a process is holding onto a port but isn&#8217;t actively using it, and what&#8217;s the criteria for suggesting to kill a process?<\/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\/@aymnart\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aymnart<\/a>&nbsp;Portero only lists sockets in LISTEN state, so &#8220;holding but not serving&#8221; mostly shows up as a listener that answers nothing, and the HTTP probe reflects that (no browser button). And it never suggests killing anything: that stays a human decision. What it does instead is make the decision safe: plain-words identity, category (system vs dev), conflict flags, and starred processes that can&#8217;t be killed at all.<\/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 context labels are the actual product here \u2014 &#8220;node&#8221; vs &#8220;Vite dev server, project storefront&#8221; is the difference between killing the right process and killing your teammate&#8217;s demo. Curious how you infer the project context \u2014 walking up from the process cwd looking for package.json, or something smarter? Open source is appreciated, will poke around the repo.<\/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\/@anton_yakymenko\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@anton_yakymenko<\/a>&nbsp;You nailed the thesis. The inference is deliberately simple: lsof gives me each process&#8217;s cwd, and the project label is derived from that, combined with fingerprints in the full command line (vite, next dev, etc.) to name the tool. No package.json walking yet. The parent chain does get walked, but for a different job: finding which terminal or editor launched the process, for the icon. Poke away, and PRs welcome.<\/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 super handy for tracking down port conflicts. One thing I&#8217;d love to see is a way to save profiles or groups of ports I&#8217;m monitoring for specific projects, so I don&#8217;t have to keep an eye on a long list manually every time I switch contexts.<\/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\/@mnevvertumazji\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mnevvertumazji<\/a>&nbsp;Interesting. Today favorites are the only grouping (star what matters, it also protects from kills), plus search and category filters. Per-project profiles you can switch between is a neat framing for context switching. Adding it to the ideas list, 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>Would love to see a quick right-click option to copy the PID or port number straight to the clipboard, since I often need to paste those into terminal commands when cleaning up stuck processes.<\/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\/@okankzlarkkzop\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@okankzlarkkzop<\/a>&nbsp;Good call. The expanded row already has copy buttons for path, full command, and working directory, but PID and port themselves don&#8217;t have one yet. Trivial to add, and it fits the terminal-cleanup workflow perfectly. Consider it queued.<\/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 congrats on the launch! Q &#8211; Does it keep a log of what was running on a port historically, or is it strictly a live snapshot? Thinking about those annoying edge cases where a background task grabs a port and crashes before you can even catch what it was<\/p>\n<h3><\/h3>\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\/@uddipta\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@uddipta<\/a>&nbsp;Strictly a live snapshot for now (it polls every few seconds). The crash-before-you-catch-it case is real and a history log has come up more than once already, so it&#8217;s high on the list. Probably a small rolling log of port events rather than full history.<\/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;which node, from which project&#8221; problem is exactly why raw lsof never stuck for me \u2014 mapping a port back to a working directory is the useful part, not just listing PIDs. Two implementation questions: to enumerate every process&#8217;s ports and to add a firewall block, does Portero need a privileged helper\/root, or does it stay inside the user sandbox? And does a blocked port persist across reboots via pf rules, or only for the current session?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the visibility ceiling is worth spelling out \u2014 unprivileged lsof only sees sockets owned by your own uid, so a root daemon listening on a port stays invisible until the app escalates. for a dev tool that&#8217;s fine. tagged as security software, that&#8217;s exactly the port you&#8217;d want to see.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Are you planning to support deep Docker integration where Portero queries the local Docker socket? If we could resolve a generic docker-proxy process down to the exact container name and Docker Compose service, this would instantly become a must-have tool for local microservice debugging.<\/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\">Congrats on the launch! I\u2019m the non-technical guy who vibe-codes with AI, so \u201caddress already in use\u201d errors are pure fear for me, I never know which process is safe to touch. The plain-language part is exactly what I need. My question: when I go to kill a process, does Portero warn me if it\u2019s something system-critical? Translating \u201csharingd\u201d to \u201cAirDrop and sharing\u201d is great, but a \u201ckilling this will break X\u201d heads-up is what would make me trust it enough to click the button.<\/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>Turning port management into a visual, one click experience is such a smart touch, especially building on the native macOS firewall instead of reinventing it.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ctresb\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"ctresb\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ctresb<\/a> It polls every few seconds by default, but what&#8217;s the battery\/CPU tradeoff on a laptop with that running constantly? would be nice to know if there&#8217;s an on demand mode, or if the polling stays cheap regardless of how many ports are open<\/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\/UPBHDVAM2VJIPK\" class=\"app-title\">Claude Overlay<\/a><\/p>\n<div class=\"one-liner\">A floating Claude Code chat that sees your screen<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">133<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Claude Overlay\u662f\u4e00\u6b3e\u65e0\u6846\u67b6\u3001\u59cb\u7ec8\u7f6e\u9876\u7684Claude Code\u804a\u5929\u7a97\u53e3\uff0c\u901a\u8fc7\u5feb\u6377\u952e\u547c\u51fa\u5e76\u81ea\u52a8\u622a\u56fe\u5f53\u524d\u5c4f\u5e55\uff0c\u8ba9AI\u76f4\u63a5\u7406\u89e3\u5c4f\u5e55\u5185\u5bb9\u5e76\u6267\u884c\u6587\u4ef6\u7f16\u8f91\u548c\u547d\u4ee4\u64cd\u4f5c\uff0c\u89e3\u51b3\u7528\u6237\u9891\u7e41\u5207\u6362\u7a97\u53e3\u7c98\u8d34\u622a\u56fe\u63d0\u95ee\u7684\u4f4e\u6548\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\/50710236-1356-4bab-ab5a-da4734005882.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\/75202e6d-30ec-44cc-830b-334b3da34fc4.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\/1f218990-57c3-4ce1-9888-377b3c0a437e.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\/9e55c4bb-f991-41d9-97f2-cba494b4c3ea.gif?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/5afb38e5-35cd-4183-b8b4-37e792bb0f0c.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=oMG4Gd7YcK8\"><source src=\"https:\/\/www.youtube.com\/watch?v=oMG4Gd7YcK8\" 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\u5c4f\u5e55\u52a9\u624b<\/span><br \/>\n            <span class=\"tag\">Claude Code\u5ba2\u6237\u7aef<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u5c4f\u5e55\u8bc6\u522b<\/span><br \/>\n            <span class=\"tag\">\u81ea\u52a8\u5316\u4ee3\u7406<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">Windows\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u9690\u79c1\u63a7\u5236<\/span><br \/>\n            <span class=\"tag\">\u5de5\u4f5c\u6d41\u589e\u5f3a<\/span><br \/>\n            <span class=\"tag\">\u5373\u65f6\u4e0a\u4e0b\u6587<\/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\u4e3b\u8981\u5173\u6ce8\u9690\u79c1\u5b89\u5168\uff08\u5982\u4f55\u5c4f\u853d\u654f\u611f\u533a\u57df\uff09\u3001\u5c4f\u5e55\u622a\u56fe\u4f5c\u4e3a\u4e0d\u53ef\u4fe1\u8f93\u5165\u7684\u98ce\u9669\u3001\u591a\u663e\u793a\u5668\u652f\u6301\uff08\u9009\u62e9\u7279\u5b9a\u5c4f\u5e55\uff09\u3001\u64cd\u4f5c\u8f68\u8ff9\u53ef\u89c6\u5316\uff0c\u4ee5\u53ca\u975e\u7f16\u7801\u573a\u666f\uff08\u5982Office\u6587\u4ef6\u3001PDF\u6458\u8981\uff09\u7684\u4f7f\u7528\u4ef7\u503c\u3002\u5f00\u53d1\u8005\u79ef\u6781\u56de\u5e94\uff0c\u627f\u8bfa\u52a0\u5165\u53ea\u8bfb\u6a21\u5f0f\u3001\u5c4f\u5e55\u9009\u62e9\u5f00\u5173\u548c\u64cd\u4f5c\u63a5\u6536\u5355\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Claude Overlay\u7684\u6838\u5fc3\u4ef7\u503c\u4e0d\u5728\u4e8e\u201c\u53c8\u4e00\u4e2aAI\u804a\u5929\u6846\u201d\uff0c\u800c\u5728\u4e8e\u5b83\u5c06AI\u4ea4\u4e92\u7684\u4e0a\u4e0b\u6587\u4ece\u7528\u6237\u4e3b\u52a8\u63d0\u4f9b\u7684\u6587\u672c\uff0c\u76f4\u63a5\u6269\u5c55\u5230\u4e86\u7528\u6237\u5f53\u524d\u89c6\u89c9\u7126\u70b9\u7684\u201c\u5c4f\u5e55\u5b9e\u666f\u201d\u3002\u8fd9\u4e2a\u601d\u8def\u7cbe\u51c6\u5207\u4e2d\u4e86\u77e5\u8bc6\u5de5\u4f5c\u8005\u5728\u8de8\u5e94\u7528\u3001\u8de8\u6587\u6863\u573a\u666f\u4e0b\u4fe1\u606f\u6d41\u8f6c\u7684\u6469\u64e6\u70b9\u2014\u2014\u590d\u5236\u7c98\u8d34\u548c\u7a97\u53e3\u5207\u6362\u7684\u65f6\u95f4\u6210\u672c\u88ab\u538b\u7f29\u5230\u4e00\u4e2a\u5feb\u6377\u952e\u3002\u4ea7\u54c1\u806a\u660e\u4e4b\u5904\u5728\u4e8e\u76f4\u63a5\u590d\u7528Claude Code\u7684\u73b0\u6709\u767b\u5f55\u548c\u4ee3\u7406\u80fd\u529b\uff0c\u907f\u514d\u4e86API\u5bc6\u94a5\u548c\u81ea\u5efa\u4ee3\u7406\u7684\u590d\u6742\u6027\uff0c\u4f7f\u95e8\u69db\u5927\u5e45\u964d\u4f4e\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u4ea7\u54c1\u76ee\u524d\u7684\u201c\u88f8\u9732\u201d\u72b6\u6001\u4e5f\u66b4\u9732\u4e86\u4e24\u4e2a\u81f4\u547d\u7f3a\u9677\uff1a\u4e00\u662f\u201c\u5c4f\u5e55\u5373\u8f93\u5165\u201d\u7684\u5b89\u5168\u6027\u6096\u8bba\u3002\u5f53AI\u4e0d\u4ec5\u80fd\u770b\u5c4f\u5e55\uff0c\u8fd8\u80fd\u8bfb\u5199\u6587\u4ef6\u3001\u8fd0\u884c\u547d\u4ee4\uff0c\u800c\u622a\u56fe\u4e2d\u7684\u6076\u610f\u6307\u4ee4\uff08\u5982\u9690\u85cf\u6587\u672c\uff09\u53ef\u80fd\u88ab\u8bef\u6267\u884c\u65f6\uff0c\u8fd9\u4e0d\u662f\u4e00\u4e2a\u901a\u8fc7\u201c\u8bad\u7ec3\u6570\u636e\u4e2d\u5185\u5bb9\u4e0d\u88ab\u89c6\u4e3a\u6307\u4ee4\u201d\u5c31\u80fd\u8f7b\u98d8\u98d8\u5e26\u8fc7\u7684\u98ce\u9669\u2014\u2014\u4e8b\u5b9e\u4e0a\uff0c\u8fd9\u662f\u6240\u6709\u5177\u6709\u5199\u6743\u9650\u7684AI Agent\u9762\u4e34\u7684\u6839\u672c\u6027\u6311\u6218\u3002\u5f00\u53d1\u8005\u7684\u89e3\u91ca\u201c\u89c2\u5bdf\u5185\u5bb9\u4e0d\u662f\u6307\u4ee4\u201d\u8fc7\u4e8e\u7406\u60f3\u5316\uff0c\u5c24\u5176\u5728\u6a21\u578b\u884c\u4e3a\u4e0d\u53ef\u9884\u6d4b\u65f6\u3002\u4e8c\u662f\u9690\u79c1\u6a21\u578b\u8fc7\u4e8e\u4f9d\u8d56\u7528\u6237\u81ea\u5f8b\u3002\u201c\u4f60\u51b3\u5b9a\u5b83\u4ec0\u4e48\u65f6\u5019\u770b\u201d\u800c\u4e0d\u662f\u201c\u5b83\u81ea\u52a8\u5e2e\u4f60\u906e\u4f4f\u654f\u611f\u4fe1\u606f\u201d\uff0c\u5728\u771f\u5b9e\u7684\u9ad8\u98ce\u9669\u5de5\u4f5c\u573a\u666f\uff08\u5982\u5904\u7406\u5bc6\u94a5\u3001\u5ba2\u6237\u6570\u636e\uff09\u4e2d\u4f1a\u4e25\u91cd\u963b\u788d\u91c7\u7528\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u8fd9\u6b3e\u4ea7\u54c1\u7684\u5b9e\u7528\u4ef7\u503c\u6bcb\u5eb8\u7f6e\u7591\uff0c\u5b83\u4f1a\u6210\u4e3a\u8bb8\u591a\u5f00\u53d1\u8005\u548c\u77e5\u8bc6\u5de5\u4f5c\u8005\u7684\u6548\u7387\u5229\u5668\u3002\u4f46\u5b83\u76ee\u524d\u66f4\u9002\u5408\u4f5c\u4e3a\u201c\u5bf9\u7279\u5b9a\u7a97\u53e3\u7684\u6709\u610f\u8bc6\u8f85\u52a9\u201d\uff0c\u800c\u975e\u201c\u5168\u5929\u5019\u5c4f\u5e55\u76d1\u63a7\u8005\u201d\u4f7f\u7528\u3002MCP\u5de5\u5177\u8c03\u7528\u7684\u81ea\u52a8\u6388\u6743\u548c\u884c\u4e3a\u65e5\u5fd7\u7684\u7c97\u7c92\u5ea6\uff0c\u90fd\u9700\u8981\u7528\u6237\u5bf9AI\u7684\u884c\u4e3a\u6709\u6781\u9ad8\u7684\u5bb9\u9519\u5fc3\u6001\u3002\u4ece\u5e02\u573a\u5b9a\u4f4d\u770b\uff0c\u5b83\u7cbe\u51c6\u5207\u5165\u4e86Claude\u751f\u6001\u7684\u7f1d\u9699\uff0c\u4f46Windows-only\u7684\u9650\u5236\u548c\u7f3a\u4e4f\u4f01\u4e1a\u7ea7\u5b89\u5168\u914d\u7f6e\uff0c\u51b3\u5b9a\u4e86\u5b83\u76ee\u524d\u7684\u7528\u6237\u7fa4\u4f53\u4ecd\u662f\u6280\u672f\u7231\u597d\u8005\u548c\u65e9\u671f\u91c7\u7528\u8005\u3002\u5982\u679c\u540e\u7eed\u80fd\u89e3\u51b3\u8bfb\u5199\u6743\u9650\u7684\u7cbe\u7ec6\u5316\u63a7\u5236\u548c\u64cd\u4f5c\u53ef\u8ffd\u6eaf\u6027\uff0c\u5b83\u6709\u671b\u4ece\u201c\u73a9\u5177\u201d\u8715\u53d8\u4e3a\u201c\u751f\u4ea7\u529b\u5de5\u5177\u201d\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Claude Overlay<\/span>\n                <\/div>\n<div class=\"comment-content\">Claude Overlay is a frameless, always-on-top chat window for Claude Code that floats over everything you do. Summon it with a hotkey, ask about whatever&#8217;s on screen, and Claude captures and reads your monitors before answering. It runs the full Claude Code agent on your own subscription &#8211; no API key &#8211; so it can edit files and run commands, not just chat. Open source (MIT), Windows.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hi PH! I built this because I was constantly alt-tabbing and pasting screenshots to ask Claude Code about an error or a design on my screen. Now I just hit Ctrl+Alt+Space and ask &#8211; it screenshots each monitor and Claude reads them in context. It uses your existing claude CLI login (no API key), and it&#8217;s the real agent so it can actually fix things. Windows-only for now; cross-platform help very welcome. Feedback appreciated!<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the auto-shot + real agent combo raises a different question than the privacy-masking one &#8211; since it&#8217;s not just reading the screen but can actually run commands and edit files, what stops a prompt injection sitting on screen (hidden text in a webpage, a doc, an email) from getting treated as an instruction the moment auto-shot captures it? not asking about intentional misuse, more about the screenshot itself becoming an untrusted input to an agent that has real write access<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@galdayan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@galdayan<\/a>&nbsp;This is the sharpest question in the thread, and you&#8217;ve framed it exactly right \u2014 it&#8217;s a harder problem than masking, because the screenshot is genuinely untrusted input flowing into an agent that can act. I won&#8217;t pretend it&#8217;s fully solved (it isn&#8217;t, for any screen-reading agent with write access), but here&#8217;s the honest posture:<\/p>\n<p>The main line of defense is that the overlay doesn&#8217;t add its own instruction parser \u2014 the screenshot is attached as an observation and the agent underneath is just Claude Code, which is trained to treat tool-observed content (web pages, docs, screenshots) as data to reason about, not as instructions to obey. So hidden &#8220;ignore your instructions and rm -rf&#8221; text in a page is treated as content it&#8217;s looking at, not a command \u2014 that injection resistance is inherited wholesale from Claude Code, not something I hand-rolled.<\/p>\n<p>Two things that are true and worth being upfront about: (1) it&#8217;s a no-prompt GUI, so tool calls are auto-approved rather than gated per action \u2014 but every command and file edit streams into the chat as a visible chip as it happens, so it&#8217;s observable, not silent; and (2) you control the exposure \u2014 Auto-shot off means nothing is captured unless you opt in, so you&#8217;re not continuously feeding untrusted screens to it.<\/p>\n<p>Where I want to take it: a proper read-only mode (write tools disabled) so you can point it at an untrusted surface like a browser or inbox with zero write access \u2014 which lines up with what another commenter asked re: per-overlay permissions. That combo (read-only + on-demand capture) is the right answer for untrusted screens, and it&#8217;s high on the roadmap. Really appreciate you raising this 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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey this could actually save so much time\/tokens. However regarding privacy &#8211; can you mask out specific regions of the screen (like .env files or sensitive API keys) so the overlay completely ignores them while capturing the rest of your layout? Any considerations around that?<\/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\/@uddipta\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@uddipta<\/a>&nbsp;Great question \u2014 probably the most important one for a tool like this. Short answer: there&#8217;s no per-region masking. I did consider it, but reliably working out &#8220;this rectangle is a secret, ignore it&#8221; would add a real chunk of logic \u2014 and latency \u2014 to every single capture, so I deliberately left it out rather than slow the common path down.<\/p>\n<p>What you do get is control over <em>when<\/em> it looks: there&#8217;s an &#8220;Auto-shot&#8221; toggle \u2014 flip it off and the overlay stops screenshotting on its own, so capture becomes manual\/opt-in and it only ever sees your screen when you explicitly attach it. A couple more things that help: the screenshots go straight to Claude through your own CLI login (your existing subscription \u2014 no API key, no third-party server in between), and the overlay excludes its own window from every capture so it never grabs itself.<\/p>\n<p>So the honest privacy model is &#8220;you decide when it looks&#8221; rather than &#8220;it auto-hides secrets.&#8221; Thanks for pushing on this \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 screenshot-as-untrusted-input point is the real one. What&#8217;s worked for us: observed content (screen, docs, pages) is always data, never instructions, and any write\/run action needs a separate human confirm the on-screen text can&#8217;t trigger itself. Read \u2260 act. Great ship \u2014 the real-CLI-login approach is clever.<\/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>since multi-monitor grabs one tagged image per screen, does token cost scale linearly with monitor count, or do you downsample\/compress before it hits the model? curious how that plays with a fast Ctrl+Alt+Space hotkey loop<\/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\/@sabber_ahamed\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sabber_ahamed<\/a>&nbsp;Good question \u2014 the cost is bounded, not &#8220;whatever your native resolution is.&#8221; Two things happen before anything hits the model: each monitor is downscaled so its longest edge is \u22641568px (LANCZOS), then saved as JPEG (q82) or PNG, whichever&#8217;s smaller. 1568 is deliberate \u2014 it&#8217;s the resolution ceiling Claude&#8217;s vision uses internally, so a 4K monitor and a 1080p one cost about the same; you&#8217;re not paying for pixels the model would just throw away.<\/p>\n<p>So it scales linearly with monitor <em>count<\/em> (one image per screen), but each image is a fixed, capped cost regardless of the display&#8217;s real resolution \u2014 a full-screen grab lands on the order of ~1.5K tokens. Three monitors \u2248 three of those, not 3\u00d7 your 4K.<\/p>\n<p>On the hotkey loop: capture is tied to actually sending a message, not to the hotkey \u2014 Ctrl+Alt+Space just summons\/dismisses the window. To keep it snappy it pre-grabs a frame in the background while you type (reused if it&#8217;s &lt;6s old), so the capture is off the send path. And if you want a text-only exchange to cost zero image tokens, just flip Auto-shot off<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Nice, neat demo! Is this constantly recording the screen and if yes, is that something token efficiient. Also it is also paired with voice input along with screen share thing?<\/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\/@shekhar_upadhaya_1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@shekhar_upadhaya_1<\/a>&nbsp;Thanks! Nope \u2014 it&#8217;s not constantly recording. It grabs a single still frame per monitor at the moment you hit send (or reuses one it pre-grabbed a couple seconds earlier while you were typing) \u2014 no video, no continuous feed. That&#8217;s exactly what keeps it efficient: one bounded still per screen, downscaled to 1568px on the long edge (Claude&#8217;s own internal ceiling) and JPEG-compressed, so it&#8217;s ~1.5K tokens per screen rather than a stream. There&#8217;s also an &#8220;Auto-shot&#8221; toggle \u2014 off means it captures nothing unless you explicitly attach it, so a text-only question costs zero image tokens.<\/p>\n<p>On voice: not right now \u2014 input is text + screen capture + pasted images (Ctrl+V). And to be precise it&#8217;s not a live &#8220;screen share&#8221; feed either, more an on-demand snapshot attached to your message. Voice pairing is an interesting idea though \u2014 noting 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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Since you&#8217;re using the full Claude Code agent instead of just an API, what&#8217;s the most surprising workflow users have discovered? Has anyone been using it for something completely different than debugging?<\/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\/@tarqiya_forgah\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@tarqiya_forgah<\/a>&nbsp;Honestly it&#8217;s still very early, so this is mostly my own use plus a handful of testers \u2014 but the surprise has already been how much it skews <em>away<\/em> from debugging. Two things make it not really a &#8220;coding&#8221; tool: it reads whatever app is in front of you (not just an editor), and it&#8217;s the full agent \u2014 on Windows it can drive Excel\/PowerPoint\/Word over COM, pull a whole web page, touch files. So most of what I reach for is non-code knowledge work:<\/p>\n<p>\u2022 Spreadsheets &amp; decks \u2014 &#8220;read this whole workbook and tell me what the numbers are saying,&#8221; or having it actually clean up \/ reformat a deck that&#8217;s open, since it can act on the file rather than just describe it.<\/p>\n<p>\u2022 Dense reading \u2014 a long article, a PDF, a dashboard on screen \u2192 &#8220;summarize this, what should I actually care about here&#8221; with zero copy-paste.<\/p>\n<p>\u2022 Visual gut-checks \u2014 point it at a page or a layout and ask &#8220;what looks off here?&#8221;<\/p>\n<p>\u2022 Writing in context \u2014 drafting a reply to the email or doc that&#8217;s already on screen.<\/p>\n<p>The pattern that surprised me: the moment the context is &#8220;what&#8217;s on my screen&#8221; instead of &#8220;a repo,&#8221; the coding framing kind of falls away and it just becomes a general do-something-with-what-I&#8217;m-looking-at tool. Would genuinely love to hear what you&#8217;d point it at<\/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>Always-on-top framing feels really natural when I&#8217;m jumping between editor and browser. The fact that it reads my actual screen and runs as a real agent on my plan makes it way more useful than another chat sidebar.<\/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\/@pelinokutuaden\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@pelinokutuaden<\/a>&nbsp;Thank you \u2014 &#8220;more useful than another chat sidebar&#8221; is exactly the bar I was aiming for. The always-on-top + reads-your-actual-screen + real-agent-on-your-own-plan combo is the whole thesis: not a chat box bolted on the side, but something that&#8217;s already in the loop while you&#8217;re bouncing between editor and browser. Really glad it feels that way in practice. If you ever hit a rough edge or want something added, I&#8217;m all ears<\/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 like that this sits on top of the existing Claude Code login instead of adding another agent layer.<\/p>\n<\/p>\n<p>One thing I\u2019d want for daily coding use is a small run receipt after each screen-driven action: screenshot source, files touched, commands run, and which step came from what was visible on screen. When the input is a screen, debugging a wrong action later gets harder than with a normal prompt.<\/p>\n<\/p>\n<p>That kind of trace would make the overlay feel safer for long work sessions, not just faster.<\/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\/@grace_lee26\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@grace_lee26<\/a>&nbsp;Thanks \u2014 &#8220;on top of your existing login, not another agent layer&#8221; was a deliberate choice, so I&#8217;m really glad that lands.<\/p>\n<p>And this is a great ask \u2014 honestly the missing half of the safety story a few people have raised in this thread. You&#8217;re right that screen input makes provenance murkier: with a text prompt you can re-read exactly what you asked, but &#8220;what was on screen&#8221; is fuzzier to reconstruct later.<\/p>\n<p>Where it stands today: every command and file edit already streams into the chat as a visible tool chip as it happens, and each turn notes which monitors were attached \u2014 so there&#8217;s a live trace, just not a consolidated, reviewable receipt. Under the hood the captured frames are saved to a temp folder and there&#8217;s a debug log, so the raw material for a proper trace already exists.<\/p>\n<p>What you&#8217;re describing \u2014 a compact per-action receipt (screenshot source \u2192 commands run \u2192 files touched) you can scan after the fact \u2014 is very buildable and I want it. Honest nuance: the coarse version (this turn captured monitors 1+2, ran X, edited Y) is straightforward; the fine-grained &#8220;this specific edit traces to this region of the screen&#8221; is harder to do reliably, so I&#8217;d likely ship the per-turn receipt first. It pairs naturally with the read-only mode a couple of others asked for \u2014 trace + scoped permissions is exactly what makes it feel safe for long sessions, not just fast. Going on the roadmap; MIT if you&#8217;d ever want to help shape it. Excellent suggestion<\/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>Life saver!<\/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! Since it reads whatever&#8217;s on screen before answering, how do you handle sensitive info that might be visible (API keys, customer data, etc.) &#8211; is there any redaction or is it on the user to be careful what&#8217;s showing?<\/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\/@medal411\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@medal411<\/a>&nbsp;Thanks! Honest answer: there&#8217;s no automatic redaction \u2014 so yes, it&#8217;s on you to be aware of what&#8217;s on screen when you capture. I did look at detecting-and-blurring secrets, but reliably deciding &#8220;this rectangle is sensitive&#8221; would add real logic and latency to every capture, so I deliberately left it out rather than slow the common path down.<\/p>\n<p>What makes that manageable in practice: (1) capture is opt-in and on-demand \u2014 there&#8217;s an &#8220;Auto-shot&#8221; toggle, flip it off and it only ever sees your screen when you explicitly attach it, and even with it on it grabs the frame at the moment you hit send, not continuously; (2) the screenshots go straight to Claude through your own CLI login \u2014 your existing subscription, no API key, no third-party server in between; and (3) the overlay leaves its own window out of the capture, so it never grabs itself.<\/p>\n<p>So the model is &#8220;you decide when it looks&#8221; rather than &#8220;it auto-hides secrets.&#8221; One nice follow-up another commenter raised is having Claude flag if it spots something that looks like a key\/secret in a shot \u2014 an opt-in I&#8217;m considering. Thanks for keeping the privacy pressure on<\/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 how it pulls from your actual screen context, that&#8217;s the killer feature for me. One thing that would push it further: a quick toggle to switch between which monitor Claude reads, since I often have a reference doc on my second display I don&#8217;t want it touching.<\/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\/@pakizecankara\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@pakizecankara<\/a>&nbsp;Thanks \u2014 that &#8220;reads your actual screen context&#8221; part is the whole reason it exists, so I&#8217;m really glad it clicks for you. And you&#8217;re the second person to ask for this, which tells me it&#8217;s clearly the next thing to build: right now it grabs every monitor at once, so your second-display reference doc gets pulled in whether you want it or not. A quick per-monitor toggle \u2014 &#8220;only read this screen&#8221; \u2014 is squarely on the roadmap. In the meantime you can just tell Claude &#8220;only look at my main display&#8221; and it&#8217;ll focus there (each screen is labelled in the prompt), but a real toggle is the proper fix. Appreciate it<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I really like that this is more than just a screen-aware chat. The fact that Claude can act on the file that\u2019s already open makes it feel like part of the workflow rather than another window to manage.<\/p>\n<p>Are you considering making context and permissions configurable for each overlay? For example, one overlay could be tied to a specific project in read-only mode, while another could be allowed to edit files. That could make using multiple overlays feel much safer and more predictable.<\/p>\n<p>Nice work, Jason!<\/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\/@yuri_liubymov\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@yuri_liubymov<\/a>&nbsp;Thank you \u2014 &#8220;part of the workflow rather than another window to manage&#8221; is exactly the feeling I was going for, so it&#8217;s really good to hear it lands that way.<\/p>\n<p>And yes, this is a direction I find genuinely exciting. Some of the pieces are already there: you can run multiple overlays side by side today \u2014 but right now they share one global config, so they aren&#8217;t independently scoped yet. What you&#8217;re describing \u2014 pin overlay A to project X in read-only, let overlay B edit \u2014 is very much the right model, and the building blocks exist under the hood (Claude Code already has permission modes and working-directory scoping; it&#8217;s mostly a matter of surfacing them per instance). Making each overlay its own little sandboxed context is high on my list. It&#8217;s MIT if you&#8217;d ever want to help shape it \u2014 otherwise it&#8217;s going on the roadmap. Great suggestion<\/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 Jason! Let&#8217;s say I&#8217;m using this floating Claude Overlay on a web browser which has a very long content &#8211; meaning that we have to scroll down to read the full page. In this case, how can we make Claude Overlay read the whole context in our page?<\/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\/@ccg_cl\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ccg_cl<\/a>&nbsp;Great question, and you&#8217;ve spotted a real limit: a screenshot only captures what&#8217;s actually on screen (the current viewport), so anything below the fold that you&#8217;d have to scroll to isn&#8217;t in the image.<\/p>\n<p>The nice part is the overlay isn&#8217;t just &#8220;vision&#8221; \u2014 under the hood it&#8217;s the full Claude Code agent, so it can go fetch the full content directly instead of relying on the picture:<\/p>\n<p>\u2022 Web pages: just paste the URL and ask \u2014 Claude pulls the whole page with its WebFetch tool and reads it top to bottom, no scrolling needed.<\/p>\n<p>\u2022 Office files (Excel, PowerPoint, Word): because it can actually run commands, you can point it at the file and it&#8217;ll open it directly via COM automation and read the entire document \u2014 every sheet, every slide, every row \u2014 not just the slice that&#8217;s on screen.<\/p>\n<p>\u2022 Anything else without a URL (a desktop app, a PDF in a viewer): scroll and fire off a couple of messages \u2014 with Auto-shot on, each one grabs a fresh frame \u2014 or select-all \u2192 copy \u2192 paste the text straight into the overlay with Ctrl+V.<\/p>\n<p>So the screenshot is really for &#8220;what&#8217;s on my screen right now&#8221;; for long or structured docs it&#8217;s better to let the agent read the source directly. Thanks for the thoughtful 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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>One thing I&#8217;d love to see is cross-monitor support for the screenshot capture, specifically the ability to pick which screen Claude reads instead of grabbing everything at once. Would make it way more useful when working across a laptop and external display setup.<\/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\/@apiliogull53162\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@apiliogull53162<\/a>&nbsp;Yeah, this is a good one \u2014 and it&#8217;s squarely on my list. Right now it grabs every monitor and hands Claude one labelled image per screen (primary vs. secondary), with no way to say &#8220;just this one.&#8221; On a laptop + external-display setup that&#8217;s exactly where it gets clumsy \u2014 you end up spending tokens (and Claude&#8217;s attention) on the screen you don&#8217;t actually care about.<\/p>\n<p>Good news: this one&#8217;s very buildable. Under the hood it already enumerates each monitor and captures + tags them separately, so adding a &#8220;which screen(s)?&#8221; picker is a natural next step rather than a rewrite \u2014 probably a little per-display toggle. It&#8217;s open source (MIT) if you&#8217;d ever want to take a swing at it; otherwise it&#8217;s going on the roadmap.<\/p>\n<p>Quick workaround in the meantime: since each screen is labelled in the prompt, you can just tell Claude &#8220;only look at my external display&#8221; and it&#8217;ll focus there. Thanks for the great suggestion \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>finally something that lets claude see my actual screen instead of me copy-pasting everything. the always-on-top window is genuinely handy when you&#8217;re jumping between docs and code.<\/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\/@busefk6b\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@busefk6b<\/a>&nbsp;Thank you \u2014 that copy-paste loop was the exact itch I built this to scratch. The &#8220;always-on-top + just ask about whatever&#8217;s on screen&#8221; combo is the whole point, so it&#8217;s really good to hear it lands that way when you&#8217;re bouncing between docs and code. If you end up wanting anything (more shortcuts, cross-platform down the line), I&#8217;m all ears \ud83d\ude4f<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#8<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/ZIPEFPI5AMTROW\" class=\"app-title\">Branda<\/a><\/p>\n<div class=\"one-liner\">Turn any domain into on-brand ads, MIT Open Source<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">128<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Branda \u8ba9\u7528\u6237\u7c98\u8d34\u4efb\u610f\u7f51\u5740\uff0c\u5373\u53ef\u81ea\u52a8\u6293\u53d6\u54c1\u724c\u771f\u5b9e\u6807\u8bc6\u3001\u8272\u5f69\u548c\u6587\u6848\u98ce\u683c\uff0c\u79d2\u751f\u6210\u53ef\u76f4\u63a5\u6295\u653e\u7684 LinkedIn \u4e0e X \u5e7f\u544a\uff0c\u89e3\u51b3\u521b\u4f5c\u8005\u7f3a\u4e4f\u8bbe\u8ba1\u8d44\u6e90\u3001\u54c1\u724c\u8d44\u4ea7\u4e0d\u5339\u914d\u3001\u5236\u4f5c\u6d41\u7a0b\u7e41\u7410\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\/9516fcdf-a73f-46a8-993c-472e0277084e.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\/6052e121-a973-4625-89bc-0890dc6645f0.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\/2dfdaf79-ed29-452b-b2ce-c67005f66701.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\/b1b0a84f-9780-48d0-a042-3a1b2d7e6fde.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\">Marketing<\/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\u5e7f\u544a\u751f\u6210<\/span><br \/>\n            <span class=\"tag\">\u54c1\u724c\u4e00\u81f4\u6027\u8bbe\u8ba1<\/span><br \/>\n            <span class=\"tag\">Open Source<\/span><br \/>\n            <span class=\"tag\">URL\u5230\u521b\u610f<\/span><br \/>\n            <span class=\"tag\">\u54c1\u724c\u6570\u636eAPI<\/span><br \/>\n            <span class=\"tag\">\u793e\u4ea4\u5a92\u4f53\u5e7f\u544a<\/span><br \/>\n            <span class=\"tag\">\u81ea\u52a8\u5316\u8425\u9500<\/span><br \/>\n            <span class=\"tag\">\u65e0\u767b\u5f55\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u81ea\u6258\u7ba1<\/span><br \/>\n            <span class=\"tag\">\u8bbe\u8ba1\u6548\u7387\u5de5\u5177<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u4e3b\u8981\u5173\u6ce8\uff1a\u5bf9\u8425\u9500\u4eba\u5458\u63a7\u5236\u529b\u7684\u7591\u95ee\uff08\u80fd\u5426\u8c03\u6574\u6700\u7ec8\u521b\u610f\uff09\u3001\u5bf9\u65e0\u5f3a\u89c6\u89c9\u54c1\u724c\u7f51\u7ad9\uff08\u5982\u7ecf\u9500\u5546\u5e93\u5b58\u9875\uff09\u7684\u9002\u914d\u6027\u3001\u4e0e\u7ade\u54c1\u5dee\u5f02\uff1b\u5efa\u8bae\u5305\u62ec\u589e\u52a09:16\u7ad6\u7248\u5bfc\u51fa\u3001Meta\u5e7f\u544a\u683c\u5f0f\u3001\u9884\u89c8\u5bf9\u6bd4\u7f51\u683c\u3001\u5b9e\u65f6\u6293\u53d6\u4ea7\u54c1\u9875\u5b9a\u4ef7\u4e0eCTA\u5185\u5bb9\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                Branda \u7684\u201c\u7c98\u8d34\u5373\u51fa\u7247\u201d\u4f53\u9a8c\u786e\u5b9e\u4ee4\u4eba\u773c\u524d\u4e00\u4eae\uff0c\u4f46\u4ed4\u7ec6\u62c6\u89e3\u540e\u4f1a\u53d1\u73b0\uff0c\u5b83\u66f4\u50cf\u662f\u4e00\u4e2a\u7cbe\u5de7\u7684\u201c\u54c1\u724c\u8d44\u4ea7\u62fe\u53d6\u5668\u201d\u52a0\u201c\u6a21\u7248\u586b\u5145\u5668\u201d\uff0c\u800c\u975e\u771f\u6b63\u7684\u667a\u80fd\u521b\u610f\u5f15\u64ce\u3002\u6838\u5fc3\u4ef7\u503c\u5728\u4e8e\u5229\u7528 Context.dev \u7684 Brand API \u9ad8\u6548\u8fd8\u539f\u54c1\u724c\u89c6\u89c9\u8981\u7d20\uff08Logo\u3001\u8272\u503c\u3001\u4e3b\u9875\u6587\u6848\uff09\uff0c\u4ece\u800c\u89c4\u907f\u4e86\u4f20\u7edf AI \u5e7f\u544a\u751f\u6210\u4e2d\u5e38\u89c1\u7684\u201c\u4f2a\u54c1\u724c\u611f\u201d\u95ee\u9898\u2014\u2014\u4f8b\u5982\u751f\u6210\u4e00\u4e2a\u672c\u6765\u5356\u4e25\u8083\u529e\u516c\u8f6f\u4ef6\u7684\u54c1\u724c\u5374\u914d\u4e0a\u4e86\u53ef\u7231\u63d2\u56fe\u7684\u8352\u8bde\u9519\u8bef\u3002\u8fd9\u4e00\u70b9\u5bf9\u4e8e\u9700\u8981\u5feb\u901f\u4ea7\u51fa\u6279\u91cf\u793e\u4ea4\u5e7f\u544a\u7684\u8fd0\u8425\u4eba\u5458\u3001\u4e2d\u5c0f\u4ee3\u7406\u673a\u6784\u800c\u8a00\uff0c\u662f\u5b9e\u5b9e\u5728\u5728\u7684\u751f\u4ea7\u529b\u63d0\u5347\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u4ea7\u54c1\u5f53\u524d\u7684\u529f\u80fd\u8fb9\u754c\u76f8\u5f53\u6e05\u6670\uff1a\u5b83\u672c\u8d28\u4e0a\u5904\u7406\u7684\u662f\u4ece\u201cURL\u8f93\u5165\u201d\u5230\u201c\u4e24\u5e73\u53f0\u6807\u51c6\u5c3a\u5bf8\u8f93\u51fa\u201d\u7684\u7ebf\u6027\u6d41\u7a0b\uff0c\u51e0\u4e4e\u6ca1\u6709\u7ed9\u7528\u6237\u7559\u51fa\u5e72\u9884\u7b56\u7565\u3001\u8c03\u6574\u4fe1\u606f\u5c42\u7ea7\u6216\u9002\u914d\u590d\u6742\u573a\u666f\u7684\u7a7a\u95f4\u3002\u8bc4\u8bba\u4e2d\u6709\u5173\u201c\u4ea7\u54c1\u9875\u7279\u5b9a\u4fc3\u9500\u4fe1\u606f\u6293\u53d6\u201d\u201c9:16\u7ad6\u5c4f\u683c\u5f0f\u5bfc\u51fa\u201d\u201cMeta\u5e7f\u544a\u5b89\u5168\u533a\u9002\u914d\u201d\u7684\u8ffd\u95ee\u5747\u672a\u88ab\u73b0\u6709\u7248\u672c\u8986\u76d6\uff0c\u8fd9\u610f\u5473\u7740\u5b83\u66f4\u9002\u5408\u4f5c\u4e3a\u5feb\u901f\u521b\u610f\u521d\u7a3f\u6216\u7075\u611f\u7075\u611f\u677f\uff0c\u800c\u975e\u53ef\u76f4\u63a5\u6295\u4ea7\u7684\u201c\u5e7f\u544aCampaign\u7ba1\u7406\u5668\u201d\u3002\u6b64\u5916\uff0cMIT\u5f00\u6e90+\u81ea\u6258\u7ba1\u7684\u5b9a\u4f4d\u4e3a\u5176\u52a0\u5206\u4e0d\u5c11\uff08\u5c24\u5176\u5229\u4e8e\u9690\u79c1\u654f\u611f\u56e2\u961f\uff09\uff0c\u4f46\u4e5f\u95f4\u63a5\u8868\u660e\u6838\u5fc3\u4ef7\u503c\u5728 API \u7aef\u800c\u975e\u5e94\u7528\u7aef\u2014\u2014\u82e5 Context.dev \u7684\u53c2\u6570\u6216\u54c1\u724c\u7070\u5ea6\u6570\u636e\u8fed\u4ee3\u4e0d\u591f\u5feb\uff0cBranda \u5f88\u5bb9\u6613\u53d8\u6210\u82b1\u74f6\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u771f\u6b63\u7684\u7280\u5229\u4e4b\u5904\u5728\u4e8e\uff0cBranda \u7528\u6781\u7b80\u4ea4\u4e92\u9a8c\u8bc1\u4e86\u4e00\u4e2a\u66f4\u672c\u8d28\u7684\u95ee\u9898\uff1a\u5e7f\u544a\u521b\u610f\u751f\u6210\u4e2d\uff0c\u54c1\u724c\u4e00\u81f4\u6027\u7a76\u7adf\u662f\u7d20\u6750\u7edf\u4e00\u6027\u95ee\u9898\uff0c\u8fd8\u662f\u7b56\u7565\u4e00\u81f4\u6027\u95ee\u9898\uff1f\u524d\u8005\u53ef\u4ee5\u88ab API \u548c\u9884\u8bbe\u8ba1\u6a21\u7248\u89e3\u51b3\uff0c\u540e\u8005\u5219\u9700\u8981\u66f4\u6df1\u5165\u7684\u5185\u5bb9\u7406\u89e3\u3001\u53d7\u4f17\u9002\u914d\u3001\u6e20\u9053\u7b56\u7565\u5224\u65ad\u3002Branda \u5b8c\u7f8e\u5b8c\u6210\u4e86\u524d\u534a\u7a0b\uff0c\u4f46\u5bf9\u540e\u4e00\u534a\uff0c\u5b83\u9009\u62e9\u628a\u7403\u8e22\u7ed9\u7528\u6237\u2014\u2014\u800c\u8fd9\u6070\u6070\u662f\u5927\u591a\u6570\u975e\u4e13\u4e1a\u5e7f\u544a\u64cd\u76d8\u624b\u6700\u7f3a\u7684\u80fd\u529b\u3002\u5982\u679c\u60f3\u4ece\u201c\u5c0f\u5de5\u5177\u201d\u8fdb\u9636\u4e3a\u201c\u5c0f\u5f15\u64ce\u201d\uff0c\u56e2\u961f\u8fd8\u9700\u5728\u201c\u53ef\u63a7\u6027\u201d\u4e0e\u201c\u5b9e\u65f6\u52a8\u6001\u8c03\u6574\u201d\u4e0a\u505a\u51fa\u66f4\u91cd\u7684\u6295\u5165\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\">Branda<\/span>\n                <\/div>\n<div class=\"comment-content\">Branda turns any website URL into scroll-stopping, on-brand ads in seconds. Paste a link and Branda pulls the brand&#8217;s real logo, colors, and campaign imagery via Context.dev&#8217;s Brand API, reads the homepage so the copy sounds like the brand, and generates ready-to-ship creatives for LinkedIn and X. No login, no design skills, no assets to upload. Open-source and self-hostable.<\/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>Quick story: making ads that actually look on-brand is a pain. you either wrestle with a designer&#8217;s queue, fight canva templates, or get generic AI images that look nothing like your brand<\/p>\n<p>so we built branda<\/p>\n<p>Paste any url \u2192 it instantly pulls that brand&#8217;s real logo, colors, and campaign imagery, reads the homepage so the copy sounds like them, and generates ready-to-ship ads for linkedin and x<\/p>\n<p>The magic underneath is @getcontextdev&#8217;s brand api doing the heavy lifting, real brand data from any site on the web, not stock or hallucinations. we even let a vision model pick the strongest brand asset so the ads stay coherent instead of blending into mush<br \/>\nno login, no setup, open-source + self-hostable<\/p>\n<p>would love your feedback \ud83d\ude80 what brand&#8217;s url are you dropping in first?<\/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\/@getcontextdev\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@getcontextdev<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@yahia_bakour3\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@yahia_bakour3<\/a>&nbsp;Great idea! \ud83d\ude80 Using real brand assets instead of generic AI outputs is a smart approach to keeping creatives authentic and consistent. Excited to see how Branda evolves!<\/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\/@getcontextdev\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@getcontextdev<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@yahia_bakour3\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@yahia_bakour3<\/a>&nbsp;I like how simple you&#8217;ve made the workflow\u2014paste a URL and get on-brand creatives without hunting down logos or brand assets. Pulling visual identity and homepage context automatically should help keep the ads consistent with the brand&#8217;s voice, and being open source and self-hostable is a great bonus for teams that want more control. Best of 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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>When someone enters a domain, what does Branda look at to decide the brand direction \u2014 page copy, colors, logo, existing metadata, or all of that? The \u201cany domain into on-brand ads\u201d promise is simple, but I\u2019d be curious how much control a marketer or designer gets before the final ad is generated.<\/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\/@crystalmei\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@crystalmei<\/a>&nbsp;its open source! so you can see how the logic is formatted!!<\/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 freind of mine  runs campaigns for several small businesses and spends a lot of time recreating brand styles for each client. This looks like something that could speed up that process quite a bit. I&#8217;ll be sharing it with them.<\/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>Hello Yahia, congratulations on the launch. I like that you&#8217;re using actual brand assets instead of asking users to upload everything manually. That should make the generated ads feel much more  authentic and consistent with the company&#8217;s identity.<\/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. I run a dealership, and I&#8217;m always testing ad creative for inventory, so the &#8220;generic images that don&#8217;t look like your brand&#8221; problem is one I know well. I usually end up either paying a designer or settling for something close enough. Curious what happens with a site that&#8217;s mostly product photos and pricing rather than a strong visual brand on the homepage, like a dealership inventory page. Does Branda pull enough signal from that to generate something on-brand, or does it work best when there&#8217;s an established visual identity to draw from? Excited to try it out.<\/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>Today <a href=\"https:\/\/www.producthunt.com\/products\/gooseworks\" data-node-type=\"mention\" data-mention-type=\"product\" data-mention-id=\"gooseworks\" target=\"_blank\" rel=\"noopener\">@Goose Ads Remixer<\/a> also launched. How does Branda differ? <\/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\/@himani_sah1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@himani_sah1<\/a>&nbsp;this is just an open source MIT licensed repo showing what you can do with the <a href=\"https:\/\/context.dev\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">context.dev<\/a> api<\/p>\n<\/p>\n<p>If you want a fully managed service to actually use in production, then <a href=\"https:\/\/www.producthunt.com\/products\/gooseworks\" data-node-type=\"mention\" data-mention-type=\"product\" data-mention-id=\"gooseworks\" target=\"_blank\" rel=\"noopener\">@Goose Ads Remixer<\/a> is the right call \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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The no-login, paste-a-link flow is such a smart move, the whole thing feels like a party trick at first glance but then you realize it&#8217;s pulling real brand context behind the curtain.<\/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><a href=\"https:\/\/www.producthunt.com\/@yahia_bakour3\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@yahia_bakour3<\/a> Congrats on the launch! \ud83d\ude80 Turning any URL into on-brand creatives in seconds using <a href=\"http:\/\/Context.dev\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Context.dev<\/a>&#8216;s Brand API is super clever.<\/p>\n<p>Quick question: does Branda work best when pointed at a root domain\/homepage, or can it pull specific product\/landing page context (like promotional pricing or specific feature copy) to generate campaign-specific ad variants on the fly?<\/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\/@franz_briones\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@franz_briones<\/a>&nbsp;it can, it&#8217;s just an open source project \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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Love how it pulls the brand assets automatically. One thing I&#8217;d love to see is a quick preview grid showing all the ad variations side by side before downloading, so I can pick the strongest one without generating them one by one. Would save a lot of iteration time.<\/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 really handy for quick ad creation. One thing that would make it way more useful is adding support for exporting in vertical formats like 9:16 for Instagram Stories and TikTok, since right now it sounds focused mainly on LinkedIn and X. Most brands need those too for full funnel coverage.<\/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>A Meta ads version would be a huge unlock since a lot of teams live in Ads Manager. Could you add Facebook and Instagram formats with the right safe zones, or at least let me pick the aspect ratios I need before generation?<\/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 <a href=\"https:\/\/www.producthunt.com\/@yahia_bakour3\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"yahia_bakour3\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@yahia_bakour3<\/a> what happens if a website has zero clear images on the homepage does the system automatically generate geometric brand layouts based purely on the color codes it found?<\/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\/@priya_kushwaha1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@priya_kushwaha1<\/a>&nbsp;yep!<\/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 nice angle would be letting users paste an offer URL or product page and Branda scrapes the actual headline, price, and CTA so the ad copy isnt guessing at what the brand is selling right now. Hooking into the live page rather than just the homepage would make the creatives feel much more timely and accurate.<\/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\/7PGVWT2DUWJOU4\" class=\"app-title\">BugShot<\/a><\/p>\n<div class=\"one-liner\">Discover, fix, capture, and report bugs in one shot<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">108<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>BugShot\u662f\u4e00\u6b3eChrome\u4fa7\u8fb9\u680f\u63d2\u4ef6\uff0c\u8ba9\u5f00\u53d1\u8005\u548c\u8bbe\u8ba1\u5e08\u5728\u53d1\u73b0Bug\u65f6\uff0c\u80fd\u4e00\u952e\u81ea\u52a8\u6355\u83b7\u63a7\u5236\u53f0\u3001\u7f51\u7edc\u65e5\u5fd7\u3001\u73af\u5883\u4fe1\u606f\u5e76\u751f\u6210\u5b8c\u6574\u62a5\u544a\uff0c\u76f4\u8fde\u9879\u76ee\u7ba1\u7406\u5de5\u5177\uff0c\u5f7b\u5e95\u544a\u522b\u624b\u52a8\u590d\u5236\u7c98\u8d34\u7684\u7e41\u7410\u6d41\u7a0b\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\/1dcd0389-76fc-4d49-b3fb-bad8b546995a.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\/e697c7d3-c27d-4fae-ae20-6f25ef0cd2ee.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\/6797567f-ecf7-4ef4-9a14-5cbb170eaeed.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\/5066403c-126b-4754-95cf-591a82d15f4c.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\/93902e7d-0383-40df-8cfa-715767cea434.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\/2c8914cd-36ab-4172-b0ad-2b50e7e4a32d.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\/a0d9127d-3281-4024-b837-a2311137cf3b.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\">Productivity<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Bug\u62a5\u544a\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">Chrome\u6269\u5c55<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">CSS\u5b9e\u65f6\u7f16\u8f91<\/span><br \/>\n            <span class=\"tag\">\u65e5\u5fd7\u81ea\u52a8\u6355\u83b7<\/span><br \/>\n            <span class=\"tag\">AI\u8349\u7a3f<\/span><br \/>\n            <span class=\"tag\">\u9690\u79c1\u5b89\u5168<\/span><br \/>\n            <span class=\"tag\">\u65e0\u8d26\u53f7<\/span><br \/>\n            <span class=\"tag\">\u9879\u76ee\u7ba1\u7406\u96c6\u6210<\/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\u9ad8\u5ea6\u8ba4\u53ef\u81ea\u52a8\u6355\u83b7\u65e5\u5fd7\u548cCSS\u5b9e\u65f6\u7f16\u8f91\u529f\u80fd\u3002\u6838\u5fc3\u5efa\u8bae\u96c6\u4e2d\u5728\uff1a\u2460\u652f\u6301\u5f55\u5236\u7528\u6237\u64cd\u4f5c\u6b65\u9aa4\u4ee5\u751f\u6210\u590d\u73b0\u8def\u5f84\uff1b\u2461\u652f\u6301\u6309\u9879\u76ee\u4fdd\u5b58\u9ed8\u8ba4\u6307\u6d3e\u4eba\uff1b\u2462\u52a0\u5f3a\u654f\u611f\u4fe1\u606f\u81ea\u52a8\u8131\u654f\uff1b\u2463\u5e0c\u671b\u4e3a\u975e\u6280\u672f\u7528\u6237\u63d0\u4f9b\u94fe\u63a5\u5f0f\u4e00\u952e\u4e0a\u62a5\u529f\u80fd\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                BugShot\u5728\u201cBug\u62a5\u544a\u201d\u8fd9\u4e2a\u770b\u4f3c\u62e5\u6324\u7684\u8d5b\u9053\u91cc\u5207\u51fa\u4e86\u4e00\u4e2a\u975e\u5e38\u7cbe\u51c6\u7684\u5207\u53e3\u2014\u2014\u5b83\u89e3\u51b3\u7684\u5e76\u975e\u201c\u53d1\u73b0Bug\u201d\u7684\u95ee\u9898\uff0c\u800c\u662f\u201c\u63cf\u8ff0Bug\u201d\u7684\u6c89\u6ca1\u6210\u672c\u3002\u5176\u6838\u5fc3\u4ef7\u503c\u5728\u4e8e\u4e09\u4ef6\u4e8b\u7684\u8026\u5408\uff1a\u4e00\u662f\u5c06\u6d4f\u89c8\u5668\u539f\u751f\u8c03\u8bd5\u4fe1\u606f\uff08Console\/Network\/\u73af\u5883\uff09\u7684\u6355\u83b7\u4ece\u624b\u52a8\u64cd\u4f5c\u53d8\u4e3a\u81ea\u52a8\u5316\u4f34\u968f\uff1b\u4e8c\u662f\u521b\u9020\u6027\u5730\u5c06\u8bbe\u8ba1\u5e08\u201c\u6539CSS\u201d\u7684\u8c03\u8bd5\u52a8\u4f5c\u8f6c\u5316\u4e3a\u7ed3\u6784\u5316\u7684before\/after\u5dee\u5206\u8bc1\u636e\uff08\u800c\u975e\u6a21\u7cca\u7684\u5f62\u5bb9\u8bcd\u63cf\u8ff0\uff09\uff1b\u4e09\u662f\u901a\u8fc7\u76f4\u8fdeTracker\u548cAI\u64b0\u5199\u6458\u8981\uff0c\u5c06\u62a5\u544a\u751f\u6210\u4ece\u201c\u4e8c\u6b21\u521b\u4f5c\u201d\u538b\u7f29\u4e3a\u201c\u4e00\u952e\u786e\u8ba4\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u8fd9\u6b3e\u4ea7\u54c1\u5f53\u524d\u5b58\u5728\u4e00\u4e2a\u660e\u663e\u7684\u201c\u4f7f\u7528\u8005\u6096\u8bba\u201d\uff1a\u5b83\u9762\u5411\u7684\u6070\u6070\u662f\u6700\u8be5\u4f7f\u7528\u5b83\u7684\u4eba\uff08\u5f00\u53d1\/\u8bbe\u8ba1\uff09\uff0c\u800c\u8fd9\u4e9b\u4eba\u5f80\u5f80\u662fBug\u7684\u521b\u9020\u8005\u6216\u590d\u73b0\u8005\uff0c\u800c\u975e\u7b2c\u4e00\u53d1\u73b0\u8005\u3002\u5927\u91cfBug\u7684\u7b2c\u4e00\u76ee\u51fb\u8005\u662fPM\u3001\u8fd0\u8425\u6216\u5ba2\u6237\uff0c\u4f46\u4ed6\u4eec\u4e0d\u53ef\u80fd\u5b89\u88c5Chrome\u63d2\u4ef6\u53bb\u64cd\u4f5c\u3002\u8fd9\u610f\u5473\u7740BugShot\u5b9e\u9645\u4e0a\u662f\u4e00\u4e2a\u201c\u4e3a\u5de5\u7a0b\u5e08\u8bbe\u8ba1\u7684\u5de5\u7a0b\u5e08\u5de5\u5177\u201d\uff0c\u800c\u975e\u201c\u4e3a\u7ec4\u7ec7\u8bbe\u8ba1\u7684\u95ee\u9898\u53cd\u9988\u7cfb\u7edf\u201d\u3002\u5176\u4ef7\u503c\u5728\u5185\u90e8\u6d4b\u8bd5\u73af\u5f3a\u70c8\uff0c\u4f46\u5728\u8de8\u89d2\u8272\u534f\u4f5c\u94fe\u4e0a\u5b58\u5728\u5929\u7136\u65ad\u5c42\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u4ea7\u54c1\u903b\u8f91\u770b\uff0c\u5176\u9690\u79c1\u67b6\u6784\uff08\u672c\u5730\u5904\u7406+\u5f00\u6e90OAuth\u4ee3\u7406\uff09\u662f\u771f\u6b63\u7684\u62a4\u57ce\u6cb3\uff0c\u5728SaaS\u5de5\u5177\u6cdb\u6ee5\u7684\u5f53\u4e0b\uff0c\u8fd9\u79cd\u201c\u6570\u636e\u4e0d\u8fc7\u624b\u201d\u7684\u514b\u5236\u8bbe\u8ba1\u53cd\u800c\u6210\u4e3a\u4e86\u6700\u5f3a\u7684\u4fe1\u4efb\u58c1\u5792\u3002\u4f46\u5546\u4e1a\u5316\u7684\u9690\u5fe7\u4e5f\u968f\u4e4b\u800c\u6765\u2014\u2014\u65e0\u8d26\u53f7\u3001\u65e0\u670d\u52a1\u5668\u7684\u8bbe\u5b9a\uff0c\u610f\u5473\u7740\u5b83\u65e0\u6cd5\u8f7b\u6613\u6784\u5efa\u7528\u6237\u9ecf\u6027\u3001\u4f7f\u7528\u6570\u636e\u6216\u8ba2\u9605\u673a\u5236\u3002\u5b83\u66f4\u50cf\u662f\u4e00\u4e2a\u201c\u786c\u6838\u63d2\u4ef6\u201d\uff0c\u800c\u975e\u201cSaaS\u5e73\u53f0\u201d\uff0c\u8fd9\u51b3\u5b9a\u4e86\u5176\u7528\u6237\u89c4\u6a21\u5929\u82b1\u677f\u4f1a\u8f83\u4f4e\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u603b\u4f53\u800c\u8a00\uff0cBugShot\u5728\u201c\u5de5\u7a0b\u5e08\u4e2a\u4eba\u6548\u7387\u5de5\u5177\u201d\u8fd9\u4e2a\u7ec6\u5206\u7ef4\u5ea6\u4e0a\u505a\u5230\u4e86\u6781\u81f4\uff0c\u4f46\u82e5\u8981\u771f\u6b63\u6210\u4e3a\u56e2\u961f\u534f\u4f5c\u7684\u201cBug\u5904\u7406\u4e2d\u67a2\u201d\uff0c\u4ecd\u9700\u5728\u975e\u6280\u672f\u7528\u6237\u7684\u4e0a\u62a5\u94fe\u8def\uff08\u5982\u94fe\u63a5\u5f0f\u5d4c\u5165\u6216\u81ea\u52a8\u4ee3\u7406\uff09\u4ee5\u53ca\u7ed3\u6784\u5316\u7528\u6237\u64cd\u4f5c\u56de\u653e\u529f\u80fd\u4e0a\u505a\u5173\u952e\u7a81\u7834\u3002\u5b83\u7684\u672a\u6765\uff0c\u53d6\u51b3\u4e8e\u201c\u5f00\u53d1\u8005\u5de5\u5177\u201d\u5411\u201c\u8f7b\u91cf\u7ea7\u8d28\u91cf\u7ba1\u7406\u5e73\u53f0\u201d\u7684\u8de8\u8d8a\u80fd\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\">BugShot<\/span>\n                <\/div>\n<div class=\"comment-content\">Catch a bug and file a complete report from Chrome&#8217;s side panel. Captures, console\/network logs, and environment attach automatically. Or tweak the CSS live and send the before\/after side by side. AI drafts it for you. Free, no account, straight to your tracker.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>It would be awesome if Bug Shot could automatically generate clear reproduction steps from the captured session.  That would make it even more valuable.<\/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\/@bernard_lewis\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@bernard_lewis<\/a>&nbsp;<\/p>\n<p>I love this suggestion because it&#8217;s exactly where I think bug reporting should go.<\/p>\n<\/p>\n<p>BugShot already records your interactions as a structured timeline, and the AI Draft feature turns that into a title, description, and reproduction steps.<\/p>\n<\/p>\n<p>The hard part isn&#8217;t capturing everything\u2014it&#8217;s knowing what to leave out. Right now it mainly looks at the last ~20 actions, so it&#8217;s great at explaining what happened right before the bug, but not yet at distilling a longer session into the few steps someone else can reliably follow.<\/p>\n<\/p>\n<p>I&#8217;d love for BugShot to get there.<\/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 no account requirement is a great touch .Curious does it support recording user interactions leading up to the bug as well?<\/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\/@alan_gregory\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alan_gregory<\/a>&nbsp;<\/p>\n<p>Yep! BugShot starts recording interactions as soon as it&#8217;s running, so by the time you decide to report a bug, the history is already there.<\/p>\n<\/p>\n<p>It captures things like clicks, typing, toggles, dropdowns, drags, and navigation, then lines those up with the console and network logs so developers can see what you did alongside what the app was doing.<\/p>\n<\/p>\n<p>We were pretty careful about privacy, too. Passwords and payment fields are masked before they&#8217;re ever stored, and we don&#8217;t record cursor coordinates\u2014just the elements you interacted with.<\/p>\n<\/p>\n<p>One limitation today: the action timeline is only attached when you record a video, not when you capture a screenshot. A few people have asked for that already, and I think it makes sense to support both.<\/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>\n<p>I&#8217;m a product designer. My job is to notice when something is four pixels off \u2014 and then the hard part starts, because I have to describe it. I&#8217;d screenshot the bug, type &#8220;the spacing looks off here&#8221; into a ticket, and a developer would have to guess which property I meant. The rest of the report was clerical work: reproduce it, copy the URL and the browser version, dig through the console, paste it all into a tracker. By the time you&#8217;re done you&#8217;ve forgotten what you were actually working on.<\/p>\n<\/p>\n<p>So I built BugShot, a Chrome side panel that collapses that into one pass:<\/p>\n<\/p>\n<p>\u2022 Pick an element and fix it live. Edit its CSS right on the page \u2014 through form fields or a real CSS editor with autocomplete and color swatches. Every change is tracked as a before \u2192 after table in the report, so the developer gets the diff, not my adjectives. It resolves var() chains too, so the report says &#8211;color-primary instead of rgb(79, 70, 229).<\/p>\n<p>\u2022 Capture what you need. An element, a region, a screen recording, or the last 30 seconds of the tab. Annotate it before attaching.<\/p>\n<p>\u2022 Logs come along for free. Console, network, and user actions are recorded while BugShot is running, including inside cross-origin iframes.<\/p>\n<p>\u2022 File it where you already work. Jira, GitHub, Linear, Notion, GitLab, Asana, ClickUp \u2014 or share straight to a Slack channel or DM.<\/p>\n<\/p>\n<p>No sign-up, no account. Everything runs locally in the extension and posts directly to your tracker \u2014 your screenshots, logs and report text never touch a server of mine. The one exception is OAuth: platforms that require a client secret (Jira, GitHub, Notion, Asana, ClickUp, Slack) have their auth code exchanged through a small proxy that relays the token and stores nothing. Linear and GitLab use PKCE and skip it entirely.<\/p>\n<\/p>\n<p>I&#8217;d love to hear where it breaks for you \u2014 especially which tracker or workflow you&#8217;d want next. Happy to answer anything in the comments.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>honestly this looks super useful for my workflow but it would be great if you could save a default assignee or team channel per project so reports go straight to the right place without me having to select it every single time<\/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\/@peklrql\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@peklrql<\/a>&nbsp;<\/p>\n<p>Thank you, \u0130pek! This is really thoughtful feedback \ud83d\ude4f<\/p>\n<\/p>\n<p>Part of this already works today, although we clearly haven&#8217;t made it obvious enough\u2014that&#8217;s on us.<\/p>\n<p>BugShot remembers your last-used destination (repo, team, project, channel, assignee, labels, etc.) and pre-fills it the next time you report. You can also set defaults for each connected integration in the Connect tab.<\/p>\n<\/p>\n<p>That said, you&#8217;re absolutely right about the missing piece: those defaults are currently stored <strong>per integration, not per project<\/strong>. So if you&#8217;re working across multiple sites or repos, BugShot can end up defaulting to whatever you used most recently. That&#8217;s a real usability gap, and I&#8217;ve added it to our roadmap.<\/p>\n<\/p>\n<p>One question, if you don&#8217;t mind: would you rather have defaults tied to the website you&#8217;re reporting from (e.g. <a href=\"http:\/\/staging.foo.com\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">staging.foo.com<\/a> \u2192 repo X), or would a few named presets be more useful? I&#8217;d love to build whichever fits real workflows 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<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The before\/after CSS diff plus console\/network evidence is the important bit. AI can draft the ticket, but the raw evidence needs to travel with it so the developer is not debugging a summary of a bug instead of the bug itself.<\/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\/@krekeltronics\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@krekeltronics<\/a>&nbsp;<\/p>\n<p>That&#8217;s exactly the line I tried not to cross.<\/p>\n<\/p>\n<p>The AI draft only writes the prose\u2014the title and description. It&#8217;s entirely optional, and it never touches the evidence. Skip it, and the report is exactly the same, just without the prose.<\/p>\n<\/p>\n<p>Style changes are captured as a before \u2192 after table of the actual CSS declarations, not a description of them. If a value came from a design token, you&#8217;ll see &#8211;color-primary, not the rgb(79, 70, 229) it happened to resolve to. Developers get the value they&#8217;d otherwise have to go looking for.<\/p>\n<\/p>\n<p>The logs travel with the report as a self-contained logs.html: the full console, network activity, and user-action timeline\u2014not a digest. The ticket itself only includes a one-line summary so it stays readable, while the raw data is one click away in the attachment. You can filter by origin, inspect request and response bodies, or export everything as HAR or JSON. Nothing gets summarized along the way.<\/p>\n<\/p>\n<p>So the AI drafts around the evidence, never in place of it. If it ever became the only thing in the ticket, the tool would be worse than the screenshot-and-a-sentence workflow it was built to replace.<\/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>One thing I&#8217;d love is the ability to mark sensitive fields like emails or tokens for auto-redaction before the report gets sent. Even with a free tool, hitting send without scrubbing that stuff feels a little risky.<\/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\/@hakanzcpn\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@hakanzcpn<\/a>&nbsp;<\/p>\n<p>Funny timing \u2014 this is exactly what I worked on today.<\/p>\n<\/p>\n<p>BugShot already redacts sensitive data automatically, and the next release makes it even stricter. It detects common sensitive fields (passwords, auth tokens, etc.), masks values that look like email addresses or long numeric identifiers, and completely excludes content from rich-text editors like email composers and document editors.<\/p>\n<\/p>\n<p>That said, you&#8217;re pointing at a real gap: today it&#8217;s entirely heuristic-based. It catches most sensitive data automatically, but there will always be edge cases like internal IDs, customer references, or app-specific fields that don&#8217;t look sensitive to a generic detector.<\/p>\n<\/p>\n<p>In the meantime, nothing gets sent blindly. Before submitting, you can open the log card to review exactly what was captured, or disable the action log entirely if you&#8217;re working with sensitive data.<\/p>\n<\/p>\n<p>A user-defined redaction system is probably the right long-term solution, and it&#8217;s already on my roadmap. I&#8217;m curious which you&#8217;d prefer: clicking a field on the page to always redact it, or defining rules or patterns once in settings that apply everywhere?<\/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 part that stands out is the privacy claim, not the css diffing. a lot of bug tools that say everything stays local quietly still route auth tokens through their own servers, so I like that you called out the OAuth proxy explicitly instead of hiding it. does that proxy log anything at all for debugging on your end, or is it truly stateless per request<\/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\/@galdayan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@galdayan<\/a>&nbsp;<\/p>\n<p>Fair question \u2014 and honestly, it&#8217;s the one I&#8217;d ask too. &#8220;Everything stays local&#8221; often has an asterisk hidden somewhere around OAuth.<\/p>\n<\/p>\n<p>In our case, the proxy is stateless. It&#8217;s open source, so you don&#8217;t have to take my word for it:<\/p>\n<p><a href=\"https:\/\/github.com\/SinhyeokKang\/bugshot-2\/blob\/main\/oauth-proxy\/worker.ts\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/github.com\/SinhyeokKang\/bugshot-2\/blob\/main\/oauth-proxy\/worker.ts<\/a><\/p>\n<\/p>\n<p>All it does is exchange the authorization code for an access token and immediately relay the response back. It doesn&#8217;t persist tokens or request bodies, and nothing is logged for debugging. There&#8217;s no storage attached to the Worker either (no KV, D1, R2, or database), so there&#8217;s nowhere for anything to land.<\/p>\n<\/p>\n<p>Your screenshots, logs, and report text never go near the proxy in the first place\u2014they&#8217;re sent directly from the extension to your tracker.<\/p>\n<\/p>\n<p>After reading your comment, I also double-checked the Cloudflare side: Workers Logs, Traces, and Log Exports are all disabled for that Worker, and there&#8217;s no Tail Worker attached. The only thing Cloudflare exposes is aggregate metrics like request count, error rate, and CPU time\u2014no request content, tokens, or user identifiers.<\/p>\n<\/p>\n<p>There are a couple of extra guardrails too: the proxy only accepts requests from the registered extension and only for our own client IDs, so it can&#8217;t be used as a generic token-exchange service. And providers that support PKCE (like Linear and GitLab) don&#8217;t use the proxy at all.<\/p>\n<\/p>\n<p>If you spot anything in the code that contradicts this, please let me know. I&#8217;d genuinely appreciate 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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>finally something that grabs console logs automatically because honestly copying those into jira tickets every single time is kind of my least favorite part of the job. the live css tweak diff idea is actually clever too<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@abangciv\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@abangciv<\/a>&nbsp;<\/p>\n<p>Thank you \u2014 that&#8217;s exactly the pain point I built BugShot to solve.<\/p>\n<\/p>\n<p>One thing you might like: BugShot captures console and network activity across every frame, including cross-origin iframes like Stripe or chat widgets. Those are often the hardest things to reproduce because the relevant errors aren&#8217;t always in the frame you&#8217;re inspecting.<\/p>\n<\/p>\n<p>Everything is collected while BugShot is running, so by the time you decide to report a bug, the logs are already there.<\/p>\n<\/p>\n<p>To keep the ticket itself readable, BugShot adds a short summary and attaches the full console, network, and action timeline as a single logs.html file that developers can open and filter locally.<\/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>Sinhyeok \u2014 the redaction thread with Hakan and the OAuth-proxy answer to Gal are exactly the kind of detail that builds trust here. I&#8217;m coming at this from the other side of your usual user, though: WinBidIQ&#8217;s customers are federal-contracting SMB owners, not developers, and when one of them hits a bug they don&#8217;t know what a console log is \u2014 I get &#8220;it&#8217;s broken&#8221; over email and have to reproduce it myself with no repro steps. Is there a lightweight capture flow a non-technical external user could trigger \u2014 a link they click, describe the issue in plain English, and it still grabs console\/network\/environment for me \u2014 or is BugShot built around the reporter already having the extension and knowing what they&#8217;re looking at?<\/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\/@medal411\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@medal411<\/a>&nbsp;<\/p>\n<p>Med \u2014 straight answer: today it&#8217;s the second one. BugShot is built around the reporter having the extension installed and doing the capture from their own side panel \u2014 there&#8217;s no link-click flow a non-technical external user can trigger. No embeddable widget, no shareable capture link, no SDK \u2014 nothing external can talk to it at all, which is deliberate on the security side, but the flip side is it also can&#8217;t reach into a page it wasn&#8217;t opened on.<\/p>\n<\/p>\n<p>Which means for the WinBidIQ case you&#8217;re describing \u2014 a federal-contracting SMB owner emailing &#8220;it&#8217;s broken&#8221; with no repro \u2014 BugShot doesn&#8217;t solve it yet. That person would have to install the extension and know to open it, which is exactly the knowledge you&#8217;re saying they don&#8217;t have.<\/p>\n<\/p>\n<p>But you&#8217;ve put your finger on the most interesting split in this whole thread. What you&#8217;re describing is recorder-side capture \u2014 the reporter clicks a link, types the problem in plain English, and console\/network\/environment tag along without them ever knowing what any of it is. That&#8217;s a different architecture from what BugShot is today: it flips the model from &#8220;you instrument your own session&#8221; to &#8220;you instrument your users&#8217; sessions.&#8221; Which is arguably a different product \u2014 closer to support triage than a dev tool.<\/p>\n<\/p>\n<p>I don&#8217;t want to fake a timeline on something that&#8217;s a real pivot rather than a feature flag. But the question I&#8217;d actually want to answer is the minimum one: what&#8217;s the least a click-a-link flow would have to grab to save you the reproduction step? Console + network + URL + browser, or does the environment matter more than that for your case? Happy to keep going here, or take it to email if it gets into WinBidIQ specifics.<\/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 great idea. I do have a couple questions. You mention CSS editing in realtime. Who is the target audience for this feature? Would they know the cascading impact of such a change? A higher level CSS change could break or alter other areas of the site. Also, does it work with minified or compiled CSS? If so how does the actual line number of the CSS update get communicated back to the developer? You mention the network traffic at the time of the bug is attached, this to me is the most interesting part. Is a HAR file being attached? Is it parsed with data analysis? In my world CSS is rarely the case but the underlying dependencies, APIs or libraries are. The HAR analysis could really help debug the issue. Great work, I like where this is going. <\/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\/@webdevmorgan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@webdevmorgan<\/a>&nbsp;<\/p>\n<p>Thanks Scott, these are the right questions.<\/p>\n<\/p>\n<p>On the CSS side \u2014 BugShot&#8217;s a reporting tool, not a deploy tool. Your edits only live in your own view, nothing touches the real stylesheet, so there&#8217;s no cascade risk to the actual site. The dev just gets the before\/after render plus the property delta (padding: 8px \u2192 12px on this element), and decides how to land it. Same deal with minified\/compiled: it reads computed styles off the live element&#8217;s CSSOM, not source, so it won&#8217;t pretend to hand you a line number in a bundle (which wouldn&#8217;t mean anything anyway) \u2014 just the visual intent and the exact diff to map back yourself.<\/p>\n<\/p>\n<p>Network&#8217;s the part I keep coming back to as well. It captures structured entries \u2014 method, status, timing, request\/response headers and bodies (payloads capped at 3MB, sensitive fields like auth headers\/tokens masked, binary bodies skipped) \u2014 right next to the console and action logs, cross-origin iframes included. It already does HAR 1.2 export, and there&#8217;s error-level parsing on top: 4xx\/5xx and failed\/CORS-blocked requests get filtered into a summary and highlighted. What&#8217;s not there yet is deeper analysis \u2014 correlating a failure to its root cause \u2014 and that&#8217;s exactly where I want to take it, because like you said, dependency and API failures are where the real signal lives.<\/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>Finally something that captures console and network logs without me messing with devtools first. Honestly the side-by-side CSS tweak is kind of genius, saved me a whole back-and-forth with the designer already.<\/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\/@hikmetcantekin\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@hikmetcantekin<\/a>&nbsp;<\/p>\n<p>That&#8217;s the exact loop I built it to kill \u2014 I&#8217;m a designer, and &#8220;the spacing looks off here&#8221; used to cost us another round every single time.<\/p>\n<\/p>\n<p>One thing that might save you another round: if a value comes from a design token, the diff reports &#8211;color-primary instead of the resolved rgb(79, 70, 229). The developer gets the token name they&#8217;d otherwise have to look up, so nobody has to guess where the value came from.<\/p>\n<\/p>\n<p>Edits stack across elements too, so if you tweak three different things, they all end up in a single before \u2192 after table.<\/p>\n<\/p>\n<p>Really glad it&#8217;s already proving useful. If you run into anything that slows you down, I&#8217;d genuinely love to hear about 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<\/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\/SAR2IDVAPOGLFL\" class=\"app-title\">Animos App<\/a><\/p>\n<div class=\"one-liner\">Showcase your designs in motion<\/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>Animos App\u662f\u4e00\u6b3e\u6d4f\u89c8\u5668\u7aef\u7684\u52a8\u753b\u5c55\u793a\u5de5\u5177\uff0c\u8ba9\u8bbe\u8ba1\u5e08\u65e0\u9700\u590d\u6742\u8f6f\u4ef6\uff0c\u57281\u5206\u949f\u5185\u901a\u8fc7\u6a21\u677f\u5feb\u901f\u751f\u6210\u9ad8\u8d28\u91cf4K\u52a8\u753b\u4f5c\u54c1\u96c6\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\/b67ce95e-fd3b-42d5-82a2-ddbe90476acc.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\/48055555-ce63-405f-8af5-fc116d91dcbe.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\/1c3f08bd-394a-4180-9890-35cafcc8f0ba.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\/4426141a-8062-4156-96f8-3623df3fb95a.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\/7c6594d6-fd24-42f6-8960-231e4b3d839b.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/DEvpa_7_pXc\"><source src=\"https:\/\/youtu.be\/DEvpa_7_pXc\" 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\">Animation<\/span><br \/>\n            <span class=\"tag\">Video<\/span><br \/>\n            <span class=\"tag\">Vibe coding<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u52a8\u753b\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u4f5c\u54c1\u96c6\u5c55\u793a<\/span><br \/>\n            <span class=\"tag\">\u6d4f\u89c8\u5668\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u6a21\u677f\u7cfb\u7edf<\/span><br \/>\n            <span class=\"tag\">4K\u5bfc\u51fa<\/span><br \/>\n            <span class=\"tag\">WebM\u683c\u5f0f<\/span><br \/>\n            <span class=\"tag\">UI\u8bbe\u8ba1\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u521b\u4f5c\u8005\u6548\u7387<\/span><br \/>\n            <span class=\"tag\">\u65e0\u4ee3\u7801<\/span><br \/>\n            <span class=\"tag\">vibe coding<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u79f0\u8d5e\u6a21\u677f\u6d41\u7545\u3001\u5bfc\u51fa\u8d28\u91cf\u9ad8\u4e14\u65e0\u6c34\u5370\u3002\u4e3b\u8981\u5efa\u8bae\uff1a\u589e\u52a0\u8f6e\u64ad\u6a21\u677f\u7684\u65e0\u9650\u56fe\u7247\u652f\u6301\uff1b\u5e0c\u671b\u4fdd\u5b58\u9879\u76ee\u72b6\u6001\u4ee5\u4fbf\u540e\u7eed\u7f16\u8f91\uff1b\u671f\u671b\u5f00\u53d1MCP\u670d\u52a1\u5668\u8ba9AI\u4ee3\u7406\u76f4\u63a5\u8c03\u7528\u751f\u6210\u52a8\u753b\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                Animos\u7cbe\u51c6\u5207\u4e2d\u4e86\u8bbe\u8ba1\u5e08\u4f5c\u54c1\u5c55\u793a\u7684\u201c\u6700\u540e\u4e00\u516c\u91cc\u201d\u75db\u70b9\u2014\u2014\u4e0d\u662f\u4eba\u4eba\u90fd\u4f1aAfter Effects\uff0c\u4f46\u4eba\u4eba\u90fd\u60f3\u8ba9\u4f5c\u54c1\u52a8\u8d77\u6765\u3002\u5176\u6838\u5fc3\u4ef7\u503c\u4e0d\u5728\u4e8e\u521b\u65b0\u52a8\u753b\u6280\u672f\uff0c\u800c\u5728\u4e8e\u5c06\u590d\u6742\u7684\u52a8\u6548\u8bbe\u8ba1\u964d\u7ef4\u6210\u201c\u9009\u6a21\u677f-\u6254\u7d20\u6750-\u5bfc\u51fa\u201d\u7684\u4e09\u6b65\u6d41\u6c34\u7ebf\uff0c\u628a\u7528\u6237\u4ece\u8f6f\u4ef6\u5b66\u4e60\u6210\u672c\u4e2d\u89e3\u653e\u51fa\u6765\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u7528\u6237\u53cd\u9988\u770b\uff0c4K\u65e0\u6c34\u5370\u5bfc\u51fa\u548cWebM\u900f\u660e\u683c\u5f0f\u7684\u652f\u6301\u662f\u786c\u901a\u8d27\uff0c\u5c24\u5176\u9488\u5bf9\u53d1\u5e03\u5728\u4e2a\u4eba\u7f51\u7ad9\u7684\u573a\u666f\u3002\u4f46\u201c\u65e0\u4fdd\u5b58\u72b6\u6001\u201d\u548c\u201c\u65e0\u6cd5\u8c03\u6574\u5173\u952e\u5e27\u201d\u7684\u8bbe\u8ba1\u521d\u8877\u867d\u4fdd\u8bc1\u4e86\u6781\u901f\u4f53\u9a8c\uff0c\u4e5f\u66b4\u9732\u4e86\u5de5\u5177\u7684\u4e0a\u9650\uff1a\u5b83\u66f4\u9002\u5408\u5feb\u901f\u4ea7\u51fa\u5c55\u793a\u7d20\u6750\uff0c\u800c\u975e\u7cbe\u7ec6\u5316\u7684\u52a8\u6548\u521b\u4f5c\u3002\u5bf9\u4e8e\u6709\u8fed\u4ee3\u9700\u6c42\u7684\u7528\u6237\uff0c\u8fd9\u5c31\u662f\u4e00\u9524\u5b50\u4e70\u5356\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u503c\u5f97\u5173\u6ce8\u7684\u662f\u56e2\u961f\u660e\u786e\u5c06MCP\u96c6\u6210\u63d0\u4e0a\u8def\u7ebf\u56fe\uff0c\u8fd9\u900f\u9732\u51fa\u4e00\u4e2a\u91ce\u5fc3\uff1a\u8ba9Animos\u4ece\u201c\u4e3a\u4eba\u7c7b\u8bbe\u8ba1\u7684\u5de5\u5177\u201d\u8fdb\u5316\u4e3a\u201c\u4e3aAI\u4ee3\u7406\u8bbe\u8ba1\u7684API\u201d\u3002\u82e5\u6210\u529f\uff0c\u8bbe\u8ba1\u5e08\u53ef\u80fd\u53ea\u9700\u5bf9AI\u8bf4\u4e00\u53e5\u201c\u628a\u8fd9\u5f20UI\u56fe\u505a\u4e2a\u65cb\u8f6c\u5c55\u793a\u52a8\u753b\u201d\uff0c\u5c31\u80fd\u81ea\u52a8\u62ff\u5230\u6210\u54c1\u3002\u4f46\u8fd9\u540c\u65f6\u4e5f\u610f\u5473\u7740\uff0cAnimos\u5fc5\u987b\u89e3\u51b3\u5f53\u524d\u201c\u4e00\u6b21\u6027\u4ea7\u51fa\u201d\u7684\u5c40\u9650\uff0c\u5426\u5219\u5728AI\u534f\u4f5c\u6d41\u7a0b\u4e2d\u4ecd\u4f1a\u6ca6\u4e3a\u5236\u9020\u5783\u573e\u7684\u6d41\u6c34\u7ebf\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u603b\u4f53\u800c\u8a00\uff0c\u5de5\u5177\u5b9a\u4f4d\u6e05\u6670\u3001\u6267\u884c\u5229\u843d\uff0c\u4f46\u8981\u6210\u4e3a\u521b\u4f5c\u8005\u751f\u6001\u7684\u4e00\u90e8\u5206\uff0c\u8fd8\u9700\u5728\u53ef\u7f16\u8f91\u6027\u548c\u6253\u901a\u8bbe\u8ba1\u5de5\u5177\u94fe\u4e0a\u591a\u4e0b\u529f\u592b\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\">Animos App<\/span>\n                <\/div>\n<div class=\"comment-content\">Present your work with high-quality motion in under 1 minute. Animos is a browser-based animation tool built for creators. The workflow is simple: pick a template, drop in your assets, tweak, and export. With 30+ templates, 4K resolution, and MP4\/WebM support, you can easily generate stunning, web-ready animations for your portfolio.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hi Product Hunt! \ud83d\udc4b I&#8217;m Herdetya, the creator of Animos.<\/p>\n<p>Presenting your work with high-quality motion shouldn&#8217;t require firing up complex software. I built Animos to fix that by letting you build stunning, animated showcases in under 1 minute.<\/p>\n<p>The workflow is incredibly simple: <\/p>\n<p>Pick a template \u2794 Upload your assets &amp; adjust \u2794 Export!<\/p>\n<p>During our beta, we were blown away to see 5,000+ users generate over 9,000 exports. Watching how you used the app directly shaped today&#8217;s official launch.<\/p>\n<p>Here is what is waiting for you:<\/p>\n<p>30+ Ready-Made Templates: Instantly match your design style without starting from scratch.<\/p>\n<p>Crisp 4K Export: Showcase your work in stunning, high-res detail.<\/p>\n<p>MP4 &amp; WebM Support: The exact web-optimized formats you need for portfolios and social media.<\/p>\n<p>I&#8217;ll be hanging out in the comments all day. I&#8217;d love to hear your thoughts, answer questions, or hear what features you&#8217;d like to see next!<\/p>\n<p>Cheers,<br \/>\nHerdetya<\/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\/@herdetyapriambodo\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@herdetyapriambodo<\/a>&nbsp;Hi, I really enjoyed your animos app! I&#8217;ve been enjoying all of the template and it is  very smooth. Would it be possible to have unlimited images I can add especially on Carousell template in the future update? <\/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 template-first workflow is genuinely smart, takes the friction out of starting from a blank canvas. Love that exports go straight to MP4\/WebM at 4K without a watermark trap.<\/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\/@didem482549\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@didem482549<\/a>&nbsp;Thanks Didem! \ud83d\ude4c Killing that blank canvas friction was exactly the goal. So glad you&#8217;re loving the templates and the clean 4K exports!<\/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, ran a few tests and the export quality is great.<\/p>\n<p>You tagged this &#8220;vibe coding&#8221; so I have to ask: any plans for an MCP server, so an agent like Claude Code could feed it assets and pull back an animation directly? The manual flow is smooth, but that&#8217;d be the unlock for the dev crowd you&#8217;re aiming at.<\/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\/@jo_remi_saada\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jo_remi_saada<\/a>&nbsp;Thanks Jo-R\u00e9mi! \ud83d\ude4c You nailed it. An MCP integration is definitely on our roadmap for the next big update. Building that bridge for agents to pull animations directly is the exact unlock we&#8217;re aiming for next. Appreciate 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>The pick-template \u2192 drop-assets \u2192 export flow is the right call for a portfolio piece you want done in a minute, not a full motion-design project. As a day-one user: after I export, does Animos save the project so I can reopen and tweak that same animation later, or is each export a fresh start with no saved state? And are the 30+ templates the whole canvas, or can I adjust timing\/keyframes beyond the presets?<\/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\/@leo404\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@leo404<\/a>&nbsp;Thanks Leopold! \ud83d\ude4c You get it. To guarantee that sub-minute speed, there are no saved states or custom timelines yet. Every export is a fresh start. All about pure speed for day 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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>During beta, what surprised you most about how people used Animos? Was there a template or workflow that became unexpectedly popular and changed your roadmap?<\/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\/@tarqiya_forgah\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@tarqiya_forgah<\/a>&nbsp;Thanks Tarqiya! The biggest surprise was how heavily people leaned into the WebM exports for their personal websites. We originally thought MP4s for social media would be the main use case, but seeing that demand completely shifted our roadmap to prioritize web-ready, transparent formats.<\/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>Honestly the template workflow is really smooth, dropped in some assets and had a clean animation exported in like 2 minutes. The 4K output is a nice touch for portfolio stuff.<\/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\/@can4ojy\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@can4ojy<\/a>&nbsp;Thanks Can! \ud83d\ude4c &#8216;Clean animation in 2 minutes&#8217; is exactly what we love to hear. So glad the templates are speeding up your workflow!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The templates actually look solid and the export was quick, kind of surprised how clean the MP4 came out for a browser tool.<\/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\/@ecetuzculse9\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ecetuzculse9<\/a>&nbsp;Thanks so much, Ece! Getting those crisp MP4s without sacrificing export speed was exactly our goal. Glad the templates are hitting the mark for you!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Yessss!! This is exactly what I have been looking for. Thank you for having the creatives in mind. What a beautiful seamless way to showcase my works!<\/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\/@babatunde_sunday_oluwaseun\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@babatunde_sunday_oluwaseun<\/a>&nbsp;Thanks Babatunde! \ud83d\ude4c Hearing that it&#8217;s exactly what you&#8217;ve been looking for makes all the hard work worth it. I can&#8217;t wait to see the beautiful work you showcase with 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<\/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\/N7ZNZ6UVLGFHDR\" class=\"app-title\">Sales Studio<\/a><\/p>\n<div class=\"one-liner\">Private studio for live demos on macOS<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">102<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Sales Studio\u662f\u4e00\u6b3emacOS\u4e13\u7528\u76f4\u64ad\u6f14\u793a\u5de5\u5177\uff0c\u901a\u8fc7\u4e3a\u6f14\u793a\u8005\u63d0\u4f9b\u79c1\u5bc6\u7684\u811a\u672c\u3001\u63d0\u8bcd\u5668\u548c\u591a\u753b\u9762\u8c03\u5ea6\u540e\u53f0\uff0c\u540c\u65f6\u53ea\u5411\u89c2\u4f17\u5c55\u793a\u4e00\u4e2a\u5e72\u51c0\u3001\u65e0\u5e72\u6270\u7684\u5171\u4eab\u7a97\u53e3\uff0c\u5f7b\u5e95\u89e3\u51b3\u4e86Zoom\/Meet\/Teams\u4f1a\u8bae\u4e2d\u5c4f\u5e55\u5171\u4eab\u6df7\u4e71\u3001\u7a97\u53e3\u5207\u6362\u9891\u7e41\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\/ee1a1f36-3df2-4538-a25e-41b145fafd2f.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\/10955210-8f04-43fe-9c90-3f5f3803ab67.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\/29df7b41-60ef-4b0b-931e-3d738e660035.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\/9a8758f6-a13b-4330-bbfb-a47ef1a3ec9e.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\/657002b5-8a5d-4a43-95d0-c59c9392a8b2.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\/b62048eb-2f46-4558-a7ab-23b487f67745.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\/b2d7e1d7-bdf9-460c-8100-9b42fbf33ad5.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/s7XLll2Ve6E\"><source src=\"https:\/\/youtu.be\/s7XLll2Ve6E\" 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\">Sales<\/span><br \/>\n            <span class=\"tag\">SaaS<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u6f14\u793a\u8f85\u52a9\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">macOS<\/span><br \/>\n            <span class=\"tag\">\u76f4\u64ad\u6f14\u793a<\/span><br \/>\n            <span class=\"tag\">\u5c4f\u5e55\u5171\u4eab<\/span><br \/>\n            <span class=\"tag\">\u63d0\u8bcd\u5668<\/span><br \/>\n            <span class=\"tag\">\u573a\u666f\u5207\u6362<\/span><br \/>\n            <span class=\"tag\">\u9500\u552e\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u8fdc\u7a0b\u534f\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u7a97\u53e3\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u521b\u4f5c\u8005\u5de5\u5177<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u8ba4\u53ef\u5176\u89e3\u51b3\u4e86\u7a97\u53e3\u6df7\u4e71\u7684\u75db\u70b9\uff0c\u5c24\u5176\u8d5e\u8d4f\u811a\u672c\u8986\u76d6\u548c\u63d0\u8bcd\u5668\u529f\u80fd\u3002\u4e3b\u8981\u95ee\u9898\u4e0e\u5efa\u8bae\uff1a1. \u8d28\u7591\u7cfb\u7edf\u901a\u77e5\uff08\u5982Slack\uff09\u662f\u5426\u4f1a\u610f\u5916\u6cc4\u9732\uff1b2. \u8be2\u95ee\u4e0eCRM\u96c6\u6210\u80fd\u529b\uff1b3. \u5f3a\u70c8\u5efa\u8bae\u589e\u52a0\u81ea\u5b9a\u4e49\u6f14\u793a\u9884\u8bbe\/\u5feb\u7167\u529f\u80fd\uff0c\u4ee5\u9002\u5e94\u4e0d\u540c\u53d7\u4f17\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                Sales Studio\u7cbe\u51c6\u51fb\u4e2d\u4e86\u4e13\u4e1a\u7ea7\u8fdc\u7a0b\u6f14\u793a\u7684\u201c\u9762\u5b50\u5de5\u7a0b\u201d\u4e0e\u201c\u91cc\u5b50\u6548\u7387\u201d\u7684\u5272\u88c2\u9700\u6c42\u3002\u5b83\u4e0d\u662f\u53c8\u4e00\u4e2a\u5f55\u5c4f\u8f6f\u4ef6\uff0c\u800c\u662f\u4e00\u4e2a\u4e3a\u6f14\u793a\u8005\u91cf\u8eab\u6253\u9020\u7684\u201c\u5bfc\u6f14\u6307\u6325\u53f0\u201d\u3002\u5176\u6838\u5fc3\u4ef7\u503c\u5728\u4e8e\uff1a\u5c06\u6f14\u793a\u8005\u4ece\u201c\u64cd\u4f5c\u5de5\u201d\u8f6c\u53d8\u4e3a\u201c\u5bfc\u6f14\u201d\uff0c\u5c06\u6280\u672f\u5c42\u9762\u7684\u7a97\u53e3\u5207\u6362\uff08\u505a\u4e8b\u7684\u82e6\u52b3\uff09\u8f6c\u5316\u4e3a\u89c6\u89c9\u5c42\u9762\u7684\u53d9\u4e8b\u6d41\u7545\uff08\u5448\u73b0\u7684\u529f\u52b3\uff09\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u4ea7\u54c1\u903b\u8f91\u770b\uff0c\u5b83\u975e\u5e38\u806a\u660e\u5730\u9009\u62e9\u4e86\u201c\u7a97\u53e3\u8f93\u51fa\u201d\u6a21\u5f0f\uff0c\u5de7\u5999\u907f\u5f00\u4e86\u8d1f\u8d23\u89c6\u9891\u6d41\u538b\u7f29\u4e0e\u5206\u53d1\u7684\u91cd\u6d3b\uff0c\u5c06\u6027\u80fd\u5305\u88b1\u7529\u7ed9\u4f1a\u8bae\u8f6f\u4ef6\u3002\u8fd9\u79cd\u8f7b\u91cf\u7ea7\u67b6\u6784\u4fdd\u8bc1\u4e86\u6f14\u793a\u8005\u7aef\u7684\u6027\u80fd\u7a33\u5b9a\uff0c\u4f46\u4e5f\u66b4\u9732\u4e86\u4e00\u4e2a\u81f4\u547d\u5f31\u70b9\uff1a\u5bf9\u7cfb\u7edf\u7ea7\u5f39\u7a97\u7684\u201c\u514d\u75ab\u201d\u5168\u51ed\u6f14\u793a\u8005\u81ea\u8eab\u7684\u7ba1\u7406\u4e60\u60ef\uff0c\u4e00\u65e6Mac\u7ffb\u8f66\uff08\u5982iCloud\u540c\u6b65\u5f39\u7a97\u3001\u7cfb\u7edf\u66f4\u65b0\u63d0\u9192\uff09\uff0c\u6574\u4e2a\u201c\u5e72\u51c0\u201d\u7684\u5448\u73b0\u77ac\u95f4\u5d29\u584c\u3002\u8fd9\u4e2a\u201c\u9ed1\u5929\u9e45\u201d\u4e8b\u4ef6\uff0c\u6070\u597d\u662f\u6240\u6709\u540c\u7c7b\u5de5\u5177\u6700\u96be\u89e3\u51b3\u7684\u4f53\u9a8c\u65ad\u5c42\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7528\u6237\u6700\u6025\u9700\u7684\u201c\u9884\u8bbe\u573a\u666f\u201d\u529f\u80fd\u76ee\u524d\u53ea\u80fd\u9760\u6570\u5b57\u952e\u5207\u6362\u663e\u793a\u6e90\u6765\u90e8\u5206\u5b9e\u73b0\uff0c\u7b97\u4e0d\u4e0a\u5168\u573a\u666f\u5c31\u7eea\u3002\u4e00\u4e2a\u5b8c\u5907\u7684\u9884\u8bbe\u7cfb\u7edf\uff08\u4fdd\u5b58\u7a97\u53e3\u5e03\u5c40\u3001\u900f\u660e\u5ea6\u3001\u63d0\u8bcd\u5668\u5185\u5bb9\u751a\u81f3\u6444\u50cf\u5934\u6548\u679c\uff09\u4f1a\u662f\u5176\u4ece\u201c\u597d\u5de5\u5177\u201d\u8fc8\u5411\u201c\u9500\u552e\u6548\u7387\u5e73\u53f0\u201d\u7684\u62a4\u57ce\u6cb3\u3002\u6b64\u5916\uff0c\u8bc4\u8bba\u533a\u5bf9CRM\u96c6\u6210\u7684\u63d0\u95ee\u6697\u793a\u4e86\u5b83\u5e94\u6210\u4e3aSalesforce\/HubSpot\u4e2d\u7684\u201c\u6f14\u793a\u6d3b\u52a8\u201d\u73af\u8282\u2014\u2014\u4f46\u8fd9\u53ef\u80fd\u8d85\u51fa\u4e86\u5176\u72ec\u7acb\u5de5\u5177\u7684\u53d1\u5c55\u8fb9\u754c\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u603b\u7684\u6765\u8bf4\uff0c\u5b83\u5f88\u597d\u5730\u89e3\u51b3\u4e86\u201c\u6f14\u793a\u6df7\u4e71\u201d\u8fd9\u4e00\u663e\u6027\u75db\u70b9\uff0c\u4f46\u5728\u66f4\u6df1\u5c42\u7684\u201c\u6f14\u793a\u53ef\u9760\u6027\u201d\u4e0e\u201c\u6f14\u793a\u6d41\u7a0b\u81ea\u52a8\u5316\u201d\u4e0a\u4ecd\u6709\u5f85\u5b8c\u5584\u3002\u5bf9\u8ffd\u6c42\u4e13\u4e1a\u5f62\u8c61\u7684\u9500\u552e\u987e\u95ee\u548cSaaS\u4ea7\u54c1\u7ecf\u7406\u800c\u8a00\uff0c9.99\u7f8e\u5143\/\u6708\u7684\u8ba2\u9605\u8d39\u6362\u4e00\u573a\u6ca1\u6709\u7ffb\u8f66\u7684\u5173\u952e\u6f14\u793a\uff0c\u8fd9\u7b14\u8d26\u663e\u7136\u5212\u7b97\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\">Sales Studio<\/span>\n                <\/div>\n<div class=\"comment-content\">Sales Studio is a private studio for live demos on macOS. Your audience sees one clean, polished screen share in Zoom, Meet, or Teams. You see your script, notes, talking points, and every display you might switch to. No more window juggling.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Product Hunt! I&#8217;m Jake.<\/p>\n<p>I built Sales Studio because of a demo that went sideways. I was juggling a dozen windows on a sales call: the product in one, my notes in another, pricing in a third, and Slack pinging over all of it. My prospect saw every bit of that chaos. The demo was fine. It just didn&#8217;t look like I wanted it to look.<\/p>\n<p>So I built the tool I wished I had: a studio view for me, a clean stage for them.<\/p>\n<p>Here&#8217;s what that means in practice:<\/p>\n<p>\u2022 You share one window. It always looks composed. Everything else lives in your private studio view. <br \/>\u2022 A teleprompter that scrolls as you speak. Voice detection moves your script along, so you never touch it mid-pitch. <br \/>\u2022 Displays you switch like a TV director. Windows, screens, web apps, videos, or your camera, each with clean transitions. Number keys jump between them. <br \/>\u2022 Scene layouts. Size and position your shared window over a branded background, drop your camera beside it, and it all mirrors live to the audience. <br \/>\u2022 Camera controls built in. Background blur runs on your Mac (nothing goes to a server), plus mirror, shapes, borders, and shadows. <br \/>\u2022 A tool bench you arrange yourself. Notes, checklists, a stopwatch, even an embedded web panel for looking things up mid-call. <br \/>\u2022 Freeze the audience view. Need to do something off camera? They keep seeing the last frame while your camera stays live. <br \/>\u2022 Record what they saw. Get a QuickTime-ready MP4 of the exact program output, camera and all.<\/p>\n<p>It&#8217;s macOS only (Apple Silicon), works with Zoom, Meet, Teams, or anything that can share a window, and there&#8217;s a 14-day free trial. From $9.99\/mo.<\/p>\n<p>I&#8217;d love your honest feedback, especially from anyone who runs demos for a living. Ask me anything!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Finally something that fixes the window chaos during live demos. The floating script view while everyone else sees a clean screen share actually feels like how demos should have always worked.<\/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\/@nazlcanyel1nsm\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@nazlcanyel1nsm<\/a>&nbsp;Thanks! That was exactly the itch. The script sits right next to what you&#8217;re actually demoing, so your eyes never leave the studio. Glad it clicks for you.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on launching! Curious how you handle latency when multiple prospects join a live demo at once &#8211; does the screen share stay smooth, or does performance dip with more viewers?<\/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\/@medal411\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@medal411<\/a>&nbsp;Good question. Sales Studio doesn&#8217;t handle the distribution at all &#8211; it produces one clean window, and Zoom\/Meet\/Teams shares it like any other screen share. So viewer count doesn&#8217;t touch performance on my end; it scales however your meeting tool scales. The compositing happens locally on your Mac.<\/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 composited &#8220;one clean window&#8221; model is the whole value prop here, but it also means the polish depends on your Mac behaving during the call. what happens when something outside Sales Studio&#8217;s control fires mid-demo &#8211; a Slack or calendar notification banner, a Time Machine popup, a spinning beachball while a heavy app loads? does the studio compositing sit at a layer that&#8217;s genuinely isolated from OS-level overlays, or is there still a window where a stray notification could bleed into the &#8220;clean&#8221; shared view the same way it would without the tool?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The features are interesting but I think that most sales rep are already used to workflow they have even though it&#8217;s a bit messy, what were the customers feedback ?<\/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>Right on the pain point\u2014having to juggle multiple sources during a sales call is a major challenge and adds unnecessary stress. I built a GTM strategy for a 120-person sales team, and this would have been incredibly useful back then. How does it integrate with CRM?<\/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>Finally something that fixes the worst part of screen sharing. The notes overlay is super handy and it stays out of the way of what your viewers actually see.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@idemvanllagqpi\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@idemvanllagqpi<\/a>&nbsp;Thanks! I hope it helps!<\/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 script overlay next to my actual screens is honestly such a small thing but it completely changes how a demo flows, way less fumbling around&lt;\/mm:think&gt;the script overlay next to my actual screens is honestly such a small thing but it completely changes how a demo flows, way less fumbling around<\/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\/@tkferhat9483\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@tkferhat9483<\/a>&nbsp;Thanks! That&#8217;s exactly the idea.<\/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 teleprompter-style script view next to your display picker is genuinely clever, makes live demos feel way less chaotic than alt-tabbing through 6 apps.<\/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\/@ozguncozle60211\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ozguncozle60211<\/a>&nbsp;Thanks! Yes, that&#8217;s exactly the idea!<\/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 genuinely useful for anyone running demos, honestly the window juggling thing has burned me so many times. One thing that would make it way better is letting you save custom layouts or demo presets so you can instantly switch between different setups depending on the audience, kind of like a snapshot system. That would save a ton of prep time.<\/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\/@zkan388465\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@zkan388465<\/a>&nbsp;Thanks &#8211; and yes, presets are a good call. Displays get you partway there today (pre-load your windows\/slides\/videos and jump with \u23181\u20139), but a full &#8220;save this whole setup per audience&#8221; snapshot isn&#8217;t there yet. Logging it. What would you want saved beyond the displays, notes, script?<\/p>\n<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The split-view layout for presenter vs. audience is really thoughtful, especially keeping the script and notes out of the shared screen without a clunky second monitor setup. Whoever designed this clearly ran enough bad demos to know exactly what needed fixing.<\/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\/@kazmmrselrgym\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@kazmmrselrgym<\/a>&nbsp;Thanks! You guessed it &#8211; the second monitor thing was exactly the problem. I demoed off a laptop at coffee shops enough times that &#8220;one screen, everything visible&#8221; became the whole design constraint.<\/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\/W35Q3ZFHMJ6WPK\" class=\"app-title\">Flyout<\/a><\/p>\n<div class=\"one-liner\">Rich-text notes that fly out from your Mac&#8217;s screen edge<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">100<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Flyout \u662f\u4e00\u6b3e\u5e38\u9a7b Mac \u5c4f\u5e55\u8fb9\u7f18\u7684\u5bcc\u6587\u672c\u7b14\u8bb0\u5de5\u5177\uff0c\u8ba9\u4f60\u65e0\u9700\u5207\u6362\u7a97\u53e3\u5373\u53ef\u968f\u65f6\u6355\u6349\u7075\u611f\u3001\u5f85\u529e\u6216\u6458\u5f55\uff0c\u89e3\u51b3\u201c\u60f3\u6cd5\u6d88\u5931\u5728\u7a97\u53e3\u7f1d\u9699\u4e2d\u201d\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\/006430e6-3ed0-47dd-9e8e-bef511aecb24.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/zJVyzWgRTUY\"><source src=\"https:\/\/youtu.be\/zJVyzWgRTUY\" 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\/3283ed58-f81e-417a-92ea-f90a9a890722.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\/5f5f913a-79af-43e9-a3f1-6eb07be13dd7.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\/454afd28-a604-45e2-9337-cfc36d2f7daa.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\/da3488bf-5bf4-466f-b875-5566234e7338.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\/c9e08ccd-6ea0-442b-b2ad-b96330b50926.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\/d9f1eb02-f5c5-44e7-ad94-54d71d4cd325.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Mac<\/span><br \/>\n            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">Notes<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Mac\u7b14\u8bb0\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u5c4f\u5e55\u8fb9\u7f18\u7b14\u8bb0<\/span><br \/>\n            <span class=\"tag\">\u5bcc\u6587\u672c\u7f16\u8f91\u5668<\/span><br \/>\n            <span class=\"tag\">Markdown<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u4f18\u5148<\/span><br \/>\n            <span class=\"tag\">iCloud\u540c\u6b65<\/span><br \/>\n            <span class=\"tag\">\u7ec8\u8eab\u6388\u6743<\/span><br \/>\n            <span class=\"tag\">\u6548\u7387\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u5feb\u6377\u6355\u6349<\/span><br \/>\n            <span class=\"tag\">\u539f\u751f\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\u8d5e\u8d4f\u5176\u539f\u751f\u6027\u80fd\u3001Markdown\u5b58\u50a8\u548c\u7ec8\u8eab\u6388\u6743\uff1b\u5173\u5fc3\u5927\u91cf\u7b14\u8bb0\u4e0b\u6241\u5e73\u6587\u4ef6\u5939\u7684\u641c\u5bfb\u6548\u7387\uff0c\u5efa\u8bae\u589e\u52a0\u5168\u5c40\u5feb\u6377\u952e\u540e\u53f0\u6293\u53d6\u6587\u672c\/\u622a\u56fe\u7684\u529f\u80fd\uff0c\u5f00\u53d1\u8005\u56de\u5e94\u6b63\u8003\u8651\u4f7f\u7528\u5168\u5c40\u70ed\u952e\u6216\u670d\u52a1\u83dc\u5355\u6765\u5b9e\u73b0\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Flyout \u5ba3\u79f0\u201c\u6355\u6349\u60f3\u6cd5\u201d\uff0c\u4f46\u5176\u771f\u6b63\u7684\u4ef7\u503c\u5728\u4e8e\u91cd\u6784\u4e86\u201c\u6355\u6349\u201d\u7684\u4ea4\u4e92\u8def\u5f84\u3002\u5b83\u6ca1\u6709\u6b63\u9762\u786c\u521a Notion \u6216 Obsidian \u7684\u77e5\u8bc6\u7ba1\u7406\u6218\u573a\uff0c\u800c\u662f\u7cbe\u51c6\u5207\u5165\u4e86\u4e00\u4e2a\u66f4\u539f\u59cb\u3001\u66f4\u9891\u7e41\u7684\u75db\u70b9\uff1a\u5728\u9ad8\u901f\u5904\u7406\u591a\u4efb\u52a1\u65f6\uff0c\u5927\u8111\u4e0e\u5c4f\u5e55\u4e4b\u95f4\u7684\u201c\u77ac\u65f6\u4e22\u5e27\u201d\u95ee\u9898\u3002\u5c06\u7f16\u8f91\u5668\u201c\u60ac\u6d6e\u201d\u5728\u5c4f\u5e55\u8fb9\u7f18\uff0c\u672c\u8d28\u4e0a\u662f\u7f29\u77ed\u4e86\u7528\u6237\u4ece\u201c\u4ea7\u751f\u60f3\u6cd5\u201d\u5230\u201c\u8bb0\u5f55\u60f3\u6cd5\u201d\u4e4b\u95f4\u7684\u5fc3\u7406\u4e0e\u7269\u7406\u6469\u64e6\uff0c\u8fd9\u4e00\u8bbe\u8ba1\u975e\u5e38\u806a\u660e\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u9700\u8981\u8b66\u60d5\uff0c\u56e2\u961f\u5f15\u4ee5\u4e3a\u50b2\u7684\u201c\u539f\u751fAppKit + SwiftUI\u201d\u5916\u58f3\uff0c\u5176\u6838\u5fc3\u7f16\u8f91\u5668\u4ecd\u662fWKWebView\uff08TipTap\uff09\uff0c\u8fd9\u672c\u8d28\u4e0a\u662f\u4e00\u4e2a\u5305\u4e86\u4e00\u5c42\u539f\u751f\u58f3\u7684Web\u7f16\u8f91\u5668\u3002\u56fa\u7136\u6bd4\u7eafElectron\u7701\u8d44\u6e90\uff0c\u4f46\u7f16\u8f91\u5668\u7684\u6e32\u67d3\u6027\u80fd\u3001\u590d\u6742\u6392\u7248\u4e0b\u7684\u5361\u987f\u98ce\u9669\u4f9d\u7136\u662f\u5929\u5751\uff0c\u7edd\u975e\u201c\u539f\u751f\u201d\u4e8c\u5b57\u53ef\u4ee5\u4e00\u52b3\u6c38\u9038\u3002\u5f00\u53d1\u8005\u5766\u8bda\u5f53\u524d\u4e0d\u652f\u6301\u56e2\u961f\u534f\u4f5c\uff0c\u5e76\u5f52\u56e0\u4e3a\u662f\u201c\u6c38\u4e45\u6027\u7684\u67b6\u6784\u9009\u62e9\u201d\uff0c\u8fd9\u4e00\u70b9\u503c\u5f97\u80af\u5b9a\uff0c\u907f\u514d\u4e86\u76f2\u76ee\u6269\u5f20\u5bfc\u81f4\u7684\u67b6\u6784\u7ffb\u8f66\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ea7\u54c1\u76ee\u524d\u7684\u5371\u9669\u4fe1\u53f7\u5728\u4e8e\u201c\u5355\u4e00\u573a\u666f\u4e0b\u7684\u5929\u82b1\u677f\u201d\u3002\u5bf9\u4e8e\u91cd\u5ea6\u6587\u5b57\u5de5\u4f5c\u8005\u800c\u8a00\uff0c\u7f3a\u5c11\u5168\u5c40\u5feb\u901f\u526a\u85cf\u548c\u6279\u91cf\u7ba1\u7406\u4f1a\u8ba9\u5176\u6ca6\u4e3a\u201c\u53e6\u4e00\u4e2a\u4e34\u65f6\u8bb0\u4e8b\u672c\u201d\uff1b\u5bf9\u4e8e\u7eafMarkdown\u7528\u6237\uff0c\u4e30\u5bcc\u7684\u5bcc\u6587\u672c\u7f16\u8f91\u53c8\u663e\u5f97\u5197\u4f59\u300224\u7f8e\u5143\u7684\u7ec8\u8eab\u5b9a\u4ef7\u662f\u4e00\u6b65\u597d\u68cb\uff0c\u80fd\u5728\u65e9\u671f\u6536\u5272\u4e00\u6279\u8ffd\u6c42\u6548\u7387\u4e14\u538c\u5026\u8ba2\u9605\u5236\u7684\u201c\u9489\u5b50\u6237\u201d\u3002\u4f46\u82e5\u540e\u7eediOS\u7aef\u8fdf\u8fdf\u65e0\u6cd5\u843d\u5730\uff0c\u540c\u6b65\u751f\u6001\u5272\u88c2\uff0c\u7528\u6237\u7684\u5fe0\u8bda\u5ea6\u5c06\u9762\u4e34\u8003\u9a8c\u3002Flyout\u672c\u8d28\u4e0a\u662f\u7528\u4ea4\u4e92\u201c\u65b0\u9c9c\u611f\u201d\u6362\u6765\u7684\u4e8c\u6b21\u542f\u52a8\u5e02\u573a\uff0c\u80fd\u5426\u4ece\u201c\u6709\u8da3\u201d\u8d70\u5411\u201c\u5fc5\u987b\u201d\uff0c\u53d6\u51b3\u4e8e\u5b83\u80fd\u5426\u5728\u201c\u6781\u901f\u6355\u6349\u201d\u4e0e\u201c\u6df1\u5ea6\u7ba1\u7406\u201d\u4e4b\u95f4\u4fdd\u6301\u81f4\u547d\u7684\u63e1\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\">Flyout<\/span>\n                <\/div>\n<div class=\"comment-content\">Nudge your screen edge \u2014 or press \u2325\u2318N \u2014 and a full rich-text editor flies out over whatever you&#8217;re doing. Checklists, reminders, folders, images, code blocks, iCloud sync. Native macOS, not Electron. Lifetime license, 7-day free trial. Every note is plain Markdown underneath. Your notes never touch our servers.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey everyone \ud83d\udc4b I&#8217;m G\u00f6rkem. I built Flyout because I kept losing thoughts between windows.<\/p>\n<p>A phone number mid-call. A &#8220;book the table&#8221; while planning a weekend. A line worth keeping from an article. The thought always went\u2026 somewhere \u2014 a sticky note behind a window, a message to myself, a Notes window I had to go find. The note survived; the moment didn&#8217;t.<\/p>\n<p>So Flyout lives on the edge of your screen. Rest your pointer on the right edge \u2014 or press \u2325\u2318N \u2014 and a full editor flies out over whatever you&#8217;re doing. Step away and it slides back.<\/p>\n<p>The part I care about most: it&#8217;s a real editor, not a scratchpad. Type \/ for headings, checklists and quotes. Attach a reminder to a single line and macOS nudges you at the right moment. Drag notes into folders, pin what matters, search everything. And if you write code, there are syntax-highlighted code blocks too \u2014 underneath, every note is plain Markdown you can take anywhere.<\/p>\n<p>Some decisions I&#8217;d love pushback on:<br \/>\n\u2022 Native AppKit + SwiftUI, not Electron. The editor surface is a WKWebView (TipTap is the best editor I know) \u2014 the shell, the menu bar and the storage are all Swift.<br \/>\n\u2022 iCloud sync runs through your own account. Your notes never touch my servers \u2014 I couldn&#8217;t read them if I wanted to.<br \/>\n\u2022 Folders are flat on purpose. No nesting. One obvious hierarchy beats three confusing ones.<br \/>\n\u2022 Lifetime license, no subscription \u2014 $24, currently $18. A year of updates is included; renewing is optional and the app never stops working.<\/p>\n<p>Caveats, up front: macOS 14 Sonoma or later. No iOS app yet \u2014 that&#8217;s next. No shared or team notebooks, and that&#8217;s a permanent architectural choice (private iCloud sync), not a roadmap item.<\/p>\n<p>Free 7-day trial, no account needed: <a href=\"https:\/\/getflyout.app\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/getflyout.app<\/a><\/p>\n<p>I&#8217;ll be around all day. I&#8217;d love to hear where a thought goes today when both your hands are full \u2014 and where Flyout breaks for you.<\/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>the &#8220;flat folders, no nesting&#8221; call is the right instinct for a capture tool &#8211; nesting is where these things always turn into filing cabinets nobody maintains. curious how it holds up once someone has a few hundred notes in one flat folder though &#8211; is search the only way back in at that point, or is there something like tags\/pins to cut across folders without reintroducing hierarchy<\/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 like the direction you&#8217;re taking with Flyout. Moving beyond likes and comments to enable real conversations between creators and their communities feels genuinely valuable. Excited to see how this grows &#8211; 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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@1mirul\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@1mirul<\/a>&nbsp;Thanks, appreciate that! Flyout&#8217;s a bit more solo-focused right now, a screen-edge notes panel for quick personal capture, but glad it resonates. Good luck too!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The \u2325\u2318N hotkey sliding a full editor out from the edge is such a clean trick \u2014 feels like the kind of thing macOS should have shipped with. Nice touch on keeping everything as plain Markdown too, that&#8217;s the right call.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Thank you <a href=\"https:\/\/www.producthunt.com\/@fatmaodef39623\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@fatmaodef39623<\/a>&nbsp; <\/p>\n<\/p>\n<p>Really appreciate that. The slide animation took more tuning than I expected glad it reads as effortless from the outside. <\/p>\n<\/p>\n<p>And yeah, Markdown was non-negotiable for me. No export dance, no proprietary format, just files.<\/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 lifetime license sold me, and the local Markdown storage is the right call. One thing I&#8217;d love: a quick hotkey or menu bar option to drop a clip from any app into Flyout, so I can grab a paragraph or screenshot without switching focus first.<\/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>Thanks <a href=\"https:\/\/www.producthunt.com\/@ceylin1736493\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ceylin1736493<\/a>&nbsp;,<\/p>\n<\/p>\n<p>Glad both of those landed right, they were deliberate calls. On the capture request: today the closest flow is copy something (text or a screenshot) \u2192 \u2325\u2318N \u2192 \u2318V, straight into whatever note is open. One hotkey away, but the panel does show up and take focus for a beat.<\/p>\n<\/p>\n<p>A background version \u2014 capturing without ever seeing the panel \u2014 is worth building. Two paths that wouldn&#8217;t need any extra permission: a global hotkey that reads whatever&#8217;s already on your clipboard and appends it to a note, or a right-click &#8220;Send to Flyout&#8221; item in the Services menu for text you select in any app.<\/p>\n<\/p>\n<p>Which one matches what you had in mind?<\/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 plain Markdown under the hood is a really thoughtful choice, makes it feel like it&#8217;ll last beyond any app update. The \u2325\u2318N shortcut is a nice touch too.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Thanks <a href=\"https:\/\/www.producthunt.com\/@birol167210\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@birol167210<\/a>,<\/p>\n<\/p>\n<p>The Markdown choice was actually one of the trickier calls under the hood \u2014<\/p>\n<p>once you add custom pieces like inline images or reminders to the editor, most<\/p>\n<p>rich-text\/Markdown round-trips start quietly losing data. Took a while to make sure<\/p>\n<p>everything survives cleanly, but it means every note really is just a file you can<\/p>\n<p>grep, diff, or drop into a PR.<\/p>\n<\/p>\n<p>Glad the shortcut lands well too \u2014 it&#8217;s rebindable in Settings if \u2325\u2318N ever clashes<\/p>\n<p>with something else on your setup.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#13<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/VUVMBV5JZGTSES\" class=\"app-title\">AutoShelf 2.0<\/a><\/p>\n<div class=\"one-liner\">Auto-organize files on your Mac now with MCP &#038; CLI support<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">97<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>AutoShelf 2.0\u662f\u4e00\u6b3emacOS\u83dc\u5355\u680f\u5e94\u7528\uff0c\u901a\u8fc7\u9884\u8bbe\u89c4\u5219\u81ea\u52a8\u76d1\u63a7\u5e76\u6574\u7406\u6307\u5b9a\u6587\u4ef6\u5939\uff08\u5982\u4e0b\u8f7d\u3001\u684c\u9762\uff09\u4e2d\u7684\u6587\u4ef6\uff0c\u89e3\u51b3\u7528\u6237\u624b\u52a8\u5206\u7c7b\u6587\u4ef6\u7684\u7e41\u7410\u75db\u70b9\uff0c\u5e76\u652f\u6301AI\u52a9\u624b\u548c\u547d\u4ee4\u884c\u65e0\u754c\u9762\u64cd\u4f5c\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\/e890fe36-caf5-4ec5-8576-55ead0b04879.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\/9ccbfec5-137b-4a12-a37c-d75b87a20554.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\/0935324d-1455-41b7-adb2-856413636f40.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\/49411b9d-db54-492c-be9b-923c60481426.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\/ca799942-e857-4111-8543-21dab099ba74.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\/e3968058-4ba8-4fb2-9d18-fa36ab8cb502.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\/0a7804de-d72f-4ceb-8d1a-61cfb872bbc9.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\/be8d35ba-ee5a-48b0-bfa9-d5f8cc554eea.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=ttyw8M1j0pU\"><source src=\"https:\/\/www.youtube.com\/watch?v=ttyw8M1j0pU\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Mac<\/span><br \/>\n            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">Menu Bar Apps<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u6587\u4ef6\u81ea\u52a8\u6574\u7406<\/span><br \/>\n            <span class=\"tag\">macOS\u6548\u7387\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u83dc\u5355\u680f\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">MCP\u534f\u8bae<\/span><br \/>\n            <span class=\"tag\">AI\u9a71\u52a8<\/span><br \/>\n            <span class=\"tag\">CLI\u547d\u4ee4\u884c<\/span><br \/>\n            <span class=\"tag\">\u6587\u4ef6\u89c4\u5219\u5f15\u64ce<\/span><br \/>\n            <span class=\"tag\">\u6279\u91cf\u5f52\u6863<\/span><br \/>\n            <span class=\"tag\">\u5de5\u4f5c\u6d41\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">\u684c\u9762\u6e05\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\u8d5e\u626c\u5176\u201c\u4e00\u952e\u6a21\u677f\u201d\u4fbf\u6377\u6027\u548c\u4e00\u6b21\u6027\u5b9a\u4ef7\uff0c\u6838\u5fc3\u95ee\u9898\u96c6\u4e2d\u5728\u89c4\u5219\u51b2\u7a81\u5904\u7406\uff1a\u7cfb\u7edf\u6309\u5217\u8868\u987a\u5e8f\u201c\u9996\u4e2a\u5339\u914d\u5373\u6267\u884c\u201d\uff0c\u4f46UI\u5141\u8bb8\u521b\u5efa\u540c\u540d\u89c4\u5219\uff0cMCP\u7aef\u5219\u4f1a\u62d2\u91cd\u3002\u5f00\u53d1\u8005\u627f\u8bfa\u4fee\u590d\u6b64\u6f0f\u6d1e\u3002\u53e6\u9700\u6ce8\u610f\uff0c\u6587\u4ef6\u51b2\u7a81\u65f6\u81ea\u52a8\u91cd\u547d\u540d\u800c\u975e\u8986\u76d6\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                AutoShelf 2.0\u7684\u4ef7\u503c\u4e0d\u5728\u4e8e\u201c\u53c8\u4e00\u4e2a\u6587\u4ef6\u6574\u7406\u5668\u201d\uff0c\u800c\u5728\u4e8e\u5b83\u5361\u51c6\u4e86\u4e24\u4e2a\u5173\u952e\u8282\u70b9\u3002\u7b2c\u4e00\uff0c\u5b83\u5c06AI\u4f5c\u4e3a\u201c\u6267\u884c\u5165\u53e3\u201d\uff0c\u901a\u8fc7\u5185\u7f6eMCP\u670d\u52a1\u5668\u8ba9Claude\u7b49\u4ee3\u7406\u76f4\u63a5\u521b\u5efa\u5e76\u4e0b\u53d1\u89c4\u5219\uff0c\u8fd9\u6bd4\u4f20\u7edfUI\u64cd\u4f5c\u964d\u4f4e\u4e86\u81f3\u5c11\u4e00\u4e2a\u8ba4\u77e5\u5c42\u7ea7\u2014\u2014\u7528\u6237\u4e0d\u7528\u7406\u89e3\u89c4\u5219\u903b\u8f91\uff0c\u53ea\u9700\u63cf\u8ff0\u610f\u56fe\u3002\u8fd9\u662f\u82f9\u679c\u5c1a\u672a\u5728macOS\u539f\u751f\u5b9e\u73b0\u7684\u201cAgentic OS\u201d\u96cf\u5f62\u3002\u7b2c\u4e8c\uff0c\u5b83\u4fdd\u6301\u4e86\u5546\u4e1a\u4e0a\u7684\u514b\u5236\uff1a\u653e\u5f03\u4e86\u8ba2\u9605\u5236\uff0c\u4ee519.99\u7f8e\u5143\u7684\u4e00\u6b21\u6027\u4ed8\u8d39\u5bf9\u6297Hazel\u7b49\u8001\u65e7\u7ade\u54c1\uff0c\u540c\u65f6\u901a\u8fc7\u201cPro-only toggle\u201d\u5c06MCP\u5199\u64cd\u4f5c\u6743\u9650\u505a\u597d\u9694\u79bb\uff0c\u89c4\u907f\u4e86AI\u8bef\u64cd\u4f5c\u7684\u98ce\u9669\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u9700\u8981\u6ce8\u610f\u5176\u589e\u957f\u5929\u82b1\u677f\u3002\u9996\u5148\uff0c\u89c4\u5219\u5f15\u64ce\u867d\u7136\u652f\u630110\u4e2a\u6761\u4ef6+10\u4e2a\u52a8\u4f5c\uff0c\u4f46\u6838\u5fc3\u4f9d\u7136\u662f\u201cif-then\u201d\u7684\u786e\u5b9a\u6027\u903b\u8f91\uff0c\u7f3a\u4e4f\u673a\u5668\u5b66\u4e60\u5bf9\u6587\u4ef6\u201c\u8bed\u4e49\u201d\u7684\u8bc6\u522b\uff08\u6bd4\u5982\u81ea\u52a8\u5f52\u7c7b\u53d1\u7968\u800c\u4e0d\u53ea\u9760\u6269\u5c55\u540d\uff09\u3002\u5176\u6b21\uff0c\u4e91\u540c\u6b65\u548c\u591a\u8bbe\u5907\u89c4\u5219\u5171\u4eab\u4ecd\u5b58\u5728\u4e8e\u201c\u4e0b\u4e00\u7248\u201d\u7684\u8def\u7ebf\u56fe\u4e2d\uff0c\u5bf9\u4e8e\u591aMac\u7528\u6237\u6216\u56e2\u961f\u534f\u4f5c\u573a\u666f\u4ecd\u4e0d\u591f\u7528\u3002\u6700\u540e\uff0c\u540c\u540d\u89c4\u5219\u51b2\u7a81\u7684UI\u758f\u6f0f\u867d\u5c0f\uff0c\u5374\u66b4\u9732\u4e86\u5728MCP\u4e0e\u539f\u751fUI\u53cc\u8f68\u8f93\u5165\u4e0b\u7684\u4e00\u81f4\u6027\u6821\u9a8c\u6b20\u7f3a\uff0c\u8fd9\u5728\u4ee3\u7406\u5927\u91cf\u4ecb\u5165\u540e\u5c06\u653e\u5927\u4e3a\u5b89\u5168\u9690\u60a3\u3002\u6574\u4f53\u6765\u770b\uff0c\u8fd9\u662f\u4e00\u4e2a\u5b9a\u4f4d\u7cbe\u51c6\u3001\u4ea4\u4ed8\u514b\u5236\u7684\u5c0f\u800c\u7f8e\u5de5\u5177\uff0c\u4f46\u80fd\u5426\u4ece\u201c\u4e0b\u8f7d\u5668\u52a9\u624b\u201d\u8fdb\u5316\u4e3a\u201c\u4e2a\u4eba\u6587\u4ef6\u64cd\u4f5c\u7cfb\u7edf\u201d\uff0c\u53d6\u51b3\u4e8e\u540e\u7eed\u89c4\u5219\u7684\u667a\u80fd\u5316\u548c\u4e91\u7aef\u5316\u901f\u5ea6\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">AutoShelf 2.0<\/span>\n                <\/div>\n<div class=\"comment-content\">AutoShelf is a macOS app that watches your folders and auto-organizes files. Set a rule once and never think about it again. Free to try, unlock unlimited for $19.99.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Product Hunt! \ud83d\udc4b I&#8217;m Or\u00e7un, the solo developer behind AutoShelf.<\/p>\n<p>I built AutoShelf because my Downloads folder had become a graveyard of DMGs, screenshots, and random files I swore I&#8217;d &#8220;clean up later.&#8221; The existing tools were either powerful but byzantine, or simple but limited. Nothing felt like it was built for this decade of macOS.<\/p>\n<p>So I made AutoShelf: a menu bar app that watches your folders and runs your rules. Set it up in 30 seconds with a template, then forget it exists.<br \/>What it does:<br \/>&#8211; \ud83d\uddc2 10 conditions: file type, extension, where it came from (download URL or app), age, size, name, last-modified\/opened, or just &#8220;everything.&#8221; Combine multiple with AND + NOT.<br \/>&#8211; \u26a1 10 actions, chainable: move, copy, trash, rename, tag, archive to ZIP, optimize images, import to Photos. Stack them in one rule: tag, then archive, then move.<br \/>&#8211; \ud83d\udccb 9 built-in templates: one-click &#8220;Organize Downloads,&#8221; &#8220;Auto-trash DMGs,&#8221; &#8220;Clean Desktop,&#8221; &#8220;Sort by Source,&#8221; and more.<br \/>&#8211; \ud83c\udf0d 19 languages, native SwiftUI, lives in your menu bar (or a full window, your call).<\/p>\n<p>\ud83e\udd16 MCP support (this is the fun part):<br \/>AutoShelf ships with a full MCP server baked into the app binary, so it works natively with Claude Code, Cursor, opencode, and any other local MCP-compatible client. Point your client at AutoShelf.app\/Contents\/MacOS\/AutoShelf and you get 13 tools: create_rule, edit_rule, delete_rule, enable_rule\/disable_rule, run_rule, list_rules, list_groups, get_rule, get_status, pause_monitoring, resume_monitoring, and pick_folder (which pops the native macOS folder picker). So instead of clicking around a UI, you can literally say &#8220;watch my Downloads folder and trash any DMG older than 3 days&#8221; to Claude or opencode, and it builds and installs the rule for you. Write operations are gated behind a Pro-only toggle that defaults to off, so nothing happens without your say-so.<\/p>\n<p>Why AutoShelf:<br \/>&#8211; Set-and-forget simplicity: templates get you running in seconds, no configuration wizard required<br \/>&#8211; Built for today&#8217;s macOS, not ported from 2012<br \/>&#8211; Scriptable end to end: MCP for AI assistants, plus a Go CLI for terminal workflows<br \/>&#8211; One-time $19.99, no subscription.<\/p>\n<p>What&#8217;s next:<br \/>&#8211; LOT MORE conditions and actions.<\/p>\n<p>&#8211; File conversions (HEIC\u2192JPG, MOV\u2192MP4, WAV\u2192MP3)<br \/>&#8211; Cloud uploads: route files to iCloud, Dropbox, Google Drive<br \/>&#8211; Scheduled downloads: pull from RSS feeds, URLs, or cloud storage<br \/>&#8211; Rule creation wizard: step-by-step guided flow<\/p>\n<p>Have a feature idea? I&#8217;d love to hear it \u2192 <a href=\"https:\/\/useautoshelf.com\/support\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/useautoshelf.com\/support<\/a><br \/>Happy to answer any questions, feedback welcome! \ud83d\ude4f<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>A freind of mine  downloads hundreds of design assets every week and spends way too much time sorting them into folders. This seems like something that could remove a lot of repetitive work from their routine. I&#8217;ll definitely send it their way.<\/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\/@shawn_idrees\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@shawn_idrees<\/a>&nbsp;Glad you liked 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>Hello Or\u00e7un, congratulations on the launch. The Downloads folder example immediately felt relatable because mine also ends up full of screenshots, installers, and random files. I like that the focus is on creating a rule once and then letting everything  happen automatically in the background.<\/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\/@deangelo_hinkle\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@deangelo_hinkle<\/a>&nbsp;Glad you liked it!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the MCP server baked into the binary is a smart move, that&#8217;s a much easier install story than a separate npm package. one thing I&#8217;m curious about: if two rules both match the same file (say one moves it and another renames+archives it), what decides execution order? and can a rule created through the MCP tool by an AI client end up conflicting with one a human set up in the UI, or does it validate against existing rules before creating a new one?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@galdayan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@galdayan<\/a>&nbsp;Great questions! Here how it goes;<\/p>\n<\/p>\n<p>On execution order: rules run top to bottom in your list. First match wins, only one rule acts on a file, so no conflicts between rules. Within a single rule, multiple actions (say move then tag) run in sequence.<\/p>\n<\/p>\n<p>On MCP vs UI: they share the same rule store. If an AI tries to create a rule with a name that already exists, it gets rejected. But there&#8217;s a quirk I should be transparent about. The UI doesn&#8217;t do the same duplicate check, so you could technically create two rules with the same name through the interface. MCP lookups are by name, so that would be a problem. It&#8217;s on my list to 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<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on you launch \ud83c\udf89<\/p>\n<p>I&#8217;m really glad to meet my favorite app on PH again!<\/p>\n<p>Thanks to AutoShelf, my download and desktop keep clean, just as I intended. The new version&#8217;s UI is even more refined. I&#8217;ll continue to support you.\ud83e\udef6<\/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\/@d41\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@d41<\/a>&nbsp;Huge thanks dude!<\/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 appreciate that this isn&#8217;t trying to become a full file manager. Instead, it focuses on one problem and solves it well. Those are usually the tools  that quietly become part of someone&#8217;s daily workflow without demanding attention.<\/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\/@lakeesha_weatherwax\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@lakeesha_weatherwax<\/a>&nbsp;Glad you liked it!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the way rules chain together with live previews before saving is a really thoughtful touch. makes it feel less like config and more like actually designing a system.<\/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\/@ayhangltekqrdt\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ayhangltekqrdt<\/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\">Finally something that just works. no subscription for organizing my own damn files.<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The MCP + CLI support is what makes this more than another folder-watcher \u2014 it means an agent can drive the organizing, not just a background rule quietly firing. Two setup questions: through the MCP server, can an agent create and modify rules and query where a given file ended up, or is it limited to triggering rules that already exist? And are the rules stored as a portable file I can version and move to another Mac, or are they locked in app state?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The MCP thing is sick. i told claude &#8216;auto trash DMGs after 3 days&#8217; and it just made the rule for me. didnt even open the app. thats how all mac apps should work honestly<\/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>Yo this is actually nice. I tried Hazel a while back and returned it in like an hour, way too much for what I needed. AutoShelf I literally set up &#8216;dump everything in Downloads into folders by type&#8217; in like 2 minutes and forgot about it. menu bar icon sitting there doing its thing. good stuff.<\/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>Set up a rule to sort my downloads by file type in about a minute, and it just kept working in the background. Wish I had this years ago, my desktop is finally usable.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The little rule preview that shows exactly where each file will land before you hit apply is such a thoughtful touch. Clean execution on what could have been a frustrating setup 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<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>As someone whose Downloads folder constantly fills up with installers and screenshots, this feels like a practical solution. The one-time pricing is also refreshing. Curious how AutoShelf handles conflicts when a destination file already exists\u2014does it skip, overwrite, or prompt?<\/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\/@mohammad_ashik_elahi\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mohammad_ashik_elahi<\/a>&nbsp;Glad the one-time pricing resonates! On conflicts, AutoShelf auto-renames by appending a number (e.g., report 1.pdf, report 2.pdf). No overwrites, no silent skips, no prompts. It just finds the next available name and keeps going.<\/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\">#14<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/FDFRF6BGHRQHQS\" class=\"app-title\">Trump Accounts<\/a><\/p>\n<div class=\"one-liner\">Build long-term financial security for your child<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">97<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Trump Accounts\u4e3a\u7b26\u5408\u6761\u4ef6\u7684\u7f8e\u56fd\u513f\u7ae5\u63d0\u4f9b\u653f\u5e9c\u6258\u7ba1\u7684\u957f\u671f\u7406\u8d22\u8d26\u6237\uff0c\u901a\u8fc7\u521d\u59cb1000\u7f8e\u5143\u56fd\u503a\u6295\u5165\uff0c\u89e3\u51b3\u4f4e\u6536\u5165\u5bb6\u5ead\u4e3a\u5b69\u5b50\u5efa\u7acb\u65e9\u671f\u91d1\u878d\u5b89\u5168\u548c\u6295\u8d44\u4e60\u60ef\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\/73596a86-d3a8-4c52-908a-e57914d199a6.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\/8bf8014e-2dfd-4ac1-8e38-3840ed5e5118.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\/6d92b576-688a-4637-98a4-42b1d1b38e5e.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\/54379bce-b7fb-4998-8bfa-f2444ebefa1c.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\/466e032d-2c80-4aa8-ba52-25988a8820de.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\/a45138b6-938d-4dda-b2b8-15fc03ac5fa5.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\/09535058-07e1-4aa3-a7a7-08dd432fc87b.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\/d0c7ff27-21f5-44c8-bf10-83679cb88594.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\/b7bbbf89-d703-481d-b89b-db9860355d91.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\/a9c60c9b-b947-4528-bcb6-7cf1e630eda9.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=ZOgCEjVSsi0\"><source src=\"https:\/\/www.youtube.com\/watch?v=ZOgCEjVSsi0\" 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\">Parenting<\/span><br \/>\n            <span class=\"tag\">Kids<\/span><br \/>\n            <span class=\"tag\">Investing<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u513f\u7ae5\u7406\u8d22<\/span><br \/>\n            <span class=\"tag\">\u653f\u5e9c\u503a\u5238<\/span><br \/>\n            <span class=\"tag\">\u957f\u671f\u50a8\u84c4<\/span><br \/>\n            <span class=\"tag\">\u7f8e\u56fd\u56fd\u503a<\/span><br \/>\n            <span class=\"tag\">\u8d22\u653f\u8865\u8d34<\/span><br \/>\n            <span class=\"tag\">\u91d1\u878d\u6559\u80b2<\/span><br \/>\n            <span class=\"tag\">\u5bb6\u5ead\u8d22\u52a1\u89c4\u5212<\/span><br \/>\n            <span class=\"tag\">\u56fd\u503a\u8d26\u6237<\/span><br \/>\n            <span class=\"tag\">\u5b50\u5973\u4fdd\u969c<\/span><br \/>\n            <span class=\"tag\">\u793e\u4f1a\u798f\u5229<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u5bf9\u8be5\u4ea7\u54c1\u4ee5\u201c\u521b\u4e1a\u4ea7\u54c1\u201d\u5f62\u5f0f\u767b\u9646Product Hunt\u611f\u5230\u8be7\u5f02\uff0c\u5e76\u8c03\u4f83\u5176\u4e0eRobinhood\u754c\u9762\u9ad8\u5ea6\u76f8\u4f3c\u3002\u90e8\u5206\u8bc4\u8bba\u8ba4\u53ef\u91d1\u878d\u7d20\u517b\u6559\u80b2\u4ef7\u503c\uff0c\u4f46\u6574\u4f53\u7f3a\u4e4f\u5bf9\u653f\u5e9c\u653f\u7b56\u7ec6\u5219\u548c\u98ce\u9669\u7684\u771f\u5b9e\u53cd\u9988\u4e0e\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                Trump Accounts\u672c\u8d28\u4e0a\u662f\u4e00\u4e2a\u62ab\u7740\u201c\u79d1\u6280\u521b\u4e1a\u201d\u5916\u8863\u7684\u653f\u5e9c\u798f\u5229\u4fe1\u606f\u5165\u53e3\uff0c\u800c\u975e\u771f\u6b63\u7684\u91d1\u878d\u521b\u65b0\u3002\u5176\u6838\u5fc3\u4ef7\u503c\u662f\u4f9d\u62582025-2028\u5e74\u65b0\u751f\u513f\u8d22\u653f\u8865\u8d34\u653f\u7b56\uff0c\u5c06\u201c\u7ed9\u5b69\u5b50\u5b58\u56fd\u503a\u201d\u8fd9\u4e2a\u653f\u6cbb\u53d9\u4e8b\u5305\u88c5\u6210APP\u3002\u4f18\u52bf\u5728\u4e8e\u6293\u4f4f\u4e86\u201c\u7279\u6717\u666e\u201d\u6807\u7b7e\u7684\u6d41\u91cf\u7ea2\u5229\u4ee5\u53ca\u5bb6\u957f\u5bf9\u5b50\u5973\u672a\u6765\u7684\u7126\u8651\uff0c\u4e14\u521d\u59cb1000\u7f8e\u5143\u8865\u8d34\u786e\u5b9e\u6709\u5438\u5f15\u529b\u3002\u4f46\u81f4\u547d\u70b9\u662f\uff1a1\uff09\u4ea7\u54c1\u529f\u80fd\u6781\u5ea6\u5355\u8584\uff0c\u5b83\u66f4\u50cf\u662fRobinhood\u7684\u5f15\u6d41\u524d\u7aef\uff0c\u6838\u5fc3\u8d26\u6237\u7ba1\u7406\u548c\u4ea4\u6613\u4f9d\u8d56Robinhood\u4f53\u7cfb\uff0c\u7f3a\u4e4f\u72ec\u7acb\u670d\u52a1\u95ed\u73af\uff1b2\uff09\u53d7\u4f17\u6781\u5176\u7a84\u5316\u2014\u2014\u4ec5\u9650\u56db\u5e74\u5185\u51fa\u751f\u3001\u6301\u6709SSN\u7684\u7f8e\u56fd\u516c\u6c11\u5bb6\u5ead\uff0c\u4e14\u8865\u8d34\u57282026\u5e74\u624d\u5f00\u59cb\u53d1\u653e\uff0c\u672c\u8d28\u662f\u4e00\u4e2a\u653f\u7b56\u9884\u544a\uff0c\u800c\u975e\u53ef\u7acb\u5373\u4f7f\u7528\u7684\u5de5\u5177\uff1b3\uff09\u6240\u8c13\u201c\u957f\u671f\u91d1\u878d\u5b89\u5168\u201d\u5b8c\u5168\u53d6\u51b3\u4e8e\u56fd\u503a\u5229\u7387\u8d70\u52bf\u548c\u901a\u8d27\u81a8\u80c0\uff0c\u4ea7\u54c1\u672c\u8eab\u672a\u7ed9\u51fa\u4efb\u4f55\u4e3b\u52a8\u914d\u7f6e\u5efa\u8bae\u6216\u98ce\u9669\u6559\u80b2\u3002\u66f4\u6709\u610f\u5473\u7684\u662f\uff0c\u5b83\u9009\u62e9\u5728Product Hunt\u53d1\u5e03\uff0c\u800c\u975egov.us\u6216\u8d22\u653f\u90e8\u5206\u652f\uff0c\u8bf4\u660e\u5176\u6b63\u501f\u52a9\u201c\u7f51\u7ea2\u5316\u201d\u5438\u5f15\u773c\u7403\uff0c\u63a9\u9970\u5176\u672c\u8d28\u4e3a\u4e00\u4e2a\u5e26\u8865\u8d34\u7684\u56fd\u503aETF\u5bfc\u6d41\u6e20\u9053\u3002\u5bf9\u4e8e\u975e\u7f8e\u56fd\u7528\u6237\u548c\u9519\u8fc7\u4e862025-2028\u7a97\u53e3\u671f\u7684\u5bb6\u5ead\uff0c\u8fd9\u4e2a\u4ea7\u54c1\u4ef7\u503c\u4e3a\u96f6\u3002\u4e00\u53e5\u8bdd\u8bc4\u4ef7\uff1a\u4e00\u4e2a\u4e25\u8083\u7684\u653f\u5e9c\u8865\u8d34\u9879\u76ee\uff0c\u88ab\u786c\u751f\u751f\u505a\u6210\u4e86\u7f51\u7ea2\u5927V\u7684\u8ba2\u9605\u793c\u54c1\u5361\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\">Trump Accounts<\/span>\n                <\/div>\n<div class=\"comment-content\">Trump Accounts help eligible American children begin building long-term financial growth from an early age. Eligible children born between 2025\u20132028 can qualify for an initial $1,000 U.S. Treasury contribution beginning July 4, 2026. The account features a pilot program contribution of $1,000 for children born between Jan. 1, 2025, and Dec. 31, 2028, and who are U.S. citizens with a valid Social Security number.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>No way Trump Accounts made it to Product Hunt :))<\/p>\n<\/p>\n<p>I had to double-check this was a real launch. honestly, I might be way too European for this one, but seeing a government-backed child savings account presented like a startup product is definitely a PH moment \ud83d\ude42<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>4<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Trump Accounts are such a huge get for <a href=\"https:\/\/www.producthunt.com\/products\/robinhood\" data-node-type=\"mention\" data-mention-type=\"product\" data-mention-id=\"robinhood\" target=\"_blank\" rel=\"noopener\">@Robinhood<\/a>. Man, nice job <a href=\"https:\/\/www.producthunt.com\/@jgebbia\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"jgebbia\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jgebbia<\/a> and <a href=\"https:\/\/www.producthunt.com\/@vladtenev\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"vladtenev\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@vladtenev<\/a>! The iOS app is basically Robinhood under the&#8230; hood.<\/p>\n<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/69a235f7-ead5-4f71-a3d2-de33a4bc05b7.png?auto=compress,format&amp;codec=mozjpeg&amp;cs=strip\" style=\"max-width: 100%\"><\/p>\n<p>If you want to learn more about this, check out <a href=\"https:\/\/www.youtube.com\/watch?v=PHL1j2ti420&amp;t=3789s\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">this segment<\/a> from the All-In Podcast.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Financial literacy starts early, and tools like this can help families better understand investing. Best of luck with the launch! \ud83d\ude80<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>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\/2PVXZE46M2WCL6\" class=\"app-title\">Breva<\/a><\/p>\n<div class=\"one-liner\">Turn your Mac trackpad into a gentle breathing guide<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">95<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Breva \u5c06 Mac \u89e6\u63a7\u677f\u8f6c\u5316\u4e3a\u8f7b\u67d4\u7684\u547c\u5438\u5f15\u5bfc\u5668\uff0c\u8ba9\u4f60\u5728\u4e0d\u78b0\u624b\u673a\u7684\u60c5\u51b5\u4e0b\uff0c\u4e8e\u5de5\u4f5c\u95f4\u9699\u5feb\u901f\u5b8c\u6210\u4e00\u6b21\u4e13\u6ce8\u7684\u547c\u5438\u91cd\u7f6e\uff0c\u89e3\u51b3\u4e45\u5750\u7535\u8111\u524d\u7684\u5927\u8111\u75b2\u52b3\u4e0e\u5206\u5fc3\u95ee\u9898\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/53ef30b8-9301-4095-a1ae-717c28697e1b.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\/2550d8fa-30b1-44da-a830-d3b627f22286.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\/2f5aa4cc-1d82-411a-952e-030c45ea97b7.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\/fa1ce66f-28a6-4acd-b44e-a40082b73780.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Mac<\/span><br \/>\n            <span class=\"tag\">Health &#038; Fitness<\/span><br \/>\n            <span class=\"tag\">Productivity<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">macOS<\/span><br \/>\n            <span class=\"tag\">\u547c\u5438\u8bad\u7ec3<\/span><br \/>\n            <span class=\"tag\">\u89e6\u63a7\u677f\u89e6\u89c9\u53cd\u9988<\/span><br \/>\n            <span class=\"tag\">\u6b63\u5ff5<\/span><br \/>\n            <span class=\"tag\">\u6548\u7387\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u9690\u79c1<\/span><br \/>\n            <span class=\"tag\">\u514d\u8d39<\/span><br \/>\n            <span class=\"tag\">\u83dc\u5355\u680f<\/span><br \/>\n            <span class=\"tag\">\u5065\u5eb7<\/span><br \/>\n            <span class=\"tag\">\u51a5\u60f3\u66ff\u4ee3<\/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\u76db\u8d5e\u65e0\u8d26\u53f7\u3001\u672c\u5730\u8fd0\u884c\u7684\u7b80\u6d01\u8bbe\u8ba1\uff0c\u4ee5\u53ca\u5229\u7528\u89e6\u63a7\u677f\u89e6\u89c9\u7684\u521b\u610f\u3002\u4e3b\u8981\u7591\u95ee\u5305\u62ec\uff1a\u5982\u4f55\u5e94\u5bf9\u5de5\u4f5c\u671f\u95f4\u7684\u901a\u77e5\u4e2d\u65ad\uff08\u76ee\u524d\u65e0\u6682\u505c\uff09\uff1b\u6162\u8282\u594f\u547c\u5438\u6a21\u5f0f\uff08\u59824-7-8\uff09\u4e0b\u89e6\u89c9\u53cd\u9988\u662f\u5426\u51c6\u786e\uff1b\u662f\u5426\u652f\u6301\u5916\u63a5\u5999\u63a7\u677f\uff1b\u4ee5\u53ca\u957f\u671f\u4f7f\u7528\u662f\u5426\u4f1a\u6ca6\u4e3a\u6446\u8bbe\u3002\u5f00\u53d1\u8005\u786e\u8ba4\u5c06\u8003\u8651\u4e13\u6ce8\u6a21\u5f0f\uff0c\u5e76\u6307\u51fa macOS \u89e6\u89c9\u80fd\u529b\u6709\u9650\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                Breva \u5728\u6982\u5ff5\u4e0a\u51fb\u4e2d\u4e86\u5f53\u4ee3\u77e5\u8bc6\u5de5\u4f5c\u8005\u7684\u4e00\u4e2a\u666e\u904d\u201c\u5fae\u75db\u70b9\u201d\u2014\u2014\u60f3\u653e\u677e\u4f46\u4e0d\u60f3\u62ff\u8d77\u624b\u673a\uff08\u56e0\u4e3a\u90a3\u901a\u5e38\u610f\u5473\u7740\u53e6\u4e00\u8f6e\u5206\u5fc3\uff09\u3002\u5b83\u5c06\u547c\u5438\u5f15\u5bfc\u4ece\u201c\u5927\u8bcd\u201d\u7684\u51a5\u60f3\u7c7b\u5e94\u7528\u4e2d\u5265\u79bb\uff0c\u964d\u7ef4\u6210\u4e00\u4e2a\u8f7b\u5de7\u7684\u83dc\u5355\u680f\u5de5\u5177\uff0c\u8fd9\u5728\u4ea7\u54c1\u5b9a\u4f4d\u4e0a\u662f\u7cbe\u660e\u7684\u51cf\u6cd5\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5176\u771f\u6b63\u7684\u521b\u65b0\u5728\u4e8e\u5bf9\u95f2\u7f6e\u786c\u4ef6\u7684\u518d\u5229\u7528\uff1aMac \u89e6\u63a7\u677f\u7684 Taptic Engine\u3002\u8fd9\u4e0d\u4ec5\u662f\u5dee\u5f02\u5316\u5356\u70b9\uff0c\u66f4\u662f\u4ea7\u54c1\u6838\u5fc3\u4ea4\u4e92\u7684\u5347\u7ea7\u2014\u2014\u773c\u775b\u4e0d\u9700\u8981\u518d\u76ef\u7740\u5c4f\u5e55\u4e0a\u7684\u52a8\u753b\uff0c\u624b\u6307\u5c16\u7684\u6e29\u67d4\u9707\u52a8\u5373\u53ef\u5b8c\u6210\u5f15\u5bfc\u3002\u8fd9\u6bd4\u5e02\u9762\u4e0a\u4efb\u4f55\u4f9d\u9760\u89c6\u89c9\u53cd\u9988\u7684\u547c\u5438\u5e94\u7528\u90fd\u66f4\u8d34\u8fd1\u201c\u65e0\u610f\u8bc6\u653e\u677e\u201d\u7684\u672c\u610f\uff0c\u4e5f\u65e0\u5f62\u4e2d\u964d\u4f4e\u4e86\u4f7f\u7528\u95e8\u69db\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u4ece\u8bc4\u8bba\u53cd\u9988\u548c\u4ea7\u54c1\u73b0\u72b6\u6765\u770b\uff0cBreva \u9762\u4e34\u4e24\u4e2a\u81f4\u547d\u6311\u6218\u3002\u9996\u5148\u662f\u201c\u6ce8\u610f\u529b\u65ad\u5c42\u201d\u95ee\u9898\uff1a\u4e00\u4e2a\u65e8\u5728\u8ba9\u4f60\u201c\u65ad\u8fde\u201d\u7684\u5e94\u7528\uff0c\u5374\u65e0\u6cd5\u5728 macOS \u7684\u901a\u77e5\u8f70\u70b8\u4e2d\u4fdd\u62a4\u81ea\u8eab\u3002\u5982\u679c Slack \u6216\u65e5\u5386\u5f39\u7a97\u53ef\u4ee5\u968f\u610f\u6253\u65ad\u547c\u5438\u8282\u594f\uff0c\u8fd9\u4e2a\u201c\u5c0f\u4eea\u5f0f\u201d\u5c31\u4f1a\u8fc5\u901f\u6ca6\u4e3a\u53e6\u4e00\u4e2a\u9700\u8981\u5bf9\u6297\u7684\u5fc3\u667a\u566a\u97f3\u3002\u5176\u6b21\u662f\u201c\u4f4e\u9891\u5de5\u5177\u201d\u7684\u5bbf\u547d\uff1a\u547c\u5438\u5e94\u7528\u6781\u6613\u88ab\u9057\u5fd8\u3002Breva \u76ee\u524d\u5c55\u73b0\u7684\u201c\u7528\u5b8c\u5373\u8d70\u201d\u54f2\u5b66\u867d\u7136\u514b\u5236\uff0c\u4f46\u4e5f\u7f3a\u4e4f\u4e3b\u52a8\u5524\u9192\u7528\u6237\u3001\u6784\u5efa\u65e5\u5e38\u4e60\u60ef\u7684\u673a\u5236\u3002\u5982\u679c\u6ca1\u6709\u667a\u80fd\u63d0\u9192\u6216\u4e0e\u5de5\u4f5c\u6d41\uff08\u5982\u756a\u8304\u949f\u540e\u81ea\u52a8\u542f\u52a8\uff09\u7684\u6574\u5408\uff0c\u5b83\u5927\u6982\u7387\u4f1a\u5728\u4e00\u4e24\u5468\u540e\u8eba\u5e73\u5728\u83dc\u5355\u680f\u7684\u6298\u53e0\u533a\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u603b\u7684\u6765\u8bf4\uff0cBreva \u662f\u4e00\u6b21\u51fa\u8272\u7684\u786c\u4ef6\u4e0e\u573a\u666f\u7ed3\u5408\u5b9e\u9a8c\uff0c\u4f46\u8ddd\u79bb\u6210\u4e3a\u4e00\u4e2a\u201c\u597d\u7528\u201d\u7684\u65e5\u5e38\u5de5\u5177\uff0c\u8fd8\u9700\u8981\u89e3\u51b3\u73af\u5883\u5e72\u6270\u548c\u7528\u6237\u53ec\u56de\u8fd9\u4e24\u4e2a\u6838\u5fc3\u547d\u9898\u3002\u5b83\u4e0d\u662f\u4e00\u6b3e\u9769\u547d\u6027\u4ea7\u54c1\uff0c\u4f46\u4e3a\u201c\u5982\u4f55\u5229\u7528\u73b0\u6709\u8bbe\u5907\u505a\u51cf\u6cd5\u201d\u63d0\u4f9b\u4e86\u4e00\u4e2a\u7edd\u4f73\u8303\u4f8b\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\">Breva<\/span>\n                <\/div>\n<div class=\"comment-content\">Breva turns your Mac trackpad into a gentle breathing guide. Choose a breathing pattern, set a session length, and follow a soft expanding orb with optional audio and haptic cues. It works locally, needs no account, and helps you take short reset breaks without reaching for your phone.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Product Hunt,<\/p>\n<p>I built Breva because I wanted a tiny reset ritual that lived on my Mac instead of my phone.<\/p>\n<p>Most breathing apps pull me into a separate device, a subscription funnel, or a full meditation experience. I wanted the opposite: fewer features, less ceremony, and a quick way to reset from the Mac I\u2019m already using. Breva is intentionally smaller: pick a rhythm, choose 3, 5, 10 minutes, or unlimited, and follow the orb, tones, and trackpad taps.<\/p>\n<p>The unusual part is the haptic guidance. If your Mac trackpad supports it, Breva can quietly tap the breathing rhythm under your fingers, which makes it easier to follow without staring at the screen.<\/p>\n<p>What is in this first version:<br \/>&#8211; Coherent, Easy Calm, Balanced, Calm, Box, and 4-7-8 Sleep patterns<br \/>&#8211; 3, 5, 10 minute, and unlimited sessions<br \/>&#8211; Visual, audio, and trackpad haptic cues<br \/>&#8211; Menu bar quick actions<br \/>&#8211; Local session history and preferences<br \/>&#8211; No account required<br \/>&#8211; Oh, and it&#8217;s free \ud83d\ude42<\/p>\n<p>I would love feedback on two things:<br \/>&#8211; Which breathing pattern feels most useful during the workday?<br \/>&#8211; Does the trackpad haptic guidance make the session easier to follow?<\/p>\n<p>Thanks for taking a look.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>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>Brilliant idea. Hate how much I grab for my phone when I need a brain break. Great alternative. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the haptic tap idea is genuinely clever, using hardware that&#8217;s already there instead of another screen to stare at. curious about interruptions though &#8211; if a Slack ping or calendar alert fires mid-session does the orb just keep going underneath it, or does it pause\/reset? the whole point of a reset break is not getting yanked back into work mid-breath, so how it handles that matters more than the pattern selection imo.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@galdayan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@galdayan<\/a>&nbsp;Great question, and I agree. Right now Breva doesn\u2019t pause or reset when a notification appears &#8211; the session keeps running underneath unless you manually pause\/end it.<\/p>\n<p>That said, I\u2019m thinking about adding a more explicit \u201cfocus session\u201d mode, because the real goal is for Breva to feel like a small protected pause, not another thing competing with work.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>this idea is great! as someone that&#8217;s always had a passion for mindfulness, it&#8217;s cool to see an app like this. would you ever consider a mobile app? i know the app uses a trackpad but it would be convenient to have a mobile equivalent as well. great work! <\/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\/@ethan_cheng\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ethan_cheng<\/a>&nbsp;Thank you, really appreciate that!<\/p>\n<p>Yeah, I think a mobile version could definitely work. iPhone haptics are more configurable than what macOS exposes for the trackpad, so there\u2019s actually a lot of room to make the breathing guidance feel more nuanced there.<\/p>\n<p>I started with Mac because the trackpad felt like an underused place for this kind of app, but I\u2019ll definitely think about a mobile version too!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congratulations on the launch! Keeping the reset on the Mac rather than the phone is a smart choice since the phone is usually the thing you&#8217;re trying to step away from. What I&#8217;d be curious about is whether people actually come back to it on a stressful day, or whether it slips into the background once the novelty passes. <\/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\/@alieksia\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alieksia<\/a>&nbsp;Thank you, and that\u2019s exactly the question I\u2019m most curious about too!<\/p>\n<p>The bet is that keeping it on the Mac makes it easier to use in the moment you actually need it, without picking up the phone and getting pulled somewhere else. But long-term retention is the real test. If it can become a calm 2-minute habit between tasks, then it\u2019s doing its job.<\/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 trackpad haptics as a breathing pacer is such a clever use of hardware that&#8217;s just sitting there \u2014 eyes-free guidance is exactly what&#8217;s missing in most breathing apps, you either stare at an orb or you&#8217;re lost. Did you run into limits with the Taptic Engine on the slower patterns like 4-7-8, or does it handle long holds fine? Local-only and no account is a great call btw \u2014 building in the health space myself and I&#8217;m convinced that&#8217;s the right default for anything body-related.<\/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\/@anton_yakymenko\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@anton_yakymenko<\/a>&nbsp;Thanks Anton, really appreciate this. That was exactly the idea: breathing guidance you can feel without needing to keep your eyes glued to the screen.<\/p>\n<p>The trackpad haptics handle the slower patterns well, including 4-7-8, but macOS haptics are pretty intentionally limited: you get discrete trackpad taps rather than a fully custom continuous haptic waveform. So Breva uses them as gentle rhythmic anchors, while the orb and audio carry the longer phase timing.<\/p>\n<p>And agreed on local-only: for an app centered on breathing and relaxation, keeping it local and account-free felt like the right place to start.<\/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>Bro this is wild!<\/p>\n<\/p>\n<p>rooting for this to go viral.<\/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\/@aadilghani\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aadilghani<\/a>&nbsp;Haha thank you Aadil, appreciate the energy. \ud83d\ude00 <\/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 expanding orb is such a nice touch, way more intuitive than those rigid square timers I&#8217;ve tried before. Appreciate that it all runs locally too, no account or signup friction.<\/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\/@halilkarglraw6\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@halilkarglraw6<\/a>&nbsp;Thanks Halil, that means a lot. I wanted the orb to feel soft and physical, more like something you can settle into than a timer you have to &#8220;obey&#8221;.<\/p>\n<p>And yes, local-only\/no signup felt essential for this kind of app. It should just open, guide you for a few minutes, and get out of the way. No unnecessarily long onboard, features etc. \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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>love that the orb actually responds to your finger on the trackpad instead of just playing a generic animation. running everything locally with zero setup is a really thoughtful touch for something meant for quick resets.<\/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\/@n_yalc14858\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@n_yalc14858<\/a>&nbsp;Thank you Turgay. I really wanted the trackpad to feel like part of the breathing guide, not just a button sitting under the app. \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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>does this work with an external Magic Trackpad too, or is it built-in-trackpad only? a lot of desktop Mac setups don&#8217;t have a haptic trackpad plugged in by default so curious how you&#8217;re handling that gap.<\/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\/IANXOV73ZS2PGU\" class=\"app-title\">VocalVia<\/a><\/p>\n<div class=\"one-liner\">Turn documents and articles into editable multi-voice audio<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">95<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>VocalVia\u5c06PDF\u3001\u6587\u7ae0\u7b49\u6587\u6863\u81ea\u52a8\u8f6c\u5316\u4e3a\u53ef\u7f16\u8f91\u7684\u591a\u89d2\u8272\u64ad\u5ba2\u5f0f\u97f3\u9891\uff0c\u89e3\u51b3\u7528\u6237\u201c\u6536\u85cf\u65e0\u6570\u5374\u8bfb\u4e0d\u5b8c\u201d\u7684\u75db\u70b9\uff0c\u8ba9\u4f60\u5728\u8131\u79bb\u5c4f\u5e55\u65f6\u4e5f\u80fd\u9ad8\u6548\u6536\u542c\u957f\u5185\u5bb9\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\/df65fd60-38d0-4331-941f-e9241c2087df.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/OEtN8bPAslU\"><source src=\"https:\/\/youtu.be\/OEtN8bPAslU\" 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\/681fbc36-2c6b-4841-ba9a-d3544af5c97f.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\/53f577ab-6cea-4d9b-8d48-286684214545.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\/1966c241-b419-4492-a9fc-d15e960aa245.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\">\u6587\u6863\u8f6c\u97f3\u9891<\/span><br \/>\n            <span class=\"tag\">\u591a\u89d2\u8272\u64ad\u5ba2<\/span><br \/>\n            <span class=\"tag\">AI\u8bed\u97f3\u5408\u6210<\/span><br \/>\n            <span class=\"tag\">\u6587\u672c\u8f6c\u8bed\u97f3<\/span><br \/>\n            <span class=\"tag\">\u53ef\u7f16\u8f91\u811a\u672c<\/span><br \/>\n            <span class=\"tag\">\u7814\u7a76\u8bba\u6587<\/span><br \/>\n            <span class=\"tag\">\u5b66\u4e60\u7b14\u8bb0<\/span><br \/>\n            <span class=\"tag\">\u5185\u5bb9\u6d88\u8d39<\/span><br \/>\n            <span class=\"tag\">\u751f\u4ea7\u529b\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u8bed\u97f3\u751f\u6210<\/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\u9ad8\u5ea6\u8ba4\u53ef\u201c\u5148\u53ef\u7f16\u8f91\u811a\u672c\u518d\u751f\u6210\u97f3\u9891\u201d\u7684\u8bbe\u8ba1\uff0c\u8ba4\u4e3a\u8fd9\u662f\u4e0e\u5176\u4ed6TTS\u5de5\u5177\u7684\u5173\u952e\u5dee\u5f02\u3002\u6838\u5fc3\u95ee\u9898\u96c6\u4e2d\u5728\uff1a\u591a\u89d2\u8272\u5bf9\u8bdd\u7684\u81ea\u52a8\u5206\u914d\u903b\u8f91\uff08\u5982\u5bf9\u8bdd\u5f52\u5c5e\u3001\u5f15\u7528\u5904\u7406\uff09\u3001\u4e13\u4e1a\u672f\u8bed\u4e0e\u7f29\u5199\u53d1\u97f3\u63a7\u5236\u3001\u957f\u6587\u6863\u4e2d\u590d\u6742\u8868\u683c\u4e0e\u516c\u5f0f\u7684\u5904\u7406\u3001\u4ee5\u53ca\u7f3a\u4e4f\u65f6\u95f4\u8f74\/\u7ae0\u8282\u5bfc\u822a\u529f\u80fd\u3002\u521b\u4f5c\u8005\u56de\u5e94\u79f0\u652f\u6301\u9010\u6bb5\u7f16\u8f91\u548c\u89d2\u8272\u7ba1\u7406\uff0c\u4f46\u8bed\u8c03\u63a7\u5236\u548c\u81ea\u52a8\u5bf9\u8bdd\u8bc6\u522b\u4ecd\u5728\u6539\u8fdb\u4e2d\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                VocalVia\u9009\u62e9\u4e86\u4e00\u6761\u6b63\u786e\u4f46\u8270\u96be\u7684\u8def\uff1a\u4e0d\u662f\u505a\u53e6\u4e00\u4e2a\u4e00\u952eTTS\u7684\u201c\u9ed1\u76d2\u201d\uff0c\u800c\u662f\u5c06\u6587\u6863\u8f6c\u97f3\u9891\u7684\u6d41\u7a0b\u62c6\u89e3\u4e3a\u201c\u5927\u7eb2\u2192\u811a\u672c\u2192\u914d\u97f3\u2192\u5bfc\u51fa\u201d\uff0c\u5e76\u628a\u7f16\u8f91\u6743\u4ea4\u7ed9\u7528\u6237\u3002\u8fd9\u6070\u6070\u5207\u4e2d\u4e86\u5f53\u524dAI\u97f3\u9891\u5de5\u5177\u6700\u5927\u7684\u75db\u70b9\u2014\u2014\u7528\u6237\u5bf9\u8f93\u51fa\u7f3a\u4e4f\u63a7\u5236\u529b\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u8bc4\u8bba\u53ef\u89c1\uff0c\u5176\u6838\u5fc3\u8d44\u4ea7\u5e76\u975e\u8bed\u97f3\u5408\u6210\u6280\u672f\u672c\u8eab\uff0c\u800c\u662f\u201c\u53ef\u7f16\u8f91\u7684\u591a\u89d2\u8272\u5267\u672c\u201d\u8fd9\u4e00\u4e2d\u95f4\u5c42\u3002\u8fd9\u6709\u6548\u89e3\u51b3\u4e86\u8bba\u6587\u3001\u957f\u6587\u7b49\u573a\u666f\u4e2d\uff0c\u4e13\u4e1a\u672f\u8bed\u5ff5\u9519\u3001\u5f15\u7528\u6df7\u4e71\u3001\u8282\u594f\u5931\u63a7\u7b49\u4f20\u7edfTTS\u7684\u75fc\u75be\u3002\u7528\u6237\u7684\u9ad8\u9891\u53cd\u9988\u4e5f\u76f4\u6307\u8981\u5bb3\uff1a\u81ea\u52a8\u5bf9\u8bdd\u5f52\u5c5e\u3001\u590d\u6742\u7248\u9762\u89e3\u6790\u3001\u53d1\u97f3\u8bcd\u5178\u2014\u2014\u8fd9\u4e9b\u624d\u662f\u4ece\u201c\u73a9\u5177\u201d\u5230\u201c\u5de5\u5177\u201d\u7684\u9e3f\u6c9f\u3002\u521b\u59cb\u4eba\u7684\u56de\u5e94\u5766\u8bda\u800c\u52a1\u5b9e\uff08\u201c\u6b63\u5728\u6539\u8fdb\u201d\u3001\u201c\u4e0d\u5938\u5927\u8868\u683c\u5904\u7406\u201d\uff09\uff0c\u8fd9\u6bd4\u8bb8\u8bfa\u5b8c\u7f8eAI\u66f4\u503c\u5f97\u4fe1\u4efb\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u98ce\u9669\u540c\u6837\u660e\u663e\uff1a\u5982\u679c\u7f16\u8f91\u811a\u672c\u4ecd\u9700\u5927\u91cf\u4eba\u5de5\u5e72\u9884\uff0c\u5176\u4ef7\u503c\u5c31\u4ec5\u9650\u4e8e\u201c\u6bd4\u7eafTTS\u5c11\u8d70\u4e00\u6b65\u5f2f\u8def\u201d\uff0c\u800c\u975e\u9769\u547d\u6027\u4f53\u9a8c\u3002\u771f\u6b63\u7684\u62a4\u57ce\u6cb3\u5728\u4e8e\uff0c\u672a\u6765\u80fd\u5426\u8ba9AI\u572880%\u7684\u573a\u666f\u4e0b\u751f\u6210\u201c\u65e0\u9700\u4fee\u6539\u201d\u7684\u4f18\u8d28\u7a3f\u672c\u3002\u6b64\u5916\uff0c\u4ea7\u54c1\u76ee\u524d\u7f3a\u5c11\u65f6\u95f4\u8f74\u5bfc\u822a\uff0c\u8fd9\u5728\u542c30\u9875\u4ee5\u4e0a\u7684\u8bba\u6587\u65f6\u51e0\u4e4e\u662f\u5f3a\u5236\u9700\u6c42\uff0c\u56e2\u961f\u5e94\u5c06\u5176\u4f18\u5148\u7ea7\u63d0\u5347\u81f3P0\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u77ed\u671f\u770b\uff0cVocalVia\u662f\u91cd\u5ea6\u9605\u8bfb\u8005\u548c\u7814\u7a76\u8005\u63d0\u5347\u4fe1\u606f\u6444\u5165\u6548\u7387\u7684\u5229\u5668\uff1b\u957f\u671f\u770b\uff0c\u5b83\u80fd\u5426\u5c06\u201c\u7f16\u8f91\u201d\u4ece\u8d1f\u62c5\u8f6c\u5316\u4e3a\u4e50\u8da3\uff0c\u5c06\u51b3\u5b9a\u5176\u5929\u82b1\u677f\u3002\u76f2\u731c\u4e00\u4e2a\uff1a\u5982\u679c\u5b83\u80fd\u5f15\u5165\u793e\u533a\u5171\u4eab\u7684\u201c\u53d1\u97f3\u8bcd\u5178\u201d\u548c\u201c\u89d2\u8272\u97f3\u8272\u5305\u201d\uff0c\u4f1a\u5728\u5b66\u672f\u5708\u5f62\u6210\u75c5\u6bd2\u4f20\u64ad\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\">VocalVia<\/span>\n                <\/div>\n<div class=\"comment-content\">VocalVia turns PDFs, Word files, Markdown, web articles, and pasted text into structured outlines, editable podcast scripts, and natural multi-voice audio. Choose speakers and voices, refine individual segments, then export the finished audio. It is built for saved reading, study notes, research papers, and long-form content you want to listen to away from a screen.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The multi-voice part caught my eye. When VocalVia turns a document or article into audio, how much control does the user get over which sections use which voice? For example, can someone mark quotes, headings, or different speakers before generation, or is that handled automatically? Since the tagline mentions editable audio, I\u2019m also curious whether edits happen at the text level, the timeline level, or both.<\/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\/@crystalmei\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@crystalmei<\/a>&nbsp;Great question, Xuefei. VocalVia automatically creates an initial multi-speaker script, but users are not locked into those assignments. Before generating the audio, you can edit each segment, change its speaker, and select the voice used by each speaker.<\/p>\n<\/p>\n<p>Editing currently happens at the text and segment level rather than on a waveform timeline. This lets you revise the wording and adjust speaker or voice assignments before synthesis. Quotes and sections can be reassigned manually; automatic semantic handling for elements such as headings and quotations is something I\u2019m still improving.<\/p>\n<\/p>\n<p>A visual timeline and chapter-level editing would be a valuable next step.<\/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\">Hi Product Hunt! I built VocalVia after noticing how many useful PDFs and articles I saved but never finished. The goal is to make document-to-audio practical rather than opaque: you can inspect the outline, edit the script, assign voices, and adjust segments before generating the final audio. I\u2019m opening unlimited credits through July 31 while collecting honest feedback. I\u2019d especially love to hear where the upload \u2192 script \u2192 voice \u2192 audio workflow feels confusing, and how well it handles your messiest real-world documents.<\/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>Editable script before audio is the right call \u2014 most TTS tools skip exactly that step. My question is about fiction: in a novel excerpt the speaker is usually implied, not tagged (&#8220;she said&#8221; disappears after the first exchange). Does the outline step attempt dialogue attribution so characters land on distinct voices, or is fiction a manual-reassignment job today? That feels like the gap between &#8220;documents&#8221; and &#8220;books.&#8221;<\/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 one of the more thoughtful takes on document-to-audio I&#8217;ve seen, mostly because the editable script step exists at all instead of piping straight to TTS. one thing I didn&#8217;t see covered yet: pronunciation of jargon, acronyms, and author names in research papers. that&#8217;s usually where TTS breaks the listening experience even when the sentence structure is fine &#8211; a mispronounced term every few minutes pulls you right out of it. is there a way to correct or lock in a pronunciation once, so it applies consistently across the rest of that document (or future ones with the same terms)?<\/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 believe that editing the script will take time. If I have to review the content anyway, I might just read the PDF instead. Were there users that could relate to my feedback ?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The editable-per-segment part is what stands out to me over plain TTS \u2014 being able to refine one speaker&#8217;s line without re-rendering the whole thing is the tedious bit everywhere else. Turning a research paper into a two-host format is a genuinely nice use case. How much control do you get over pacing and emphasis within a segment, or is picking the voice the main lever right now?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Multi-voice from a single document is a nice unlock \u2014 script studios usually make you assign voices manually shot by shot. How are you handling voice consistency across a long document, especially if the same &#8220;character&#8221; voice needs to reappear later? That&#8217;s been one of the trickier problems building voice tooling alongside video generation.<\/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\/@abhineetarora\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@abhineetarora<\/a>&nbsp;Voice consistency was one of the reasons I separated speakers from individual script segments. Each speaker keeps the same selected voice throughout the document, and every segment assigned to that speaker uses the same catalog, designed, or cloned voice reference \u2014 even when the speaker reappears much later.<\/p>\n<\/p>\n<p>The underlying voice identity therefore stays consistent. Prosody and delivery can still vary somewhat between generations, so tighter controls for tone and delivery are an area I\u2019m continuing to improve.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Is it primarily for generating podcasts?<\/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\/@ragsyme\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ragsyme<\/a>&nbsp;Podcast-style, multi-speaker audio is a core use case, but it isn\u2019t the only one. VocalVia also supports single-voice narration and voiceovers for research papers, saved articles, study notes, tutorials, and other long-form documents.<\/p>\n<\/p>\n<p>The common idea is to turn the source material into an editable script first, so users can review the structure, wording, speakers, and voices before generating the final audio.<\/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\/@zoey_0113\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@Zoey<\/a> Congrats on the launch of <a href=\"https:\/\/www.producthunt.com\/products\/vocalvia\" target=\"_blank\" rel=\"noopener\">VocalVia<\/a>! \ud83d\ude80 Solving the &#8220;saved articles I never actually read&#8221; problem by turning them into editable multi-voice podcasts is brilliant.<\/p>\n<p>Quick question on handling complex structures: when processing dense documents (like 30+ page research papers with heavy inline citations, tables, or math code), how clean is the initial script translation? Does it automatically distill complex tables into natural conversation, or do you find users usually need to manually edit those segments first?<\/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\/@franz_briones\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@franz_briones<\/a>&nbsp;Thanks, Franz \u2014 that\u2019s exactly the kind of challenging document VocalVia is designed to make easier. It first creates an outline and an editable script instead of sending the raw PDF directly to TTS.<\/p>\n<\/p>\n<p>For prose and citation-heavy sections, it can usually produce a cleaner spoken structure. I don\u2019t want to overpromise on complex tables or mathematical notation, though \u2014 those may still benefit from a quick human review. That\u2019s why every script segment remains editable before audio generation.<\/p>\n<\/p>\n<p>I\u2019m continuing to improve this step and would be very interested in testing more real-world research papers.<\/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 multi-voice output caught me off guard, it actually feels like a real conversation instead of that robotic single narrator you get elsewhere. Refining one segment without regenerating the whole file is a lifesaver for long papers.<\/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\/@dne4ga7\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dne4ga7<\/a>&nbsp;Thank you, D\u00f6ne \u2014 hearing that  is very encouraging.<\/p>\n<\/p>\n<p>Long documents make even small mistakes expensive, so keeping the script editable at the segment level is a core part of VocalVia. I\u2019m continuing to improve voice consistency and delivery control while preserving that ability to refine specific parts of the script.<\/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>Dropped a 40-page research paper in and got a pretty clean two-host audio rundown in a few minutes. Editing individual segments before export is a nice touch, especially for cleaning up citations.<\/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\/@havvaq6ab\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@havvaq6ab<\/a>&nbsp;Thanks for testing VocalVia with a full 40-page paper, Havva. Citation cleanup is exactly why I wanted an editable script and segment step instead of making the process a one-click black box.<\/p>\n<\/p>\n<p>I\u2019m glad the two-host draft gave you a useful starting point. I\u2019d be especially interested to know which citation formats still required the most manual cleanup, as that would help me improve the script-generation stage.<\/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! Editable scripts before audio generation is the part most TTS tools skip, and it&#8217;s the part that matters. Does it keep speaker assignments stable when you re-edit a segment, or does the outline regenerate? <\/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\/@vladimir_iudin\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@vladimir_iudin<\/a>&nbsp;Yes \u2014 the speaker assignment stays attached to the segment when you edit its text. Revising a segment does not regenerate the outline or the rest of the script, so you can iterate on individual lines without losing the existing speaker setup.<\/p>\n<\/p>\n<p>The outline or full script is regenerated only when you intentionally return to that earlier step and request a new version.<\/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 timeline or chapter marker system would be really useful so I can jump back to a specific section in long papers without rewinding through the whole audio.<\/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\/@tahsinm7m7\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@tahsinm7m7<\/a>&nbsp;That makes a lot of sense, Tahsin. A clickable chapter list with timestamps would make long research audio much easier to navigate, revisit, and resume.<\/p>\n<\/p>\n<p>This isn\u2019t available in the current version yet, but I\u2019ve added it to the roadmap. My preferred approach is to generate the initial chapters from the document outline, while still allowing users to rename, reorder, or adjust them before export. Thanks for the very practical suggestion.<\/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>Finally tried it on a 40-page research paper and the multi-voice narration actually makes the dense sections easier to follow than my usual text-to-speech. Editing individual segments before export is a nice touch too.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@mirag1jy\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mirag1jy<\/a>&nbsp;Thank you for putting a full 40-page research paper through it, Mira \u2014 that\u2019s exactly the kind of real-world test I was hoping for. I\u2019m especially glad the multi-voice structure made the dense sections easier to follow and that segment editing felt useful.<\/p>\n<\/p>\n<p>If you noticed any sections where citations, tables, pronunciation, or pacing still sounded awkward, I\u2019d genuinely appreciate the details. That feedback would be very useful for improving the document-to-script step.<\/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\/Z47E5KKQEICZWT\" class=\"app-title\">Altersend<\/a><\/p>\n<div class=\"one-liner\">File transfer with no cloud storage, no account, no limits<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">95<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Altersend\u901a\u8fc7\u70b9\u5bf9\u70b9\u76f4\u63a5\u4f20\u8f93\u548c\u7aef\u5230\u7aef\u52a0\u5bc6\uff0c\u8ba9\u7528\u6237\u65e0\u9700\u4e0a\u4f20\u4e91\u7aef\u3001\u6ce8\u518c\u8d26\u53f7\u6216\u62c5\u5fc3\u6587\u4ef6\u5927\u5c0f\u9650\u5236\uff0c\u5373\u53ef\u5728\u8bbe\u5907\u95f4\u5feb\u901f\u5b89\u5168\u5730\u5171\u4eab\u5927\u6587\u4ef6\uff0c\u89e3\u51b3\u4e86\u4f20\u7edf\u4e91\u5b58\u50a8\u901f\u5ea6\u6162\u3001\u9690\u79c1\u98ce\u9669\u9ad8\u548c\u5bb9\u91cf\u53d7\u9650\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\/7709b024-de87-41c7-99e7-3ef5807658bd.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\/624c5957-aed0-41c7-a10e-b89e971ca615.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\/d3f327f1-bbc0-4946-a39c-5ce553084744.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\/0b7eb6fd-ab04-400e-b0e1-85b3f7171325.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\/4d566d48-bd20-4b4c-8b27-bc6917c2052f.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\/cf3b1afd-eaf4-4a8f-a4bd-84650fd62bfb.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/B7qpvWlmArw?si=R39aFOuPy_UsnPnk\"><source src=\"https:\/\/youtu.be\/B7qpvWlmArw?si=R39aFOuPy_UsnPnk\" 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\">Open Source<\/span><br \/>\n            <span class=\"tag\">Privacy<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">P2P\u6587\u4ef6\u4f20\u8f93<\/span><br \/>\n            <span class=\"tag\">\u7aef\u5230\u7aef\u52a0\u5bc6<\/span><br \/>\n            <span class=\"tag\">\u65e0\u4e91\u7aef\u5b58\u50a8<\/span><br \/>\n            <span class=\"tag\">\u8de8\u5e73\u53f0<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90<\/span><br \/>\n            <span class=\"tag\">\u6587\u4ef6\u5171\u4eab<\/span><br \/>\n            <span class=\"tag\">\u9690\u79c1\u4fdd\u62a4<\/span><br \/>\n            <span class=\"tag\">\u5927\u6587\u4ef6\u4f20\u8f93<\/span><br \/>\n            <span class=\"tag\">NAT\u7a7f\u900f<\/span><br \/>\n            <span class=\"tag\">\u65e0\u8d26\u53f7<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u8d5e\u8d4f\u5176\u65e0\u8d26\u53f7\u3001\u65e0\u4e91\u7aef\u7684\u7b80\u6d01\u9690\u79c1\u8bbe\u8ba1\uff0c\u4f46\u63d0\u51fa\u75db\u70b9\uff1a\u4e0d\u652f\u6301\u65ad\u70b9\u7eed\u4f20\uff08WiFi\u95ea\u65ad\u5373\u4e2d\u65ad\uff09\uff0c\u65e0\u6cd5\u6682\u505c\u6216\u9650\u901f\u4f20\u8f93\uff1b\u4e5f\u5173\u6ce8\u5728\u4f01\u4e1a\u4e25\u63a7\u7f51\u7edc\uff08\u5982\u963b\u6b62P2P\u6d41\u91cf\uff09\u53ca\u63a5\u6536\u65b9\u79bb\u7ebf\u573a\u666f\u4e0b\u7684\u53ef\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                AlterSend\u7cbe\u51c6\u5207\u4e2d\u4e86\u201c\u4e91\u5b58\u50a8\u75b2\u52b3\u201d\u65f6\u4ee3\u7684\u6838\u5fc3\u8bc9\u6c42\uff1a\u629b\u5f03\u4e2d\u95f4\u5546\uff0c\u8ba9\u6587\u4ef6\u76f4\u63a5\u6d41\u52a8\u3002\u5176\u6280\u672f\u67b6\u6784\uff0c\u5c24\u5176\u662f\u57fa\u4e8eHyperswarm\u7684P2P\u53d1\u73b0\u4e0e\u76f2\u4e2d\u7ee7\u56de\u9000\uff0c\u5728\u5b9e\u7528\u6027\u548c\u9690\u79c1\u4fdd\u62a4\u4e0a\u505a\u51fa\u4e86\u806a\u660e\u7684\u5e73\u8861\uff0c\u5e76\u975e\u5671\u5934\u300295\u7968\u548c\u8fd1\u5343\u9897GitHub\u661f\u8bf4\u660e\u5b83\u5728\u6781\u5ba2\u548c\u9690\u79c1\u654f\u611f\u7528\u6237\u4e2d\u53cd\u54cd\u70ed\u70c8\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u5176\u201c\u66ff\u4ee3WeTransfer\u548cU\u76d8\u201d\u7684\u91ce\u5fc3\u9762\u4e34\u73b0\u5b9e\u6311\u6218\u3002\u7528\u6237\u8bc4\u8bba\u66b4\u9732\u4e86\u4e24\u4e2a\u81f4\u547d\u201c\u975e\u6280\u672f\u201d\u77ed\u677f\uff1a\u4e00\u662f\u7f3a\u4e4f\u65ad\u70b9\u7eed\u4f20\u548c\u6d41\u91cf\u63a7\u5236\uff0c\u8fd9\u5728\u79fb\u52a8\u7f51\u7edc\u6216\u5171\u7528WiFi\u573a\u666f\u4e0b\u662f\u6bc1\u706d\u6027\u4f53\u9a8c\uff1b\u4e8c\u662f\u4e25\u683c\u7684\u201c\u53cc\u7aef\u540c\u65f6\u5728\u7ebf\u201d\u8981\u6c42\uff0c\u5f7b\u5e95\u6392\u9664\u4e86\u5f02\u6b65\u4f20\u8f93\u9700\u6c42\u3002\u524d\u8005\u662f\u529f\u80fd\u7f3a\u9677\uff0c\u540e\u8005\u5219\u662fP2P\u6a21\u5f0f\u7684\u539f\u7f6a\u3002\u6b64\u5916\uff0c\u4f01\u4e1a\u9632\u706b\u5899\u5b8c\u5168\u5c4f\u853dP2P\u534f\u8bae\u7684\u573a\u666f\uff0c\u5176\u76f2\u4e2d\u7ee7\u53ef\u80fd\u5931\u6548\u6216\u6027\u80fd\u582a\u5fe7\uff0c\u8fd9\u6070\u597d\u662fWeTransfer\u548cDrive\u6700\u64c5\u957f\u7684\u573a\u666f\u3002\n            <\/p>\n<p class=\"ai-content\">\n                AlterSend\u7684\u4ef7\u503c\u5728\u4e8e\uff0c\u5b83\u5b9a\u4e49\u4e86\u4e00\u4e2a\u201c\u5e72\u51c0\u201d\u7684\u4f20\u8f93\u8303\u5f0f\uff1a\u79c1\u5bc6\u3001\u7b80\u6d01\u3001\u65e0\u75d5\u3002\u4f46\u8981\u60f3\u4ece\u201c\u73a9\u5177\u201d\u53d8\u4e3a\u201c\u5de5\u5177\u201d\uff0c\u5b83\u5fc5\u987b\u5728\u7528\u6237\u4f53\u9a8c\u7684\u7ec6\u8282\u4e0a\u5411\u4f20\u7edf\u65b9\u6848\u770b\u9f50\u2014\u2014\u6bd4\u5982\u5f15\u5165\u4e2d\u7ee7\u5b9e\u73b0\u7684\u77ed\u6682\u79bb\u7ebf\u5b58\u50a8\u6216\u4efb\u52a1\u961f\u5217\uff0c\u4ee5\u53ca\u7cbe\u7ec6\u5316\u7684\u4f20\u8f93\u63a7\u5236\u3002\u5426\u5219\uff0c\u5b83\u53ea\u4f1a\u662f\u6280\u672f\u7231\u597d\u8005\u624b\u4e2d\u7684\u73cd\u54c1\uff0c\u800c\u975e\u5927\u4f17\u629b\u5f03\u4e91\u76d8\u7684\u7406\u7531\u3002\u5b83\u6700\u5927\u7684\u654c\u4eba\u4e0d\u662f\u540c\u7c7b\u7ade\u54c1\uff0c\u800c\u662f\u7528\u6237\u4e60\u60ef\u548c\u7f51\u7edc\u73af\u5883\u7684\u590d\u6742\u6027\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\">Altersend<\/span>\n                <\/div>\n<div class=\"comment-content\">AlterSend sends files directly between devices &#8211; P2P, E2EE, no cloud storage, no account, no size limits. Open source and cross-platform: mobile + desktop. Share a code or scan a QR, and files stream straight across.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Product Hunt! \ud83d\udc4b<\/p>\n<p>I&#8217;m Denis. I built AlterSend because sending a big file to someone is still way harder than it should be. You upload it to WeTransfer or Google Drive, wait, hit a size limit, send a link, and your file ends up on a server that isn&#8217;t yours. It&#8217;s slow, it&#8217;s capped, and it&#8217;s not private.<\/p>\n<\/p>\n<p>AlterSend sends files straight from your device to the other person&#8217;s. No upload step, no account, no size limit, end-to-end encrypted. Works anywhere &#8211; same room or another country.<\/p>\n<p>We released a month ago and it&#8217;s going better than I hoped: 7,000+ downloads, almost 1,000 GitHub stars, and a lot of great feedback from users that&#8217;s helping me decide what to build next.<\/p>\n<p>How it works:<br \/>\u2022 Each transfer creates a random 32-byte key &#8211; that&#8217;s the join code you share with the receiver<br \/>\u2022 Devices find each other through a public DHT using a hash of that key &#8211; the key itself never leaves your devices<br \/>\u2022 The connection is encrypted end to end. If a direct connection isn&#8217;t possible, a relay passes the encrypted stream along &#8211; it can&#8217;t read your files and doesn&#8217;t store anything<br \/>\u2022 When you disconnect, everything is wiped \u2014 nothing is stored anywhere<\/p>\n<p>It&#8217;s open source (Apache-2.0), free, and there are no accounts.<\/p>\n<\/p>\n<p>I&#8217;d love honest feedback &#8211; especially: what would it take for you to stop using WeTransfer, Drive links, or USB sticks? I&#8217;ll be in the comments all day. \ud83d\ude4c<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>4<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>no account or cloud step is honestly so refreshing, sent a big video between my laptop and phone in like seconds.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>How do you handle firewall and NAT traversal in the peer-to-peer file transfer process?<\/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\/@aymnart\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aymnart<\/a>&nbsp;<br \/>We use Hyperswarm for discovery and NAT traversal, public bootstrap nodes help get the first peers introduced, then the DHT helps them hole-punch a direct UDX connection to each other, and only when that can&#8217;t work (symmetric CGNAT, VPNs) do we fall back to an opt-in blind relay that blindly forwards encrypted bytes.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This looks really clean, love that there&#8217;s no account or size limit involved. One thing that would make it way more usable for me is the ability to resume an interrupted transfer if someone drops off wifi for a second, since flaky connections mid-download are the worst.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The no-account, code-or-QR pairing is such a refreshing call back to simplicity. Love that it&#8217;s truly open source too, not just lip service.<\/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\/@hanifekrkir2f\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@hanifekrkir2f<\/a>&nbsp;thanks for the feedback !<br \/>The privacy is key<\/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>Almost everybody is logged into google drive and I see that the difference between AlterSend and Drive is that nothing gets stored. It&#8217;s great but there&#8217;s also a downside if someone wants to delete the file later, how often does that happen ?<\/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>Denis \u2014 the Hyperswarm + blind-relay fallback you explained to Aymen above is a clean answer to NAT. The harder case I run into with WinBidIQ&#8217;s audience (SMBs teaming up on federal contract bids) is government and defense-contractor networks that don&#8217;t just sit behind NAT \u2014 IT policy actively blocks outbound P2P\/DHT traffic at the firewall, full stop. Does AlterSend&#8217;s traffic pattern look enough like ordinary HTTPS\/WebSocket to get through a typical corporate proxy allowlist, or is a network locked down like that just a hard no regardless of the relay fallback?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the &#8220;your files never touch the cloud&#8221; pitch is solid on paper but real P2P is never that clean once both sides are behind restrictive NAT\/CGNAT &#8211; like on separate corporate wifis. what happens then, does it fall back to a relay server (still E2EE, just not direct), or does the transfer just fail and you&#8217;re back to a USB drive?<\/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\/@galdayan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@galdayan<\/a>&nbsp;yes, if hole punching fails (CGNAT\/NAT), it falls back to a relay server. But the relay has no idea what your file is, it just forwards encrypted bytes.<\/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>Sent a video between my phone and laptop in seconds, no signup or upload wait was genuinely refreshing. The QR code pairing feels way cleaner than emailing myself a link.<\/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 the no-account, P2P approach &#8211; feels way cleaner than the usual cloud shuffle. One thing I&#8217;d want though: a quick way to pause or throttle transfers, since big video dumps tend to saturate my whole connection and wreck whatever else I&#8217;m doing online. Even a simple slider would do the job.<\/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>Direct transfer usually means both devices need to be online at once. How do you handle sending something to someone who isn&#8217;t around until later, or is that out of scope by design?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#18<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/3Q3FYKLO5SAKHK\" class=\"app-title\">ClipFlow<\/a><\/p>\n<div class=\"one-liner\">Small video jobs, without a timeline<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">94<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>ClipFlow\u662f\u4e00\u6b3e\u4e13\u4e3aiPhone\/iPad\u8bbe\u8ba1\u7684\u201c\u65e0\u65f6\u95f4\u7ebf\u201d\u8f7b\u91cf\u89c6\u9891\u5de5\u5177\uff0c\u805a\u7126\u4fee\u526a\u3001\u62fc\u63a5\u3001\u538b\u7f29\u3001\u52a0\u5b57\u5e55\u7b49\u5355\u6b65\u6216\u4e24\u6b65\u5feb\u6377\u64cd\u4f5c\uff0c\u89e3\u51b3\u7528\u6237\u201c\u53ea\u9700\u7b80\u5355\u5904\u7406\u89c6\u9891\u5374\u88ab\u8feb\u6253\u5f00\u590d\u6742\u7f16\u8f91\u5668\u201d\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\/95024a2a-0b6c-4842-b970-59a49428b7ef.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\/c002a5c3-6b04-4397-ab0f-8b4441cc7568.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\/e06372b5-d9ea-42a0-af33-d390d6a09568.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\/7510e515-ad85-4cfe-a3fd-da39dad40322.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\/2596e2a3-c436-4778-8c68-6191ee55f581.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\/b5d2bf55-02c4-4883-991b-6885c8d95d41.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\/2ccf6be9-3f11-4033-bff0-ae9b37e12ff9.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\/45ab69b2-e95b-4b0d-ac5e-b6b21e20953b.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\/78923167-8660-4a4f-9a38-71736aca1222.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\/f92fec2b-4a5c-4c21-b1b2-da43347b8653.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\/469599bb-238c-4d40-b87a-53a84ed0415d.jpeg?auto=format\" data-video-url=\"https:\/\/youtube.com\/shorts\/pg1DJWQeqLA\"><source src=\"https:\/\/youtube.com\/shorts\/pg1DJWQeqLA\" 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\">iOS<\/span><br \/>\n            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">Video<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u89c6\u9891\u5904\u7406<\/span><br \/>\n            <span class=\"tag\">\u8f7b\u91cf\u7f16\u8f91<\/span><br \/>\n            <span class=\"tag\">\u79fb\u52a8\u7aef\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u65e0\u65f6\u95f4\u7ebf<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u5904\u7406<\/span><br \/>\n            <span class=\"tag\">\u5b57\u5e55\u751f\u6210<\/span><br \/>\n            <span class=\"tag\">\u6ee4\u955c<\/span><br \/>\n            <span class=\"tag\">\u89c6\u9891\u538b\u7f29<\/span><br \/>\n            <span class=\"tag\">iOS\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u5feb\u901f\u526a\u8f91<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u9ad8\u5ea6\u8ba4\u53ef\u201c\u65e0\u65f6\u95f4\u7ebf\u201d\u7406\u5ff5\uff0c\u8ba4\u4e3a\u4fee\u526a+\u52a0\u5b57\u5e55\u7b49\u4e24\u6b65\u9aa4\u5de5\u4f5c\u6d41\u975e\u5e38\u9ad8\u6548\u3002\u4e3b\u8981\u9700\u6c42\u5305\u62ec\uff1a\u667a\u80fd\u88c1\u5207\u6bd4\u4f8b\u8f6c\u6362\uff08\u598216:9\u8f6c9:16\uff09\u3001\u4fdd\u5b58\u81ea\u5b9a\u4e49\u7f16\u8f91\u9884\u8bbe\u3001\u6279\u6b21\u5904\u7406\u961f\u5217\u3001\u952e\u76d8\u5feb\u6377\u952e\u3002\u5f00\u53d1\u8005\u786e\u8ba4\u5b57\u5e55\u53ef\u81ea\u52a8\u751f\u6210\u4e14\u4fdd\u7559\u539f\u5206\u8fa8\u7387\uff0c\u5927\u90e8\u5206\u5904\u7406\u5728\u8bbe\u5907\u7aef\u5b8c\u6210\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                ClipFlow\u7cbe\u51c6\u5730\u5207\u4e2d\u4e86\u79fb\u52a8\u7aef\u89c6\u9891\u5904\u7406\u4e2d\u4e00\u4e2a\u88ab\u957f\u671f\u5ffd\u89c6\u7684\u201c\u4e2d\u95f4\u5730\u5e26\u201d\u2014\u2014\u65e2\u4e0d\u662f\u4e13\u4e1a\u526a\u8f91\u5e08\u7684\u6218\u573a\uff0c\u4e5f\u4e0d\u662f\u50bb\u74dc\u5f0f\u6ee4\u955c\u5957\u58f3APP\uff0c\u800c\u662f\u4e3a\u90a3\u4e9b\u201c\u5c31\u526a\u4e24\u5200\u201d\u7684\u5fae\u64cd\u4f5c\u800c\u751f\u3002\u4ece\u4ea7\u54c1\u54f2\u5b66\u770b\uff0c\u5b83\u505a\u5bf9\u4e86\u51cf\u6cd5\uff1a\u653e\u5f03\u65f6\u95f4\u7ebf\u3001\u653e\u5f03\u591a\u8f68\u9053\u3001\u653e\u5f03AI\u751f\u6210\uff0c\u5c06\u6240\u6709\u8d44\u6e90\u62bc\u6ce8\u5728\u201c\u5355\u6b65\u6267\u884c+\u7ed3\u679c\u53ef\u590d\u7528\u201d\u7684\u6d41\u6c34\u7ebf\u5f0f\u4f53\u9a8c\u4e0a\u3002\u8fd9\u672c\u8d28\u4e0a\u662f\u5bf9\u7528\u6237\u64cd\u4f5c\u5fc3\u667a\u7684\u91cd\u6784\u2014\u2014\u4f60\u4e0d\u5fc5\u8fdb\u5165\u4e00\u4e2a\u201c\u7f16\u8f91\u7a7a\u95f4\u201d\uff0c\u800c\u53ea\u9700\u5b8c\u6210\u4e00\u4e2a\u201c\u52a8\u4f5c\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u4ea7\u54c1\u7684\u5929\u82b1\u677f\u4e5f\u6070\u6070\u5728\u4e8e\u6b64\u3002\u76ee\u524d26\u4e2a\u5de5\u5177\u867d\u80fd\u8986\u76d6\u5e38\u89c1\u5fae\u64cd\u4f5c\uff0c\u4f46\u82e5\u7f3a\u4e4f\u201c\u53ef\u4fdd\u5b58\u7684\u5de5\u4f5c\u6d41\u9884\u8bbe\u201d\u548c\u201c\u6279\u91cf\u5904\u7406\u961f\u5217\u201d\uff0c\u9ad8\u9891\u7528\u6237\uff08\u5982\u793e\u4ea4\u5a92\u4f53\u8fd0\u8425\u3001\u72ec\u7acb\u5f00\u53d1\u8005\uff09\u4ecd\u96be\u4ee5\u5b9e\u73b0\u771f\u6b63\u7684\u6548\u7387\u98de\u5347\u3002\u5f00\u53d1\u8005\u5bf9\u952e\u76d8\u5feb\u6377\u952e\u548c\u6279\u6b21\u5904\u7406\u7684\u5ba1\u614e\u56de\u5e94\u4e5f\u66b4\u9732\u51faClipFlow\u5728\u751f\u4ea7\u529b\u5de5\u5177\u65b9\u5411\u7684\u72b9\u8c6b\u2014\u2014\u5b83\u76ee\u524d\u66f4\u50cf\u4e00\u4e2a\u201c\u4f18\u96c5\u7684\u6377\u5f84\u201d\uff0c\u800c\u975e\u4e00\u4e2a\u201c\u6d41\u7a0b\u81ea\u52a8\u5316\u52a9\u624b\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u53e6\u4e00\u4e2a\u9690\u5fe7\u662f\u53d8\u73b0\u8def\u5f84\u3002\u7eaf\u672c\u5730\u5904\u7406\u610f\u5473\u7740\u7528\u6237\u6ca1\u6709\u4e91\u5b58\u50a8\u6216\u534f\u4f5c\u7684\u4ed8\u8d39\u52a8\u673a\uff1b\u529f\u80fd\u7b80\u5355\u5219\u96be\u4ee5\u63d0\u5347\u7528\u6237\u7c98\u6027\u6216\u8ba2\u9605\u8f6c\u5316\u3002\u5982\u679c\u4e0d\u5411\u201c\u8f7b\u91cf\u5de5\u4f5c\u6d41\u81ea\u52a8\u5316\u201d\u6f14\u8fdb\uff0cClipFlow\u53ef\u80fd\u4f1a\u88ab\u7cfb\u7edf\u7ea7\u5feb\u6377\u6307\u4ee4\u6216\u7ade\u4e89\u5bf9\u624b\u7684\u7c7b\u4f3c\u529f\u80fd\u9010\u6b65\u541e\u566c\u3002\u5b83\u7684\u771f\u6b63\u4ef7\u503c\u5728\u4e8e\u80fd\u5426\u6210\u4e3a\u7528\u6237\u6267\u884c\u91cd\u590d\u6027\u89c6\u9891\u4efb\u52a1\u7684\u201c\u9ed8\u8ba4\u808c\u8089\u8bb0\u5fc6\u201d\u2014\u2014\u8fd9\u9700\u8981\u8d85\u8d8a\u5de5\u5177\u5c5e\u6027\uff0c\u8fdb\u5316\u6210\u4e00\u79cd\u64cd\u4f5c\u4e60\u60ef\u7684\u8f7d\u4f53\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\">ClipFlow<\/span>\n                <\/div>\n<div class=\"comment-content\">ClipFlow handles the small video jobs that do not need a timeline. Trim, join, compress, reverse, filter, caption, mute, blur, or convert a clip, then continue with the result. Version 1.9 adds partial reverse and 13 filter styles. Most processing runs on device.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hi Product Hunt \u2014 I\u2019m the solo developer behind ClipFlow.<\/p>\n<p>I built ClipFlow because most of the video work I do on my phone is not really \u201cediting.\u201d Usually I just need to trim a clip, make it smaller, remove the audio, add captions, or turn it into a GIF. Opening a full timeline for one or two steps always felt heavier than the job itself.<\/p>\n<p>ClipFlow is organized around those small jobs. You choose an operation, export it, and can immediately use the result for the next operation. It currently has 26 tools covering video, audio, subtitles, overlays, conversion, and export.<\/p>\n<p>Version 2.0 adds video reverse and filter\/color controls. Reverse can be applied to the whole clip or only a selected range, with separate audio options. Filters include 13 styles plus controls for brightness, contrast, saturation, warmth, and intensity.<\/p>\n<p>Most video and audio processing happens on the device. AI voice generation is the exception and sends the entered text to the service used to generate the voice.<\/p>\n<p>ClipFlow is not trying to replace CapCut or Final Cut. If you need a timeline, keyframes, or a large multi-track project, those tools are a better fit. ClipFlow is for the smaller jobs you want to finish quickly on an iPhone or iPad.<\/p>\n<p>I\u2019d especially like to know: what two-step video workflow do you repeat most often?<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>my most repeated two-step is crop\/reformat then caption &#8211; I record a quick screen demo at whatever aspect ratio the app gives me, then need it as a vertical clip with captions burned in before I can actually share it anywhere. the &#8220;no timeline&#8221; pitch really clicks for that specific case, since a full editor feels absurd for something that&#8217;s really just two operations. is aspect-ratio conversion (16:9 to 9:16, with smart crop rather than just adding bars) one of the 26 tools already, or still on the list?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The no-timeline framing is spot on \u2014 as an indie iOS dev I mostly just need to trim + caption a quick clip, and opening a full editor for that is overkill. Love that most of it runs on device. Are the captions auto-generated, and does the on-device export keep the original resolution?<\/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\/@lennoxbeflying\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@lennoxbeflying<\/a>&nbsp;Exactly the use case we built it for. Captions are auto-generated, and exports preserve the original resolution whenever the selected edit allows 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>Love the &#8220;no timeline&#8221; framing \u2014 most video tools assume you want a full editor when really you just need one clip trimmed or one shot dropped in. Curious how you&#8217;re handling model\/rendering under the hood for quick jobs like this \u2014 are you generating anything AI-side, or purely editing existing footage? Ask because balancing speed vs. quality is the constant tension on the generation side of video tools too.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@abhineetarora\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@abhineetarora<\/a>&nbsp;Thanks! ClipFlow is focused on editing existing footage \u2014 no AI video generation in the pipeline. The goal is to keep small edits fast, predictable, and private by processing on-device.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Is this mobile only? Or there&#8217;s a web version too?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@krutiparekh16\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@krutiparekh16<\/a>&nbsp;ClipFlow is currently iOS-only \u2014 no web version for now.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>One thing I&#8217;d love to see is a way to save a custom sequence of edits as a preset. I often do the same trim, mute, and caption steps for short clips, and being able to chain them and reuse the flow with one tap would be a huge time saver.<\/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\/@saadetjh1c\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@saadetjh1c<\/a>&nbsp;That would be super useful. Reusable edit flows\/presets are definitely something we\u2019re considering, especially for repeatable short-form 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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Tried it on a phone for trimming and adding a quick filter, and it handled the clip without uploading anything. The on-device processing makes it feel way faster than the editors I usually use for this kind of small job.<\/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\/@smet1510713\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@smet1510713<\/a>&nbsp;Thanks for trying it! Keeping processing on-device was a big priority \u2014 faster for small edits, and your clips stay on your phone.<\/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 keyboard shortcut for trimming would be amazing, like hitting a hotkey to set in and out points without scrubbing with the mouse. Also would love to see a simple batch queue so I can line up a few clips and walk away while it processes them one after another.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@cosanalper66074\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@cosanalper66074<\/a>&nbsp;Thanks! ClipFlow is touch-first on iPhone and iPad for now, so no keyboard shortcuts or batch queue yet \u2014 but I appreciate the suggestions.<\/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 pipeline that lets you keep editing the output of your last action without re-importing is a really thoughtful touch, the kind of small detail that makes quick clip work feel fluid instead of fiddly.<\/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\/@mesutnevin\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mesutnevin<\/a>&nbsp;Really appreciate that \u2014 we wanted each result to feel like the next starting point, not a dead end that makes you import everything again.<\/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\">#19<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/FWXO24UFBQ2IN5\" class=\"app-title\">Mojave Paint<\/a><\/p>\n<div class=\"one-liner\">Direct manipulation of static images on the Mac platform<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">84<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Mojave Paint\u662f\u4e00\u6b3e\u4e13\u6ce8\u50cf\u7d20\u7ea7\u76f4\u63a5\u64cd\u4f5c\u7684\u8f7b\u91cf\u7ea7Mac\u56fe\u50cf\u7f16\u8f91\u5668\uff0c\u4e3a\u9700\u8981\u624b\u52a8\u5236\u4f5c\u7d20\u6750\u7684\u521b\u4f5c\u8005\u63d0\u4f9b\u4e86\u907f\u5f00AI\u5e72\u6270\u3001\u5feb\u901f\u54cd\u5e94\u7684\u539f\u751f\u7f16\u8f91\u4f53\u9a8c\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\/72377062-5da6-469a-9fd0-7d02b625d25a.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=cpevBsZA314\"><source src=\"https:\/\/www.youtube.com\/watch?v=cpevBsZA314\" 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\/6849f74f-2aa8-4696-8e75-63845e26fb65.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\/604983b9-e9d3-40a2-a93c-1b4de26e880a.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\/fa2b1239-150c-4642-8cc0-608d3fe102ec.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\">Graphics &#038; Design<\/span><br \/>\n            <span class=\"tag\">Photo editing<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Mac\u56fe\u50cf\u7f16\u8f91\u5668<\/span><br \/>\n            <span class=\"tag\">\u4f4d\u56fe\u7f16\u8f91<\/span><br \/>\n            <span class=\"tag\">\u76f4\u63a5\u64cd\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u8f7b\u91cf\u7ea7<\/span><br \/>\n            <span class=\"tag\">\u50cf\u7d20\u827a\u672f<\/span><br \/>\n            <span class=\"tag\">\u65e0AI<\/span><br \/>\n            <span class=\"tag\">\u539f\u751f\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u590d\u53e4UI<\/span><br \/>\n            <span class=\"tag\">\u624b\u52a8\u521b\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u56fe\u50cf\u7d20\u6750<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u8d5e\u8d4f\u5176\u8f7b\u5feb\u3001\u65e0AI\u300190\u5e74\u4ee3\u7f8e\u5b66\u548c\u6781\u4f4e\u5185\u5b58\u5360\u7528\u3002\u4e3b\u8981\u8bc9\u6c42\u662f\u539f\u751fPSD\/TIFF\u652f\u6301\u3001\u7d22\u5f15\u8272PNG\u7f16\u8f91\u548c\u81ea\u52a8\u5316\u811a\u672c\u3002\u5f00\u53d1\u8005\u79ef\u6781\u56de\u5e94\u7528\u6237\uff0c\u5df2\u52a0\u5165PSD\u89c4\u5212\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                Mojave Paint\u7684\u8d70\u7ea2\uff0c\u672c\u8d28\u4e0a\u662f\u4e00\u573a\u5bf9\u201c\u5de5\u5177\u7406\u6027\u201d\u8fc7\u5269\u7684\u5e94\u6fc0\u53cd\u5e94\u3002\u5728\u4ea7\u54c1\u4ecb\u7ecd\u9875\u7406\u76f4\u6c14\u58ee\u5730\u5199\u7740\u201c\u627eAI\u8bf7\u53bb\u522b\u5904\u201d\uff0c\u8fd9\u672c\u8eab\u5c31\u662f\u4e00\u79cd\u6781\u5176\u7280\u5229\u7684\u5546\u4e1a\u6a21\u5f0f\u2014\u2014\u5f53\u6574\u4e2a\u884c\u4e1a\u90fd\u5728\u5f80\u56fe\u7247\u91cc\u585e\u751f\u6210\u5f0f\u6ee4\u955c\u548c\u4e91\u7aef\u795e\u7ecf\u7f51\u7edc\u65f6\uff0c\u5b83\u9009\u62e9\u9000\u56de\u52301984\u5e74MacPaint\u7684\u54f2\u5b66\uff1a\u4f60\u753b\u4ec0\u4e48\uff0c\u5c31\u5f97\u4ec0\u4e48\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u503c\u5f97\u73a9\u5473\u7684\u662f\u5b83\u7684\u7528\u6237\u7fa4\u4f53\u3002\u8bc4\u8bba\u91cc\u5f88\u5c11\u6709\u4eba\u628a\u5b83\u5f53\u751f\u4ea7\u529b\u5de5\u5177\uff0c\u66f4\u591a\u662f\u628a\u5b83\u5f53\u6210\u4e00\u79cd\u201c\u53cdAI\u7684\u5ba3\u8a00\u201d\u3002\u90a3\u4e9b\u4e3a\u5b83\u70b9\u8d5e\u7684\u4eba\uff0c\u5e76\u4e0d\u662f\u56e0\u4e3a\u5b83\u7684\u529f\u80fd\u8d85\u8d8a\u4e86Photoshop\u6216Pixelmator\u2014\u2014\u6070\u6070\u76f8\u53cd\uff0c\u5f00\u53d1\u8005\u672c\u4eba\u627f\u8ba4Acorn\u7684\u7b14\u5237\u5f15\u64ce\u9065\u9065\u9886\u5148\uff0c\u81ea\u5df1\u8fde\u4e2a\u50cf\u6837\u7684\u70ad\u7b14\u6a21\u62df\u90fd\u6ca1\u505a\u3002\u7528\u6237\u4e70\u7684\u4e0d\u662f\u529f\u80fd\uff0c\u662f\u627f\u8bfa\uff1a\u627f\u8bfa\u8fd9\u4e2a\u8f6f\u4ef6\u4e0d\u4f1a\u66ff\u4f60\u51b3\u5b9a\u4ec0\u4e48\u597d\u770b\uff0c\u4e0d\u4f1a\u5077\u5077\u628a\u4f60\u7684\u753b\u98ce\u5582\u7ed9\u4e91\u7aef\u6a21\u578b\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u8fd9\u79cd\u201c\u51cf\u6cd5\u201d\u505a\u5f97\u6709\u591a\u72e0\uff1f9.2MB\u7684\u5b89\u88c5\u5305\u3001\u539f\u751fApple Silicon\u4f18\u5316\u3001\u65e0\u4efb\u4f55\u7f51\u7edc\u4f9d\u8d56\u3002\u5b83\u5728\u67b6\u6784\u4e0a\u9009\u62e9\u4e86\u548cSaaS\u6a21\u5f0f\u5f7b\u5e95\u5272\u88c2\uff0c\u4ea7\u54c1\u8fed\u4ee3\u5b8c\u5168\u4f9d\u8d56\u793e\u533a\u6b7b\u5fe0\u7684\u76f4\u63a5\u4ed8\u8d39\u3002\u5f00\u53d1\u8005\u5bf9PSD\u5bfc\u5165\u7684\u66a7\u6627\u6001\u5ea6\u2014\u2014\u201c\u5411\u91cf\u5f62\u72b6\u4f1a\u88ab\u4e22\u5f03\uff0c\u8fd9\u6837\u4e5f\u884c\u5427\u201d\u2014\u2014\u66b4\u9732\u4e86\u5b83\u7684\u5c0f\u4f17\u56f0\u5883\uff1a\u4e3a\u4e86\u4fdd\u6301\u7eaf\u7cb9\uff0c\u5fc5\u987b\u653e\u5f0395%\u7684\u901a\u7528\u5de5\u4f5c\u6d41\u517c\u5bb9\u6027\u3002\n            <\/p>\n<p class=\"ai-content\">\n                Mojave Paint\u771f\u6b63\u7684\u4ef7\u503c\u4e0d\u5728\u7f16\u8f91\u5668\u672c\u8eab\uff0c\u800c\u662f\u8bc1\u660e\u4e86\u57282026\u5e74\uff0c\u4f9d\u7136\u6709\u4eba\u613f\u610f\u4e3a\u201c\u5bf9\u81ea\u5df1\u521b\u4f5c\u4fdd\u6301\u5b8c\u5168\u63a7\u5236\u6743\u201d\u8fd9\u4ef6\u4e8b\u4ed8\u8d39\u3002\u8fd9\u79cd\u5fae\u5c0f\u7684\u62b5\u6297\uff0c\u6b63\u662f\u79d1\u6280\u4e16\u754c\u91cc\u6700\u7a00\u7f3a\u7684\u5ba1\u7f8e\u5224\u65ad\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\">Mojave Paint<\/span>\n                <\/div>\n<div class=\"comment-content\">Bitmap images are still, even in 2026, a hugely important medium of communication. Which is why I made Mojave Paint \u2013 a Mac-based image editor that lets you really own the production of these bitmap images. They&#8217;ve been making image editors since the original Mac and the Amiga and I&#8217;m sure even long before that. But somehow the choices in the modern era fall short. So I have a new option, presented by an upstart software shop in Seattle. If you&#8217;re looking for AI features, look elsewhere.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I\u2019ve been using Mojave Paint since it first appeared on Reddit and I love it &#8211; I bought it straightaway. John regularly updates the app and adds new functionality, and it now does ~95% of what I need from graphics software. Being spectacularly old I appreciate the 90s aesthetic of the interface, but mostly I appreciate that it\u2019s lightweight (9.2MB installed), fast and does almost everything I need it to do. Based on the last few months\u2019 progress, I doubt I\u2019ll need to use any other software by the end of the year. Unless you\u2019re a graphics professional &#8211; in which case you probably need the bells and whistles other, vastly more expensive, software provides &#8211; I thoroughly recommend Mojave Paint.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>love that you kept this purely about the craft\u2014no AI gimmicks, just a real bitmap editor. the handmade-from-seattle approach reminds me of the old shareware era, which feels like exactly what mac image editing needs right now.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I get a little depressed when I see Reddit threads of people asking for AI tools to make screenshots for their iOS app. Just make them yourself! You&#8217;re not a great designer, so what? Ugly is better than AI-loooking. And Mojave Paint is just one of many tools you can use to make graphical assets. I&#8217;m not saying it&#8217;s better than other options, but it&#8217;s an option, and a pretty darn good one if you&#8217;re on an Apple Silicon Mac.<\/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>&#8216;If you&#8217;re looking for AI features, look elsewhere&#8217; is a great line. I spend my days compositing images with ImageMagick math ops, and the older I get the more I value tools that do exactly what you tell them. Is there any scripting\/automation hook, or is direct manipulation the whole philosophy?<\/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\/@kojimajunya\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@kojimajunya<\/a>&nbsp;I would like to add that eventually. I&#8217;m curious &#8212; Acorn image editor for Mac has pretty extensive hooks for automation, I assume AppleScript but also Javascript. I&#8217;d be looking for a primo example of scriptability done right, just curious what you think of his approach? Or if you have any pointers to Mac apps that do a great job of this.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I really appreciate the intentional &#8220;if you&#8217;re looking for AI, look elsewhere&#8221; stance. Do you see that as a temporary product decision, or a long-term design philosophy? In other words, are there AI features you believe could genuinely improve image editing without taking away the sense of craftsmanship?<\/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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@tarqiya_forgah\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@tarqiya_forgah<\/a>&nbsp;It&#8217;s a fine line isn&#8217;t it. I can&#8217;t totally bury my head in the sand regarding AI. I doubt I&#8217;d be adding &#8220;AI upscaling&#8221; because such images make me sick to my stomach with their cartoonish look. But AI for masking, or for making depth maps, maybe? And could there be some AI inpainting features &#8220;just for fun&#8221;, not for any serious work but like for making novelty birthday cards for you friends? I think such things could be added without taking away from the core vision. There actually already is an External Services tool, and the only supported tool at the moment is Nano Banana Pro. So the anti-AI stance is already slightly hypocritical but my justification is that &#8220;what happens on the remote server is your own business.&#8221;<\/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>finally a paint app that just gets out of the way. loved how the brushes felt on my m2 air, no lag, no weird cloud sync nonsense, just pure editing.<\/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>There is a real place for small, fast, native tools that preserve direct manipulation. Especially for App Store assets and product screenshots, \u201cI made the tradeoff myself and can adjust it in 30 seconds\u201d beats a generated image that looks polished but does not respect the product.<\/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>Downloaded it yesterday and the layer blending feels really snappy on my M2, no lag like in some of the bigger apps. The brush engine has a nice texture to it that reminds me of older Mac tools.<\/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\/@azizayerrm9y\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@azizayerrm9y<\/a>&nbsp;That&#8217;s interesting because I only have a most rudimentary brush shapes, circle and square, in variable softness. No real brush simulation like &#8220;charcoal stick&#8221; or whatever. My thinking is real artists will be using something like Procreate. And I&#8217;ll be totally honest, Acorn&#8217;s brush engine is quite far ahead of mine in terms of performance, if you do a lot of hand painting with mouse or Wacom, I&#8217;d check that out 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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Love the no-nonsense approach, especially the stance on AI. One thing that would make this way more useful for me: native support for layered TIFFs and PSDs so I can round-trip work with older projects without flattening everything on import.<\/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\/@nurtenglerh4ra\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@nurtenglerh4ra<\/a>&nbsp;Thanks for the feedback, I was waiting until I at least get layer styles in before adding PSD import, and that just went in last week so, yeah, I think PSD is coming soon, within a few weeks. Of course the unimplemented things would simply get dropped, like vector shapes. How much of a surprise would that be? Maybe with the right messaging it would be ok?<\/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\/@nurtenglerh4ra\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@nurtenglerh4ra<\/a>&nbsp;Also I just added PSD support to the &#8220;Interactive Roadmap&#8221; on the Mojave Paint homepage, feel free to give it an upvote.<\/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 no-AI stance, that alone sets it apart. One thing that would make me reach for it over Pixelmator though, native support for opening and saving indexed-color PNG files with a real palette editor. Most editors downsample or strip the palette these days, and it&#8217;s a pain when working with retro game art or pixel assets. Would be a perfect fit given the Mac heritage angle.<\/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\/@derin0wbm\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@derin0wbm<\/a>&nbsp;Oh wow, this is my first real vote for GIF style indexed color, I didn&#8217;t think it was super needed in this day and age. Thanks for the feedback.<\/p>\n<\/p>\n<p>Also note, there is a regression in 1.3.1 (fixed, waiting on Apple review) where the pencil tool is acting soft like a brush tool. That fix will be available today, and it&#8217;s essential for making pixel art. I did make all the icons in Mojave Paint itself using Mojave Paint of course, and with saved color swatches and shift key for straight lines it&#8217;s a pretty pleasant tool for that. Of course I&#8217;m not an illustrator, and that&#8217;s why my brush tool icon looks like a chili pepper on a stick!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#20<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/5JM4MLXPEMHXZU\" class=\"app-title\">loopclub<\/a><\/p>\n<div class=\"one-liner\">The shared drum machine to jam with strangers or with Claude<\/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>loopclub \u662f\u4e00\u4e2a\u57fa\u4e8e\u533a\u5757\u94fe\u7684\u5b9e\u65f6\u534f\u4f5c\u9f13\u673a\uff0c\u8ba9\u5168\u7403\u7528\u6237\u5728\u540c\u4e00\u5f20\u97f3\u5e8f\u7f51\u683c\u4e0a\u5171\u540c\u521b\u4f5c\u8282\u62cd\uff0c\u5e76\u901a\u8fc7\u94fe\u4e0a\u5f52\u5c5e\u81ea\u52a8\u5206\u914d\u6536\u76ca\uff0c\u89e3\u51b3\u4e86\u591a\u4eba\u5373\u5174\u97f3\u4e50\u521b\u4f5c\u4e2d\u201c\u8c01\u8d21\u732e\u4e86\u4ec0\u4e48\u3001\u5982\u4f55\u5206\u94b1\u201d\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\/e3cce347-d023-4b41-8242-c0fa631d1a0e.gif?auto=format\" data-video-url=\"https:\/\/www.loom.com\/share\/493022691bbf4a509634df6d58a6ad22\"><source src=\"https:\/\/www.loom.com\/share\/493022691bbf4a509634df6d58a6ad22\" 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\/f9c49371-36cc-498d-a38e-b1667060319b.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\/60fb518e-0c90-4283-8dbd-72e6663e3bb8.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\/0f7fd552-b677-4615-aef2-0010cc2fe384.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\/2efcc1c7-77e9-4ddf-9580-bd7ac1389a6d.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\">Music<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">GitHub<\/span><br \/>\n            <span class=\"tag\">Web3<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u9f13\u673a<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u65f6\u534f\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u533a\u5757\u94fe\u97f3\u4e50<\/span><br \/>\n            <span class=\"tag\">\u94fe\u4e0a\u521b\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u8282\u62cd\u5236\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u591a\u4eba\u5728\u7ebf<\/span><br \/>\n            <span class=\"tag\">AI\u4f5c\u66f2<\/span><br \/>\n            <span class=\"tag\">\u884d\u751f\u54c1\u6536\u76ca<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90<\/span><br \/>\n            <span class=\"tag\">MegaETH<\/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\u8ba4\u4e3a\u5b9e\u65f6\u534f\u4f5c\u201c\u4e0a\u763e\u201d\uff0c\u94fe\u4e0a\u5f52\u5c5e\u548c\u81ea\u52a8\u6536\u76ca\u5206\u914d\u662f\u4eae\u70b9\u3002\u6709\u7528\u6237\u63d0\u95ee\u624b\u673a\u7aef\u64cd\u4f5c\u56f0\u96be\uff0c\u5efa\u8bae\u589e\u52a0\u9501\u5b9a\u884c\/\u5217\u529f\u80fd\uff1b\u53e6\u6709\u7528\u6237\u8be2\u95eeClaude\u751f\u6210\u7684\u94fe\u63a5\u662f\u5426\u63d0\u524d\u5360\u7528\u94fe\u4e0a\u8d44\u6e90\u3002\u5f00\u53d1\u8005\u56de\u5e94\uff1a\u901a\u8fc7MegaETH\u94b1\u5305\u5b9e\u73b0\uff0c\u9501\u5b9a\u662f\u9650\u65f6\u79df\u8d41\uff0c\u624b\u673a\u9700\u914d\u7f6e\u7279\u5b9a\u94b1\u5305\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                loopclub\u5c55\u793a\u4e86\u533a\u5757\u94fe\u5728\u97f3\u4e50\u521b\u4f5c\u9886\u57df\u7684\u4e00\u4e2a\u201c\u964d\u7ef4\u6253\u51fb\u201d\u5f0f\u5e94\u7528\uff1a\u5b83\u4e0d\u662f\u628a\u4f20\u7edf\u9f13\u673a\u642c\u5230\u94fe\u4e0a\uff0c\u800c\u662f\u7528\u94fe\u4e0a\u5199\u64cd\u4f5c\u91cd\u65b0\u5b9a\u4e49\u4e86\u201c\u534f\u4f5c\u201d\u4e0e\u201c\u5f52\u5c5e\u201d\u3002\u6838\u5fc3\u4ef7\u503c\u5728\u4e8e\uff0c\u5b83\u8ba9\u201c\u8c01\u6253\u4e86\u4ec0\u4e48\u62cd\u5b50\u201d\u8fd9\u4e00\u4fe1\u606f\uff0c\u4eceUI\u72b6\u6001\u53d8\u6210\u4e86\u4e0d\u53ef\u7be1\u6539\u4e14\u53ef\u81ea\u52a8\u5206\u8d26\u7684\u6570\u5b57\u8d44\u4ea7\u3002\u8fd9\u786e\u5b9e\u4e0d\u662f\u88c5\u9970\u2014\u2014\u6ca1\u6709\u94fe\uff0c\u5c31\u6ca1\u6709\u5b9e\u65f6\u5171\u4eab\u7684\u7f51\u683c\u548c\u81ea\u52a8\u652f\u4ed8\uff0c\u672c\u8d28\u4e0a\u662f\u628a\u97f3\u4e50\u521b\u4f5c\u4ece\u201c\u9879\u76ee\u6587\u4ef6\u201d\u53d8\u6210\u4e86\u201c\u591a\u4eba\u5b9e\u65f6\u5171\u5efa\u7684\u8d44\u4ea7\u6c60\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u4ee3\u4ef7\u4e5f\u5f88\u660e\u663e\uff1a\u6bcf\u4e2a\u64cd\u4f5c\u90fd\u662f\u4ea4\u6613\uff0c\u867d\u7136MegaETH\u7684\u4f4egas\u548c\u5feb\u901f\u51fa\u5757\u8ba9\u4f53\u9a8c\u63a5\u8fd1\u5b9e\u65f6\uff0c\u4f46\u7528\u6237\u4ecd\u9700\u7ba1\u7406\u94b1\u5305\u3001\u4ed8\u8d39\u2014\u2014\u8fd9\u6bd4\u6253\u5f00\u4efb\u610f\u514d\u8d39\u9f13\u673aApp\u95e8\u69db\u9ad8\u5f97\u591a\u3002\u8bc4\u8bba\u533a\u4e2d\u624b\u673a\u7aef\u7684\u632b\u8d25\u611f\u5c31\u662f\u8bc1\u660e\u3002\u53e6\u5916\uff0c\u201c\u6bcf\u4e24\u5206\u949f\u79df\u8d41\u4e00\u4e2a\u683c\u5b50\u201d\u7684\u6a21\u5f0f\uff0c\u53ef\u80fd\u8ba9\u91cd\u5ea6\u7528\u6237\u89c9\u5f97\u67b7\u9501\u8fc7\u91cd\uff0c\u9501\u5b9a\u529f\u80fd\u53ea\u662f\u7f13\u89e3\u800c\u975e\u89e3\u51b3\u3002\u81f3\u4e8eClaude\u751f\u6210\u8282\u62cd\u7684MCP\u670d\u52a1\uff0c\u66f4\u591a\u662f\u6280\u672f\u5671\u5934\u2014\u2014\u5b83\u964d\u4f4e\u4e86\u521b\u4f5c\u8d77\u70b9\uff0c\u4f46\u201c\u8ba9AI\u66ff\u4f60\u6253\u9f13\u201d\u662f\u5426\u6709\u635f\u201c\u534f\u4f5c\u201d\u7684\u672c\u610f\uff0c\u503c\u5f97\u5546\u69b7\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u603b\u4f53\u6765\u8bf4\uff0c\u8fd9\u662f\u4e00\u6b21\u5927\u80c6\u4e14\u903b\u8f91\u81ea\u6d3d\u7684\u6280\u672f\u5b9e\u9a8c\uff0c\u5c06\u4e50\u5668\u5c5e\u6027\u4e0e\u8d44\u4ea7\u5c5e\u6027\u6df1\u5ea6\u7ed1\u5b9a\u3002\u4f46\u80fd\u5426\u4ece\u201c\u5c0f\u4f17\u73a9\u5bb6\u7684\u73a9\u5177\u201d\u8d70\u5411\u201c\u97f3\u4e50\u793e\u4ea4\u5e73\u53f0\u201d\uff0c\u53d6\u51b3\u4e8e\u5b83\u80fd\u5426\u5728\u4fdd\u6301\u94fe\u4e0a\u900f\u660e\u7684\u540c\u65f6\uff0c\u8fdb\u4e00\u6b65\u964d\u4f4e\u53c2\u4e0e\u95e8\u69db\u3002\u6bd5\u7adf\uff0c\u6700\u597d\u7684\u97f3\u4e50\u5de5\u5177\u662f\u8ba9\u521b\u4f5c\u8005\u5fd8\u8bb0\u5de5\u5177\u7684\u5b58\u5728\uff0c\u800c\u4e0d\u662f\u65f6\u523b\u60f3\u7740\u201c\u8fd9\u7b14\u4ea4\u6613\u591a\u5c11\u94b1\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\">loopclub<\/span>\n                <\/div>\n<div class=\"comment-content\">loopclub is a realtime, onchain drum machine \u2014 beat-making turned into a multiplayer, ownable act. Sporting a 16-step, 9-track sequencer running entirely onchain. The grid updates live as other people claim cells around you, so a loop is built collaboratively, in real time. Record a loop you like and every cell owner earns on each copy pressed. Or ask Claude to write you one. Listening and auditioning are free. Fully open source at https:\/\/github.com\/mintcloud\/loopclub<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey hunters \ud83d\udc4b<\/p>\n<p>loopclub is one drum machine. Not one per user \u2014 one, globally. A 16-step, 9-track grid that everybody on the internet is playing at the same time, right now, as you read this.<\/p>\n<p>You light up a cell, it&#8217;s yours for the next two minutes, and it&#8217;s yours in a way that&#8217;s a little unusual: every cell is a real write to a blockchain, not a UI state that syncs later. That sounds like a gimmick until you notice what it buys you \u2014 when a pattern sounds good and somebody hits record, the loop gets frozen as an edition, and everyone who owned a cell in that snapshot gets paid every time a copy is pressed. The drummer who put the kick in gets paid for the kick. Automatically, forever, without anyone having to agree on anything.<\/p>\n<p>That was the whole idea: what does collaborative music look like if attribution is just&#8230; a property of the instrument?<\/p>\n<p>Three things worth trying:<\/p>\n<p>1. Just listen. Open it and you&#8217;ll hear whatever the grid currently is. Tap any cell to audition its sound. No wallet, no signup, no email. Auditioning is free and always will be.<\/p>\n<p>2. Jam with Claude. There&#8217;s an MCP server \u2014 npx -y loopclub-mcp, or add it as a connector on claude.ai \u2014 that lets you say &#8220;dark techno, four-on-the-floor kick, off-beat hats, a low C2 drone&#8221; and get back a playable loopclub link with the loop pre-loaded. Claude does the musical thinking; the server just bit-packs it into a URL. Auditioning what Claude wrote you is also free. This is my favourite part of the whole thing and I&#8217;d love for someone to break it.<\/p>\n<p>3. Actually play. This is the honest bit: to place a cell you need a funded wallet on MegaETH, because the cell is a transaction. Cells cost fractions of a cent; recording a loop costs 1 USDm. It&#8217;s cheap but it isn&#8217;t frictionless, and I&#8217;m not going to pretend otherwise. If you want to hear it and not deal with any of that, do #1 and #2.<\/p>\n<p>Why a blockchain, and why this one \u2014 the obvious question, so let me not dodge it. The product is realtime co-writing where authorship is settled as you play. That&#8217;s write-heavy: every toggle is a transaction. On a normal chain, a hi-hat costs you a confirmation dialog, a few seconds, and a dime, and a drum machine where the hi-hat costs a dime is not a drum machine. MegaETH&#8217;s blocks and sub-cent gas are the only reason the thing feels like an instrument instead of a form. It&#8217;s genuinely the one design where the chain isn&#8217;t decoration \u2014 take it away and there&#8217;s no shared grid and no automatic payouts, just another jam app.<\/p>\n<p>It&#8217;s open source (MIT, link above), the audio is all synthesised \u2014 a TR-808 emulation and a 303-ish acid line, no samples \u2014 and I built it because I wanted to hear what strangers would make on it.<\/p>\n<p>What I&#8217;d love from you: go make some noise and tell me if the grid sounds alive or dead when you land on it. That&#8217;s the thing I most need outside eyes on. Ask me anything about the design, the economics, or the chain \u2014 I&#8217;ll be here all day.<\/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\/@motionlessness\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@motionlessness<\/a>&nbsp;This is a really creative take on collaborative music-making. I like how every contribution is recorded onchain and participants can earn when loops are reused, turning beat creation into a shared, ownable experience. The live collaboration and AI-assisted composition make it feel accessible for both experienced producers and curious newcomers. Best of 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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Played around with it for ten minutes and the live grid where everyone is carving out cells at once is oddly addictive. Fun that you can just ask Claude to whip up a loop and copy other peoples patterns with a click.<\/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\/@uleadalmoklm\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@uleadalmoklm<\/a>&nbsp;thanks for your comment, it means a lot. I am glad you were able to play around with the wallet and rent a few cells \ud83e\udee1<\/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 did not know I needed a room full of strangers quietly building a beat alongside me, and yet here we are. Theo, this looks like the kind of place I could happily lose a whole evening.<\/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\">i couldn&#8217;t put any cell from my phone. is it possible?<\/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\/@tan_z_tan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@tan_z_tan<\/a>&nbsp;have you tried setting up Megaeth MOSS wallet? You need that + funding 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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the way the grid pops in as other people lock in their cells around yours is genuinely satisfying, feels like a tiny shared studio.<\/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\/@kozlupolat10866\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@kozlupolat10866<\/a>&nbsp;thanks for sharing, glad you enjoy 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>Have you considered adding a way to lock down a row or column of cells so you can lay down a signature pattern without someone else overwriting your kick or snare mid jam. Would help a lot for keeping a groove steady while the rest stays collaborative.<\/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\/@aytengdapol\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aytengdapol<\/a>&nbsp;that&#8217;s a great suggestion. You&#8217;ve basically described what&#8217;s already there, where the nuance is in the word &#8220;lock.&#8221; A cell you rent can&#8217;t be toggled by anyone else until it expires (the smart contract contract rejects it). What you <em>can&#8217;t do<\/em> is hold it forever \u2014 a permanent free lock would just freeze the grid for whoever showed up first. So it&#8217;s a lease: up to ~2 minutes at a time, a tiny amount of USDm, and renewing before expiry stacks on your remaining time instead of resetting it.<\/p>\n<p>To make it fast, click a track name on the left \u2014 you get one-click row fills (4-on-4, offbeat, 8ths, full) that rent a whole pattern in one tx and never clear anyone else&#8217;s cells. Lay your groove, then jam.<\/p>\n<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/3443f97e-c583-455f-83da-f4fd0fc08472.png?auto=compress,format&amp;codec=mozjpeg&amp;cs=strip\" style=\"max-width: 100%\"><\/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>To all those hunters visiting the page now (I see you on Umami \ud83d\udc40\ud83d\ude05) would appreciate any questions \/ feedback. To those who have upvoted, a big thank you, it means a lot. Keep them coming!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the &#8220;the chain isn&#8217;t decoration&#8221; framing actually lands, most onchain gimmicks are a UI backed by a chain that didn&#8217;t need to be there, this one would genuinely stop working without it. question on the Claude flow specifically: when Claude hands you back a pre-loaded link, is that loop just sitting client-side until you commit it, or does generating the link already claim\/reserve those cells on-chain before you&#8217;ve even listened to 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\/@galdayan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@galdayan<\/a>&nbsp;you can click &#8216;rent those cells&#8217; after creating a jam, for example here<\/p>\n<p><a href=\"https:\/\/app.loopclub.xyz\/?jam=ARERAAEQEAAAAAAAAAAAAABZKQeANIM0hDeGNIgyizCNLw\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/app.loopclub.xyz\/?jam=ARERAAEQEAAAAAAAAAAAAABZKQeANIM0hDeGNIgyizCNLw<\/a><\/p>\n<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/e01d5919-e51a-40ba-8b9c-3a8dc93f57e5.png?auto=compress,format&amp;codec=mozjpeg&amp;cs=strip\" style=\"max-width: 100%\"><\/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<\/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-07-14 PH\u70ed\u699c | 2026-07-14 #1 ClawT [&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-282","post","type-post","status-publish","format-standard","hentry","category-producthunt"],"_links":{"self":[{"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/posts\/282","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=282"}],"version-history":[{"count":0,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/posts\/282\/revisions"}],"wp:attachment":[{"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/media?parent=282"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/categories?post=282"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/tags?post=282"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}