{"id":322,"date":"2026-08-24T10:00:56","date_gmt":"2026-08-24T02:00:56","guid":{"rendered":"https:\/\/ph.listeningo.cn\/index.php\/2026\/08\/24\/2026-08-23\/"},"modified":"2026-08-24T10:00:56","modified_gmt":"2026-08-24T02:00:56","slug":"2026-08-23","status":"publish","type":"post","link":"https:\/\/ph.listeningo.cn\/index.php\/2026\/08\/24\/2026-08-23\/","title":{"rendered":"PH\u70ed\u699c | 2026-08-23"},"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-08-23<\/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-08-23<\/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\/WTHQ4KSPC225E6\" class=\"app-title\">Construct Computer<\/a><\/p>\n<div class=\"one-liner\">Your AI coworker gets a computer. You get your day back.<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">287<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Construct Computer \u4e3a\u72ec\u7acb\u5f00\u53d1\u8005\u548c\u521d\u521b\u5c0f\u56e2\u961f\u63d0\u4f9b\u4e00\u4e2a\u62e5\u6709\u4e13\u5c5e\u4e91\u7aef\u7535\u8111\u7684AI\u540c\u4e8b\uff0c\u5b83\u80fd\u50cf\u5b89\u88c5App\u4e00\u6837\u63a5\u5165\u5de5\u5177\u3001\u6267\u884c\u4efb\u52a1\u5e76\u5c06\u6210\u529f\u8def\u5f84\u56fa\u5316\u4e3a\u53ef\u590d\u7528\u7684\u5de5\u4f5c\u6d41\uff0c\u5e2e\u52a9\u7528\u6237\u4ece\u91cd\u590d\u6027\u8fd0\u8425\u5de5\u4f5c\u4e2d\u89e3\u653e\u51fa\u6765\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\/b8c9dd11-9d4a-41f2-8f07-fb23477cf542.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\/741a156f-0af1-4b1b-9123-9540dd37251f.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\/1b584752-538e-4892-b307-ec9a7c7f7e49.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\/ea42a1bc-4186-402d-9fbf-777917a1a027.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\/69dc52ea-2c78-4e9b-9a51-cb16c4dd5ae2.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\/ca544644-51f1-41d2-8e95-a1767fd2da3b.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=G2p-gNXlyKE\"><source src=\"https:\/\/www.youtube.com\/watch?v=G2p-gNXlyKE\" 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\">Task Management<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u4ee3\u7406<\/span><br \/>\n            <span class=\"tag\">\u667a\u80fd\u4f53\u5de5\u4f5c\u6d41<\/span><br \/>\n            <span class=\"tag\">\u4e91\u7aef\u684c\u9762<\/span><br \/>\n            <span class=\"tag\">MCP\u96c6\u6210<\/span><br \/>\n            <span class=\"tag\">\u56e2\u961f\u534f\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u81ea\u52a8\u5316\u8fd0\u8425<\/span><br \/>\n            <span class=\"tag\">\u65e0\u4ee3\u7801\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">AI\u540c\u4e8b<\/span><br \/>\n            <span class=\"tag\">\u4efb\u52a1\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">\u5782\u76f4SaaS<\/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\u5c06\u6210\u529f\u4efb\u52a1\u56fa\u5316\u4e3a\u5de5\u4f5c\u6d41\u4ee5\u8282\u7701\u6210\u672c\u7684\u8bbe\u8ba1\u3002\u4e3b\u8981\u7591\u95ee\u96c6\u4e2d\u5728\uff1a\u5f53\u5e95\u5c42API\u53d8\u52a8\u5bfc\u81f4\u5de5\u4f5c\u6d41\u5931\u6548\u65f6\uff0c\u7cfb\u7edf\u80fd\u5426\u611f\u77e5\u5e76\u81ea\u52a8\u91cd\u65b0\u89c4\u5212\uff1b\u5982\u4f55\u7ba1\u7406\u5386\u53f2\u7248\u672c\u53ca\u56de\u6eda\uff1b\u662f\u5426\u533a\u5206\u4e8eGrok Bot\u7b49\u7ade\u54c1\u3002\u53e6\u6709\u7528\u6237\u53cd\u9988\u7cfb\u7edf\u5728\u5904\u7406\u7b80\u5355CSV\u683c\u5f0f\u5316\u4efb\u52a1\u65f6\u5361\u4f4f\uff0c\u7a33\u5b9a\u6027\u5b58\u7591\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                Construct\u7684\u806a\u660e\u4e4b\u5904\u5728\u4e8e\u5b83\u5207\u4e2d\u4e86\u5f53\u524dAI\u4ee3\u7406\u884c\u4e1a\u6700\u865a\u4f2a\u7684\u53d9\u4e8b\u2014\u2014\u201c\u66ff\u4f60\u601d\u8003\u201d\u3002\u5e02\u9762\u4e0a\u7684\u901a\u7528Agent\u70e7\u7740token\uff0c\u628a\u4e94\u5206\u949f\u7684\u6d3b\u5e72\u6210\u534a\u5c0f\u65f6\u7684\u8868\u6f14\uff0c\u672c\u8d28\u662f\u8ba9\u7528\u6237\u4e3a\u91cd\u590d\u601d\u8003\u4e70\u5355\u3002Construct\u5c06\u201c\u4e00\u6b21\u6027\u6267\u884c\u201d\u4e0e\u201c\u56fa\u5316\u6d41\u7a0b\u201d\u5206\u79bb\uff0c\u76f8\u5f53\u4e8e\u7ed9\u4f01\u4e1a\u4e0a\u4e86\u4e00\u9053\u4fdd\u9669\uff1a\u601d\u8003\u53ef\u4ee5\u8d35\uff0c\u4f46\u53ea\u5141\u8bb8\u53d1\u751f\u4e00\u6b21\u3002\u8fd9\u51fb\u4e2d\u4e86\u4e2d\u5c0f\u56e2\u961f\u5bf9AI\u6210\u672c\u4e0d\u53ef\u63a7\u548c\u7ed3\u679c\u4e0d\u786e\u5b9a\u7684\u6df1\u5c42\u6050\u60e7\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u5176\u62a4\u57ce\u6cb3\u5e76\u975e\u6280\u672f\uff0c\u800c\u662f\u4ea7\u54c1\u5316\u5c01\u88c5\u80fd\u529b\u3002\u521b\u59cb\u4eba\u5f3a\u8c03\u7684\u201cMCP\u5b89\u88c5\u5373\u7528\u201d\u548c\u201c\u4e91\u7aef\u684c\u9762\u201d\u5e76\u975e\u72ec\u6709\u58c1\u5792\uff0cGrok Bot\u6216YC\u7cfb\u7ade\u54c1\u968f\u65f6\u53ef\u4ee5\u8ddf\u8fdb\u3002\u771f\u6b63\u7684\u8003\u9a8c\u5728\u4e8e\u8bc4\u8bba\u4e2d\u90a3\u4f4d\u201c\u6311\u5254\u7528\u6237\u201d\u63d0\u51fa\u7684\u75db\u70b9\uff1a\u5f53\u88ab\u56fa\u5316\u7684\u6d41\u7a0b\u56e0\u5916\u90e8API\u53d8\u66f4\u800c\u5931\u6548\u65f6\uff0c\u7cfb\u7edf\u662f\u80fd\u4e3b\u52a8\u611f\u77e5\u5e76\u81ea\u6211\u4fee\u590d\uff0c\u8fd8\u662f\u50cf\u50f5\u5c38\u4e00\u6837\u6309\u9519\u8bef\u8def\u5f84\u8dd1\u5b8c\u5e76\u8c0e\u62a5\u6210\u529f\uff1f\u4ece\u76ee\u524d\u56de\u5e16\u770b\uff0cConstruct\u7ed9\u51fa\u7684\u7b54\u6848\u662f\u201c\u901a\u77e5\u4eba\u6765\u4fee\u201d\u2014\u2014\u8fd9\u66b4\u9732\u4e86\u5176\u4f9d\u7136\u662f\u4e00\u4e2a\u201c\u9ad8\u7ea7\u811a\u672c\u6267\u884c\u5668\u201d\u800c\u975e\u201c\u667a\u80fd\u4f53\u201d\u7684\u672c\u8d28\u3002\u82e5\u65e0\u6cd5\u89e3\u51b3\u5de5\u4f5c\u6d41\u7684\u201c\u81ea\u6211\u4fee\u590d\u201d\u4e0e\u201c\u667a\u80fd\u964d\u7ea7\u201d\u95ee\u9898\uff0c\u6240\u8c13\u201c\u9501\u5b9a\u7684\u5de5\u4f5c\u6d41\u201d\u6700\u7ec8\u4f1a\u6ca6\u4e3a\u9700\u8981\u4eba\u5de5\u6301\u7eed\u7ef4\u62a4\u7684\u5b9a\u65f6\u70b8\u5f39\u3002\u6b64\u5916\uff0c\u521d\u671f\u4f53\u9a8c\u82e5\u8fdeCSV\u8f6c\u6362\u90fd\u5361\u987f\uff0c\u8bf4\u660e\u5176\u5e95\u5c42Harness\u7684\u7a33\u5b9a\u6027\u4e0e\u5ba3\u4f20\u7684\u201c10x\u540c\u4e8b\u201d\u4f53\u9a8c\u4ecd\u6709\u8f83\u5927\u5dee\u8ddd\u3002AI\u884c\u4e1a\u4e0d\u7f3a\u70b9\u5b50\uff0c\u7f3a\u7684\u662f\u80fd\u628a\u201c\u6700\u540e\u4e00\u6b21\u6267\u884c\u7684\u8fd0\u6c14\u201d\u53d8\u6210\u201c\u6bcf\u6b21\u6267\u884c\u7684\u5fc5\u7136\u201d\u7684\u5de5\u7a0b\u5b9e\u529b\uff0c\u8fd9\u5c06\u662fConstruct\u4eceDemo\u8d70\u5411\u751f\u4ea7\u529b\u7684\u751f\u6b7b\u5173\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\">Construct Computer<\/span>\n                <\/div>\n<div class=\"comment-content\">AI workforce for solo founders and small teams. Any MCP or skill installs like an app, agents build the tools that don&#8217;t exist yet, deployed and managed by the platform, shareable to the whole team, and any agent action that you like turns into a reusable workflow so agents spend less time thinking and more time doing.<\/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 Ankush, co-founder of <a href=\"https:\/\/construct.computer\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Construct<\/a>.<\/p>\n<\/p>\n<p>My last dev tool hit 30k users and got acquired. Writing the code was never the hard part.<\/p>\n<p>Being the CRM, the support inbox, the follow-up guy and the fundraiser at the same time was.<\/p>\n<p>Hiring was the obvious fix, but the runway math said no.<\/p>\n<\/p>\n<p>So when AI agents got good, I tried all of them. Every one reasoned for a minute to do a ten second task, burned tokens like they were free, and I spent more time fixing its work than doing my own. I had enough, so Nischal and I built the version we actually wanted.<\/p>\n<\/p>\n<p>Construct isn&#8217;t a tool you open. He&#8217;s a coworker who never clocks out.<\/p>\n<\/p>\n<p>\u2192 He already has the tools your business runs on, and if he needs a new one he installs it like an app.<\/p>\n<p>\u2192 Once a job runs right he locks it in. Next time it&#8217;s one command, no re-thinking, no token burning, and your team can trigger it too.<\/p>\n<p>\u2192 He remembers you, your business and everyone he talks to. It all lives in a secure enclave that only you and him have the keys to.<\/p>\n<\/p>\n<p>Brief him like a remote hire on Slack, close your laptop and he still keeps going.<\/p>\n<\/p>\n<p>For our PH supporters we are offering:<\/p>\n<p>7 days free on Pro plan, then 40% off for the first year, or 20% off monthly if you want him to intern for the quarter.<\/p>\n<\/p>\n<p>The fastest way to see what Construct can do is to just try it.<\/p>\n<\/p>\n<p>Drop the thing that eats up your week in the comments and we\u2019ll tell you how we\u2019d automate it with Construct.<\/p>\n<\/p>\n<p>Want to see it working for your business?<\/p>\n<p>Grab 15 mins and we\u2019ll demo it live with you: <a href=\"https:\/\/cal.com\/construct\/15min\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/cal.com\/construct\/15min<\/a><\/p>\n<\/p>\n<p>Or come hang with us and the team in Discord: <a href=\"https:\/\/discord.gg\/puArEQHYN9\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/discord.gg\/puArEQHYN9<\/a><\/p>\n<\/p>\n<p>ps. much love to <a href=\"https:\/\/www.producthunt.com\/@fmerian\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"fmerian\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@fmerian<\/a> for hunting us and to the PH team as well \ud83e\ude75<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/fd64ec02-9fa6-4d22-9108-3d7a3f695730.gif?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>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\/@fmerian\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@fmerian<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@ankushkun\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ankushkun<\/a>&nbsp;looks good will gonna try that..<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>The distinction between paying for an agent to rethink a task and turning the result into a workflow makes sense.<\/p>\n<p>I would be interested in how you handle the cases where the process changes over time. Can a team see which version of a workflow ran, compare the output with an earlier version, and roll back if a new step causes problems?<\/p>\n<p>That history would make shared automation much easier to trust.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@fmerian\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@fmerian<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@ankushkun\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ankushkun<\/a>&nbsp;What\u2019s one repetitive task you personally started with Construct that made you think, \u201cI don\u2019t need to explain this again\u201d and how did it improve after Construct learned the 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>Hey PH \ud83d\udc4b Nischal here, the other half of Construct.<\/p>\n<p>We&#8217;ve been heads down on this since April, so really excited to finally have it out in the open.<\/p>\n<p>I helped build the harness and the Product design. Before Construct I was working on decentralised hosting and compute solutions ,deep in isolates and WASM, which is where most of how Construct runs under the hood comes from.<\/p>\n<p>In these months we&#8217;ve watched plenty of much bigger teams ship at the same problem, and honestly it&#8217;s only made us more confident that our take on it is the right one. Being small means we get to make the weird calls.<\/p>\n<p>Really excited to hear what you all think, and happy to answer anything today. Infra, cost, product, the parts still rough.<\/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<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Wish you a successful launch! \ud83d\ude42<\/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\/@busmark_w_nika\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@busmark_w_nika<\/a>&nbsp;Thank you Nika! appreciate your support a lot \u2665\ufe0f<\/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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>It feels great to see a computer working for me directly&#8230;\ud83d\ude00<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@mindyorzi\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mindyorzi<\/a>&nbsp;awesome lol, glad you like it! \ud83d\ude4c<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@mindyorzi\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mindyorzi<\/a>&nbsp;Glad you liked it! The experience with traditional agents can feel like a black box. You prompt them and wait for something to happen while they cook something up behind the scenes.<\/p>\n<p>With Construct, we wanted the experience to feel more like having a remote hire with their own laptop, where you can actually see what they\u2019re doing and step in when needed.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Really cool! How will you compete with likes of Grok Bot and YC&#8217;s QM?<\/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\/@conduit_design\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@conduit_design<\/a>&nbsp;Thanks! Solutions like grokbot and QM definitely look like competitors on a first glance, but actually we have very different product boundaries.<\/p>\n<p>Grok bot would be closest to us with their agents and QM is more like open-source agent infrastructure teams can deploy and customize on their own if they have the technical knowhow.<\/p>\n<\/p>\n<p>Construct is more opinionated and offers a fully managed solution including agents, humans, apps\/MCPs, workflows, cloud desktops, internal tools, and a whole lot more which all live in one workspace, designed to be usable by non-technical teams too, without having to spend engineering efforts.<\/p>\n<\/p>\n<p>There is overlap, but all three are validating the same bigger shift away from chatbots toward agents that actually work.<\/p>\n<\/p>\n<p>fun fact about Construct btw- we started building this early during feb-march, when no other competitor had announced anything about their product, so we were actually early, and these competitors only validated our market \ud83d\udcaa FULL STEAM AHEAD!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>3<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on the launch! Curious how you think about something like Grok Bot, do you see it as a competitor to Construct, or are you solving a different layer of the agent stack?<\/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\/@mathsociety\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mathsociety<\/a>&nbsp;Hey Kevin, thats a great question! Grok bot is definitely a competitor since both of us are trying to solve problems in the similar space. However! we have made the entire experience of using Construct as easy and smooth as possible, by giving teams a fully managed end to end workspace with agents.<\/p>\n<p>Many tools (like grokbot, openclaw etc) target tech native orgs as their ICP, and many times need technical know how to get various things setup, which is not the case for Construct where everything can be used by even non tech native people.<\/p>\n<p>On Construct, every MCP, every tool, etc is an App, installable like how one would install something from Appstore or Playstore, making the experience much easier.<\/p>\n<p>Users even get a cloud desktop OS, which they can log into anytime, anywhere from any device they want and work with their agents as well as coworkers (Multiplayer experience) in the same workspace, which is not a feature provided by many other agentic solutions.<\/p>\n<p>Moreover, we have interesting features like workflows which reduce workload from agents, but converting successful runs into a workflow, runnable by the whole team + the agents, so it doesnot spend ai cost on repeating tasks.<\/p>\n<p>and agents can even create workspace native apps, if certain tools dont already exist through internal apps shared with the members of the workspace.<\/p>\n<\/p>\n<p>With all these (and more) we offer a lot more unique features than many top agentic solutions.<\/p>\n<\/p>\n<p>Would love to nerd it out more if you want, feel free to join our <a href=\"https:\/\/construct.computer\/discord\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">communities<\/a>, where many have interesting discussions like this.<\/p>\n<p>Cheers!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>3<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>One of a kind! Congrats on the launch \ud83d\udcaf<\/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\/@manuarora\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@manuarora<\/a>&nbsp;really appreciate your kind words sensei \ud83e\udef6 , learnt from the best <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@manuarora\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@manuarora<\/a>&nbsp;Thank you! It genuinely means a lot to us, as we have learnt a lot from your content and teachings \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<\/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\/@fmerian\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"fmerian\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@fmerian<\/a> Thanks so much for hunting us, Flo ! \ud83d\ude4f Really appreciate you putting Construct in front of the PH community.<\/p>\n<p>We\u2019ve been working on this since March, and it\u2019s been exciting (and slightly terrifying \ud83d\ude02) to finally put it out there.<\/p>\n<p>Excited to hear what everyone thinks and hopefully get some honest feedback today! \ud83d\ude80<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>LFG!!! Congrats on the launch \ud83d\ude42 <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@yahia_bakour3\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@yahia_bakour3<\/a>&nbsp;thanks for the kind words yahia \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<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Product Hunt \ud83d\udc4b<\/p>\n<p>I\u2019m Vibhansh Alok, the lead designer at <a href=\"https:\/\/construct.computer\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Construct<\/a>.<\/p>\n<p>After working with agentic tools for almost a year, I\u2019ve realized that many AI products eventually become just another wrapper around existing tools.<\/p>\n<p>Construct was different from the start.<\/p>\n<p>We didn\u2019t just want to build an AI employee that takes prompts and executes tasks. Because then you end up constantly checking: <em>Did it finish? Did it stop midway? Is it hallucinating?<\/em><\/p>\n<p>At some point, being a developer started feeling like parenting your agents<\/p>\n<p>What we wanted to build wasn\u2019t just an employee you delegate tasks to. We wanted to build a 10x coworker that actually takes work off your plate. That\u2019s why Construct is built around the principle of coworking<\/p>\n<p>As a designer, I tend to look at tools from a slightly different perspective. I care not only about whether something works, but whether it actually feels relevant or even necessary in the way we work.<\/p>\n<p>Humans are meant to create, think, and build.<\/p>\n<p>We shouldn\u2019t be spending our time digging through logs, managing emails, moving documents around, or maintaining repetitive workflows. You should be building and improving what matters, while your coworker is always there to handle the operational work in the background. That philosophy is also reflected in Construct\u2019s design language, that is, intelligence should be something you harness, not something you constantly manage.<\/p>\n<p>So, don\u2019t just build another chatbot or a wrapper. If your tool has the potential to do more, let it. Scale it until it changes how people actually spend their day.<\/p>\n<p>Would love to hear how you all perceive it. Cheers !!<\/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>Vibhansh the GOATed designer \ud83d\udd25<\/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\/@ruffledzest\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ruffledzest<\/a>&nbsp;this guy is our is our cracked Aesthetic Engineer + Vibes Architect <\/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, glad to see PostHog users building useful stuff!<\/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\/@britt_joiner\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@britt_joiner<\/a>&nbsp;Thank you Britt \ud83d\ude4c we love using <a href=\"https:\/\/www.producthunt.com\/products\/posthog\" data-node-type=\"mention\" data-mention-type=\"product\" data-mention-id=\"posthog\" target=\"_blank\" rel=\"noopener\">@PostHog<\/a>!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on the launch! Giving AI agents dedicated workspace environments instead of clogging local systems is a smart approach to hands-off execution. Curious to see how it handles long-running, multi-step browser tasks over time.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@thisiskp_\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thisiskp_<\/a>&nbsp;Thanks KP! We built our own harness from first principles to run as natively as possible on cloudflare, and extensively use alarms+DOs+workers to support long running + recurring agentic tasks, as well as incorporate kitesurf + browser use for agentic browsing and web use as per requirement of the task.<br \/>btw a while back, we were even working on a desktop companion, which the cloud agent could handover tasks to and would even have the possibility of using desktop apps for things cloud agents may not be efficient enough, tho we are still experimenting with the UX side of things, the possibilities are endless.<\/p>\n<p>WOuld love to hear your views on this \ud83d\ude4c<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Locking a job in once it runs right is the part I&#8217;d have led with. Re-planning a solved task on every run is where credits actually disappear, and most agent products quietly bill you twice for the same thinking. What I&#8217;d want to know is what happens when the locked path breaks because an API changed under it. Does he notice and re-plan, or run the stale steps and report success?<\/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\/@asadmalik901\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@asadmalik901<\/a>&nbsp;Hey Asad, valid question. When a workflow fails, the respective agent gets a failure notification, and it lets the workspace owner or the responsible user about it, they may then appropriately tell the agent to fix 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>Hey, I have instead trying to test it but seems stuck in getting simple tasks like reframing a csv file to match a shopify template, etc<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#2<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/WOUOLDN26NYVUI\" class=\"app-title\">FetchSandbox MCP<\/a><\/p>\n<div class=\"one-liner\">The MCP that proves your AI&#8217;s integration fixes work<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">205<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>FetchSandbox MCP\u4e3aAI\u7f16\u7a0b\u52a9\u624b\u63d0\u4f9b70+\u771f\u5b9e\u7b2c\u4e09\u65b9API\u6c99\u7bb1\u73af\u5883\uff0c\u8ba9AI\u5728\u7f16\u8f91\u5668\u5185\u8fd0\u884c\u96c6\u6210\u4ee3\u7801\u5e76\u751f\u6210\u201c\u4fee\u590d\u8bc1\u660e\u201d\uff0c\u89e3\u51b3AI\u201c\u81ea\u4fe1\u4fee\u590d\u4f46\u6570\u636e\u4f9d\u7136\u9519\u8bef\u201d\u7684\u5047\u9633\u6027\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\/117e9475-21d2-4e1f-8690-444e909abcc8.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\/d69f7237-a449-4b98-9570-0bb78a2c65ba.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\/49ad6021-9759-4bcb-9004-364a3815a2b9.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\/551cb5c0-e4ba-4e8f-ac6d-420c8776c015.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\/eaf6ae46-d7bb-46cc-808e-3dc23b12d0a7.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\/a1f38adb-1496-4d1a-9b40-26808302f64c.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\/9ce575d7-f16e-48ad-ab21-01cfa9818549.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\/d67647c4-7724-4812-96cc-086f7d223d06.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/y7a-9FaeohA?si=agS6QgmPzH_tsftq\"><source src=\"https:\/\/youtu.be\/y7a-9FaeohA?si=agS6QgmPzH_tsftq\" 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\">API<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u5f00\u53d1\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">MCP\u670d\u52a1\u5668<\/span><br \/>\n            <span class=\"tag\">API\u6c99\u7bb1<\/span><br \/>\n            <span class=\"tag\">\u96c6\u6210\u6d4b\u8bd5<\/span><br \/>\n            <span class=\"tag\">AI\u7f16\u7a0b\u52a9\u624b<\/span><br \/>\n            <span class=\"tag\">Cursor<\/span><br \/>\n            <span class=\"tag\">Claude Code<\/span><br \/>\n            <span class=\"tag\">Webhook\u6d4b\u8bd5<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u72b6\u6001\u65ad\u8a00<\/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\u8bc1\u660e\u800c\u975e\u611f\u89c9\u201d\u7684\u6838\u5fc3\u7406\u5ff5\uff0c\u8ba4\u4e3a\u80fd\u6355\u6349CI\u5047\u9633\u6027\u662f\u7a81\u7834\u3002\u4e3b\u8981\u8be2\u95ee\u662f\u5426\u652f\u6301\u81ea\u5b9a\u4e49\u5185\u90e8API\uff08\u5df2\u652f\u6301OpenAPI\u5bfc\u5165\uff09\u3001\u80fd\u5426\u5bf9\u6bd4Pact\u5408\u7ea6\u6d4b\u8bd5\u3001\u662f\u5426\u53ef\u6a21\u62df\u4e71\u5e8f\u4e8b\u4ef6\u548c\u91cd\u8bd5\u3001\u662f\u5426\u652f\u6301\u64ad\u79cd\u810f\u6570\u636e\uff0c\u53e6\u6709\u5efa\u8bae\u589e\u52a0\u9010\u6b65\u72b6\u6001diff\u5c55\u793a\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                FetchSandbox\u7cbe\u51c6\u51fb\u4e2d\u4e86AI\u7f16\u7a0b\u65f6\u4ee3\u6700\u865a\u4f2a\u7684\u73af\u8282\u2014\u2014\u5355\u5143\u6d4b\u8bd5\u901a\u8fc7\u4e0d\u7b49\u4e8e\u96c6\u6210\u6b63\u786e\uff0c\u66f4\u4e0d\u7b49\u4e8e\u6570\u636e\u6b63\u786e\u3002\u5176\u4ef7\u503c\u4e0d\u6b62\u4e8e\u201c\u63d0\u4f9b\u6c99\u7bb1\u201d\uff0c\u800c\u5728\u4e8e\u628a\u201c\u9a8c\u5c38\u201d\u53d8\u6210\u201c\u4ea7\u68c0\u201d\uff1a\u901a\u8fc7\u72b6\u6001\u65ad\u8a00\u548c\u5931\u8d25\u590d\u73b0\u673a\u5236\uff0c\u5c06\u539f\u672c\u53ea\u80fd\u5728\u751f\u4ea7\u73af\u5883\u66b4\u9732\u7684\u6570\u636e\u6f02\u79fb\u95ee\u9898\u524d\u7f6e\u5230\u5f00\u53d1\u5faa\u73af\u4e2d\u3002\u8fd9\u79cd\u201c\u6536\u636e\u201d\u4e0d\u662f\u5671\u5934\uff0c\u800c\u662f\u5bf9\u6297LLM\u5e7b\u89c9\u7684\u5fc5\u8981\u4eea\u5f0f\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u5fc5\u987b\u6cfc\u51b7\u6c34\uff1a\u7b2c\u4e00\uff0c\u6c99\u7bb1\u6a21\u62df\u5f97\u518d\u771f\u5b9e\uff0c\u4e0e\u751f\u4ea7\u73af\u5883\u7684\u5dee\u5f02\u9e3f\u6c9f\u4ecd\u5728\uff0c\u7b7e\u540d\u9a8c\u8bc1\u901a\u8fc7\u4e0d\u7b49\u4e8e\u5bf9\u65b9\u7f51\u5173\u7b56\u7565\u4e00\u81f4\uff1b\u7b2c\u4e8c\uff0c\u201c70+\u6c99\u7bb1\u201d\u7684\u7ef4\u62a4\u6210\u672c\u6781\u9ad8\uff0c\u7b2c\u4e09\u65b9API\u9891\u7e41\u53d8\u66f4\u5bfc\u81f4\u6c99\u7bb1\u672c\u8eab\u53ef\u80fd\u6210\u4e3a\u65b0\u7684\u201c\u5047\u9633\u6027\u201d\u6765\u6e90\uff1b\u7b2c\u4e09\uff0c\u521b\u59cb\u4eba\u5f3a\u8c03\u7684\u201c\u7aef\u72b6\u6001\u65ad\u8a00\u201d\u76ee\u524d\u4ec5\u8986\u76d6\u663e\u5f0f\u5de5\u4f5c\u6d41\uff0c\u5bf9\u7cfb\u7edf\u95f4\u9690\u5f0f\u65f6\u5e8f\u8026\u5408\u7684\u68c0\u6d4b\u80fd\u529b\u5c1a\u672a\u9a8c\u8bc1\u3002\u8bc4\u8bba\u4e2d\u5bf9\u201c9.00\u62a5\u4ef7\u6084\u6084\u8fbe\u5ba2\u6237\u201d\u8fd9\u7c7b\u6570\u503c\u7ea7\u9519\u8bef\uff0c\u82e5\u65ad\u8a00\u5e93\u672a\u8986\u76d6\u54cd\u5e94\u4f53\u9010\u5b57\u6bb5\u6821\u9a8c\uff0c\u4f9d\u7136\u4f1a\u6f0f\u3002\u4ea7\u54c1\u65b9\u5411\u6b63\u786e\uff0c\u4f46\u9700\u5c3d\u5feb\u8865\u4e0a\u201c\u72b6\u6001diff\u53ef\u89c6\u5316\u201d\u548c\u201c\u81ea\u5b9a\u4e49\u65ad\u8a00\u89c4\u5219\u201d\u4e24\u5757\u62fc\u56fe\uff0c\u5426\u5219\u5f88\u5bb9\u6613\u6ca6\u4e3a\u9ad8\u7ea7\u73a9\u5177\u2014\u2014\u6bd5\u7adf\uff0c\u8ba9AI\u8bc1\u660e\u81ea\u5df1\u6ca1\u641e\u7838\uff0c\u672c\u8d28\u4e0a\u662f\u8ba9\u51f6\u624b\u5199\u7ed3\u6848\u62a5\u544a\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\">FetchSandbox MCP<\/span>\n                <\/div>\n<div class=\"comment-content\">Your agent&#8217;s integration fix passes CI. The data is still wrong. FetchSandbox MCP reproduces the real failure on your code, fixes it, and proves the fix held. A receipt, not a vibe. 70+ API sandboxes. One config block in Cursor or Claude Code.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p><strong>Raj here, one of the co-founders.<\/strong><\/p>\n<p>Writing the integration stopped being the hard part. Checking that it actually works is the whole job now, and that&#8217;s the half your agent can&#8217;t do.<\/p>\n<p><strong>The gap<\/strong><\/p>\n<p>Your agent can write a Stripe integration. It can&#8217;t run one. It writes the code, tells you it&#8217;s done, and you find out in production whether that was true. FetchSandbox gives the agent already in your editor two things it doesn&#8217;t have: somewhere real to run integration code, and a way to prove the fix worked.<\/p>\n<p><strong>Why the proof check matters<\/strong><\/p>\n<p>A customer paid for 5 seats. A retry gave them 10, then 15. An agent fixed it, and after the fix nobody got any seats at all. Tests still passed because the duplicates were gone. Almost any fix makes the error disappear. Far fewer make the data right.<\/p>\n<p>So the gate asserts the exact end state a correct implementation leaves, and refuses to go green when it can&#8217;t reproduce the bug first.<\/p>\n<p><strong>Setup<\/strong><\/p>\n<p>One block in your MCP config. No API key, no signup. Works in Claude Code, Cursor, Cline, Windsurf, and Codex. 70+ ready-made sandboxes: Stripe, HubSpot, Clerk, Resend, Twilio and more, free to try.<\/p>\n<p>We hit #3 on our first launch. The ask afterward was exactly this: don&#8217;t just give me a sandbox, tell me my fix actually worked. This is that.<\/p>\n<p>Has your agent ever confidently fixed something that was still broken?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>10<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><strong>Install, takes about thirty seconds.<\/strong><\/p>\n<p>Add this to your MCP config. That&#8217;s `.mcp.json` in your project root for Claude Code, or Settings \u2192 MCP for Cursor:<\/p>\n<p>&#8220;`json<\/p>\n<p>{<\/p>\n<p>&#8220;mcpServers&#8221;: {<\/p>\n<p>&#8220;fetchsandbox&#8221;: {<\/p>\n<p>&#8220;command&#8221;: &#8220;npx&#8221;,<\/p>\n<p>&#8220;args&#8221;: [&#8220;-y&#8221;, &#8220;fetchsandbox-mcp@latest&#8221;]<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<p>&#8220;`<\/p>\n<\/p>\n<p>No API key, no signup. Claude Desktop needs a full quit and reopen, Cmd+Q, not just closing the window.<\/p>\n<p><strong>Try it without touching your own code first<\/strong><\/p>\n<p>Type this to your agent, not your terminal \u2014 the .\/fetchsandbox prefix is just how you tell it to use the MCP:<\/p>\n<p>&#8220;.\/fetchsandbox Test my Stripe webhook for duplicate deliveries&#8221;<\/p>\n<p>Takes about a minute and you&#8217;ll get a receipt URL.<\/p>\n<p>Or the one I&#8217;d show a skeptic:<\/p>\n<p>&#8220;.\/fetchsandbox Paddle events arrived out of order and reactivated a paused subscription&#8221;<\/p>\n<p><strong>Then point it at something real<\/strong><\/p>\n<p>Name the API and what you&#8217;re seeing:<\/p>\n<p>&#8220;.\/fetchsandbox Stripe webhook signature verification fails for valid events&#8221;<\/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=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@rnagulapalle\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rnagulapalle<\/a>&nbsp;&#8220;A receipt, not a vibe&#8221; is a great line. CI passing while the data&#8217;s still wrong is exactly the failure nobody catches until a customer does. Does the sandbox replay my actual failing request, or a synthetic version of it?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@rnagulapalle\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rnagulapalle<\/a>&nbsp;giving the coding agent an actual sandbox environment to fail against before calling a PR ready is a massive unlock. Congrats on the launch\ud83d\ude4c<\/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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>&#8220;almost any fix makes the error disappear, far fewer make the data right&#8221; is the whole thing, and it is the same shape as the problem we keep running into.<\/p>\n<\/p>\n<p>to answer your question: yes, and the worst one was not even an agent. we added an anthropic key and three things were wrong at once. opus rejects an explicit temperature outright, one haiku model id had been retired and returned 404, and our own code sent a temperature on every call. nothing failed in testing because nothing in testing actually called it. any customer who had selected opus would have had every single reply fail on the first try. we were offering an integration nobody had ever executed.<\/p>\n<\/p>\n<p>the related one scares me more. we ran eight models against a live pricing api and two of them read the wrong row of a price ladder that was sitting in their context. one quoted 39.00 for an order that costs 9.60, the other quoted 9.00. the 39.00 gets caught by anyone glancing at it. the 9.00 does not, and that is the one that reaches a customer.<\/p>\n<\/p>\n<p>so the thing i would want to know about the proof step: does it assert the response shape, or the actual values? a 200 with a plausible wrong body is the failure that survives every check we have tried.<\/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\/@jernej_jan_kocica\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jernej_jan_kocica<\/a>&nbsp;three failures at once and none of them visible until the key hit prod, that&#8217;s exactly the shape that&#8217;s hard to catch in any test that doesn&#8217;t actually run the provider&#8217;s validation. the retired model id returning 404 especially, that&#8217;s the kind of thing you only find when something real is on the other end. glad this resonated, and that war story is going straight into how i explain the &#8220;why&#8221; of this 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>Testing webhook idempotency with AI agents is an absolute nightmare they always silently fail or fake the fix. Forcing the agent to prove it worked with an actual receipt URL before merging is brilliant. qq Are you planning to let us add custom internal enterprise APIs to the sandbox list soon? Upvoted&#8230;<\/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\/@vikramp7470\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@vikramp7470<\/a>&nbsp;Thanks so much, the silent fake fix is exactly what kept me up at night building this. Custom internal APIs work today actually, drop any OpenAPI 3.x spec at `\/import-spec` and it spins up a fully stateful, schema-validated sandbox in about 5 seconds, so you&#8217;re not limited to the built-in specs. Would love to hear what internal APIs you&#8217;re working with if you give it a shot.<\/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>Testing and verifying AI integration fixes in a sandbox before deploying saves so much headache. Congrats on shipping!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@thisiskp_\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thisiskp_<\/a>&nbsp;thanks man!!..Yeah exactly, same bug, very different discovery method. Finding it before deploy means you fix it in your editor. Finding it after means a customer tells you about it at some inconvenient hour. That&#8217;s the whole thing we&#8217;re trying to shift.<\/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\/@thisiskp_\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thisiskp_<\/a>&nbsp;Thanks! Honestly that pain is exactly why we built this. Catching a bad config or an edge case token error in sandbox vs in prod is a completely different experience.. one costs you sleep, the other costs you 10 minutes.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Best of luck in the launch day!<\/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\/@alexcloudstar\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alexcloudstar<\/a>&nbsp;thank you so much, means a lot on launch day!<\/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=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@alexcloudstar\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alexcloudstar<\/a>&nbsp;thank you, really appreciate the support<\/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\">Curious how this compares to traditional contract testing tools like Pact when driven by an LLM agent? Seems much more accessible for rapid iterations.<\/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\/@tehreem_fatima5\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@tehreem_fatima5<\/a>&nbsp;pact is great for locking down the contract between a known consumer and provider in CI. fetchsandbox is less about &#8220;did the schema match&#8221; and more about running the full lifecycle: stateful CRUD, webhook delivery, auth failures, rate limits, all from inside the agent&#8217;s IDE session. for an LLM agent the rapid iteration piece matters a lot, it can reproduce a specific failure, fix the code, and get a proof receipt back rather than just validating shape.<\/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 end-state assertion is the strongest part here. In SaaS billing and automation work, preventing a duplicate event is only half the problem\u2014the final subscription, entitlement, and audit state all need to agree. Does the sandbox also let teams test reordered events and delayed retries across the same workflow?<\/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\/@modiyilreji\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@modiyilreji<\/a>&nbsp;yes, exactly the problem i was trying to solve. delayed retries are covered via scenario switching mid-workflow, you can flip the sandbox into a degraded or rate-limited state between steps and re-trigger. reordered events are supported too; workflows in the spec configs let you sequence the same events in different orders so you can assert on the final state, not just whether each event &#8220;succeeded.&#8221; the end-state check is what actually matters in billing flows.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\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>FetchSandbox addresses a real weakness in AI-generated integrations: verifying actual end states rather than merely checking for successful responses. The stateful sandboxes, failure injection, and proof receipts make this especially valuable for testing billing and authentication workflows before deployment.<\/p>\n<p>One optional improvement would be showing a side-by-side state diff in each receipt, highlighting the expected and actual values across the full workflow. That would make subtle failures, such as a plausible but incorrect response body, easier to detect during review. Congrats on the launch!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@adityaharish2002\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@adityaharish2002<\/a>&nbsp;that side-by-side diff idea is exactly right, right now the receipt shows the final state but subtle field-level drift across a multi-step workflow is easy to miss. adding a before\/after diff per step is on the roadmap and your framing of it (expected vs actual across the full workflow, not just the last call) is actually the cleaner way to think about it. appreciate the specific callout.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>what kind of integrations do you have?<\/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\/@adamkamaneh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@adamkamaneh<\/a>&nbsp;70+ you can run right now, Stripe, Paddle, HubSpot, Clerk, Resend, Twilio, GitHub, Notion, Shopify, Discord, Datadog, RevenueCat. Payments, auth, email, messaging, CRM are the clusters with the most depth.<\/p>\n<\/p>\n<p>All of them run, real state, webhooks, lifecycle. About 15 also have the failure library on top, the curated set of known ways that specific API actually breaks in prod. Duplicate delivery, retries on stale state, signature verification failing on valid events. Those are the ones where it reproduces a named bug instead of just exercising the happy path. Stripe is deepest.<\/p>\n<p>HubSpot is the one I&#8217;ve pushed hardest on the CRM side.<\/p>\n<\/p>\n<p>If yours isn&#8217;t listed, point it at any OpenAPI spec and it stands up a sandbox from that. You just don&#8217;t get the failure library for it, you&#8217;d be exercising the API, not the known failure modes.<\/p>\n<p>Where this is going since you asked about kinds: single third-party APIs are the starting point. The version I actually care about is standing up a whole internal service graph, several services and the third parties they depend on, all at once. Built a version of that this week for a company that rebuilds systems it acquires. Three services in one scenario, caught the new implementation skipping a call the old one made while everything else looked fine. That&#8217;s the thing.<\/p>\n<\/p>\n<p>Which one were you thinking of? Genuinely useful to know what people reach for 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<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@adamkamaneh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@adamkamaneh<\/a>&nbsp;67 today \u2014 Stripe, GitHub, Twilio, OpenAI, Clerk, WorkOS, Resend and more. Anything not in the catalog, import an OpenAPI spec and you get a stateful sandbox with the same webhooks and failure injection.<\/p>\n<p>What are you integrating with? <\/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>Onboarding wrote a &#8220;you&#8217;ve seen the intro&#8221; flag one screen too early, so one click on Explore recorded the intro as done forever and every visit after that opened on step 2 of 2.<\/p>\n<p>Fixed the write, then went through it on prod myself. On a fresh load the intro came back. The click wrote nothing, a reload got it again.<\/p>\n<p>But everyone who had already clicked was still carrying the flag, and the rule reading it hadn&#8217;t changed, so they stayed on step 2 permanently. Second deploy the same day to make the stale flag heal itself.<\/p>\n<p>The fixture is the part I think about, set by hand to describe a returning visitor, so the buggy assumption went straight into the test and it passed right until the bug was fixed.<\/p>\n<p>Does the proof step always start from a clean sandbox, or can you seed it with what the bug already wrote?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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 5 seats turning into 15 is the version of this that actually costs money. We hit the same shape at Zeplik, output that parses fine and passes every assertion we wrote, wrong in a way only the end state shows. Green CI on a bad write is worse than a red build because nobody goes back and looks. I&#8217;d want to know if the receipt catches partial failures too, 3 of 5 writes landing and the rest silently dropped.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#3<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/IK7GY4H42E2FDM\" class=\"app-title\">Aximote<\/a><\/p>\n<div class=\"one-liner\">Your car data, finally in your pocket<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">178<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Aximote\u662f\u4e00\u6b3e\u65e0\u9700\u989d\u5916\u786c\u4ef6\u5373\u53ef\u5c06\u591a\u54c1\u724c\u6c7d\u8f66\u6570\u636e\u540c\u6b65\u81f3iPhone\u7684\u667a\u80fd\u884c\u8f66\u8bb0\u5f55\u4e0e\u9a7e\u9a76\u5206\u6790\u5e94\u7528\uff0c\u5e2e\u52a9\u8f66\u4e3b\u5728\u505c\u8f66\u540e\u81ea\u52a8\u751f\u6210\u884c\u7a0b\u3001\u7406\u89e3\u6cb9\u8017\u7535\u8017\u3001\u8bc4\u4f30\u9a7e\u9a76\u6548\u7387\uff0c\u628a\u201c\u9a7e\u9a76\u540e\u76f2\u533a\u201d\u53d8\u6210\u53ef\u590d\u76d8\u7684\u4e2a\u4eba\u6570\u636e\u770b\u677f\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\/fd817655-3748-4ebd-b617-b9971e75fe81.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\/5a1ed5db-71e3-4da7-b1e2-6a83e306f4fc.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\/f60c4948-e94f-4001-98ca-6fb9a95b7ec2.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\/1c288220-11c5-48fa-9230-6107fd7af8c7.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\/f8639737-999a-496d-bd50-1e951f8ccfc5.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/KC3SbCm4c-4\"><source src=\"https:\/\/youtu.be\/KC3SbCm4c-4\" 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\">Apple<\/span><br \/>\n            <span class=\"tag\">Data &#038; Analytics<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u6c7d\u8f66\u6570\u636e<\/span><br \/>\n            <span class=\"tag\">\u9a7e\u9a76\u5206\u6790<\/span><br \/>\n            <span class=\"tag\">\u884c\u7a0b\u8bb0\u5f55<\/span><br \/>\n            <span class=\"tag\">\u591a\u54c1\u724c\u517c\u5bb9<\/span><br \/>\n            <span class=\"tag\">\u6548\u7387\u8bc4\u5206<\/span><br \/>\n            <span class=\"tag\">\u80fd\u8017\u7edf\u8ba1<\/span><br \/>\n            <span class=\"tag\">iPhone\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u65e0OBD\u786c\u4ef6<\/span><br \/>\n            <span class=\"tag\">\u8f66\u8f86\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u51fa\u884c\u79d1\u6280<\/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\u53ef\u8de8\u54c1\u724c\u3001\u514d\u786c\u4ef6\u7684\u5b9e\u7528\u4ef7\u503c\uff0c\u4f46\u660e\u786e\u8be2\u95ee\u6570\u636e\u6765\u6e90\uff08\u662f\u5426\u8c03\u7528\u5404\u5382\u5546\u5b98\u65b9API\uff09\uff1b\u5173\u6ce8\u6548\u7387\u8bc4\u5206\u7684\u5177\u4f53\u8ba1\u7b97\u7ef4\u5ea6\uff08\u9a7e\u9a76\u98ce\u683c\/\u8def\u7ebf\/\u6761\u4ef6\uff09\uff1b\u53cd\u9988\u4e0d\u652f\u6301\u7279\u65af\u62c9\u662f\u660e\u663e\u77ed\u677f\uff1b\u90e8\u5206\u7528\u6237\u5e0c\u671b\u5bf9\u6bd4\u597d\u53cb\u6570\u636e\uff0c\u5e76\u597d\u5947\u65e9\u671f\u7528\u6237\u7684\u771f\u5b9e\u4f7f\u7528\u6d1e\u5bdf\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                Aximote\u7684\u806a\u660e\u4e4b\u5904\u5728\u4e8e\u907f\u5f00\u786c\u4ef6\u7ea2\u6d77\uff0c\u76f4\u63a5\u64ac\u52a8\u8f66\u4f01\u5df2\u5f00\u653e\u7684\u8054\u7f51\u6570\u636e\u63a5\u53e3\uff0c\u7528\u201c\u8d26\u6237\u7ed1\u5b9a\u201d\u6d88\u5316\u591a\u54c1\u724c\u534f\u8bae\u5dee\u5f02\uff0c\u628a\u788e\u7247\u5316\u7684\u8f66\u8f7d\u6570\u636e\u6c89\u6dc0\u4e3a\u8de8\u54c1\u724c\u3001\u8de8\u8f66\u8f86\u7684\u4e2a\u4eba\u9a7e\u9a76\u5386\u53f2\u3002\u8fd9\u672c\u8d28\u4e0a\u4e0d\u662f\u505a\u5de5\u5177\uff0c\u800c\u662f\u505a\u7528\u6237\u9a7e\u9a76\u6570\u636e\u7684\u201c\u4e2a\u4eba\u94f6\u884c\u201d\u2014\u2014\u4e00\u65e6\u7528\u6237\u79ef\u7d2f\u6570\u6708\u751a\u81f3\u6570\u5e74\u7684\u8de8\u8f66\u6570\u636e\uff0c\u8fc1\u79fb\u6210\u672c\u6781\u9ad8\uff0c\u8fd9\u662f\u5b83\u6bd4\u5355\u54c1\u724cOEM\u5e94\u7528\u66f4\u5177\u62a4\u57ce\u6cb3\u7684\u5730\u65b9\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u9510\u8bc4\u5fc5\u987b\u6307\u51fa\u4e09\u4e2a\u9690\u60a3\uff1a\u5176\u4e00\uff0c\u6570\u636e\u6e90\u5408\u6cd5\u6027\u8106\u5f31\uff0cOEM\u968f\u65f6\u53ef\u80fd\u6536\u7d27API\u6743\u9650\u6216\u6536\u8d39\uff0cAximote\u76f8\u5f53\u4e8e\u5728\u522b\u4eba\u5730\u57fa\u4e0a\u76d6\u697c\uff1b\u5176\u4e8c\uff0c\u8bc4\u8bba\u4e2d\u6700\u6709\u4ef7\u503c\u7684\u8ffd\u95ee\uff08\u5982\u4f55\u63a5\u5165\u3001\u652f\u6301\u54ea\u4e9b\u54c1\u724c\u534f\u8bae\uff09\u5b98\u65b9\u56de\u590d\u8f7b\u63cf\u6de1\u5199\uff0c\u907f\u91cd\u5c31\u8f7b\uff0c\u8fd9\u4f1a\u8ba9\u4e13\u4e1a\u7528\u6237\u4e27\u5931\u4fe1\u4efb\uff1b\u5176\u4e09\uff0c\u201c\u6548\u7387\u8bc4\u5206\u201d\u76ee\u524d\u88ab\u6a21\u7cca\u4e3a\u9a7e\u9a76\u98ce\u683c\u3001\u8def\u7ebf\u3001\u6761\u4ef6\u7684\u7efc\u5408\u7ed3\u679c\uff0c\u7f3a\u4e4f\u53ef\u89e3\u91ca\u6027\u2014\u2014\u5982\u679c\u7528\u6237\u65e0\u6cd5\u77e5\u9053\u5982\u4f55\u6539\u8fdb\uff08\u6bd4\u5982\u201c\u9ad8\u901f\u7a7a\u8c03\u5f00\u5927\u5bfc\u81f4\u80fd\u8017+15%\u201d\uff09\uff0c\u8bc4\u5206\u5c31\u6ca6\u4e3a\u6570\u5b57\u6e38\u620f\uff0c\u548c\u5065\u8eabApp\u91cc\u201c\u4eca\u65e5\u6d3b\u529b\u5206\u201d\u4e00\u6837\u9e21\u808b\u3002\u81f3\u4e8e\u4e0d\u652f\u6301\u7279\u65af\u62c9\uff0c\u66f4\u662f\u76f4\u63a5\u780d\u6389\u4e86\u6700\u613f\u610f\u5c1d\u9c9c\u7684\u9ad8\u4ef7\u503c\u8f66\u4e3b\u7fa4\u4f53\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u771f\u6b63\u7684\u673a\u4f1a\u5728\u4e8e\uff1a\u4e0e\u5176\u505a\u6570\u636e\u5c55\u793a\u5668\uff0c\u4e0d\u5982\u505a\u9a7e\u9a76\u6559\u7ec3+\u517b\u8f66\u7ba1\u5bb6\u2014\u2014\u7528\u8de8\u54c1\u724c\u6570\u636e\u6d1e\u5bdf\u544a\u8bc9\u7528\u6237\u201c\u8fd9\u7bb1\u6cb9\u503c\u4e0d\u503c\u201d\u201c\u4e0b\u8f86\u8f66\u8be5\u9009\u7535\u8f66\u8fd8\u662f\u6df7\u52a8\u201d\u3002\u4f46\u76ee\u524d\u7248\u672c\u8fd8\u505c\u5728\u201c\u770b\u5f97\u61c2\u201d\u9636\u6bb5\uff0c\u79bb\u201c\u7528\u5f97\u7701\u201d\u5dee\u4e00\u516c\u91cc\u3002\u7559\u7ed9Aximote\u7684\u65f6\u95f4\u7a97\u53e3\u662f\u8f66\u4f01\u5c1a\u672a\u5b8c\u5168\u5c01\u6b7b\u7b2c\u4e09\u65b9\u6570\u636e\u63a5\u5165\u7684\u8fd9\u51e0\u5e74\uff0c\u5efa\u8bae\u5c3d\u5feb\u516c\u5f00\u6570\u636e\u63a5\u5165\u6e05\u5355\u4e0e\u8bc4\u5206\u7b97\u6cd5\u903b\u8f91\uff0c\u5426\u5219\u518d\u5927\u7684\u7528\u6237\u91cf\u4e5f\u7ecf\u4e0d\u8d77\u4e00\u6b21\u65ad\u4f9b\u6216\u4fe1\u4efb\u5371\u673a\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\">Aximote<\/span>\n                <\/div>\n<div class=\"comment-content\">Aximote brings the data from your car to your iPhone and turns every drive into something you can understand. Trips appear automatically with insights into consumption, charging, costs and driving efficiency. Customize a dashboard with 20+ vehicle metrics, compare trips and long-term trends, manage multiple cars, and keep one continuous driving history\u2014even when you switch brands. No additional hardware required.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hi Product Hunt \ud83d\udc4b<\/p>\n<\/p>\n<p>When we first launched Aximote here in May, it lived almost entirely inside the car. That was useful while driving, but it left one big gap: once you parked, there was no good place to understand what had actually happened.<\/p>\n<p>Today, we\u2019re closing that gap with Aximote for iPhone.<\/p>\n<\/p>\n<p>Every trip appears automatically in a personal dashboard. You can see what it consumed and cost, how efficiently you drove, how your results change over time, and how one drive compares with another \u2014 without an OBD dongle or manual trip logging.<\/p>\n<\/p>\n<p>For this release, we built:<\/p>\n<p>\ud83d\udcca A customizable dashboard with more than 20 vehicle metrics<br \/>\u26a1 Our new Efficiency Score<br \/>\ud83d\udd0c Detailed trip, charging, consumption and cost analytics<br \/>\ud83d\udcc8 Trends and comparisons across trips and compatible vehicles<br \/>\ud83d\ude98 Support for multiple cars and one continuous driving history<br \/>\ud83c\udf17 A completely redesigned interface with light and dark mode and detailed 3D car models<\/p>\n<\/p>\n<p>The part I\u2019m most excited about is not simply having Aximote on another screen. The iPhone app turns your driving history into something you can revisit, compare and keep across vehicles.<\/p>\n<\/p>\n<p>Your data lives with your Aximote account instead of being limited to a single car or manufacturer app. So when you manage multiple cars or change brands, you don\u2019t have to start from zero again.<\/p>\n<\/p>\n<p>Since our first launch, more than 10,000 drivers have joined Aximote and together tracked over 1 million trips. Their feedback shaped almost every part of this release.<\/p>\n<\/p>\n<p><a href=\"https:\/\/apps.apple.com\/app\/aximote\/id6743069147\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Download Aximote for iPhone<\/a><\/p>\n<p>We\u2019d love to learn from the Product Hunt community again:<\/p>\n<p>After finishing a drive, what is the one thing you wish your car explained better?<\/p>\n<\/p>\n<p>\u2014 Laurenz, co-founder of Aximote<\/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>&nbsp;Cool product! I just launched my own image compression tool today too \u2014 check it out and good luck with your launch! \ud83d\ude80<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">@laurenz_hinterholzer Congratulations on the launch! This looks like a really useful update, especially the trip analytics and Efficiency Score. Wishing the Aximote team continued success!<\/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\/@laurenz_hinterholzer\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@laurenz_hinterholzer<\/a>&nbsp;Great Launch Laurenz!<\/p>\n<p>What feeds into the Efficiency Score, driving style or route\/conditions 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>Actually, this app tells you a lot more about your driving than about your car. It\u2019s a bit of a fitness app four driving skills &#8211; economic, sporty, efficient, long-haul, however you want it, both in the car and on the phone, across many cars and brands. <\/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\/@christoph_sturmer\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@christoph_sturmer<\/a>&nbsp;Thanks!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on launching today <a href=\"https:\/\/www.producthunt.com\/@laurenz_hinterholzer\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"laurenz_hinterholzer\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@laurenz_hinterholzer<\/a> <br \/>Very interesting concept, how are your early users using Aximote? What are the most interesting insights they&#8217;ve gained? <\/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\/@peterbuch\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@peterbuch<\/a>&nbsp;Thanks! Early users mostly use Aximote to automatically track their trips and better understand consumption, charging and driving behaviour. One of the most interesting parts is seeing how much the same car can differ depending on driving style, route and conditions.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\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 today <a href=\"https:\/\/www.producthunt.com\/@laurenz_hinterholzer\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"laurenz_hinterholzer\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@laurenz_hinterholzer<\/a> <\/p>\n<p>Very interesting concept what is the usp of Aximote compared to other OEM apps?<\/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\">@suyash_kr thanks. That you can compare your driving with your friends and family and that they don\u2019t need to have the same brand<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\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\">No Teslas<\/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>kudos @ shipping &amp; launching \ud83c\udf88<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>Having direct, mobile access to your car&#8217;s telemetry data in a clean UI is super practical. Great 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>no OBD dongle and works across brands is the part that stands out to me here &#8211; most of the trip logging apps I&#8217;ve tried either need a plug-in dongle or only work with one manufacturer&#8217;s own API. is this pulling from each maker&#8217;s official connected-car service under the hood (Tesla API, etc for each brand) with you handling the different formats, or is there some more universal telemetry standard newer cars expose that you&#8217;re tapping into. asking because that answer basically decides which of my family&#8217;s cars will actually show up in this and which won&#8217;t<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congratulations on the launch! The app fills a gap many modern cars seems to fail at. With cars nowadays being computers on wheels with a ton of sensors, it&#8217;s strange something like this has not been introduced earlier by car makers or similar. <\/p>\n<p>I&#8217;m looking forward to follow your journey, good luck! <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@mooncake351\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mooncake351<\/a>&nbsp;Thanks a lot for your support!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/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\/7MQBGZEICSBSJ5\" class=\"app-title\">OpenLogi<\/a><\/p>\n<div class=\"one-liner\">A local-first alternative to Logitech Options+<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">164<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>OpenLogi \u662f\u4e00\u6b3e\u7528 Rust \u7f16\u5199\u7684\u5f00\u6e90\u672c\u5730\u4f18\u5148\u8f6f\u4ef6\uff0c\u4f5c\u4e3a\u7f57\u6280 Options+ \u7684\u66ff\u4ee3\u54c1\uff0c\u901a\u8fc7 HID++ \u534f\u8bae\u76f4\u63a5\u63a7\u5236\u9f20\u6807\u6309\u952e\u3001DPI \u548c SmartShift\uff0c\u65e0\u9700\u767b\u5f55\u8d26\u53f7\u3001\u65e0\u9065\u6d4b\uff0c\u5728 macOS\u3001Windows \u548c Linux \u4e0a\u539f\u751f\u8fd0\u884c\uff0c\u89e3\u51b3\u5916\u8bbe\u914d\u7f6e\u5de5\u5177\u81c3\u80bf\u3001\u5f3a\u5236\u8054\u7f51\u548c\u9690\u79c1\u6cc4\u9732\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\/c7c2f97a-a872-48d9-8c5a-7cfd0ff036e1.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\/214bd051-9983-418b-98a1-3115d1fb44e7.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\/77937825-ddcb-4488-bc95-2c69dcb4319f.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\/35293e28-a0a2-40fc-aace-c22b5c30eb06.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\/9fa6af9d-e218-4e1d-a651-3f2f79247908.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\/75f42140-da78-40d6-963e-aec1209bcf8f.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\/c8eb0b64-4885-4852-9f0e-a66801c2552b.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\/5b30ca99-6772-4b7c-a3f2-a9d7bb7c1f2f.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\/eb9d29c5-4bb4-45a9-9831-40d7f3ea32d4.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\/83943b14-4173-4db5-9b50-9515d361fbbd.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\">Open Source<\/span><br \/>\n            <span class=\"tag\">Hardware<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u7f57\u6280\u5916\u8bbe\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90\u66ff\u4ee3<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u4f18\u5148<\/span><br \/>\n            <span class=\"tag\">HID++\u534f\u8bae<\/span><br \/>\n            <span class=\"tag\">Rust\u5f00\u53d1<\/span><br \/>\n            <span class=\"tag\">\u8de8\u5e73\u53f0<\/span><br \/>\n            <span class=\"tag\">\u9f20\u6807\u6309\u952e\u91cd\u6620\u5c04<\/span><br \/>\n            <span class=\"tag\">DPI\u8c03\u8282<\/span><br \/>\n            <span class=\"tag\">\u9690\u79c1\u4fdd\u62a4<\/span><br \/>\n            <span class=\"tag\">\u65e0\u9065\u6d4b<\/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\u96f6\u9065\u6d4b\u3001\u672c\u5730\u4f18\u5148\u548c Linux \u652f\u6301\uff0c\u8ba4\u4e3a\u662f\u5916\u8bbe\u8f6f\u4ef6\u7684\u6e05\u6d41\uff1b\u4e3b\u8981\u671f\u5f85\u70b9\u5728\u4e8e\u5c1a\u672a\u5b8c\u6210\u7684\u6309\u5e94\u7528\u914d\u7f6e\u6587\u4ef6\u3001Options+ \u5bfc\u5165\u5668\u548c Flow \u529f\u80fd\uff0c\u5e76\u63d0\u793a\u9700\u5148\u9000\u51fa Options+ \u6216 Solaar \u907f\u514d\u8f6f\u4ef6\u51b2\u7a81\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                OpenLogi \u7684\u950b\u8292\u4e0d\u5728\u4e8e\u201c\u53c8\u4e00\u4e2a\u9f20\u6807\u9a71\u52a8\u201d\uff0c\u800c\u5728\u4e8e\u5b83\u7cbe\u51c6\u523a\u4e2d\u4e86\u4e3b\u6d41\u5916\u8bbe\u8f6f\u4ef6\u884c\u4e1a\u7684\u4e00\u4e2a\u9690\u75db\uff1a\u7528\u51e0\u767e MB \u7684\u5b89\u88c5\u5305\u3001\u5e38\u9a7b\u540e\u53f0\u670d\u52a1\u548c\u4e91\u8d26\u53f7\uff0c\u53bb\u89e3\u51b3\u4e00\u4e2a\u672c\u5e94\u53ea\u9700\u51e0\u767e KB \u7684\u6309\u952e\u6620\u5c04\u95ee\u9898\u3002\u5b83\u628a\u201c\u5de5\u5177\u201d\u8fd8\u539f\u4e3a\u201c\u5de5\u5177\u201d\u2014\u2014\u7528\u4e00\u4efd\u53ef\u8bfb\u5199\u7684 config.toml \u53d6\u4ee3\u4e86\u9690\u5f62\u7684\u4e91\u540c\u6b65\uff0c\u7528\u76f4\u63a5 HID++ \u901a\u4fe1\u53d6\u4ee3\u4e86\u9065\u6d4b\u56de\u4f20\uff0c\u8fd9\u672c\u8d28\u4e0a\u662f\u5bf9\u8f6f\u4ef6\u63a7\u5236\u6743\u548c\u6570\u636e\u4e3b\u6743\u7684\u5ba3\u793a\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5176\u4ef7\u503c\u6709\u4e09\u5c42\uff1a\u7b2c\u4e00\uff0c\u5b83\u662f\u6781\u7b80\u4e3b\u4e49\u5de5\u7a0b\u54f2\u5b66\u7684\u80dc\u5229\uff0cRust \u5e26\u6765\u7684\u539f\u751f\u6027\u80fd\u548c\u96f6\u4f9d\u8d56\u90e8\u7f72\uff0c\u8ba9\u5b83\u5728\u8d44\u6e90\u5360\u7528\u4e0a\u5bf9 Linux \u7528\u6237\u5c24\u5176\u5177\u5907\u5438\u5f15\u529b\uff08\u7b2c\u4e09\u65b9\u9a71\u52a8\u7684\u8fb9\u7f18\u751f\u6001\u5411\u6765\u8584\u5f31\uff09\uff1b\u7b2c\u4e8c\uff0c\u5b83\u628a\u201c\u914d\u7f6e\u201d\u5347\u7ef4\u4e3a\u201c\u8d44\u4ea7\u201d\uff0c\u7528\u6237\u53ef\u4ee5 diff\u3001\u7248\u672c\u63a7\u5236\u3001\u591a\u673a\u590d\u5236\uff0c\u8fd9\u7cbe\u51c6\u51fb\u4e2d\u4e86\u5f00\u53d1\u8005\u7528\u6237\u7fa4\u7684\u4e13\u4e1a\u9700\u6c42\uff1b\u7b2c\u4e09\uff0c\u5b83\u7528\u5f00\u6e90\u7b56\u7565\u964d\u4f4e\u4e86\u4fe1\u4efb\u95e8\u69db\uff0c\u5bf9\u4e8e\u88ab Options+ \u9690\u79c1\u653f\u7b56\u9a9a\u6270\u8fc7\u7684\u7528\u6237\uff0c\u8fd9\u662f\u4e00\u79cd\u660e\u786e\u7684\u653f\u6cbb\u8868\u6001\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u51b7\u9759\u6765\u770b\uff0c\u5176\u5ba3\u79f0\u7684\u201c\u66ff\u4ee3\u201d\u76ee\u524d\u4ecd\u6709\u6c34\u4f4d\u5dee\u3002\u7f3a\u5931\u7684 Flow \u548c\u6309\u5e94\u7528\u914d\u7f6e\uff0c\u610f\u5473\u7740\u5b83\u5c1a\u672a\u8986\u76d6\u7f57\u6280\u6838\u5fc3\u7684\u8de8\u8bbe\u5907\u534f\u4f5c\u573a\u666f\u548c\u91cd\u5ea6\u9f20\u6807\u7528\u6237\u7684\u5de5\u4f5c\u6d41\uff0c\u8fd9\u4f1a\u8ba9\u5b83\u5361\u5728\u201c\u6781\u5ba2\u73a9\u5177\u201d\u5230\u201c\u751f\u4ea7\u5de5\u5177\u201d\u7684\u8fc7\u6e21\u533a\u3002\u6b64\u5916\uff0cHID++ \u63a5\u6536\u5668\u72ec\u5360\u51b2\u7a81\uff08\u9700\u624b\u52a8\u9000\u51fa\u5b98\u65b9\u8f6f\u4ef6\uff09\u4e5f\u66b4\u9732\u4e86\u5176\u5728\u9a71\u52a8\u5c42\u7684\u539f\u751f\u751f\u6001\u5c1a\u672a\u6210\u719f\u3002\u8be5\u9879\u76ee\u7684\u771f\u6b63\u672a\u6765\u4e0d\u5728\u4e8e\u529f\u80fd\u8ffd\u5e73\u5b98\u65b9\uff0c\u800c\u5728\u4e8e\u4f9d\u6258\u793e\u533a\uff0c\u53d1\u5c55\u51fa\u57fa\u4e8e HID++ \u7684\u811a\u672c\u5316\u6269\u5c55\u5c42\uff0c\u8ba9\u201c\u9f20\u6807\u534f\u8bae\u201d\u6210\u4e3a\u7c7b\u4f3c\u952e\u76d8\u56fa\u4ef6 QMK \u90a3\u6837\u7684\u5f00\u653e\u751f\u6001\u2014\u2014\u90a3\u65f6\u5b83\u624d\u7b97\u5f7b\u5e95\u5b8c\u6210\u4e86\u5bf9\u5b98\u65b9\u5de5\u5177\u7684\u964d\u7ef4\u6253\u51fb\u3002\u76ee\u524d\uff0c\u5b83\u662f\u6781\u4f73\u7684\u6280\u672f\u8303\u672c\uff0c\u4f46\u4ecd\u9700\u65f6\u95f4\u9a8c\u8bc1\u80fd\u5426\u6210\u4e3a\u5b8c\u5168\u4f53\u66ff\u4ee3\u54c1\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">OpenLogi<\/span>\n                <\/div>\n<div class=\"comment-content\">A native, local-first alternative to Logitech Options+, written in Rust. Remap buttons, drive DPI and SmartShift over HID++ \u2014 no account, no telemetry.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hi everyone!<\/p>\n<p><a href=\"https:\/\/www.producthunt.com\/@aprilnea\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aprilnea<\/a> built something surprisingly awesome for Logitech hardware!<\/p>\n<p>OpenLogi is an open-source Rust alternative to Options+ that talks directly to Logitech hardware over HID++ and UVC. It runs natively on macOS, Windows, and Linux, with the controls you\u2019d expect from the official app and quite a few power-user extras.<\/p>\n<p>The <a href=\"https:\/\/openlogi.org\/#showcase\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">setup<\/a> is nicely straightforward. Most things can be changed from the GUI, while the underlying config is just a plain config.toml file you can inspect, edit, or copy between machines. <strong>No account or telemetry required.<\/strong><\/p>\n<p>One small heads-up: quit Options+ before launching OpenLogi. Both apps need direct access to the same HID++ receiver, so running them together would naturally conflict.<\/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>Cool product! I also launched a tool today \u2014 good luck with your 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\/@aprilnea\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aprilnea<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@zaczuo\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@zaczuo<\/a>&nbsp;Supporting macOS, Windows, and Linux from the same project is impressive. The native approach makes it especially interesting for Linux users.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Product Hunt \ud83d\udc4b I&#8217;m AprilNEA, the person behind OpenLogi.<\/p>\n<\/p>\n<p>I bought an MX Master because the hardware is genuinely great. Then I installed Options+ \u2014 an account prompt, a background service, telemetry, several hundred MB \u2014 all so I could change what the thumb button does. My mouse settings shouldn&#8217;t need a cloud round-trip.<\/p>\n<\/p>\n<p>So I wrote OpenLogi: a native Rust app that talks to Logitech devices directly over HID++. Remap every button (44 built-in actions), set DPI presets, toggle SmartShift, battery for every paired device. Bolt, Unifying, Lightspeed, Bluetooth or USB \u2014 macOS, Windows and Linux.<\/p>\n<p>Two things I care about:<\/p>\n<ul>\n<li>\n<p><strong>Your config is a file you own.<\/strong> Everything lives in a plain config.toml. Read it, edit it, diff it, copy it between machines. No sync service, because there&#8217;s no account to sync to.<\/p>\n<\/li>\n<li>\n<p><strong>Nothing leaves your machine.<\/strong> No telemetry, and the update check is off by default.<\/p>\n<\/li>\n<\/ul>\n<p>What&#8217;s honestly <em>not<\/em> there yet: per-app profiles (in progress), an Options+ importer, and Flow. If those are dealbreakers, it&#8217;s not a full replacement yet \u2014 the roadmap is public.<\/p>\n<\/p>\n<p>If you use a Logitech mouse, tell me which model and what you&#8217;d bind to which button.<\/p>\n<p>(Heads-up: quit Options+ \/ Solaar first \u2014 only one app can own a receiver at a time.)<\/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>Love that this is local-first with zero telemetry and no account, most peripheral software treats a mouse config as an excuse to phone home, so building it in Rust as open source flips that whole model on its head.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This is amazing, love finally having Linux support as well instead of having to boot to Mac to change configs. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\">Awesome Xuam! Congrats on the launch<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#5<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/5XZCCZGFQOKTU2\" class=\"app-title\">Claude Academy<\/a><\/p>\n<div class=\"one-liner\">The Official Learning Hub by Anthropic<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">150<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong><\/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\/029adaca-d2ba-45f1-9a37-885dbada9602.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\/146a2651-d129-4b73-a6fa-2dab58793110.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\/2df73ff7-09f3-47fc-8c8b-133d60217392.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\/3ae4ed29-b8b7-47d1-9c3a-36b4f5f3393a.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\">Education<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">Online Learning<\/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>\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><\/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 Academy<\/span>\n                <\/div>\n<div class=\"comment-content\">Master the entire Claude stack\u2014from basic prompting and AI fluency to building complex multi-agent workflows. Claude Academy brings self-paced courses, developer tutorials, and official certification paths into a single interactive learning environment. Start learning at academy.claude.com!<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey PH fam \ud83d\udc4f<\/p>\n<\/p>\n<p>Excited to hunt <strong>Claude Academy<\/strong> by Anthropic today!<\/p>\n<\/p>\n<p>As models shift from simple chat to full agentic workflows, the hardest part isn&#8217;t prompting &#8211; it&#8217;s knowing how to build, delegate, and manage context. Claude Academy brings all of Anthropic\u2019s official training into one free platform.<\/p>\n<\/p>\n<p><strong>What stood out to me:<\/strong> <\/p>\n<p>\u2192 <strong>Agentic Architecture:<\/strong> Real guidance on Claude Code, subagents, and MCP <\/p>\n<p>\u2192 <strong>Role-Based Tracks:<\/strong> Specific paths for developers, creative pros, and leaders <\/p>\n<p>\u2192 <strong>100% Free:<\/strong> Self-paced courses, cookbooks, and certifications for everyone<\/p>\n<\/p>\n<p>Check it out at <a href=\"http:\/\/academy.claude.com\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">academy.claude.com<\/a>.<\/p>\n<\/p>\n<p><strong>Question: <\/strong>Which topic are you most excited to master first- Claude Code, MCP, or multi-agent workflows? \ud83d\udc47<\/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>multi-agent workflows for me, no contest. I run Claude Code daily and the part I still fumble through by trial and error is knowing when to split work across subagents vs just doing it in one long context &#8211; I&#8217;ve under-split and wasted context, and over-split and spent more time coordinating handoffs than the task was worth. if the role-based track for developers has a real answer to that instead of just &#8220;here&#8217;s how subagents work&#8221; that alone would be worth the sign-up. does it get into the judgment calls or mostly the mechanics of setting it up?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\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\/O3BHFNXR7NLXF7\" class=\"app-title\">Yatko<\/a><\/p>\n<div class=\"one-liner\">The download button Github forgot to add<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">112<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Yatko \u5c06\u4efb\u610f\u516c\u5f00 GitHub \u4ed3\u5e93\u7684\u590d\u6742 Releases \u9875\u9762\uff0c\u4e00\u952e\u8f6c\u6362\u4e3a\u6839\u636e\u8bbf\u5ba2\u64cd\u4f5c\u7cfb\u7edf\u4e0e\u82af\u7247\u67b6\u6784\u81ea\u52a8\u5339\u914d\u6b63\u786e\u5b89\u88c5\u5305\u7684\u6781\u7b80\u4e0b\u8f7d\u9875\uff0c\u901a\u8fc7\u66ff\u6362\u57df\u540d\u5373\u53ef\u76f4\u8fbe\u76ee\u6807\u4e8c\u8fdb\u5236\u6587\u4ef6\uff0c\u6781\u5927\u964d\u4f4e\u975e\u6280\u672f\u7528\u6237\u4e0e\u8de8\u5e73\u53f0\u5f00\u53d1\u8005\u7684\u4e0b\u8f7d\u95e8\u69db\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\/6931ec3c-e1ef-40c0-97e8-b006d00f9105.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\/2539ad8a-9d13-4c3c-922c-451cc9987fd2.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\/a2d670db-fbb2-4336-8020-a3e359bb053e.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\/1a6e8323-5566-4a43-80fa-df96b272b8c2.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\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">GitHub<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u4e0b\u8f7d\u52a0\u901f<\/span><br \/>\n            <span class=\"tag\">GitHub\u589e\u5f3a<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u8de8\u5e73\u53f0\u5206\u53d1<\/span><br \/>\n            <span class=\"tag\">\u6587\u4ef6\u5339\u914d<\/span><br \/>\n            <span class=\"tag\">\u94fe\u63a5\u8f6c\u6362<\/span><br \/>\n            <span class=\"tag\">\u7528\u6237\u4f53\u9a8c\u4f18\u5316<\/span><br \/>\n            <span class=\"tag\">\u5b89\u88c5\u5305\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u6d4f\u89c8\u5668\u63d2\u4ef6\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\u8ba4\u53ef\u201c\u57df\u540d\u66ff\u6362\u201d\u5de7\u601d\uff0c\u8ba4\u4e3a\u89e3\u51b3\u4e86GitHub\u4e0b\u8f7d\u75db\u70b9\u3002\u6709\u6548\u95ee\u9898\uff1a1. \u9875\u9762\u5361\u5728\u201cLoading release\u2026\u201d\u4e14\u65e0\u7f51\u7edc\u8bf7\u6c42\uff0c\u5f00\u53d1\u8005\u56de\u5e94\u662f\u540e\u7aef\u7f13\u5b58\u95ee\u9898\u5df2\u4fee\u590d\uff0c\u4e14\u65e0release\u7684\u4ed3\u5e93\u4f1a\u663e\u793a\u63d0\u793a\uff1b2. \u8be2\u95ee\u591a\u4e8c\u8fdb\u5236\/\u975e\u6807\u51c6\u547d\u540d\u5904\u7406\u903b\u8f91\uff0c\u5b98\u65b9\u56de\u590d\u8be6\u7ec6\u8bf4\u660e\u89e3\u6790\u4e0e\u6392\u540d\u89c4\u5219\u53ca\u53c2\u6570\u8986\u76d6\u3002\u53e6\u6709\u62c9\u7968\u5f0f\u8bc4\u8bba\u5e72\u6270\uff0c\u6574\u4f53\u53cd\u9988\u79ef\u6781\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                Yatko \u7684\u5207\u5165\u70b9\u7cbe\u51c6\u4e14\u514b\u5236\u2014\u2014\u5b83\u6ca1\u6709\u8bd5\u56fe\u91cd\u5efa\u8f6f\u4ef6\u5206\u53d1\u534f\u8bae\uff0c\u800c\u662f\u505a\u4e86\u4e00\u5c42\u201c\u8bed\u4e49\u7ffb\u8bd1\u5c42\u201d\uff1a\u5c06 GitHub \u7684\u4ed3\u5e93\/Release \u4fe1\u606f\u7ffb\u8bd1\u6210\u4eba\u7c7b\u76f4\u89c9\u7684\u201c\u4e00\u4e2a\u6309\u94ae\u201d\u3002\u5176\u57df\u540d\u66ff\u6362\u673a\u5236\uff08github.com\u2192yatko.app\uff09\u662f\u6781\u4f18\u96c5\u7684\u51b7\u542f\u52a8\u7b56\u7565\uff0c\u5229\u7528\u7528\u6237\u5df2\u6709\u7684 URL \u8bb0\u5fc6\uff0c\u964d\u4f4e\u7406\u89e3\u6210\u672c\uff0c\u662f\u5178\u578b\u7684\u201c\u6760\u6746\u5f0f\u521b\u65b0\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u51b7\u9759\u5ba1\u89c6\uff0c\u5176\u62a4\u57ce\u6cb3\u5e76\u4e0d\u6df1\u3002\u6838\u5fc3\u7684\u8d44\u4ea7\u89e3\u6790\u4e0e\u5339\u914d\u903b\u8f91\u672c\u8d28\u662f\u6b63\u5219\u4e0e\u547d\u540d\u89c4\u8303\u7684\u5bf9\u6297\uff0cGitHub \u751f\u6001\u4e2d\u5df2\u6709\u5982 `gh` CLI\u3001`wget` \u811a\u672c\u3001\u7b2c\u4e09\u65b9\u4e0b\u8f7d\u7ba1\u7406\u5668\u7b49\u66ff\u4ee3\u65b9\u6848\uff0c\u4e14\u5927\u578b\u9879\u76ee\uff08\u5982 Node.js\u3001Python\uff09\u5f80\u5f80\u81ea\u5e26\u5b98\u65b9\u5b89\u88c5\u5f15\u5bfc\u3002Yatko \u89e3\u51b3\u7684\u201c\u9009\u62e9\u56f0\u96be\u201d\u5728\u5f00\u53d1\u8005\u7fa4\u4f53\u4e2d\u53ef\u80fd\u53ea\u662f\u201c\u8f7b\u5fae annoyance\u201d\uff0c\u800c\u975e\u521a\u9700\u2014\u2014\u8bc4\u8bba\u4e2d\u771f\u6b63\u4ed8\u8d39\u7ea7\u75db\u70b9\uff08\u5982\u4f01\u4e1a\u5185\u7f51\u5206\u53d1\u3001\u7b7e\u540d\u6821\u9a8c\u3001\u955c\u50cf\u52a0\u901f\uff09\u5e76\u672a\u89e6\u53ca\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u66f4\u5173\u952e\u7684\u98ce\u9669\u5728\u4e8e\u5176\u5408\u6cd5\u6027\u8fb9\u754c\uff1a\u4f5c\u4e3a\u4e2d\u95f4\u5c42\uff0cYatko \u5e76\u672a\u4e0e GitHub \u6216\u9879\u76ee\u7ef4\u62a4\u8005\u5efa\u7acb\u5b98\u65b9\u5408\u4f5c\u5173\u7cfb\uff0c\u4e00\u65e6\u6d41\u91cf\u589e\u5927\uff0c\u53ef\u80fd\u9762\u4e34 API \u6ee5\u7528\u9650\u5236\u3001\u5546\u6807\u4e89\u8bae\uff0c\u6216\u662f\u88ab\u4e0a\u6e38\u9879\u76ee\u4ee5\u201c\u8bef\u5bfc\u7528\u6237\u201d\u4e3a\u7531\u8981\u6c42\u505c\u6b62\u89e3\u6790\u3002\u5176\u524d\u7aef\u201c\u4e00\u952e\u4e0b\u8f7d\u201d\u4f53\u9a8c\u867d\u597d\uff0c\u5374\u53ef\u80fd\u524a\u5f31\u7528\u6237\u5bf9\u9879\u76ee\u6587\u6863\u3001\u5b89\u5168\u6821\u9a8c\u7b49\u5fc5\u8981\u6d41\u7a0b\u7684\u5173\u6ce8\u2014\u2014\u8fd9\u79cd\u201c\u8fc7\u5ea6\u7b80\u5316\u201d\u5728\u5b89\u5168\u654f\u611f\u573a\u666f\uff08\u5982\u4e0b\u8f7d\u7f16\u8bd1\u5de5\u5177\u94fe\uff09\u53cd\u800c\u53ef\u80fd\u6210\u4e3a\u653b\u51fb\u9762\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u957f\u8fdc\u770b\uff0cYatko \u82e5\u505c\u7559\u5728\u201c\u4e0b\u8f7d\u94fe\u63a5\u7f8e\u5316\u5668\u201d\u5c42\u9762\uff0c\u4ef7\u503c\u6709\u9650\u3002\u771f\u6b63\u7684\u60f3\u8c61\u7a7a\u95f4\u5728\u4e8e\u6210\u4e3a\u201c\u5f00\u6e90\u8f6f\u4ef6\u5206\u53d1\u7684\u7edf\u4e00\u5165\u53e3\u201d\uff1a\u82e5\u80fd\u6c89\u6dc0\u51fa\u8de8\u4ed3\u5e93\u7684\u8d44\u4ea7\u547d\u540d\u89c4\u8303\u6570\u636e\u5e93\uff0c\u5411\u4e0a\u6e38\u63d0\u4ea4\u6807\u51c6\u5316\u5efa\u8bae\uff0c\u6216\u63a8\u51fa\u9762\u5411\u4f01\u4e1a\u7684\u79c1\u6709\u5316\u7248\u672c\uff08\u5185\u7f51 Release \u955c\u50cf+\u7b7e\u540d\u9a8c\u8bc1\uff09\uff0c\u624d\u80fd\u4ece\u201c\u8ba8\u5de7\u5de5\u5177\u201d\u8fdb\u5316\u4e3a\u201c\u57fa\u7840\u8bbe\u65bd\u201d\u3002\u5f53\u524d\u7248\u672c\u7684\u8bc4\u8bba\u533a\u5145\u65a5\u7740\u4e92\u5938\u4e0e\u6c42\u52a9\u5f0f\u4e92\u52a8\uff0c\u7f3a\u4e4f\u771f\u5b9e\u7684\u7528\u6237\u7559\u5b58\u6570\u636e\u6216\u4ed8\u8d39\u610f\u613f\u9a8c\u8bc1\uff0c\u5efa\u8bae\u56e2\u961f\u4f18\u5148\u89e3\u51b3\u51b7\u542f\u52a8\u7a33\u5b9a\u6027\uff0c\u5e76\u660e\u786e\u4e0e GitHub \u7684\u5171\u751f\u800c\u975e\u5bc4\u751f\u5173\u7cfb\uff0c\u5426\u5219\u6781\u6613\u88ab\u5b98\u65b9\u4e00\u4e2a\u653f\u7b56\u66f4\u65b0\u5c31\u51fb\u7a7f\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\">Yatko<\/span>\n                <\/div>\n<div class=\"comment-content\">Yatko (yatko.app) turns any public Github repo into clean download links that pick the right release asset for each visitor&#8217;s OS and architecture. Swap the domain \u2014 one click to the right binary.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>For a lot of beginners, Github can be quite complex and intimidating. And even for the advanced people, maneuvering through the Github Releases page to find the right installation file for their OS and architecture.<\/p>\n<p>I&#8217;ve created Yatko for that reason. Yatko serves you the right installation file for your OS and architecuture. With Yatko, every installation is just one download button away. All you need to do is enter the name of the repo which you want to install on the frontpage, and Yatko will serve the download link to you directly.<\/p>\n<p>That&#8217;s not even the best feature of Yatko. Just change the domain name of any public Github repo to a Yatko, for example github.com\/cli\/cli to yatko.app\/cli\/cli and you&#8217;ll be taken straight to a much simpler installation procedure.<\/p>\n<p>Yatko is open source as well! So check it out and please let me know if I can make any improvements to it. Contributions are welcome as well!<\/p>\n<p>Website: <a href=\"https:\/\/yatko.app\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/yatko.app<\/a><\/p>\n<p>Repo link: <a href=\"https:\/\/github.com\/argval\/yatko\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/github.com\/argval\/yatko<\/a> (Make sure to star it if you like 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>Cool product! I just launched my own image compression tool today too \u2014 check it out and good luck with your launch! \ud83d\ude80<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@argval\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@argval<\/a>&nbsp;The domain swap is a clever shortcut. Going from a GitHub repo straight to the right download page saves a lot of clicking. \ud83d\udc4c<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\/@argval\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@argval<\/a>&nbsp;\ud83e\udd1d Every business has a unique story. What&#8217;s the biggest goal you&#8217;re working toward this quarter?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\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 the domain swap on two repos just now, <a href=\"https:\/\/yatko.app\/cli\/cli\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">yatko.app\/cli\/cli<\/a> and yatko.app\/argval\/yatko, and both sit on &#8220;Loading release\u2026&#8221; forever. Chrome 151 on macOS, and the network panel shows no request going out to <a href=\"https:\/\/api.github.com\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">api.github.com<\/a> at all, so it&#8217;s hanging before the fetch rather than getting rate limited. I&#8217;d look at the OS and arch detection path, that&#8217;s the only thing running ahead of the call. Rough one to hit on launch day, flagging it early so you can catch 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\/@asadmalik901\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@asadmalik901<\/a>&nbsp;Hey Asad, thanks for flagging this issue.<\/p>\n<p>It does not call&nbsp;<a href=\"http:\/\/api.github.com\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">api.github.com<\/a>&nbsp;from the browser because that fetch happens on our backend. The caching issue was real though. Pages were re-rendering cold behind&nbsp;`Loading release\u2026` page, and that is fixed now.&nbsp;`cli\/cli`&nbsp;was that same issue; it just felt stuck until the server finished.<\/p>\n<p>Also, Yatko only works for GitHub repos that actually have releases.&nbsp;argval\/yatko&nbsp;does not have any yet, so that one should show &#8220;No releases yet.&#8221;<\/p>\n<p>Let me know if you are facing any other problem; we could have a chat over on LinkedIn or Twitter for the same.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\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>Best of luck in the launch day!<\/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\/@alexcloudstar\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alexcloudstar<\/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>This is so smart! I&#8217;m a beginner myself, this thought once hit me but I never start to solve it because I thought maybe professional coders know how to download exactly and I&#8217;m just being stupid&#8230;&#8230;I like this tool!<\/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\/@mindyorzi\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mindyorzi<\/a>&nbsp;Glad you liked it! It&#8217;s nice that you had an idea along similar lines as well. If you want any feature to be added in Yatko, please feel free to do so and raise PRs to its Github, Yatko is open-source. (<a href=\"https:\/\/github.com\/argval\/yatko\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/github.com\/argval\/yatko<\/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\">\n<p>This fixes one of those tiny GitHub UX problems that almost everyone has run into at some point. The domain-swap idea is particularly clever \ud83d\ude42 How do you handle repos with unusual release naming or multiple valid binaries for the same OS\/architecture?<\/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\/@andrasczeizel\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"andrasczeizel\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@andrasczeizel<\/a> &nbsp;Hi Andras! Great question! I went through a lot of trial and error on exactly this. It doesn&#8217;t rely on release tag names; we parse asset filenames (platform\/arch keywords, extensions, and some normalisation for odd naming). When multiple binaries match the same OS\/arch, we rank them (vanilla &gt; debug\/profile, explicit tags &gt; generic names) and expose overrides like&nbsp;`?prefer=deb`&nbsp;or&nbsp;`?libc=musl`. The landing page also lists every asset if you&#8217;d rather pick yourself.<\/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\">#7<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/2LNRTIPEFZQPWX\" class=\"app-title\">Plask<\/a><\/p>\n<div class=\"one-liner\">Have little ducks show how deep you dive on your Apple Watch<\/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>Plask\u5c06Apple Watch\u7684\u6df1\u5ea6\u4f20\u611f\u5668\u53d8\u6210\u5fae\u578b\u6c34\u65cf\u5267\u9662\uff0c\u7528\u50cf\u7d20\u6a61\u76ae\u9e2d\u5728\u624b\u8155\u4e0a\u5b9e\u65f6\u5448\u73b0\u4f60\u7684\u6f5c\u6c34\u6df1\u5ea6\u3001\u6c34\u6e29\u7b49\u6570\u636e\uff0c\u4e3a\u4e25\u8083\u7684\u6f5c\u6c34\u5de5\u5177\u589e\u6dfb\u8da3\u5473\u4e92\u52a8\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                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/cfb9fd1b-818e-4a0e-9ab2-f2d73cf2d010.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\/75a33457-f0b7-4e49-9d2e-3fba38b9b60a.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\/884bb4a0-391c-48ba-b669-c39850e8b5e2.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\/0c514936-3055-4258-9d01-60485aee535f.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\/6ff372dd-7415-4539-87ac-a16688d66ec2.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\/4e8f2a59-ad82-438b-ae3c-f35a3fd5932c.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\/146ef15b-2b27-4772-a045-266a44495b23.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\/32b3aaa8-7337-4de1-bdc8-f1311e20c77d.gif?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\">Apple Watch<\/span><br \/>\n            <span class=\"tag\">Funny<\/span><br \/>\n            <span class=\"tag\">Art<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Apple Watch\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u6df1\u5ea6\u4f20\u611f\u5668<\/span><br \/>\n            <span class=\"tag\">\u50cf\u7d20\u827a\u672f<\/span><br \/>\n            <span class=\"tag\">\u6f5c\u6c34\u5a31\u4e50<\/span><br \/>\n            <span class=\"tag\">\u8da3\u5473\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u72ec\u7acb\u5f00\u53d1<\/span><br \/>\n            <span class=\"tag\">\u624b\u8868\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u5065\u5eb7\u76d1\u6d4b\u884d\u751f<\/span><br \/>\n            <span class=\"tag\">\u4f11\u95f2\u6e38\u620f<\/span><br \/>\n            <span class=\"tag\">\u8ba2\u9605\u5236\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\u8d5e\u8d4f\u5176\u5c06\u6df1\u5ea6\u4f20\u611f\u5668\u7528\u4e8e\u975e\u4e25\u8083\u573a\u666f\u7684\u65b0\u610f\uff0c\u7279\u522b\u8ba4\u53ef\u624b\u8868\u5165\u6c34\u81ea\u52a8\u542f\u52a8\u529f\u80fd\u3002\u6709Series 9\u7528\u6237\u8be2\u95ee\u65e0\u4f20\u611f\u5668\u65f6\u7684\u4f53\u9a8c\uff0c\u5f00\u53d1\u8005\u56de\u5e94\u5f53\u524d\u4ec5\u652f\u6301\u6f14\u793a\u6a21\u5f0f\uff0c\u4f46\u4e0b\u7248\u672c\u5c06\u5e26\u6765\u65e0\u9700\u4f20\u611f\u5668\u7684\u8da3\u5473\u529f\u80fd\u3002\u6574\u4f53\u8bc4\u8bba\u6c1b\u56f4\u79ef\u6781\uff0c\u671f\u5f85\u66f4\u591a\u573a\u666f\u66f4\u65b0\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                Plask\u7684\u806a\u660e\u4e4b\u5904\u5728\u4e8e\u5b83\u7cbe\u51c6\u5730\u5207\u5165\u4e86\u201c\u786c\u4ef6\u5197\u4f59\u201d\u8fd9\u4e2a\u88ab\u5ffd\u89c6\u7684\u75db\u70b9\u2014\u2014Apple Watch Ultra\u548cSeries 10+\u642d\u8f7d\u4e86\u4e13\u4e1a\u7ea7\u6df1\u5ea6\u4f20\u611f\u5668\uff0c\u4f4699%\u7684\u7528\u6237\u65e2\u4e0d\u4f1a\u6f5c\u6c34\u4e5f\u4e0d\u770b\u6f5c\u6c34\u65e5\u5fd7\uff0c\u8fd9\u4e2a\u786c\u4ef6\u51e0\u4e4e\u6210\u4e86\u7535\u5b50\u6446\u8bbe\u3002Plask\u5c06\u4e25\u8083\u7684\u4f20\u611f\u5668\u6570\u636e\u8f6c\u5316\u4e3a\u50cf\u7d20\u827a\u672f\u548c\u8352\u8bde\u5e7d\u9ed8\uff08\u745e\u5178\u7687\u5bb6\u6d74\u573a\u8ba4\u8bc1\u3001\u9cb1\u9c7c\u7f50\u5934\uff09\uff0c\u672c\u8d28\u4e0a\u662f\u5728\u4e3a\u5197\u4f59\u786c\u4ef6\u521b\u9020\u65b0\u7684\u60c5\u611f\u4ef7\u503c\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u4ea7\u54c1\u7b56\u7565\u770b\uff0c\u8fd9\u662f\u4e00\u6b21\u6559\u79d1\u4e66\u7ea7\u7684\u201c\u529f\u80fd\u964d\u7ef4\u201d\uff1a\u4e0d\u8ffd\u6c42\u6570\u636e\u51c6\u786e\u6027\u6216\u4e13\u4e1a\u5ea6\uff0c\u800c\u662f\u5c06\u6df1\u5ea6\u3001\u6c34\u6e29\u8fd9\u4e9b\u7269\u7406\u91cf\u8f6c\u5316\u4e3a\u60c5\u7eea\u53cd\u9988\u3002\u514d\u8d39\u7248\u63d0\u4f9b\u57fa\u7840\u9ec4\u8272\u9e2d\u5b50\uff0c1.99\u7f8e\u5143\u4e70\u65ad\u89e3\u9501\u5168\u90e8\u573a\u666f\uff0c\u65e0\u8ba2\u9605\u65e0\u8d26\u53f7\u65e0\u6570\u636e\u6536\u96c6\uff0c\u5728\u5f53\u4eca\u8ba2\u9605\u6cdb\u6ee5\u7684App Store\u91cc\u663e\u5f97\u8fd1\u4e4e\u56fa\u6267\u2014\u2014\u4f46\u6b63\u662f\u8fd9\u79cd\u514b\u5236\u6784\u6210\u4e86\u4ea7\u54c1\u7684\u4fe1\u4efb\u57fa\u7840\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u6f5c\u5728\u98ce\u9669\u540c\u6837\u660e\u663e\uff1a\u6838\u5fc3\u529f\u80fd\u5b8c\u5168\u4f9d\u8d56\u7279\u5b9a\u786c\u4ef6\uff08Ultra\u548cSeries 10+\uff09\uff0c\u7528\u6237\u57fa\u6570\u5929\u82b1\u677f\u6781\u4f4e\uff1b\u800c\u6f14\u793a\u6a21\u5f0f\uff08\u8f6c\u6570\u7801\u8868\u51a0\u6a21\u62df\u6c34\u6df1\uff09\u672c\u8d28\u4e0a\u662f\u4e2a\u7c97\u7cd9\u7684\u6e38\u620f\uff0c\u65e0\u6cd5\u5f62\u6210\u771f\u6b63\u7684\u66ff\u4ee3\u4f53\u9a8c\u3002\u5f00\u53d1\u8005\u63d0\u5230\u4e0b\u4e00\u7248\u672c\u5c06\u52a0\u5165\u4e0d\u4f9d\u8d56\u4f20\u611f\u5668\u7684\u529f\u80fd\uff0c\u8fd9\u6697\u793a\u4e86\u4ea7\u54c1\u5728\u5c1d\u8bd5\u7834\u5708\uff0c\u4f46\u65b9\u5411\u5c1a\u4e0d\u660e\u786e\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u771f\u6b63\u7684\u4ef7\u503c\u6216\u8bb8\u4e0d\u5728\u4e8ePlask\u672c\u8eab\uff0c\u800c\u5728\u4e8e\u5b83\u9a8c\u8bc1\u4e86\u4e00\u4e2a\u53ef\u80fd\u6027\uff1a\u5f53\u667a\u80fd\u624b\u8868\u786c\u4ef6\u8d8b\u540c\u3001\u5065\u5eb7\u76d1\u6d4b\u5185\u5377\u6210\u7ea2\u6d77\u65f6\uff0c\u7528\u5e7d\u9ed8\u548c\u53cd\u5e38\u7406\u7684\u65b9\u5f0f\u91cd\u65b0\u5b9a\u4e49\u4f20\u611f\u5668\u7528\u9014\uff0c\u53ef\u80fd\u662f\u4e00\u6761\u88ab\u4f4e\u4f30\u7684\u5dee\u5f02\u5316\u8def\u5f84\u3002\u5b83\u6ca1\u6709\u89e3\u51b3\u4efb\u4f55\u201c\u6b63\u7ecf\u201d\u95ee\u9898\uff0c\u4f46\u5b83\u8ba9\u4e00\u5757\u6602\u8d35\u7684\u624b\u8868\u5728\u6d74\u7f38\u91cc\u91cd\u65b0\u53d8\u5f97\u597d\u73a9\u2014\u2014\u8fd9\u672c\u8eab\u5c31\u6784\u6210\u4e86\u4e00\u79cd\u53cd\u8bbd\u5f0f\u7684\u4ea7\u54c1\u5ba3\u8a00\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\">Plask<\/span>\n                <\/div>\n<div class=\"comment-content\">Plask turns your Apple Watch into a tiny aquatic theatre: pixel-art rubber ducks that dive when you do, your real depth on screen, and a duck or ten. With premium, you get sharks, the Loch Ness-monster, a castaway, surstr\u00f6mming, and more.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">I made my Apple Watch&#8217;s depth sensor do something deeply unserious.<\/p>\n<p>Apple ships a serious dive instrument in the Ultra and Series 10+ &#8211; and most owners never use it once. Plask points it at the bathtub: pixel-art rubber ducks swim on your wrist, and because the depth data is real, they dive when you do &#8211; live depth, max depth, water temperature. On depth-gauge watches it even launches itself the moment your wrist goes under.<\/p>\n<p>There&#8217;s also Kungliga Badverket, a fictional Royal Swedish Bath Authority that issues 42 pixel-art certificates for your bathing career &#8211; first splash, dips below five degrees, and stranger things. Earn enough and the duck gets a hat.<\/p>\n<p>Free with the yellow ducks, forever. One purchase ($1.99 &#8211; no subscription, no account, it collects nothing) unlocks nine more scenes: sharks, jellyfish, aliens, Loch Ness, and surstr\u00f6mming &#8211; fermented Swedish herring, which felt right.<\/p>\n<p>Built solo in Gothenburg, Sweden. No bathtub? Demo mode drives the water with the Digital Crown.<\/p>\n<p>Scene ideas welcome &#8211; the engine makes new ones cheap, and Midsommar is already on the list.<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@danni_efraim\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@danni_efraim<\/a>&nbsp;Such a cool app! Love those little moments when you look at something and just can\u2019t help but smile. \ud83d\ude0a<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@danni_efraim\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@danni_efraim<\/a>&nbsp;Awesome Launch Danni!<\/p>\n<p>Auto-launching when your wrist hits water on depth-gauge models is a great touch.<br \/>Curious, What&#8217;s next on the scene list after Midsommar?<\/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\/@danni_efraim\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@danni_efraim<\/a>&nbsp;loooove<\/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>love the idea of actually using the depth sensor for something other than diving logs nobody looks at twice. question though &#8211; I&#8217;ve got a regular Series 9, not an Ultra or Series 10+. is demo mode basically the whole experience for me (crown-driven water, no real depth data at all) or is there some lesser version that still reacts to being near water\/humidity even without the proper sensor<\/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;Hi! For now, the main feature is the water and depth detection that comes with the sensors on the newer watches and Ultras. Older watches will have to settle with the demo mode &#8211; but it&#8217;s perfectly possible to open the demo mode, turn on the water lock, and go for a swim! You just won&#8217;t get real depth measurement.<\/p>\n<\/p>\n<p>The next version will bring a fun feature that doesn&#8217;t require sensors or waters, so keep an eye 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<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Best of luck in the launch day!<\/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\/@alexcloudstar\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alexcloudstar<\/a>&nbsp;Thanks, Alex! It&#8217;s my first launch on PH, and honestly, I&#8217;m really happy &#8211; it&#8217;s going well above my expectations!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\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>Thank you, <\/p>\n<p>We need more fun apps. I miss the Talking Moose, Oscar the Grouch, MacPuke, Racter&#8230; And what else was there for the old Mac? Now everything is so effin\u2019 serious\u2026<\/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\/@claes\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@claes<\/a>&nbsp;I agree wholeheartedly! More fun!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\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\/DZC2H6TKFBDYCC\" class=\"app-title\">KanaSensei<\/a><\/p>\n<div class=\"one-liner\">Read Japanese kana in two weeks<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">96<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>KanaSensei\u662f\u4e00\u6b3e\u4e13\u6ce8\u4e8e\u65e5\u8bed\u5047\u540d\u5b66\u4e60\u7684\u6781\u7b80Web\u5e94\u7528\uff0c\u901a\u8fc7\u81ea\u9002\u5e94\u7ec3\u4e60\u3001\u56fe\u7247\u8bb0\u5fc6\u6cd5\u548c\u8fdb\u5ea6\u8ffd\u8e2a\uff0c\u5e2e\u52a9\u7528\u6237\u5728\u5b9e\u9645\u573a\u666f\u4e2d\u5feb\u901f\u653b\u514b\u5e73\u5047\u540d\u548c\u7247\u5047\u540d\u7684\u9605\u8bfb\u96be\u9898\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/96af752d-3bb7-4c2d-99bc-0ca1068d9243.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\/7ab3173c-3c21-428d-8e19-c864256a40bb.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\/d270a043-282e-4e97-97e7-a170ae33153f.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\/12bce76b-5b05-4196-9d5d-a6e43128cc09.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\/68706225-6579-496c-9931-edec9a794990.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\/b8daa62b-0099-465f-88c0-b137f577517c.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\/1e239eca-fdef-46f2-9618-640dd287911d.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\">Education<\/span><br \/>\n            <span class=\"tag\">Languages<\/span><br \/>\n            <span class=\"tag\">Online Learning<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u65e5\u8bed\u5b66\u4e60<\/span><br \/>\n            <span class=\"tag\">\u5047\u540d\u7ec3\u4e60<\/span><br \/>\n            <span class=\"tag\">\u5e73\u5047\u540d<\/span><br \/>\n            <span class=\"tag\">\u7247\u5047\u540d<\/span><br \/>\n            <span class=\"tag\">\u8bb0\u5fc6\u6cd5<\/span><br \/>\n            <span class=\"tag\">Web\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u81ea\u9002\u5e94\u5b66\u4e60<\/span><br \/>\n            <span class=\"tag\">\u8bed\u8a00\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u6781\u7b80\u8bbe\u8ba1<\/span><br \/>\n            <span class=\"tag\">\u8fdb\u5ea6\u8ffd\u8e2a<\/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\u53ef\u201c\u5355\u4e00\u6280\u80fd\u505a\u7cbe\u201d\u7684\u4e13\u6ce8\u5ea6\uff1b\u6838\u5fc3\u53cd\u9988\u96c6\u4e2d\u5728\u6613\u6df7\u6dc6\u5047\u540d\u5bf9\uff08\u5982\u30b7\/\u30c4\u3001\u30ad\/\u30ab\uff09\u7684\u523b\u610f\u5bf9\u6bd4\u7ec3\u4e60\u7f3a\u5931\uff0c\u73b0\u6709\u968f\u673a\u6df7\u6392\u4ec5\u201c\u81ea\u7136\u78b0\u649e\u201d\uff0c\u5f00\u53d1\u8005\u5df2\u56de\u5e94\u5c06\u628a\u6df7\u6dc6\u7ec4\u5bf9\u6218\u6a21\u5f0f\u52a0\u5165\u8def\u7ebf\u56fe\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                KanaSensei\u7684\u5207\u5165\u70b9\u5f88\u806a\u660e\u2014\u2014\u5b83\u7cbe\u51c6\u5730\u780d\u6389\u4e86\u591a\u8bed\u8a00\u3001\u6e38\u620f\u5316\u3001\u793e\u4ea4\u7b49\u5197\u4f59\u529f\u80fd\uff0c\u53ea\u4fdd\u7559\u201c\u8ba4\u8bc6\u5047\u540d\u201d\u8fd9\u4e00\u6700\u5c0f\u53ef\u884c\u95ed\u73af\u3002\u8fd9\u6070\u597d\u51fb\u4e2d\u4e86\u65e5\u8bed\u521d\u5b66\u8005\u7684\u6700\u5927\u75db\u70b9\uff1a\u4e0d\u662f\u201c\u5b66\u4e0d\u4f1a\u201d\uff0c\u800c\u662f\u88ab\u529f\u80fd\u81c3\u80bf\u7684App\u529d\u9000\u3002\u5176\u201c\u56fe\u7247\u8bb0\u5fc6\u6cd5\u201d\u548c\u201c\u6253\u5b57\u800c\u975e\u70b9\u9009\u201d\u7684\u4ea4\u4e92\u8bbe\u8ba1\uff0c\u672c\u8d28\u4e0a\u7b26\u5408\u8ba4\u77e5\u79d1\u5b66\u4e2d\u7684\u201c\u751f\u6210\u6548\u5e94\u201d\uff0c\u6bd4\u88ab\u52a8\u8bc6\u522b\u66f4\u9ad8\u6548\u3002\u4ece\u521b\u59cb\u4eba\u56de\u590d\u770b\uff0c\u4ed6\u6e05\u695a\u4ea7\u54c1\u5f53\u524d\u7684\u5929\u82b1\u677f\uff1a\u6df7\u6dc6\u5047\u540d\u5bf9\uff08shi\/tsu\u7b49\uff09\u7684\u5b9a\u5411\u8bad\u7ec3\u624d\u662f\u771f\u6b63\u7684\u62a4\u57ce\u6cb3\uff0c\u56e0\u4e3a\u8fd9\u662f\u4ece\u201c\u8ba4\u8bc6\u5b57\u7b26\u201d\u8de8\u8d8a\u5230\u201c\u5b9e\u666f\u9605\u8bfb\u201d\u7684\u6700\u540e\u4e00\u9053\u574e\u3002\u76ee\u524d\u8be5\u529f\u80fd\u53ea\u5b58\u5728\u4e8e\u8def\u7ebf\u56fe\u800c\u975e\u4ea7\u54c1\u4e2d\uff0c\u8bf4\u660e\u4ea7\u54c1\u4ecd\u5904\u4e8e\u201c\u597d\u7528\u201d\u800c\u975e\u201c\u5fc5\u9700\u201d\u7684\u9636\u6bb5\u3002\u6295\u796896\u3001\u8bc4\u8bba\u5be5\u5be5\uff0c\u4e5f\u53cd\u6620\u51fa\u4ea7\u54c1\u7f3a\u4e4f\u793e\u533a\u88c2\u53d8\u57fa\u56e0\u2014\u2014\u8fd9\u4e0d\u7b97\u7f3a\u9677\uff0c\u4f46\u51b3\u5b9a\u4e86\u5b83\u66f4\u9002\u5408\u88ab\u5927\u5382\u6536\u8d2d\u6216\u4f5c\u4e3a\u6d41\u91cf\u5165\u53e3\uff0c\u800c\u975e\u72ec\u7acb\u6210\u957f\u4e3a\u5de8\u5934\u3002\u771f\u6b63\u7684\u4ef7\u503c\u5728\u4e8e\u9a8c\u8bc1\u4e86\u4e00\u4e2a\u5047\u8bbe\uff1a\u5782\u76f4\u3001\u514b\u5236\u3001\u4f53\u9a8c\u6781\u4f73\u7684\u5355\u70b9\u5de5\u5177\uff0c\u4f9d\u7136\u80fd\u5728\u5de8\u5934\u6797\u7acb\u7684\u9886\u57df\u6495\u5f00\u7f3a\u53e3\u3002\u4f46\u82e5\u4e0d\u80fd\u5728\u4e24\u5468\u627f\u8bfa\u671f\u5185\u4ea4\u4ed8\u53ef\u611f\u77e5\u7684\u201c\u9605\u8bfb\u719f\u7ec3\u5ea6\u201d\u8dc3\u5347\uff0c\u5b83\u5f88\u5feb\u4f1a\u88ab\u540c\u7c7b\u4ea7\u54c1\u6df9\u6ca1\u3002\u5efa\u8bae\u4e0b\u4e00\u6b65\u6b7b\u78d5\u6df7\u6dc6\u7ec4\u8bad\u7ec3\uff0c\u5e76\u52a0\u5165\u201c\u5b9e\u666f\u5b57\u4f53\u8bc6\u522b\u201d\uff08\u5982\u624b\u5199\u4f53\u3001\u62db\u724c\u5b57\u4f53\uff09\uff0c\u8fd9\u624d\u662f\u4ece\u201c\u4f1a\u8bfb\u201d\u5230\u201c\u80fd\u8bfb\u201d\u7684\u672c\u8d28\u8de8\u8d8a\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\">KanaSensei<\/span>\n                <\/div>\n<div class=\"comment-content\">KanaSensei is a web app for learning to read Japanese. Practice hiragana and katakana with adaptive drills, challenges, memorable mnemonics, native audio, and progress tracking.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\ud83d\udc4b Hey Product Hunt, I&#8217;m Samuel \u2014 the person behind KanaSensei.<\/p>\n<p>Last year I went to Japan. I had the trip planned to the detail, but the moment I landed I realized I couldn&#8217;t read a single thing \u2014 menus, train signs, konbini shelves, all just squiggles. I promised myself I&#8217;d actually learn to read kana before going back.<\/p>\n<p>So I did what I usually do: I tried the existing apps. And they were either bloated, gamified into oblivion, or made a genuinely simple thing feel like a chore. Learning hiragana and katakana isn&#8217;t a hard problem \u2014 it&#8217;s ~200 characters \u2014 but everything I tried buried that under clutter.<\/p>\n<p>So I built the tool I wished I&#8217;d had. Just for me, at first. Type the reading, build a streak, and lean on picture-story mnemonics that turn each character into something you literally can&#8217;t forget. No noise, no 40-screen onboarding \u2014 you open it and you&#8217;re learning. I obsessed over making the UX clean and the whole thing genuinely pleasant to use, because that&#8217;s the part everyone else skips.<\/p>\n<p>I had a stupid amount of fun building it. And once it actually got me reading kana in a couple of weeks, it seemed silly to keep it to myself \u2014 so here it is. If you&#8217;ve ever wanted to read Japanese and bounced off the usual apps, I made this for you too.<\/p>\n<p>Would love your honest feedback \u2014 I&#8217;m right here in the comments all day. \ud83d\ude4f<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@sajmumel\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sajmumel<\/a>&nbsp;\ud83e\udd1d Every business has a unique story. What&#8217;s the biggest goal you&#8217;re working toward this quarter?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\/@sajmumel\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sajmumel<\/a>&nbsp;Great Product Samuel!<\/p>\n<p>What&#8217;s the trickiest kana pair (katakana \u30b7\/\u30c4, maybe?) and how&#8217;d you mnemonic your way around 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>&#8220;Two weeks is a bold promise and I like it. As a solo app builder I respect the focus here, one skill done well instead of ten done halfway. Good luck with the launch!&#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>the &#8220;picture-story mnemonic per character&#8221; approach is the right call &#8211; rote repetition is exactly where I&#8217;ve bounced off other apps before. the part of kana that actually got me stuck on my own trip wasn&#8217;t the characters in isolation, it was the lookalike pairs, shi\/tsu, ki\/ka, so\/n, that I&#8217;d nail individually in an app and then blank on side by side on an actual sign. does KanaSensei&#8217;s drill deliberately pit those confusable pairs against each other, or is it mostly one character at a time and the mixing happens naturally once you&#8217;re further into the deck<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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;That&#8217;s a really sharp catch, and you&#8217;ve nailed the exact thing I want to build next.<\/p>\n<p>Right now the drill pulls randomly from whatever set you&#8217;ve selected (and won&#8217;t repeat a character twice in a row), so the lookalike pairs <em>do<\/em> start colliding once you widen your selection \u2014 but I&#8217;ll be honest, that&#8217;s natural mixing, not the app deliberately pitting shi vs. tsu against each other.<\/p>\n<\/p>\n<p>And you&#8217;re spot on that isolation is the trap: nailing \u30c4 alone tells you nothing about spotting it next to \u30b7 on a real sign. So a mode that deliberately drills the confusable sets against each other \u2014 shi\/tsu, ki\/ka, so\/n \u2014 is going straight on the roadmap. Really appreciate the feedback, this is exactly the kind that shapes what&#8217;s next.<\/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\">#9<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/BCSJED4WJINCHW\" class=\"app-title\">Tab Notes<\/a><\/p>\n<div class=\"one-liner\">Turn your browser new tab into a distraction-free notepad<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">87<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Tab Notes\u5c06\u6d4f\u89c8\u5668\u65b0\u6807\u7b7e\u9875\u6539\u9020\u4e3a\u8f7b\u91cf\u7ea7\u4e13\u6ce8\u7b14\u8bb0\u5de5\u5177\uff0c\u652f\u6301\u5bcc\u6587\u672c\u3001\u4ee3\u7801\u9ad8\u4eae\u4e0e\u56fe\u5f62\u753b\u677f\uff0c\u89e3\u51b3\u7528\u6237\u201c\u60f3\u968f\u624b\u901f\u8bb0\u5374\u88ab\u8feb\u6253\u5f00\u91cd\u578b\u5e94\u7528\u201d\u7684\u75db\u70b9\uff0c\u5e76\u517c\u987e\u79bb\u7ebf\u5b58\u50a8\u4e0e\u9690\u79c1\u540c\u6b65\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\/a875176d-4082-486a-a402-7237719e7339.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=GIY0XMl4QH8\"><source src=\"https:\/\/www.youtube.com\/watch?v=GIY0XMl4QH8\" 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\/ba36d023-d1d1-4a76-8da0-42c37a11595e.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\/f2b42ae9-840f-4140-bc9b-fbf9ad2c88be.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\/5f7ec979-a631-46fc-b592-31187231452e.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\/732fa3dc-ea8a-4be6-afa6-2c35b0512dd6.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\/c829c599-4266-406e-a34f-3c43d395e86d.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\">Notes<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u6d4f\u89c8\u5668\u6269\u5c55<\/span><br \/>\n            <span class=\"tag\">\u65b0\u6807\u7b7e\u9875<\/span><br \/>\n            <span class=\"tag\">\u901f\u8bb0\u7b14\u8bb0<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u4f18\u5148<\/span><br \/>\n            <span class=\"tag\">\u5bcc\u6587\u672c\u7f16\u8f91<\/span><br \/>\n            <span class=\"tag\">\u4ee3\u7801\u9ad8\u4eae<\/span><br \/>\n            <span class=\"tag\">\u56fe\u5f62\u753b\u677f<\/span><br \/>\n            <span class=\"tag\">Google Drive\u540c\u6b65<\/span><br \/>\n            <span class=\"tag\">\u96f6\u9501\u5b9a\u5bfc\u51fa<\/span><br \/>\n            <span class=\"tag\">\u6548\u7387\u5de5\u5177<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u5f00\u53d1\u8005\u81ea\u8ff0\u4ea7\u54c1\u5b9a\u4f4d\u4e3a\u201c\u8f7b\u91cf\u672c\u5730\u4f18\u5148\u4fbf\u7b7e\u201d\uff0c\u4f46\u7528\u6237\u5173\u6ce8\u4e24\u70b9\uff1a\u5176\u4e00\uff0c\u65b0\u6807\u7b7e\u9875\u88ab\u591a\u4e2a\u6269\u5c55\u7ade\u4e89\u65f6\uff0cTab Notes\u662f\u5426\u4f1a\u4e3b\u52a8\u68c0\u6d4b\u51b2\u7a81\u5e76\u8b66\u544a\uff0c\u8fd8\u662f\u9760\u52a0\u8f7d\u987a\u5e8f\u62a2\u5360\uff1b\u5176\u4e8c\uff0c\u8be2\u95ee\u5f00\u53d1\u8005\u65e5\u5e38\u66f4\u5e38\u7528\u5f39\u7a97\u6a21\u5f0f\u8fd8\u662f\u72ec\u7acb\u6807\u7b7e\u6a21\u5f0f\uff0c\u6697\u793a\u5bf9\u5de5\u5177\u4f7f\u7528\u573a\u666f\u7684\u7cbe\u7ec6\u8003\u91cf\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                Tab Notes\u7684\u5207\u5165\u89d2\u5ea6\u806a\u660e\u2014\u2014\u5c06\u201c\u65b0\u5efa\u6807\u7b7e\u9875\u201d\u8fd9\u4e00\u6d4f\u89c8\u5668\u6700\u9ad8\u9891\u52a8\u4f5c\u6539\u9020\u6210\u5f55\u5165\u5165\u53e3\uff0c\u786e\u5b9e\u628a\u201c\u6355\u83b7\u6469\u64e6\u201d\u538b\u7f29\u5230\u534a\u79d2\u7ea7\uff0c\u6bd4\u4efb\u4f55\u5feb\u6377\u6307\u4ee4\u90fd\u66f4\u7b26\u5408\u76f4\u89c9\u3002\u5176\u5bcc\u6587\u672c\u3001\u753b\u5e03\u548c\u4ee3\u7801\u5757\u529f\u80fd\u663e\u7136\u8d85\u51fa\u4e86\u201c\u4fbf\u7b7e\u201d\u8303\u7574\uff0c\u66f4\u50cf\u4e00\u4e2a\u201c\u96f6\u6210\u672c\u5f00\u5c4f\u5de5\u4f5c\u53f0\u201d\u3002\u4f46\u4ea7\u54c1\u771f\u6b63\u7684\u62a4\u57ce\u6cb3\u4e0d\u5728\u529f\u80fd\uff0c\u800c\u5728\u201c\u51b2\u7a81\u5904\u7406\u201d\u8fd9\u4e00\u88ab\u591a\u6570\u4eba\u5ffd\u89c6\u7684\u7ec6\u8282\uff1a\u8bc4\u8bba\u4e2d\u7528\u6237\u76f4\u6307\u65b0\u6807\u7b7e\u9875\u662f\u5175\u5bb6\u5fc5\u4e89\u4e4b\u5730\uff0cChrome\u6269\u5c55\u4e92\u76f8\u8986\u76d6\u662f\u5e38\u6001\uff0c\u82e5Tab Notes\u6ca1\u6709\u4e3b\u52a8\u68c0\u6d4b\u51b2\u7a81\u6216\u4f18\u5148\u7ea7\u534f\u5546\u673a\u5236\uff0c\u5176\u6838\u5fc3\u5165\u53e3\u968f\u65f6\u53ef\u80fd\u88ab\u5176\u4ed6Dashboard\u7c7b\u6269\u5c55\u541e\u566c\uff0c\u5bfc\u81f4\u201c\u6253\u5f00\u65b0\u6807\u7b7e\u9875\u770b\u5230\u7684\u4e0d\u662f\u7b14\u8bb0\u800c\u662f\u522b\u4eba\u7684\u9875\u9762\u201d\uff0c\u8fd9\u79cd\u4f53\u9a8c\u662f\u6bc1\u706d\u6027\u7684\u3002\u6b64\u5916\uff0c\u96f6\u670d\u52a1\u5668\u9501\u5b9a\u4e0eGoogle Drive\u540c\u6b65\u662f\u4e2a\u53cc\u5203\u5251\u2014\u2014\u5bf9\u6781\u5ba2\u662f\u81ea\u7531\uff0c\u5bf9\u666e\u901a\u7528\u6237\u5219\u610f\u5473\u7740\u201c\u6ca1\u6709\u4e91\u5907\u4efd\u3001\u6362\u8bbe\u5907\u5373\u5931\u8054\u201d\u7684\u8ba4\u77e5\u95e8\u69db\u3002\u5728Notion\u3001Obsidian\u7b49\u5f3a\u534f\u540c\u5de5\u5177\u6a2a\u884c\u7684\u65f6\u4ee3\uff0cTab Notes\u66f4\u50cf\u662f\u7ed9\u201c\u72ec\u72fc\u578b\u6587\u5b57\u5de5\u4f5c\u8005\u201d\u7684\u5907\u7528\u8349\u7a3f\u7eb8\uff0c\u800c\u975e\u534f\u4f5c\u5e73\u53f0\u3002\u5176\u4ef7\u503c\u5728\u4e8e\u6781\u81f4\u7684\u201c\u51cf\u5c11\u51b3\u7b56\u6210\u672c\u201d\uff0c\u4f46\u82e5\u60f3\u5728Product Hunt\u4e4b\u5916\u83b7\u5f97\u957f\u671f\u751f\u547d\u529b\uff0c\u5fc5\u987b\u56de\u7b54\u4e24\u4e2a\u95ee\u9898\uff1a\u5982\u4f55\u5728\u65b0\u6807\u7b7e\u9875\u4e89\u593a\u6218\u4e2d\u4f18\u96c5\u5171\u5b58\uff1f\u4ee5\u53ca\u5f53\u7528\u6237\u79ef\u7d2f\u5927\u91cf\u96f6\u6563\u7b14\u8bb0\u540e\uff0c\u5982\u4f55\u68c0\u7d22\u4e0e\u6574\u7406\u2014\u2014\u76ee\u524d\u4ec5\u9760\u5bfc\u51fatxt\/md\uff0c\u5e76\u672a\u89e3\u51b3\u201c\u4fe1\u606f\u6c89\u6dc0\u201d\u8fd9\u4e00\u6df1\u5c42\u9700\u6c42\u3002\u7b80\u800c\u8a00\u4e4b\uff0c\u8fd9\u662f\u4e00\u4e2a\u597d\u7528\u7684\u5de5\u5177\uff0c\u4f46\u8fd8\u4e0d\u662f\u4e00\u4e2a\u5fc5\u8981\u7684\u4ea7\u54c1\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Tab Notes<\/span>\n                <\/div>\n<div class=\"comment-content\">Tab Notes turns every new browser tab into a distraction-free notepad. Capture thoughts instantly with rich text, tables, and syntax-highlighted code blocks, or sketch ideas using the built-in shape canvas. Works completely offline with local storage or syncs privately to your personal Google Drive with zero server lock-in. Access notes in full-screen tabs, via a quick toolbar popup over any website, and export totxt ormd anytime.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey Product Hunt community! \ud83d\udc4b<\/p>\n<p>I built Tab Notes because standard note apps felt too heavy, and default browser start pages are cluttered with distractions. I wanted a fast, local-first scratchpad right where I spend most of my working day\u2014inside my browser tabs.<\/p>\n<p>Key features at a glance:<\/p>\n<p>\ud83d\udcdd Rich Text &amp; Code: Markdown support, headings, lists, tables, and syntax-highlighted code blocks.<\/p>\n<p>\ud83c\udfa8 Integrated Canvas: Draw diagrams, flowcharts, and shapes with connecting arrows directly in your notes.<\/p>\n<p>\u2601\ufe0f Privacy-First Storage: Use offline browser storage without logging in, or sync seamlessly to your personal Google Drive.<\/p>\n<p>\u26a1 Popup &amp; Standalone Modes: Pin it to your toolbar for quick notes over any website, or toggle off new-tab takeover whenever you want.<\/p>\n<p>\ud83d\udce5 Zero Lock-In: Export your work as .txt or .md at any time.<\/p>\n<p>I would love to hear your thoughts, feedback, and feature requests. What do you look for most in a browser-based scratchpad?<\/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\/@vineethtrv\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@vineethtrv<\/a>&nbsp;Awesome Product Vineeth!<\/p>\n<p>Popup or standalone, which mode do you personally use more day to day?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>What I look for most is friction at capture time &#8211; if opening a notepad takes more than the half-second it takes to open a new tab, I just won&#8217;t use it, and the new-tab takeover approach solves exactly that problem.<\/p>\n<\/p>\n<p>One question: new-tab real estate tends to be contested. I&#8217;ve got other extensions that also want to override it (a dashboard, a speed-dial style start page). How does Tab Notes behave when something else is also fighting for the new-tab page &#8211; does it detect the conflict and warn you, or is it more &#8220;whichever extension loaded last wins&#8221; and you&#8217;d need to manually disable the other 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<\/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\/C6TYBUL6553NIO\" class=\"app-title\">Yattayo<\/a><\/p>\n<div class=\"one-liner\">A physical slider to-do board, faithfully rebuilt in 3D<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">85<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Yattayo \u5c06\u5b9e\u4f53\u6ed1\u52a8\u5f0f\u4efb\u52a1\u770b\u677f\u4e09\u7ef4\u91cd\u5efa\u4e3a\u6570\u5b57\u5e94\u7528\uff0c\u8ba9\u7528\u6237\u901a\u8fc7\u62d6\u62fd\u3001\u6273\u52a8\u7b49\u7269\u7406\u611f\u64cd\u4f5c\u5b8c\u6210\u4efb\u52a1\uff0c\u89e3\u51b3\u7535\u5b50\u5f85\u529e\u7f3a\u4e4f\u89e6\u611f\u548c\u4eea\u5f0f\u611f\u3001\u96be\u4ee5\u575a\u6301\u4f7f\u7528\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\/0143aa4e-26d4-454c-a67d-8762bfb398c1.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\/b51fa04a-2b27-43eb-8b7d-e5bd027b5499.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\/7b57a7a2-3161-4142-8d7b-b5942aac97e5.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\/c25046fd-6fb5-42de-8a0d-f06ad2cdaf7f.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\">Android<\/span><br \/>\n            <span class=\"tag\">iOS<\/span><br \/>\n            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">Task Management<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">3D\u5f85\u529e\u6e05\u5355<\/span><br \/>\n            <span class=\"tag\">\u7269\u7406\u53cd\u9988<\/span><br \/>\n            <span class=\"tag\">\u89e6\u89c9\u4ea4\u4e92<\/span><br \/>\n            <span class=\"tag\">\u4efb\u52a1\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u6548\u7387\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">Apple\u751f\u6001<\/span><br \/>\n            <span class=\"tag\">\u5c0f\u7ec4\u4ef6<\/span><br \/>\n            <span class=\"tag\">\u624b\u5199\u4fbf\u7b7e<\/span><br \/>\n            <span class=\"tag\">\u72ec\u7acb\u5f00\u53d1<\/span><br \/>\n            <span class=\"tag\">\u8da3\u5473\u751f\u4ea7\u529b<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u5f00\u53d1\u8005\u81ea\u8ff0\u7075\u611f\u6e90\u4e8e\u5b9e\u4f53\u6a59\u8272\u6ed1\u7247\u6e05\u5355\uff0c\u5f3a\u8c033D\u7269\u7406\u611f\u662f\u6838\u5fc3\u5356\u70b9\uff0c\u5e76\u4e3b\u52a8\u8be2\u95ee\u7528\u6237\u201c\u7269\u7406\u611fUI\u662f\u4ef7\u503c\u8fd8\u662f\u5671\u5934\u201d\u3002\u552f\u4e00\u56de\u5e16\u7528\u6237\u5bf9\u201c\u5c0f\u7ec4\u4ef6\u662f\u5426\u66f4\u96be\u8fd8\u539f\u7269\u7406\u611f\u201d\u63d0\u51fa\u5177\u4f53\u6280\u672f\u7591\u95ee\uff0c\u6682\u65e0\u5176\u4ed6\u6709\u6548\u95ee\u9898\u6216\u5efa\u8bae\u53cd\u9988\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                Yattayo \u7684\u91ce\u5fc3\u4e0d\u5728\u4e8e\u505a\u4e00\u6b3e\u66f4\u597d\u7684\u5f85\u529e\u6e05\u5355\uff0c\u800c\u5728\u4e8e\u7528\u201c\u62df\u7269\u8fd8\u539f\u5ea6\u201d\u6311\u6218\u6570\u5b57\u6548\u7387\u5de5\u5177\u7684\u4f53\u9a8c\u5929\u82b1\u677f\u3002\u5b83\u628a\u6548\u7387\u5de5\u5177\u5e38\u88ab\u8bdf\u75c5\u7684\u201c\u51b7\u51b0\u51b0\u201d\u95ee\u9898\uff0c\u75283D\u6ed1\u5757\u3001\u68d8\u8f6e\u58f0\u548c\u76d6\u7ae0\u52a8\u753b\u5f3a\u884c\u626d\u8f6c\u6210\u4e00\u79cd\u201c\u628a\u73a9\u5f0f\u6fc0\u52b1\u201d\u3002\u8fd9\u79cd\u505a\u6cd5\u5728\u77ed\u671f\u786e\u5b9e\u80fd\u63d0\u4f9b\u65b0\u9c9c\u611f\u548c\u60c5\u611f\u8fde\u63a5\uff0c\u5c24\u5176\u662f\u5bf9\u673a\u68b0\u7ed3\u6784\u6709\u597d\u611f\u7684\u7528\u6237\uff0c\u4ee5\u53ca\u538c\u5026\u4e86\u5343\u7bc7\u4e00\u5f8b\u52fe\u9009\u6846\u7684\u8f7b\u5ea6\u4efb\u52a1\u7ba1\u7406\u8005\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u5b83\u7684\u4ef7\u503c\u4e5f\u6070\u662f\u5b83\u7684\u98ce\u9669\u3002\u7b2c\u4e00\uff0c\u7269\u7406\u611f\u662f\u91cd\u8d44\u4ea7\u4ea4\u4e92\uff0c\u62d6\u62fd\u3001\u65cb\u8f6c\u3001\u6495\u4e0b\u4fbf\u7b7e\u90fd\u6bd4\u70b9\u6309\u66f4\u8017\u65f6\uff0c\u5f53\u4efb\u52a1\u91cf\u8d85\u8fc710\u4e2a\uff0c\u8fd9\u79cd\u201c\u4eea\u5f0f\u611f\u201d\u4f1a\u8fc5\u901f\u6ca6\u4e3a\u64cd\u4f5c\u8d1f\u62c5\uff0c\u514d\u8d39\u72483\u4e2a\u4efb\u52a1\u7684\u4e0a\u9650\u6070\u597d\u66b4\u9732\u4e86\u5b83\u53ea\u9002\u5408\u8f7b\u91cf\u4f7f\u7528\u7684\u5b9a\u4f4d\u3002\u7b2c\u4e8c\uff0c3D\u6a21\u62df\u7684\u771f\u5b9e\u624b\u611f\u4f9d\u8d56\u7cbe\u81f4\u7684\u52a8\u753b\u4e0e\u89e6\u89c9\u53cd\u9988\uff0c\u4e00\u65e6\u6267\u884c\u8282\u594f\u7a0d\u6162\u6216\u5361\u987f\uff0c\u7269\u7406\u611f\u5c31\u4f1a\u4ece\u201c\u60ca\u559c\u201d\u53d8\u6210\u201c\u607c\u706b\u201d\uff0c\u8fd9\u5bf9\u72ec\u7acb\u5f00\u53d1\u8005\u7684\u6027\u80fd\u8c03\u4f18\u662f\u6781\u5927\u8003\u9a8c\u3002\u7b2c\u4e09\uff0c\u8bc4\u8bba\u533a\u7684\u51b7\u6e05\u8bf4\u660e\u793e\u533a\u5c1a\u672a\u5f62\u6210\u6709\u6548\u8ba8\u8bba\uff0c\u5f00\u53d1\u8005\u4e3b\u52a8\u629b\u51fa\u7684\u201c\u662f\u5426\u503c\u5f97\u201d\u4e4b\u95ee\uff0c\u76ee\u524d\u6ca1\u6709\u5f97\u5230\u6709\u6df1\u5ea6\u7684\u9a8c\u8bc1\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u771f\u6b63\u7684\u4ef7\u503c\u5728\u4e8e\u5b83\u5f00\u8f9f\u4e86\u4e00\u4e2a\u7ec6\u5206\u8d5b\u9053\uff1a\u628a\u5f85\u529e\u4ece\u201c\u7ba1\u7406\u5de5\u5177\u201d\u53d8\u6210\u201c\u53ef\u6536\u85cf\u7684\u6570\u5b57\u7269\u4ef6\u201d\u3002\u5982\u679cYattayo\u80fd\u964d\u4f4e\u7269\u7406\u52a8\u6548\u7684\u6210\u672c\uff08\u6bd4\u5982\u652f\u6301\u5173\u95ed\u52a8\u753b\u7684\u6781\u901f\u6a21\u5f0f\uff09\uff0c\u79ef\u6781\u96c6\u6210Apple Watch\u7684\u5feb\u6377\u6ed1\u52a8\u548c\u7075\u52a8\u5c9b\u7684\u6e10\u8fdb\u5f0f\u53cd\u9988\uff0c\u5b83\u6709\u673a\u4f1a\u6210\u4e3a\u201c\u6548\u7387\u5de5\u5177\u4e2d\u7684\u4e50\u9ad8\u201d\u2014\u2014\u4e0d\u662f\u4e3a\u4e86\u66f4\u5feb\uff0c\u800c\u662f\u4e3a\u4e86\u66f4\u613f\u610f\u53bb\u78b0\u5b83\u3002\u4f46\u5728\u90a3\u4e4b\u524d\uff0c\u5b83\u66f4\u50cf\u4e00\u4e2a\u7cbe\u81f4\u7684\u73a9\u5177\uff0c\u800c\u975e\u8010\u78e8\u7684\u65e5\u5e38\u52a9\u624b\u3002\u90a3\u4e2a\u56de\u5e16\u4e2d\u7684\u8d28\u7591\u975e\u5e38\u5173\u952e\uff1a\u5c0f\u7ec4\u4ef6\u80fd\u5426\u590d\u523b\u7269\u7406\u611f\uff0c\u624d\u662f\u5b83\u80fd\u5426\u4ece\u201c\u6253\u5f00App\u624d\u723d\u201d\u8d70\u5411\u201c\u968f\u65f6\u90fd\u8981\u73a9\u201d\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\">Yattayo<\/span>\n                <\/div>\n<div class=\"comment-content\">Yattayo is a to-do list you can feel. Every task is a real 3D slider on an orange board \u2014 drag the knob, hear the ratchet click, and an &#8220;OK&#8221; stamp lands on it. Done. \u2022 Every task is a sticky note. Tap it and handwrite or type right on the paper \u2022 Swipe a finished note to peel it off the board \u2022 Spin the whole board around with your finger \u2022 Widgets show the real board \u2014 slide the switch without opening the app \u2022 iPhone, Apple Watch and Mac, synced over iCloud Free for up to 3 tasks.<\/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>Yattayo started from a photo of one of those orange plastic slider checklists \u2014 the kind you stick on the fridge and flip when a chore is done. I wanted exactly that feeling on my phone, so instead of drawing a flat imitation I rebuilt the board as a real 3D object.<\/p>\n<p>What that means in practice:<\/p>\n<p>\ud83d\udfe0 Every task is an actual slider you drag. It clicks like a ratchet on the way and thunks at the end, and an &#8220;OK&#8221; stamp lands when it&#8217;s done.<br \/>\n\ud83d\udcdd Every task is a sticky note. Tap it and handwrite on the paper with your finger, or type.<br \/>\n\ud83c\udfe0 The widget shows the real board, so you can slide a task done without opening the app.<\/p>\n<p>It syncs across iPhone, Apple Watch and Mac over iCloud, and it&#8217;s free for up to 3 tasks. Solo build.<\/p>\n<p>I&#8217;d love to hear what you think about physical-feeling UI \u2014 worth the effort, or just a gimmick?<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@tsuzuki817\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@tsuzuki817<\/a>&nbsp;Great Launch Ryo!<\/p>\n<p>Was recreating that physical feel harder on the widget than in the main app?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/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\/WTW5AAPLCP3OUG\" class=\"app-title\">Local Music Organizer for Mac<\/a><\/p>\n<div class=\"one-liner\">Ultimate toolkit for local Apple Music library maintenance<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">80<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Local Music Organizer \u662f\u4e00\u6b3e\u9762\u5411\u672c\u5730\u97f3\u4e50\u5e93\u91cd\u5ea6\u7ef4\u62a4\u8005\u7684 macOS \u539f\u751f\u5de5\u5177\u5305\uff0c\u4e13\u6cbb Apple Music \u5e93\u4e2d\u7684\u91cd\u590d\u6587\u4ef6\u3001\u7f3a\u5931\u66f2\u76ee\u3001\u4f2a\u9020\u9ad8\u89e3\u6790\u5ea6\u97f3\u9891\u53ca\u5143\u6570\u636e\u810f\u4e71\u7b49\u5386\u53f2\u9057\u7559\u95ee\u9898\uff0c\u5168\u7a0b\u79bb\u7ebf\u65e0\u9700\u8ba2\u9605\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\/e9751f33-078d-44f7-9a3a-df422df9c936.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\/89fc1d1c-ccc1-463c-be1a-e4e08c58565a.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\/3b723f90-005a-4678-9bbd-eb4c1509ed5d.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\/1d11d209-86bf-4bb4-ada3-aea156b368d8.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\/b2e4ec66-45b3-4b97-81ef-715fe53324e0.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\/5a56bf33-20d7-4f23-96dc-2bbbf115ad7f.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\/12a29419-b687-4d40-ab8f-66718219d852.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\/c4f37e50-4692-40a2-bfb7-1bb72fcd5720.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\/1c811a9c-69ff-4972-91a7-b1eaded96925.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\/2c62060d-6af2-477b-8fe8-872f4ca8ef45.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\/20c054a5-cc47-49a3-ba37-82cc56924db1.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\/6a378f56-c9f0-4f78-b861-0e1891bc1c5a.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\/2bf0dbd4-f3a8-4720-b045-5353e3ecf38f.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\/42d40ca5-0eeb-4285-b5f5-31819bbe6ecd.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\/4d63c526-8516-4891-9779-b46b0d490eed.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\/cc48c01d-7946-4b7b-8d20-7304102213ba.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\/6e08237b-3fa0-4c18-8a72-5f7d3712558e.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\/bdcd39d0-0bcf-4116-b711-0604619b0c42.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\/7a943f58-2fd6-4c09-a295-f08178949883.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\/97af090e-7b5c-466f-b526-9d0dab79f231.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\/2cd998b7-cc15-4343-aaf6-3aa3adbf4d48.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\/e6262b5e-52b0-41aa-9244-3debfab440a1.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\/e87798dc-80fe-4b0a-8ec0-cb4ff094c095.jpeg?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">Music<\/span><br \/>\n            <span class=\"tag\">Apple<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">macOS\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u97f3\u4e50\u5e93\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u4f18\u5148<\/span><br \/>\n            <span class=\"tag\">\u91cd\u590d\u6587\u4ef6\u68c0\u6d4b<\/span><br \/>\n            <span class=\"tag\">\u97f3\u9891\u8d28\u91cf\u5206\u6790<\/span><br \/>\n            <span class=\"tag\">\u5143\u6570\u636e\u6574\u7406<\/span><br \/>\n            <span class=\"tag\">\u64ad\u653e\u5217\u8868\u5bf9\u6bd4<\/span><br \/>\n            <span class=\"tag\">\u65e0\u635f\u68c0\u6d4b<\/span><br \/>\n            <span class=\"tag\">Apple Music\u8f85\u52a9<\/span><br \/>\n            <span class=\"tag\">\u4e70\u65ad\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\u9ad8\u5ea6\u8ba4\u53ef\u201c\u8bc6\u522b\u4f2aFLAC\/\u5347\u9891\u201d\u529f\u80fd\uff0c\u8ba4\u4e3a\u76f4\u51fb\u8001\u5e93\u75db\u70b9\uff1b\u4f46\u8ffd\u95ee\u80fd\u5426\u534f\u52a9\u5bfb\u627e\u66ff\u4ee3\u6587\u4ef6\uff0c\u5f00\u53d1\u8005\u660e\u786e\u53ea\u505a\u8bca\u65ad\u4e0d\u6d89\u76d7\u7248\uff0c\u5efa\u8bae\u901a\u8fc7\u81ea\u6709\u5408\u6cd5\u6e20\u9053\u66ff\u6362\u3002\u53e6\u6709\u7528\u6237\u597d\u5947\u5386\u53f2\u5e93\u4e2d\u6700\u96be\u6e05\u7406\u7684\u662f\u91cd\u590d\u7248\u672c\u8fd8\u662f\u5b64\u7acb\u5143\u6570\u636e\uff0c\u5f00\u53d1\u8005\u6682\u672a\u76f4\u63a5\u56de\u5e94\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                \u8fd9\u6b3e\u4ea7\u54c1\u7684\u771f\u5b9e\u4ef7\u503c\u4e0d\u5728\u4e8e\u201c\u6574\u7406\u201d\uff0c\u800c\u5728\u4e8e\u4e00\u79cd\u5bf9\u672c\u5730\u97f3\u4e50\u6536\u85cf\u7684\u201c\u8003\u53e4\u5f0f\u4fe1\u4efb\u91cd\u5efa\u201d\u3002\u5f53\u6d41\u5a92\u4f53\u5c06\u97f3\u4e50\u53d8\u6210\u79df\u8d41\u670d\u52a1\uff0c\u672c\u5730\u5e93\u7ef4\u62a4\u8005\u6210\u4e86\u6570\u5b57\u65f6\u4ee3\u7684\u5b88\u8d22\u5974\u2014\u2014\u4ed6\u4eec\u56e4\u79ef\u7684\u4e0d\u4ec5\u662f\u6587\u4ef6\uff0c\u66f4\u662f\u5341\u51e0\u5e74\u95f4\u4ece CD \u6293\u8f68\u3001\u52a3\u8d28\u8f6c\u7801\u3001\u6df7\u4e71\u6539\u540d\u4e2d\u5e78\u5b58\u4e0b\u6765\u7684\u8bb0\u5fc6\u6b8b\u7247\u3002LMO \u7cbe\u51c6\u5207\u4e2d\u4e86\u8fd9\u7fa4\u4eba\u7684\u9690\u79d8\u7126\u8651\uff1a\u4ed6\u4eec\u5bb3\u6015\u81ea\u5df1\u7684 FLAC \u662f MP3 \u4f2a\u88c5\u7684\uff0c\u5bb3\u6015\u64ad\u653e\u5217\u8868\u91cc\u85cf\u7740\u5e7d\u7075\u6761\u76ee\uff0c\u5bb3\u6015\u67d0\u5929\u6587\u4ef6\u6d88\u5931\u800c iTunes \u7684\u8bb0\u5f55\u8fd8\u5728\u81ea\u6b3a\u6b3a\u4eba\u3002\u5f00\u53d1\u8005\u4ece\u201c\u81ea\u5236\u968f\u673a\u64ad\u653e\u5668\u201d\u5207\u5165\uff0c\u6700\u7ec8\u957f\u6210\u4e00\u5957\u8bca\u65ad\u5de5\u5177\uff0c\u8fd9\u8def\u5f84\u5f88\u8bda\u5b9e\uff0c\u4e5f\u8bf4\u660e\u75db\u70b9\u662f\u88ab\u771f\u5b9e\u89e6\u6478\u8fc7\u7684\u3002\u4f46\u4ea7\u54c1\u523b\u610f\u6b62\u6b65\u4e8e\u8bca\u65ad\uff0c\u56de\u907f\u4e86\u201c\u5982\u4f55\u83b7\u5f97\u66f4\u597d\u6587\u4ef6\u201d\u8fd9\u4e00\u6838\u5fc3\u884c\u52a8\u95ed\u73af\uff0c\u8fd9\u65e2\u662f\u6cd5\u5f8b\u4e0a\u7684\u660e\u667a\uff0c\u4e5f\u662f\u4f53\u9a8c\u4e0a\u7684\u9609\u5272\u2014\u2014\u7528\u6237\u88ab\u6307\u51fa\u75c5\u75c7\uff0c\u5374\u4ecd\u8981\u5728\u6697\u7f51\u6216\u8bba\u575b\u91cc\u81ea\u884c\u5bfb\u836f\u3002\u6b64\u5916\uff0c3 \u5929\u8bd5\u7528\u5bf9 80 \u7968\u7684\u70ed\u5ea6\u6765\u8bf4\u8db3\u591f\u8bda\u610f\uff0c\u4f46\u201c\u672c\u5730\u4f18\u5148\u201d\u65e2\u662f\u5356\u70b9\u4e5f\u662f\u5929\u82b1\u677f\uff0c\u5b83\u6ce8\u5b9a\u65e0\u6cd5\u6210\u4e3a\u5927\u4f17\u5de5\u5177\uff0c\u53ea\u80fd\u670d\u52a1\u90a3\u4e9b\u628a\u97f3\u4e50\u5e93\u5f53\u73cd\u54c1\u9601\u697c\u7684\u5c11\u6570\u6d3e\u3002\u5982\u679c\u672a\u6765\u80fd\u5f15\u5165\u201c\u57fa\u4e8e\u7528\u6237\u5df2\u6709\u6587\u4ef6\u7684\u667a\u80fd\u53bb\u91cd\u4e0e\u7801\u7387\u62e9\u4f18\u201d\u7684\u81ea\u52a8\u5316\u6279\u5904\u7406\uff0c\u751a\u81f3\u4e0e\u5531\u7247\u516c\u53f8\u5408\u4f5c\u63d0\u4f9b\u6b63\u7248\u8865\u5168\u670d\u52a1\uff0c\u624d\u53ef\u80fd\u4ece\u201c\u5de5\u5177\u201d\u5347\u7ea7\u4e3a\u201c\u85cf\u54c1\u7ba1\u5bb6\u201d\u3002\u76ee\u524d\u5b83\u662f\u4e2a\u4f18\u79c0\u7684\u745e\u58eb\u519b\u5200\uff0c\u4f46\u79bb\u7ec8\u6781\u89e3\u51b3\u65b9\u6848\u8fd8\u5dee\u4e00\u6b65\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\">Local Music Organizer for Mac<\/span>\n                <\/div>\n<div class=\"comment-content\">Local Music Organizer is a native macOS toolkit built for large local music collections. It works with Music.app libraries and standalone audio files, with no Apple Music subscription required. Find duplicates and missing files, compare playlists, inspect metadata, detect suspicious upscales and transcodes, view spectra and waveforms, and repair or convert rare formats offline. Your music stays on your Mac. Try every feature free for 3 days, then unlock it with one purchase. No subscription.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Detecting upscales dressed up as FLAC is the feature I didn&#8217;t know I needed, half my old library is probably lying to me. When it flags a suspicious transcode, does it just mark it or can it help me hunt down a proper replacement? Local music people are exactly the crowd that never wants a subscription, smart call.<\/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\/@yelyzaveta_kibets\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@yelyzaveta_kibets<\/a>&nbsp;Thanks! LMO deliberately stops at diagnosis. It can flag a suspicious upscale or transcode and show the technical evidence, but it will not search the web for free replacement downloads. That would cross into piracy, and I don\u2019t want the app doing that.<\/p>\n<p>If you already have multiple local copies, Quality Duplicates can help compare them and identify the better one. For an actual replacement, the idea is to use a legal source you already own or purchase separately.<\/p>\n<p>And yes, I felt the same about subscriptions. A local library tool should feel like something you own.<\/p>\n<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hi everyone! \ud83d\udc4b<\/p>\n<p>Local Music Organizer started as a small personal project for my own music collection.<\/p>\n<p>I&#8217;ve been maintaining a local music library since the early iTunes years. When CD writers and MP3 car players became common, I converted much of my CD collection to 192 kbps MP3. At the time, that seemed perfectly reasonable.<\/p>\n<p>Years later, after upgrading my audio equipment, I realized how much quality I had lost. I began replacing old files with better versions lossless releases, vinyl transfers, rare editions and music collected from many different sources.<\/p>\n<p>Over the years the library became increasingly difficult to maintain. Tracks were replaced, moved and reorganized. Some files disappeared while old <a href=\"http:\/\/Music.app\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Music.app<\/a> records remained. Playlists accumulated duplicate entries. Different versions of the same recordings lived side by side, along with inconsistent tags, missing artwork and metadata left behind by converters and download sources.<\/p>\n<p>But Local Music Organizer actually began for a completely different reason.<\/p>\n<p>I simply wanted a better playlist shuffler. I never liked how <a href=\"http:\/\/Music.app\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Music.app<\/a> shuffle could return to the same artists too often while other tracks seemed to disappear for a long time. So I built my own system with spacing between artists, albums and related artist projects.<\/p>\n<p>While building it, I started discovering all the other problems in my library.<\/p>\n<p>That small playlist tool gradually became Local Music Organizer a toolkit for inspecting, organizing, analyzing, repairing and converting large local <a href=\"http:\/\/Music.app\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Music.app<\/a> collections.<\/p>\n<p>A major principle throughout development has been safety. Most analysis is read-only, and operations that can modify files require explicit user action and additional verification.<\/p>\n<p>Everything runs locally on the Mac. There are no analytics, advertising or tracking, and your music library is not uploaded anywhere.<\/p>\n<p>I&#8217;m an independent developer, and I originally built this because I needed it myself.<\/p>\n<p>I&#8217;d especially love to hear from people who have also maintained an iTunes or <a href=\"http:\/\/Music.app\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Music.app<\/a> library for many years: <strong>what problems have accumulated in your collection that existing tools still don&#8217;t solve?<\/strong><\/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>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\/@bootrom\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@bootrom<\/a>&nbsp;Really interesting project! I like the focus on local processing and safety, especially for large music libraries. The playlist shuffling and library cleanup features sound particularly useful for long-time <a href=\"https:\/\/getspikegame.com\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Music.app <\/a>users.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@bootrom\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@bootrom<\/a>&nbsp;Great Product Sergey!<\/p>\n<p>What ended up being the messiest thing to untangle, the duplicate versions or the orphaned <a href=\"https:\/\/Music.app\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Music.app<\/a> metadata?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\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\/TD22YJFZQZHSGR\" class=\"app-title\">Flown<\/a><\/p>\n<div class=\"one-liner\">Every flight you&#8217;ve ever taken, on one private map<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">72<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Flown\u662f\u4e00\u6b3e\u98de\u884c\u8f68\u8ff9\u8bb0\u5f55\u4e0e\u6743\u76ca\u8ffd\u8e2a\u5de5\u5177\uff0c\u5c06\u4f60\u6240\u6709\u4e58\u5750\u8fc7\u7684\u822a\u73ed\u7ed8\u5236\u5728\u4e00\u5f20\u79c1\u4eba\u5730\u56fe\u4e0a\uff0c\u540c\u65f6\u81ea\u52a8\u8bc6\u522b\u56e0\u822a\u73ed\u5ef6\u8bef\u800c\u5e94\u5f97\u7684220-520\u82f1\u9551\u822a\u7a7a\u516c\u53f8\u8d54\u507f\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\/61565038-a049-4285-8880-bdb3202de4dd.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\/079794bc-9b7c-4ae1-b647-efbef9c352bc.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\/02627633-c13f-41d4-b4f5-800a9f08ef05.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\/cbf6579d-14d6-441c-8630-de52a577cef6.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\/9032d616-cc1d-48ad-a8c0-2283d0ed054e.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\/8f4980b9-bbca-4616-8752-79f97ef1f746.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=fv7s1tCmPPM\"><source src=\"https:\/\/www.youtube.com\/watch?v=fv7s1tCmPPM\" 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\">Travel<\/span><br \/>\n            <span class=\"tag\">Maps<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u98de\u884c\u8bb0\u5f55<\/span><br \/>\n            <span class=\"tag\">\u822a\u73ed\u5730\u56fe<\/span><br \/>\n            <span class=\"tag\">\u65c5\u884c\u8db3\u8ff9<\/span><br \/>\n            <span class=\"tag\">\u4e58\u5ba2\u6743\u76ca<\/span><br \/>\n            <span class=\"tag\">\u5ef6\u8bef\u8d54\u507f<\/span><br \/>\n            <span class=\"tag\">\u9690\u79c1\u4fdd\u62a4<\/span><br \/>\n            <span class=\"tag\">\u79bb\u7ebf\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u62a4\u7167\u5370\u7ae0<\/span><br \/>\n            <span class=\"tag\">\u5e74\u5ea6\u7edf\u8ba1<\/span><br \/>\n            <span class=\"tag\">\u751f\u6d3b\u8bb0\u5f55<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u6307\u51fa\u6838\u5fc3\u5356\u70b9\u6392\u5e8f\u6709\u8bef\u2014\u2014\u8d54\u507f\u91d1\u989d\u624d\u662f\u5b89\u88c5\u52a8\u673a\uff0c\u5730\u56fe\u53ea\u662f\u9526\u4e0a\u6dfb\u82b1\u3002\u5efa\u8bae\u5c06App Store\u526f\u6807\u9898\u6539\u4e3a\u7a81\u51fa\u8d54\u507f\u6570\u5b57\uff0c\u5e76\u5f3a\u5316\u201c\u65e0\u8d26\u53f7\u3001\u8bbe\u5907\u7aef\u5904\u7406\u201d\u7684\u9690\u79c1\u4f18\u52bf\u4ee5\u533a\u522b\u4e8e\u540c\u7c7b\u5e94\u7528\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Flown\u7684\u4ea7\u54c1\u903b\u8f91\u5b58\u5728\u4e00\u4e2a\u81f4\u547d\u7684\u7ed3\u6784\u6027\u77db\u76fe\uff1a\u5b83\u8bd5\u56fe\u7528\u201c\u6d6a\u6f2b\u7684\u5730\u56fe\u201d\u5305\u88c5\u201c\u529f\u5229\u7684\u8d54\u507f\u8ba1\u7b97\u5668\u201d\uff0c\u7ed3\u679c\u4e24\u5934\u90fd\u4e0d\u8ba8\u597d\u3002\u8bc4\u8bba\u8005\u4e00\u9488\u89c1\u8840\u5730\u6307\u51fa\u4e86\u8fd9\u4e00\u70b9\u2014\u2014\u5730\u56fe\u662f\u60c5\u611f\u4ef7\u503c\uff0c\u8d54\u507f\u662f\u5de5\u5177\u4ef7\u503c\uff0c\u800c\u7528\u6237\u53ea\u4e3a\u540e\u8005\u4ed8\u8d39\u3002\u8fd9\u79cd\u201c\u8f6f\u529f\u80fd\u505a\u95e8\u9762\uff0c\u786c\u529f\u80fd\u505a\u5e95\u724c\u201d\u7684\u7b56\u7565\u5728\u65e9\u671f\u83b7\u53d6\u7528\u6237\u65f6\u6216\u8bb8\u80fd\u589e\u52a0\u70b9\u51fb\u7387\uff0c\u4f46\u82e5\u8d54\u507f\u68c0\u6d4b\u4e0d\u591f\u7cbe\u51c6\u3001\u6d41\u7a0b\u4e0d\u591f\u95ed\u73af\uff08\u6bd4\u5982\u53ea\u7b97\u51fa\u91d1\u989d\u5374\u65e0\u6cd5\u5f15\u5bfc\u7d22\u8d54\uff09\uff0c\u90a3\u4e48\u8fd9220-520\u82f1\u9551\u7684\u627f\u8bfa\u53cd\u800c\u4f1a\u53d8\u6210\u4fe1\u4efb\u900f\u652f\u7684\u8d77\u70b9\u3002\u66f4\u6df1\u5c42\u7684\u95ee\u9898\u5728\u4e8e\uff0c\u98de\u884c\u8f68\u8ff9\u6570\u636e\u672c\u8eab\u662f\u4f4e\u9891\u3001\u957f\u5468\u671f\u7684\uff0c\u7528\u6237\u4e00\u5e74\u6253\u5f00\u5b83\u7684\u6b21\u6570\u5c48\u6307\u53ef\u6570\uff0c\u7f3a\u4e4f\u7c98\u6027\uff1b\u800c\u6b27\u76dfEC261\/UK261\u7684\u8d54\u507f\u89c4\u5219\u590d\u6742\u4e14\u968f\u822a\u53f8\u653f\u7b56\u52a8\u6001\u53d8\u5316\uff0cFlown\u82e5\u4e0d\u80fd\u6301\u7eed\u7ef4\u62a4\u89c4\u5219\u5e93\uff0c\u5176\u6838\u5fc3\u5356\u70b9\u4f1a\u8fc5\u901f\u8fc7\u65f6\u3002\u771f\u6b63\u7684\u4ef7\u503c\u951a\u70b9\u5e94\u8be5\u662f\u201c\u88ab\u52a8\u5f0f\u6743\u76ca\u7ba1\u5bb6\u201d\u2014\u2014\u4e0d\u9700\u8981\u7528\u6237\u4e3b\u52a8\u8bb0\u5f55\u822a\u73ed\uff0c\u800c\u662f\u901a\u8fc7\u90ae\u4ef6\u6216\u767b\u673a\u724c\u81ea\u52a8\u540c\u6b65\uff0c\u5e76\u5728\u5ef6\u8bef\u53d1\u751f\u65f6\u4e3b\u52a8\u63a8\u9001\u8d54\u507f\u6307\u5f15\u3002\u81f3\u4e8e\u5730\u56fe\u548c\u62a4\u7167\u5370\u7ae0\uff0c\u5145\u5176\u91cf\u662f\u7559\u5b58\u94a9\u5b50\uff0c\u800c\u975e\u8d2d\u4e70\u7406\u7531\u3002\u5efa\u8bae\u56e2\u961f\u7acb\u5373\u5c06\u6587\u6848\u91cd\u5fc3\u8c03\u8f6c\uff0c\u5e76\u8bc4\u4f30\u63a5\u5165FlightAware\u7b49\u5b9e\u65f6\u6570\u636e\u6e90\u4ee5\u63d0\u5347\u68c0\u6d4b\u65f6\u6548\u6027\uff0c\u5426\u5219\u8fd972\u7968\u7684\u51b7\u542f\u52a8\u7528\u6237\u5f88\u5feb\u4f1a\u5728\u5b9e\u8df5\u4e2d\u53d1\u73b0\u201c\u7b97\u5f97\u51fa\u8d54\u507f\u201d\u548c\u201c\u62ff\u5f97\u5230\u8d54\u507f\u201d\u4e4b\u95f4\u7684\u9e3f\u6c9f\u3002\u5f53\u7136\uff0c\u5982\u679c\u5b83\u53ea\u6253\u7b97\u505a\u4e00\u6b3e\u7cbe\u81f4\u7684\u4e2a\u4eba\u6570\u636e\u53ef\u89c6\u5316\u5de5\u5177\uff0c\u5c31\u8bf7\u53bb\u6389\u8d54\u507f\u627f\u8bfa\uff0c\u4ee5\u514d\u8bef\u5bfc\u7528\u6237\u9884\u671f\u2014\u2014\u4f46\u90a3\u6837\u7684\u8bdd\uff0c\u5e02\u573a\u4e0a\u5df2\u7ecf\u6709\u82e5\u5e72\u4e2a\u514d\u8d39\u66ff\u4ee3\u54c1\u4e86\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\">Flown<\/span>\n                <\/div>\n<div class=\"comment-content\">Every flight you&#8217;ve ever taken, drawn on one map. Tick off 197 countries, collect passport stamps, see your year in the air. And when a late flight means the airline owes you \u00a3220-\u00a3520, Flown works it out and tells you. On-device, no account.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The \u00a3220 to \u00a3520 line is the last thing in your description and it&#8217;s the only part that pays for the app. A map of where I&#8217;ve been is a nice-to-have, money an airline owes me is a reason to install before I close this tab. I&#8217;d try flipping the App Store subtitle to lead with the compensation number and let the map be what people find afterwards. On-device with no account is the other thing worth saying louder, most flight trackers want my email before they show me 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\">#13<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/UKPOS6C6VKEDJT\" class=\"app-title\">ANCBuddy for Bose QC Ultra<\/a><\/p>\n<div class=\"one-liner\">Control Bose QC Ultra from your macOS menu bar<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">72<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>ANCBuddy \u5c06 Bose QC Ultra \u8033\u673a\u7684\u964d\u566a\u6a21\u5f0f\u5207\u6362\u4e0e\u7535\u91cf\u67e5\u770b\u529f\u80fd\u76f4\u63a5\u653e\u8fdb macOS \u83dc\u5355\u680f\uff0c\u89e3\u51b3\u4e86 Mac \u7528\u6237\u9891\u7e41\u5207\u6362 App \u63a7\u5236\u8033\u673a\u3001\u6253\u65ad\u4e13\u6ce8\u6d41\u7a0b\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\/10b9b92c-791d-4002-ab15-05f976241b26.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\/e755510f-3977-48f3-a0f8-ed3a59b4d767.gif?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Mac<\/span><br \/>\n            <span class=\"tag\">Menu Bar Apps<\/span><br \/>\n            <span class=\"tag\">Audio<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">macOS\u83dc\u5355\u680f\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">Bose\u8033\u673a\u63a7\u5236<\/span><br \/>\n            <span class=\"tag\">\u964d\u566a\u6a21\u5f0f\u5207\u6362<\/span><br \/>\n            <span class=\"tag\">\u7535\u91cf\u76d1\u63a7<\/span><br \/>\n            <span class=\"tag\">\u6548\u7387\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u84dd\u7259\u914d\u4ef6<\/span><br \/>\n            <span class=\"tag\">\u72ec\u7acb\u5f00\u53d1<\/span><br \/>\n            <span class=\"tag\">\u751f\u4ea7\u529b\u63d2\u4ef6<\/span><br \/>\n            <span class=\"tag\">\u97f3\u9891\u8bbe\u5907\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u514d\u8d39\u8bd5\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>\u5f00\u53d1\u8005\u4eb2\u81ea\u56de\u5e94\uff0c\u5f3a\u8c03AI Auto-EQ\u662f\u4eae\u70b9\uff0c\u4f46\u88ab\u8d28\u7591\u201c\u72ec\u7279\u201d\u4f9d\u636e\uff08\u5206\u6790\u66f2\u76ee\u8fd8\u662f\u8033\u673a\u54cd\u5e94\u66f2\u7ebf\uff09\u3002\u53e6\u4e00\u7528\u6237\u5173\u5fc3\u84dd\u7259\u591a\u70b9\u8fde\u63a5\u4e0b\uff0c\u83dc\u5355\u680f\u663e\u793a\u72b6\u6001\u662f\u5426\u4f1a\u968f\u97f3\u9891\u6e90\u5207\u6362\u800c\u9519\u4e71\uff0c\u5f00\u53d1\u8005\u89e3\u91ca\u4e3a\u8033\u673a\u7aef\u67e5\u8be2\uff0c\u4e0e\u97f3\u9891\u64ad\u653e\u6e90\u65e0\u5173\uff0c\u53ef\u8fb9\u7528iPhone\u64ad\u97f3\u4e50\u8fb9\u5728Mac\u8c03\u8bbe\u7f6e\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                ANCBuddy \u672c\u8d28\u662f\u4e00\u4e2a\u201cAPI \u58f3\u5b50\u201d\uff0c\u5b83\u5c06 Bose \u5b98\u65b9 App \u4e2d\u6700\u9ad8\u9891\u7684\u4e24\u4e2a\u52a8\u4f5c\uff08\u5207\u964d\u566a\u3001\u770b\u7535\u91cf\uff09\u63d0\u53d6\u81f3\u7cfb\u7edf\u83dc\u5355\u680f\u3002\u8fd9\u8c08\u4e0d\u4e0a\u98a0\u8986\uff0c\u4f46\u7cbe\u51c6\u8e29\u4e2d\u4e86\u201c\u6548\u7387\u654f\u611f\u578b\u201d\u7528\u6237\u7684\u5fc3\u7406\uff1a\u4ed6\u4eec\u4e0d\u613f\u4e3a\u5355\u4e00\u64cd\u4f5c\u4ed8\u51fa\u989d\u5916\u7684\u7a97\u53e3\u5207\u6362\u6210\u672c\u3002\u4ece\u8bc4\u8bba\u770b\uff0c\u4ea7\u54c1\u771f\u6b63\u5f15\u53d1\u8ba8\u8bba\u7684\u4e0d\u662f\u83dc\u5355\u680f\u63a7\u5236\uff0c\u800c\u662f\u201cAI Auto-EQ\u201d\u8fd9\u4e00\u672a\u88ab\u5b98\u65b9\u70b9\u540d\u7684\u5dee\u5f02\u5316\u529f\u80fd\u2014\u2014\u8fd9\u66b4\u9732\u4e86\u4e00\u4e2a\u4e8b\u5b9e\uff1a\u5f00\u53d1\u8005\u5bf9\u81ea\u5df1\u7684\u6838\u5fc3\u5356\u70b9\u7f3a\u4e4f\u81ea\u4fe1\uff0c\u53cd\u800c\u7528\u8fb9\u7f18\u529f\u80fd\u5438\u5f15\u773c\u7403\u3002\u8bc4\u8bba\u533a\u5bf9\u591a\u70b9\u8fde\u63a5\u72b6\u6001\u540c\u6b65\u7684\u8d28\u7591\uff0c\u662f\u672c\u4ea7\u54c1\u6700\u81f4\u547d\u7684\u6f5c\u5728\u7f3a\u9677\u2014\u2014\u82e5\u7528\u6237\u540c\u65f6\u8fde\u63a5 iPhone \u548c Mac\uff0c\u83dc\u5355\u680f\u7684\u6570\u636e\u5c31\u5b58\u5728\u201c\u8bed\u4e49\u8bef\u5bfc\u201d\u98ce\u9669\uff08\u8033\u673a\u7aef\u72b6\u6001\u4e0e Mac \u65e0\u5173\uff09\u3002\u8fd9\u4f1a\u8ba9\u201c\u5b9e\u65f6\u76d1\u63a7\u201d\u7684\u6982\u5ff5\u5927\u6253\u6298\u6263\u3002\u6574\u4f53\u800c\u8a00\uff0cANCBuddy \u662f\u4e00\u6b3e\u5408\u683c\u7684\u5de5\u5177\uff0c\u4f46\u5929\u82b1\u677f\u660e\u663e\uff1a\u5b83\u6ca1\u6709\u6446\u8131\u5bf9 Bose \u79c1\u6709\u534f\u8bae\u7684\u4f9d\u8d56\uff0c\u4e5f\u65e0\u6cd5\u89e3\u51b3\u591a\u8bbe\u5907\u751f\u6001\u4e0b\u7684\u72b6\u6001\u4e00\u81f4\u6027\u96be\u9898\u3002\u77ed\u671f\u53ef\u4f5c\u4e3a Mac \u7528\u6237\u7684\u4fbf\u5229\u63d2\u4ef6\uff0c\u957f\u671f\u82e5\u65e0\u72ec\u7acb\u7684\u97f3\u9891\u589e\u5f3a\u6216\u81ea\u52a8\u5316\u89c4\u5219\uff08\u5982\u6309 App \u81ea\u52a8\u5207\u964d\u566a\uff09\uff0c\u6050\u96be\u5f62\u6210\u7c98\u6027\u3002\u72ec\u7acb\u5f00\u53d1\u8005\u9700\u610f\u8bc6\u5230\uff0c\u5de5\u5177\u7c7b App \u7684\u62a4\u57ce\u6cb3\u4e0d\u5728\u529f\u80fd\u5806\u780c\uff0c\u800c\u5728\u5bf9\u7528\u6237\u5de5\u4f5c\u6d41\u7684\u6df1\u5ea6\u5d4c\u5165\u2014\u2014\u5426\u5219 72 \u7968\u7684\u53d1\u5e03\u70ed\u5ea6\uff0c\u5f88\u5feb\u5c31\u4f1a\u88ab\u7cfb\u7edf\u66f4\u65b0\u6216\u5b98\u65b9 App \u7684\u6539\u8fdb\u6240\u541e\u566c\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">ANCBuddy for Bose QC Ultra<\/span>\n                <\/div>\n<div class=\"comment-content\">ANCBuddy puts ANC mode and battery status for Bose QuietComfort Ultra devices into the macOS menu bar so you can toggle modes and monitor battery without opening another app. Free trial available; designed for commuters and focus-first workflows. Looking for feedback from QC Ultra users on macOS.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I\u2019m the indie developer behind ANCBuddy. I built this after repeatedly switching apps to control my QC Ultra on macOS. Happy to answer technical questions, share the roadmap, and collect feedback.<\/p>\n<p>While I believe the main hook is the simple control of the headphones via Mac: I honestly like the AI Auto-EQ Feature a lot! It&#8217;s so simple and really increases the quality and depth of music I listen to. It&#8217;s unique (nothing similar seen so far) and makes a difference. Try it out!<\/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\/@deniz_aytac1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@deniz_aytac1<\/a>&nbsp;Awesome Product Deniz!<\/p>\n<p>AI Auto-EQ that actually reads as unique is a bold claim.<\/p>\n<p>What&#8217;s it analyzing to tune that, the track itself or your headphone&#8217;s known response curve?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\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. QC Ultra supports Bluetooth multipoint &#8211; paired to two devices at once and switching audio between them. Does the menu bar state (ANC mode, battery) track correctly when the active device flips, or is it scoped to whatever Mac you&#8217;re on regardless of which device the headphones are actually talking to 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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Thanks<a href=\"https:\/\/www.producthunt.com\/@omri_ben_shoham1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@omri_ben_shoham1<\/a>&nbsp;quite exciting as it&#8217;s my first time launching. To your question:<\/p>\n<p>ANCBuddy is headset-scoped, not audio-source-scoped: whenever you open the panel, it queries the QC Ultra itself over Bose\u2019s BLE\/BMAP control channel for the current ANC mode and battery level. Those values describe the headphones, regardless of whether the Mac or the second multipoint device currently has the audio stream.<\/p>\n<p>Example of a possible use case: You could open the panel and adjust the headphones settings on Mac, while music is playing from your iPhone.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\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\/WIPDN746ZT7D27\" class=\"app-title\">Hyperfocus<\/a><\/p>\n<div class=\"one-liner\">Free, goals-first planner for Mac<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">33<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Hyperfocus \u662f\u4e00\u6b3e\u514d\u8d39\u7684 macOS \u76ee\u6807\u4f18\u5148\u89c4\u5212\u5668\uff0c\u901a\u8fc7\u5c06\u957f\u671f\u76ee\u6807\u62c6\u89e3\u4e3a\u6bcf\u5468\/\u6bcf\u65e5\u8ba1\u5212\u5e76\u914d\u5408\u4e13\u6ce8\u65f6\u6bb5\uff0c\u89e3\u51b3\u4efb\u52a1\u7ba1\u7406\u5de5\u5177\u201c\u4ece\u6536\u4ef6\u7bb1\u51fa\u53d1\u5bfc\u81f4\u88ab\u52a8\u53cd\u5e94\u3001\u6e05\u5355\u5197\u957f\u5374\u4f4e\u6548\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\/5b558482-76e8-4e90-bd5c-964ad8cc98d4.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\/0f430f4d-3c00-4687-8fb2-fe39a4034691.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\/eb7d1138-373f-49f0-bcad-5dde7995598a.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\/a56fba6a-e24c-4679-a97e-928bf8354e2f.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\/9c19141f-e3b0-44b0-ad88-d33100cc9ed2.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\/6b915b9d-32df-4c20-b782-8942f65d898e.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/hv1AjxL-60E\"><source src=\"https:\/\/youtu.be\/hv1AjxL-60E\" 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\">Task Management<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u76ee\u6807\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u5468\u8ba1\u5212<\/span><br \/>\n            <span class=\"tag\">\u65e5\u8ba1\u5212<\/span><br \/>\n            <span class=\"tag\">macOS\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u514d\u8d39\u89c4\u5212\u5668<\/span><br \/>\n            <span class=\"tag\">AI\u89c4\u5212<\/span><br \/>\n            <span class=\"tag\">\u4e13\u6ce8\u8ba1\u65f6<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u4f18\u5148<\/span><br \/>\n            <span class=\"tag\">\u751f\u4ea7\u529b\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u53cd\u9988\u673a\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\u8ba4\u53ef\u201c\u76ee\u6807\u4f18\u5148\u201d\u5207\u5165\u89d2\u5ea6\uff0c\u79f0\u5bf9\u6bd4Todoist\/Sunsama\u540e\u201c\u6709\u5e0c\u671b\u201d\u3002\u4f46\u6700\u6709\u6548\u7684\u95ee\u9898\u662f\uff1a\u4e3a\u4f55\u91c7\u7528\u7c7b\u4f3cNotion\u7684\u9875\u9762\u5f0f\u8bbe\u8ba1\u800c\u975e\u7ecf\u5178\u4efb\u52a1\u5217\u8868\uff1f\u5f00\u53d1\u8005\u56de\u5e94\u79f0\u4e3a\u964d\u4f4e\u89c4\u5212\u6469\u64e6\u3002\u53e6\u6709\u7528\u6237\u5173\u5fc3\u65e7\u7248\u7f3a\u5931\u7684\u201cAgent\u201d\u529f\u80fd\u5728\u65b0\u7248\u4e2d\u7684\u53d8\u5316\uff0c\u6574\u4f53\u53cd\u9988\u79ef\u6781\u4f46\u6df1\u5ea6\u8bd5\u7528\u8005\u5c11\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                Hyperfocus \u7684\u806a\u660e\u4e4b\u5904\u5728\u4e8e\u6ca1\u6709\u91cd\u505a\u201c\u4efb\u52a1\u6e05\u5355\u201d\u8fd9\u4e2a\u54c1\u7c7b\uff0c\u800c\u662f\u76f4\u63a5\u5426\u5b9a\u4e86\u5b83\u3002\u4ea7\u54c1\u6293\u4f4f\u4e86\u4efb\u52a1\u7ba1\u7406\u5de5\u5177\u7684\u6838\u5fc3\u6096\u8bba\uff1a\u5de5\u5177\u8d8a\u5584\u4e8e\u6536\u96c6\u4efb\u52a1\uff0c\u7528\u6237\u8d8a\u5bb9\u6613\u9677\u5165\u201c\u865a\u5047\u5fd9\u788c\u201d\u3002\u7528\u201c\u76ee\u6807-\u5468-\u65e5\u201d\u7684\u81ea\u4e0a\u800c\u4e0b\u7ed3\u6784\u914d\u5408\u5199\u4f5c\u5f0f\u53cd\u9988\uff0c\u672c\u8d28\u662f\u628a\u6559\u7ec3\u670d\u52a1\u4ea7\u54c1\u5316\u2014\u2014\u8fd9\u5728\u5355\u4eba\u5de5\u5177\u91cc\u7f55\u89c1\u3002\u4f46\u98ce\u9669\u540c\u6837\u660e\u663e\uff1a\u7b2c\u4e00\uff0c\u514d\u8d39+\u672c\u5730\u4f18\u5148\u610f\u5473\u7740\u5546\u4e1a\u5316\u8def\u5f84\u4e0d\u6e05\u6670\uff0c\u6ca1\u6709\u56e2\u961f\u7ef4\u62a4\u52a8\u529b\u7684\u5f00\u6e90\u5f0f\u4ea7\u54c1\u6781\u6613\u70c2\u5c3e\uff08\u53d1\u5e16\u8005\u8ddd\u4e0a\u6b21\u53d1\u5e03\u8fd110\u5e74\u5373\u662f\u4fe1\u53f7\uff09\uff1b\u7b2c\u4e8c\uff0c\u201cGrammarly\u5f0f\u53cd\u9988\u201d\u548cAI\u89c4\u5212\u9ad8\u5ea6\u4f9d\u8d56\u5185\u5bb9\u8d28\u91cf\uff0c\u521d\u671f\u5bf9\u666e\u901a\u7528\u6237\u53ef\u80fd\u662f\u8d1f\u62c5\u800c\u975e\u52a9\u529b\u2014\u2014\u666e\u901a\u4eba\u8fde\u76ee\u6807\u90fd\u5199\u4e0d\u6e05\uff0c\u4f55\u8c08\u8ba9AI\u4f18\u5316\uff1f\u7b2c\u4e09\uff0c\u9875\u9762\u5f0f\u4ea4\u4e92\u867d\u6709Notion\u7684\u719f\u6089\u611f\uff0c\u5374\u727a\u7272\u4e86\u4efb\u52a1\u5de5\u5177\u7684\u201c\u5feb\u901f\u6355\u83b7\u201d\u5fc3\u667a\uff0c\u7528\u6237\u8fc1\u79fb\u6210\u672c\u9ad8\u3002\u76ee\u524d33\u7968\u7684\u4f4e\u70ed\u5ea6\u548c\u8bc4\u8bba\u4e2d\u201c\u5c1d\u8bd5\u8fc7\u4f46\u6ca1\u6df1\u5165\u201d\u7684\u6bd4\u4f8b\uff0c\u8bf4\u660e\u5b83\u5c1a\u672a\u4ea7\u751f\u8db3\u591f\u7684\u66ff\u4ee3\u7406\u7531\u3002\u771f\u6b63\u7684\u8003\u9a8c\u4e0d\u662f\u7406\u5ff5\u662f\u5426\u6b63\u786e\uff08\u76ee\u6807\u4f18\u5148\u5f53\u7136\u5bf9\uff09\uff0c\u800c\u662f\u80fd\u5426\u8ba9\u7528\u6237\u5728\u4e09\u5929\u65b0\u9c9c\u611f\u540e\uff0c\u628a\u5b83\u53d8\u6210\u6bcf\u65e5\u5148\u6253\u5f00\u7684\u5e94\u7528\u3002\u82e5AI\u53cd\u9988\u771f\u80fd\u6301\u7eed\u8ba9\u4eba\u610f\u8bc6\u5230\u201c\u6e05\u5355\u91cc80%\u7684\u4e8b\u4e0d\u503c\u5f97\u505a\u201d\uff0c\u90a3\u5b83\u79f0\u5f97\u4e0a\u9769\u65b0\uff1b\u82e5\u53ea\u662f\u628a\u6e05\u5355\u6362\u4e86\u4e2a\u5c42\u7ea7\uff0c\u90a3\u4e0d\u8fc7\u662f\u53e6\u4e00\u6b3e\u7cbe\u81f4\u7684\u201c\u5de5\u4f5c\u5173\u4e8e\u5de5\u4f5c\u201d\u5de5\u5177\u3002\u89c2\u671b\u5176AI\u7684\u5b9e\u8d28\u5e72\u9884\u6df1\u5ea6\uff0c\u800c\u975e\u754c\u9762\u7f8e\u5b66\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\">Hyperfocus<\/span>\n                <\/div>\n<div class=\"comment-content\">Hyperfocus is a free, goals-first planner for macOS. It helps you choose the few outcomes that matter most, plan weeks and days around them, and make consistent progress by doing focused work<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey everyone, Dmitri is here!<\/p>\n<\/p>\n<p>It feels so good to be back on Product Hunt after almost 10 years!<\/p>\n<\/p>\n<p>Today I\u2019m launching Hyperfocus \u2013 a free, goals-first planner for Mac.<\/p>\n<\/p>\n<p>I\u2019ve spent the last several years coaching focus to product people in tech, and I\u2019ve always felt that task managers got productivity wrong.<\/p>\n<\/p>\n<p>Why? First, they&#8217;re really good at capturing and organizing tasks, but they start from an inbox \u2013 teaching you to react instead of deciding what actually matters. Second, most planners don\u2019t really have an opinion on how you should work, so many people end up with a long list of todos that makes them feel busy without making them productive.<\/p>\n<\/p>\n<p>Hyperfocus takes a different approach. First, it starts from goals \u2013 you decide what matters most in the next few months, then plan your weeks and days around them.<\/p>\n<\/p>\n<p>Second, it\u2019s built on a simple belief: focusing on a few clear goals is better than checking off a long list of todos. So as you write, it gives you feedback on your goals and plans, and then helps to make them clear and realistic.&nbsp;<\/p>\n<\/p>\n<p>So what\u2019s inside?<\/p>\n<ul>\n<li>\n<p>One workspace that connects long-term goals to weeks and days<\/p>\n<\/li>\n<li>\n<p>Grammarly-like feedback on your goals and plans<\/p>\n<\/li>\n<li>\n<p>AI for planning, prioritization, and goal setting<\/p>\n<\/li>\n<li>\n<p>Long-term, weekly, and daily planning rituals<\/p>\n<\/li>\n<li>\n<p>Focus sessions<\/p>\n<\/li>\n<li>\n<p>Local first, small, fast.<\/p>\n<\/li>\n<\/ul>\n<p>The app is free. Download it for Mac: <a href=\"https:\/\/hyperfocus.in\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/hyperfocus.in<\/a><\/p>\n<\/p>\n<p>Hyperfocus is still early, and any feedback would be really helpful! If the problem and the promise resonate \u2013 I\u2019d love for you to try Hyperfocus and tell me what you think. Does it fit into your workflow? What is missing? How does it make you feel?<\/p>\n<\/p>\n<p>That feedback would help a lot! Let&#8217;s focus \ud83d\ude80<\/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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@dmtsepelev\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dmtsepelev<\/a>&nbsp;Congrats on the launch. I just gave it a try and look forward to using it!!! \ud83d\ude80<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@dmtsepelev\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dmtsepelev<\/a>&nbsp;Nice launch congrats\ud83d\ude4c<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@dmtsepelev\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dmtsepelev<\/a>&nbsp;Amazing Launch Dmitrii!<\/p>\n<p>What made you pick &#8220;goals-first&#8221; as the wedge, instead of just building a better todo 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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The clean macOS-focused approach is refreshing. Having a planner built around doing fewer things well sounds useful. \ud83d\udc4c<\/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>Congrats on the launch! Remind me a lot of Notion visually. Is there a reason why did you go with pages-like design instead of classic tasks lists?<\/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\/@stepcha_cherkasov\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"stepcha_cherkasov\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@stepcha_cherkasov<\/a> thank you so much! Yep, I took a lot of inspiration from Notion in how you type\/interact with tasks. I really wanted to make planning frictionless, so it does not feel like work about work. You just simply type whatever you want to achieve without navigating between different UIs, press tab when you want to make subtasks, and that&#8217;s 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>Dima, congrats on the launch! Pretty cool to see that someone is optimizing for outcomes instead of just completing more tasks! Love the idea<\/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\/@mituhin\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mituhin<\/a>&nbsp;Agreed!<\/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>@mituhin thanks Paul, really appreciate! It was actually super confusing to me why almost nobody tried it in the personal productivity space before! <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\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\">Great launch, just tried it, looked awesome<\/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\/@timcha_cherkasov\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"timcha_cherkasov\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@timcha_cherkasov<\/a> thank you for your support, it means a lot!<\/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>Congrats <a href=\"https:\/\/www.producthunt.com\/@dmtsepelev\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"dmtsepelev\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dmtsepelev<\/a> ! the Agent is something that I missed in the previous version so now I am excited to get to my hyperfocus track &#8211; I need this much as never before <\/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>@artem_cherepanov thanks a lot for your support! yep, the app has changed a lot since you last tried it; would love to know what you think about the new release!<\/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>Congrats on the launch! This is one of those problems I\u2019ve been trying to solve for years. Tried everything from Todoist\/Things 3 to Sunsama and Claude\/ChatGPT.<\/p>\n<\/p>\n<p>Been using Hyperfocus for a bit now and it looks really promising so far!<\/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>@samarsky thanks a lot! that was exactly my path \u2013 I tried almost everything on the market and either tools were too complicated and felt like work about work, or they just lacked the goals-first framing! would love to know what you think<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\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 approach &#8211; very similar that I use in my goals setup to d2d planning, but here it is implemented in a specific tool that guide you over all the process and control. <\/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\/@albertyanov\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@albertyanov<\/a>&nbsp;yep, what i learned is that having a structure and ritual actually helps a lot to stay focused! everyone knows that you need to plan your work, but it&#8217;s pretty easy to get overwhelmed with day-to-day stuff and constantly postpone it for later<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@dmtsepelev\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"dmtsepelev\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dmtsepelev<\/a> Love the goals-first approach! It\u2019s so easy to get lost in endless to-do lists, so focusing on the few outcomes that actually matter feels refreshing. <br \/>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>Big 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\/@realvladgolub\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@realvladgolub<\/a>&nbsp;thanks, really appreciate!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\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! \ud83d\ude80 Love the goals-first angle &#8211; most planners get this backwards. Excited to try Hyperfocus.<\/div>\n<div class=\"comment-actions\">\n<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\/@zorinvlad\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@zorinvlad<\/a>&nbsp;thanks a lot! would love to know what you think!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#15<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/FAEGWPRH6IF6KC\" class=\"app-title\">Oppora AI<\/a><\/p>\n<div class=\"one-liner\">Find Leads, Run Outreach, and Book Meetings on Autopilot<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">18<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Oppora AI \u662f\u4e00\u6b3e\u5c06\u7ebf\u7d22\u6316\u6398\u3001\u8054\u7cfb\u4eba\u9a8c\u8bc1\u3001\u90ae\u4ef6\/LinkedIn\u89e6\u8fbe\u3001\u6536\u4ef6\u7bb1\u7ba1\u7406\u4e0eCRM\u540c\u6b65\u6574\u5408\u4e3a\u4e00\u5957\u81ea\u52a8\u5316\u9500\u552e\u5de5\u4f5c\u6d41\u7684AI\u9500\u552e\u7cfb\u7edf\uff0c\u65e8\u5728\u5e2e\u52a9\u5c0f\u89c4\u6a21\u9500\u552e\u56e2\u961f\u6446\u8131\u591a\u5de5\u5177\u62fc\u63a5\u7684\u7e41\u7410\uff0c\u5b9e\u73b0\u5916\u547c\u6d41\u7a0b\u7684\u81ea\u52a8\u5316\u8fd0\u8f6c\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\/f98c5818-bbef-41fc-9a01-bdea6fe18e0c.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\/288f6d98-8e8e-4c6b-86f2-93bdf637bff0.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\/73c6bf34-07b7-49bf-907e-248c2d67700b.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\/1e4b8010-6a52-48fb-bd72-028802f55c8e.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\/5d25ed48-05aa-4282-9d1f-6c5177f5ecb1.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\/23dc8895-44c8-4e78-91f7-d5002cabfa2b.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\/fa824704-299e-4a46-8440-02953366095d.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\/c5ebf14c-6656-4c81-9075-c84f7ca8cc23.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\/bb8a94ad-f445-4928-844f-89c826426963.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/XGDrxozelLo\"><source src=\"https:\/\/youtu.be\/XGDrxozelLo\" 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\">Sales<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">Marketing automation<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u9500\u552e\u4ee3\u7406<\/span><br \/>\n            <span class=\"tag\">\u5916\u547c\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">\u7ebf\u7d22\u6316\u6398<\/span><br \/>\n            <span class=\"tag\">\u90ae\u4ef6\u8425\u9500<\/span><br \/>\n            <span class=\"tag\">LinkedIn\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">CRM\u96c6\u6210<\/span><br \/>\n            <span class=\"tag\">\u9500\u552e\u6d41\u7a0b\u4e00\u4f53\u5316<\/span><br \/>\n            <span class=\"tag\">\u90ae\u4ef6\u6295\u9012\u7387\u4fdd\u969c<\/span><br \/>\n            <span class=\"tag\">AI\u5de5\u4f5c\u6d41<\/span><br \/>\n            <span class=\"tag\">\u9500\u552e\u8d4b\u80fd<\/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\u201c\u4e00\u4f53\u5316\u5e73\u53f0\u201d\u5bf9\u964d\u4f4e\u5de5\u5177\u6210\u672c\u548c\u7ba1\u7406\u590d\u6742\u5ea6\u7684\u4ef7\u503c\u3002\u6838\u5fc3\u5173\u6ce8\u70b9\u96c6\u4e2d\u4e8e\u81ea\u52a8\u5316\u8fb9\u754c\uff1a\u54ea\u4e00\u6b65\u9aa4\u5e94\u4fdd\u7559\u4eba\u5de5\u5ba1\u6279\uff08\u5982\u9996\u6b21\u56de\u590d\u8349\u7a3f\u6a21\u5f0f\uff09\uff1b\u5de5\u4f5c\u6d41\u4e2d\u67d0\u6b65\u9aa4\u5931\u8d25\uff08\u5982\u90ae\u7bb1\u9a8c\u8bc1\uff09\u65f6\uff0c\u662f\u4ec5\u91cd\u8bd5\u5931\u8d25\u8282\u70b9\u8fd8\u662f\u4e2d\u6b62\u6574\u4e2a\u6d41\u7a0b\uff1b\u4ee5\u53ca\u9488\u5bf9\u521b\u59cb\u4ebaC\u7aef\u4e1a\u52a1\u548c\u4ee3\u7406\u673a\u6784\u591a\u5ba2\u6237\u7ba1\u7406\u8fd9\u4e24\u79cd\u573a\u666f\uff0c\u7cfb\u7edf\u7684\u9002\u914d\u5dee\u5f02\u5982\u4f55\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                Oppora AI\u8e29\u4e2d\u7684\u75db\u70b9\u771f\u5b9e\u4e14\u81f4\u547d\uff1a\u5bf9\u4e8e10\u4eba\u4ee5\u4e0b\u7684\u9500\u552e\u56e2\u961f\uff0c\u88ab\u8feb\u7ef4\u62a4\u4e00\u5957\u7531\u6570\u636e\u5e93\u3001\u9a8c\u8bc1\u3001\u53d1\u9001\u3001\u9884\u70ed\u3001CRM\u62fc\u63a5\u6210\u7684\u201c Frankenstein\u6280\u672f\u6808\u201d\uff0c\u4e0d\u4ec5\u662f\u91d1\u94b1\u6d6a\u8d39\uff0c\u66f4\u662f\u6570\u636e\u5728\u7f1d\u9699\u4e2d\u6084\u7136\u6d41\u5931\u7684\u4fe1\u4efb\u5371\u673a\u3002\u5b83\u8bd5\u56fe\u7528\u201c\u5de5\u4f5c\u6d41\u5373\u4ea7\u54c1\u201d\u7684\u903b\u8f91\uff0c\u5c06\u5148\u524d\u5206\u6563\u7684\u201c\u70b9\u529f\u80fd\u201d\u6574\u5408\u4e3a\u4e00\u5957\u53ef\u76d1\u7763\u7684\u81ea\u52a8\u5316\u6d41\u6c34\u7ebf\uff0c\u5176\u901a\u8fc7\u7ed3\u6784\u5316\u6570\u636e\u5728Agent\u95f4\u4f20\u9012\u800c\u975e\u81ea\u7136\u8bed\u8a00\uff0c\u8fd9\u786e\u5b9e\u662f\u4fdd\u8bc1\u65e0\u4eba\u503c\u5b88\u65f6\u7cfb\u7edf\u7a33\u5b9a\u6027\u7684\u5173\u952e\u8bbe\u8ba1\uff0c\u4e5f\u662f\u5176\u6280\u672f\u62a4\u57ce\u6cb3\u6240\u5728\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u8bc4\u8bba\u4e2d\u7684\u9ad8\u8d5e\u63d0\u95ee\u5df2\u89e6\u53ca\u4ea7\u54c1\u7684\u5929\u82b1\u677f\uff1a\u5b83\u672c\u8d28\u4e0a\u662f\u201c\u6d41\u7a0b\u81ea\u52a8\u5316\u201d\u800c\u975e\u201c\u9500\u552e\u667a\u80fd\u5316\u201d\u3002\u7528\u6237\u4ecd\u9700\u5b9a\u4e49\u201c\u627e30\u4e2a\u8425\u9500\u603b\u76d1\u201d\u7684\u6807\u51c6\uff0c\u201c\u4e3a\u4ec0\u4e48\u627e\u4ed6\u4eec\u201d\u7684\u7b56\u7565\u6d1e\u5bdf\u4f9d\u7136\u6b20\u5949\u3002\u5f53\u81ea\u52a8\u5316\u89e6\u8fbe\u7684\u95e8\u69db\u964d\u81f3\u4e3a\u96f6\uff0c\u7ade\u4e89\u5bf9\u624b\u4ea6\u80fd\u8f7b\u677e\u590d\u5236\u540c\u4e00\u5957\u52a8\u4f5c\u65f6\uff0c\u90ae\u4ef6\u6d2a\u6d41\u53ea\u4f1a\u52a0\u5267\u7528\u6237\u7684\u62b5\u89e6\u60c5\u7eea\uff0c\u201c\u4e2a\u6027\u5316\u201d\u5c06\u518d\u5ea6\u6ca6\u4e3a\u8bdd\u672f\u6a21\u677f\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u56e0\u6b64\uff0c\u5176\u771f\u6b63\u7684\u4ef7\u503c\u5728\u4e8e\u201c\u8282\u7701\u8fd0\u8425\u6210\u672c\u201d\uff0c\u800c\u975e\u201c\u63d0\u5347\u9500\u552e\u7b56\u7565\u201d\u3002\u5b83\u80fd\u5426\u7a81\u56f4\uff0c\u4e0d\u5728\u4e8e\u5176\u5185\u7f6e\u591a\u5c11\u5de5\u5177\uff0c\u800c\u5728\u4e8e\u5b83\u7684\u201cAI Copilot\u201d\u4f55\u65f6\u80fd\u4ece\u6267\u884c\u8005\u8fdb\u5316\u4e3a\u7b56\u7565\u5efa\u8bae\u8005\u2014\u2014\u5728\u7528\u6237\u4e0b\u8fbe\u6307\u4ee4\u524d\uff0c\u5c31\u57fa\u4e8e\u5386\u53f2\u8f6c\u5316\u6570\u636e\u53cd\u5411\u63d0\u793a\u201c\u8fd9\u7c7bCEO\u66f4\u9002\u5408\u5148\u901a\u8fc7LinkedIn\u4e92\u52a8\u800c\u975e\u51b7\u90ae\u4ef6\u201d\u3002\u5426\u5219\uff0c\u5b83\u6781\u5bb9\u6613\u6210\u4e3a\u4e00\u4e2a\u66f4\u6602\u8d35\u7684\u201c\u5927\u6742\u70e9\u201d\uff0c\u88ab\u90a3\u4e9b\u62e5\u6709\u5f3a\u5927API\u751f\u6001\u7684\u5355\u4e00\u529f\u80fd\u72ec\u89d2\u517d\uff08\u5982Apollo\u6216Clay\uff09\u901a\u8fc7\u96c6\u6210\u7b56\u7565\u53cd\u5411\u8695\u98df\u3002\u5bf9\u4e00\u4e2a\u65e9\u671f\u4ea7\u54c1\u800c\u8a00\uff0cOra\u548cMCP\u670d\u52a1\u5668\u662f\u806a\u660e\u7684\u5361\u4f4d\uff0c\u4f46\u201c\u63a7\u5236\u6b32\u201d\u4e0e\u201c\u81ea\u52a8\u5316\u201d\u4e4b\u95f4\u7684\u5e73\u8861\uff0c\u5c06\u51b3\u5b9a\u5b83\u6700\u7ec8\u662f\u6210\u4e3a\u56e2\u961f\u7684\u5f97\u529b\u5e72\u5c06\uff0c\u8fd8\u662f\u53e6\u4e00\u4e2a\u88ab\u6401\u7f6e\u7684\u6602\u8d35\u6446\u8bbe\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\">Oppora AI<\/span>\n                <\/div>\n<div class=\"comment-content\">Oppora is an AI sales system that turns your ICP into a self-running outbound workflow. Find and enrich decision-makers, score leads, personalize email and LinkedIn outreach, protect deliverability, handle replies, book meetings, and sync qualified opportunities to your CRM. Instead of stitching together databases, enrichment, sending, warm-up, inbox, and CRM tools, build one workflow once and let Oppora keep it running.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>We\u2019ve been thinking about a problem our sales team faces every day.<\/p>\n<p>There are great tools for finding leads, another for contact data, another for email outreach, another for managing inboxes, and then a CRM to keep everything together.<\/p>\n<p>But why does a small sales team need 5 to 6 different tools just to run outbound?<\/p>\n<p>We\u2019ve started working on an idea: <strong>one AI-powered sales platform that can handle the workflow from finding the right prospect \u2192 getting verified contact information \u2192 launching outreach \u2192 managing replies \u2192 tracking everything in CRM.<\/strong><\/p>\n<p>The bigger idea is to eventually have an <strong>AI sales copilot<\/strong> where you can simply tell it:<\/p>\n<p><em>&#8220;Find me companies that match X, identify the right people, and help me start conversations with them.&#8221;<\/em><\/p>\n<p>Still very early and we have a lot to figure out.<\/p>\n<p>Curious&#8230;.. <strong>if you could automate one part of your sales process today, what would it be?<\/strong><\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>32<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@findnextunknown finding ICP leads<\/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\">@findnextunknown For me, it would be lead research and qualification. A lot of time goes into finding the right prospects and understanding whether they\u2019re actually worth reaching out to.<\/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\/@findnextunknown\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@findnextunknown<\/a>&nbsp;Great Launch Sanjay!<\/p>\n<p>If you could automate one part of your own outbound today, what would you pick 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>We started <a href=\"http:\/\/Oppora.ai\" target=\"_blank\" rel=\"nofollow noopener noreferrer\"><strong>Oppora.ai<\/strong><\/a> for a simple reason: our own sales team was drowning in manual work.<\/p>\n<p>List building. Finding contacts. Verifying emails. Switching inboxes. Running campaigns. Updating CRM.<\/p>\n<p>Too many tools. Too much copy-paste. Not enough actual selling.<\/p>\n<p>So we started building Oppora internally \u2014 one platform to simplify the outbound sales workflow.<\/p>\n<p>After seeing our team use it in real-world outreach and generate opportunities, we realized this wasn&#8217;t just our problem. Sales teams everywhere are dealing with the same fragmented stack.<\/p>\n<h3>So we built <a href=\"http:\/\/Oppora.ai\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Oppora.ai<\/a> \ud83d\ude80<\/h3>\n<p>Instead of stitching together multiple tools, Oppora brings together:<\/p>\n<p>\ud83d\udd0e <strong>Lead Search &amp; Contact Finder<\/strong> \u2014 find the right prospects and contact information<\/p>\n<p>\ud83e\udde0 <strong>Lead Intelligence<\/strong> \u2014 enrich and qualify prospects<\/p>\n<p>\u2705 <strong>Email Verification<\/strong> \u2014 reduce bounces and keep lists clean<\/p>\n<p>\ud83d\udce8 <strong>Email Campaigns + Multi-Inbox<\/strong> \u2014 launch and manage outreach from one place<\/p>\n<p>\ud83d\udcca <strong>AI-native CRM<\/strong> \u2014 manage prospects, conversations and opportunities<\/p>\n<p>\ud83d\udd17 <strong>Integrations<\/strong> \u2014 connect Oppora with your existing sales stack<\/p>\n<h3>And the part we&#8217;re most excited about: ORA \ud83e\udd16<\/h3>\n<p>ORA is our <strong>AI Sales Copilot<\/strong>.<\/p>\n<p>You can ask ORA to find leads, build an outreach campaign, help manage replies and move prospects through the sales workflow.<\/p>\n<p>The bigger vision is simple:<\/p>\n<p><strong>Turn a sales goal into qualified conversations and booked meetings&#8230; with AI doing the heavy lifting and humans staying in control.<\/strong><\/p>\n<p>Oppora started as something we built for our own team. We then opened it to the world, learned from real users, and kept improving it.<\/p>\n<p><strong>Today, we&#8217;re officially launching <\/strong><a href=\"http:\/\/Oppora.ai\" target=\"_blank\" rel=\"nofollow noopener noreferrer\"><strong>Oppora.ai<\/strong><\/a><strong> on Product Hunt. \ud83d\ude80<\/strong><\/p>\n<p>We&#8217;re excited to introduce it to the PH community and would love your feedback \u2014 what you like, what you don&#8217;t, and what you think we should build next.<\/p>\n<p>Let&#8217;s build the future of AI-powered sales together. \ud83d\ude4c<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>17<\/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>What stands out to me most about Oppora is the economics of the product.<\/p>\n<p>A typical outbound stack means paying separately for a lead database, contact enrichment, email verification, campaign sending, mailbox warm-up, LinkedIn automation, reply management, and a CRM. <\/p>\n<p>Each subscription may look manageable on its own, but the total monthly cost becomes heavy very quickly, especially when pricing increases with users, contacts, mailboxes, or credits.<\/p>\n<p>Oppora brings all of these functions into one connected system. That makes it one of the most affordable ways for sales and marketing teams to run the complete outbound cycle.<\/p>\n<p>Beyond the savings, it also creates a much cleaner tech stack. There are fewer subscriptions, fewer integrations to maintain, and less data moving between disconnected tools.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>10<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Head of Engineering at Oppora here, adding the build side. \ud83d\udc4b<\/p>\n<p>The thing that took longest wasn&#8217;t the AI. It was <strong>making the agents work as one system<\/strong> instead of eight separate features.<\/p>\n<p><strong>One workflow, not eight buttons.<\/strong> Most tools give you AI, but you still trigger each step yourself. In Oppora you drag the agents into a workflow once and it runs on a schedule. Find companies, get decision-makers, verify emails, score them against your ICP, send, handle replies, sync to CRM. Email and LinkedIn run in the same sequence, so touches coordinate instead of colliding. No logging in every morning.<\/p>\n<p>What makes that survive unattended is that agents pass <strong>structured data to each other, not text<\/strong>. Lead Finder receives a proper company object from Company Finder, so nothing gets re-interpreted along the way. Every step has retries and a defined failure mode, because a workflow that silently half-finishes at 2am is worse than one that stops and tells you.<\/p>\n<p><strong>Deliverability was the harder problem.<\/strong> Mailbox rotation, warmup, and verification before anything sends: every email is verified before it goes out, no guessed patterns, no unverified sends. Get this wrong and it doesn&#8217;t degrade slowly, it burns your domain. Most of our infrastructure work went there.<\/p>\n<p><strong>Two things not mentioned above.<\/strong> Everything the workflows do, you can also just ask: <strong>Ora, our in-app agent<\/strong>, sits on ~125 tools across the platform, so &#8220;find 50 fintech CTOs in Berlin and add them to my Q4 list&#8221; is a sentence, not a process. And we shipped a <strong>Claude MCP server + REST API<\/strong> on the same key \u26a1 so you can run lead search and outreach from Claude, Cursor, or n8n instead of our dashboard.<\/p>\n<p><strong>One question I&#8217;d like the PH view on:<\/strong> which parts of outbound should be fully automated, and where do you still want to approve before it sends? Our take is <strong>sourcing hands-off, first reply in draft mode<\/strong>. Curious if that matches how you&#8217;d actually run it.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>10<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@abu_tareq\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@abu_tareq<\/a>&nbsp;Really like the structured-data-between-agents idea.<\/p>\n<p>Quick question if one step fails (say email verification) does the workflow retry just that step or continue with the rest of the campaign?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\/@abu_tareq\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@abu_tareq<\/a>&nbsp;How would you use Oppora differently for a founder doing outbound vs an agency managing campaigns for multiple clients?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\/@abu_tareq\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@abu_tareq<\/a>&nbsp;Suppose I am a founder I have lots of user can I use oppora to automate my campaigns and forget about those?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I&#8217;m not on the sales side of this \u2014 I&#8217;m the project manager, and I run QA. So I came to Oppora from a completely different angle than most people here: not &#8220;will this send good emails,&#8221; but &#8220;does this system actually hold together?&#8221;<\/p>\n<p>I&#8217;ll leave the outbound story to the sales folks. What I can speak to is what a stack of disconnected tools looks like from the inside, because testing one is a nightmare.<\/p>\n<p>When your process is spread across five separate products \u2014 one for data, one to verify, one to send, one to warm up, a CRM to catch replies \u2014 you don&#8217;t have a system. You have five systems and a pile of glue holding them together. And every seam between them is a place where things quietly go wrong. Data gets dropped in a handoff. Counts don&#8217;t reconcile across tools. A field that&#8217;s filled in over here shows up blank over there. Nobody owns the whole picture, so when something breaks, everyone points at the tool on the other side of the integration.<\/p>\n<p>That&#8217;s the part I care about. From a QA seat, most of the real defects in outbound don&#8217;t live inside any one tool \u2014 they live in the gaps <em>between<\/em> them. You can&#8217;t test a workflow that spans five vendors that don&#8217;t talk to each other. You just hope it lines up.<\/p>\n<p>The reason one connected system matters isn&#8217;t that it&#8217;s tidier. It&#8217;s that there are far fewer places for the data to lie to you. When find \u2192 enrich \u2192 send \u2192 reply \u2192 CRM all run on the same rails, the numbers mean the same thing at every step, and there&#8217;s one place to look when they don&#8217;t. That&#8217;s what makes it trustworthy enough to actually hand work off to a teammate, or eventually to the AI.<\/p>\n<p>My whole job is to be the person trying to break this before you can. So take it from the resident skeptic: the thing worth caring about here isn&#8217;t any single feature. It&#8217;s that one system you can actually verify beats five you can only hope about.<\/p>\n<p>If you&#8217;re running a stitched-together stack right now, I&#8217;d genuinely like to know where it bites you \u2014 my money&#8217;s on the handoffs.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>9<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>\ud83d\udc4b Hey PH! <strong>Head of Product here.<\/strong> <\/p>\n<p>Sanjay covered the &#8220;what,&#8221; so here\u2019s the <strong>cheat code<\/strong> for getting the most out of Oppora on Day 1:<\/p>\n<p>Don\u2019t overthink your first campaign. Try this exact prompt in <strong>WORKFLOW <\/strong>right now:<\/p>\n<p><em>&#8220;Find 30 marketing directors, verify their emails, and send a short, 2-step sequence asking for a 15-min chat.&#8221;<\/em><\/p>\n<p>Watch it search, enrich, send, and route replies, all without you touching a single tab. That\u2019s the &#8220;aha!&#8221; moment we obsessed over building. <\/p>\n<p>We\u2019re hanging out in the comments all day to answer questions, squash bugs, and hear your feedback. So please: ask tough questions, request features, or even roast our UI. We build fast, and your feedback directly shapes what we do next.<\/p>\n<p><strong>Curious:<\/strong> What\u2019s the most annoying, repetitive task you\u2019re hoping to automate this week? Let\u2019s hear it! \ud83d\udc47<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>9<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@vishwa_teja_kondi<br \/>\nLove the direct approach here, Vishwa. Congrats on bringing Oppora to PH! <\/p>\n<p>The most repetitive task I&#8217;m trying to automate is setting up multi-channel touchpoints (like cross-checking a lead on LinkedIn and then sending a personalized email based on their latest post). Can the WORKFLOW prompt handle conditional formatting based on social signals, or is it strictly focused on email sequencing for now?<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on the launch! Bringing lead discovery, enrichment, verification, outreach, and CRM into one workflow could save small sales teams a lot of time and tool-switching. Wishing the Oppora team a great launch! \ud83d\ude80<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/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\/ITBNC3L5XN5CUC\" class=\"app-title\">OPENBOT<\/a><\/p>\n<div class=\"one-liner\">Opensource alternative for Grokbot<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">13<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>OPENBOT\u662f\u4e00\u6b3e\u5f00\u6e90\u7684\u53ef\u66ff\u4ee3Grokbot\u7684\u667a\u80fd\u4f53\u5de5\u5177\uff0c\u901a\u8fc7\u521b\u5efa\u5177\u5907\u72ec\u7acb\u8bb0\u5fc6\u3001\u65e5\u7a0b\u548c\u6301\u4e45\u5316\u5de5\u4f5c\u73af\u5883\u7684\u201c\u5177\u540dAgent\u540c\u4e8b\u201d\uff0c\u89e3\u51b3\u73b0\u6709AI\u5de5\u5177\u5bf9\u8bdd\u5373\u91cd\u7f6e\u3001\u65e0\u6cd5\u5728\u771f\u5b9e\u5de5\u5177\u4e2d\u6301\u7eed\u6267\u884c\u590d\u6742\u4efb\u52a1\u7684\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/6f04addc-8b1b-4d6a-ab66-09266ef7f71e.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\/0decf073-f72b-4f05-9974-307ec05c0c26.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\/005a29b5-afbc-4aa0-93a7-9a698894cd82.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\">Software Engineering<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">GitHub<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u5f00\u6e90\u667a\u80fd\u4f53<\/span><br \/>\n            <span class=\"tag\">AI\u540c\u4e8b<\/span><br \/>\n            <span class=\"tag\">\u6301\u4e45\u5316\u8bb0\u5fc6<\/span><br \/>\n            <span class=\"tag\">\u81ea\u52a8\u5316\u5de5\u4f5c\u6d41<\/span><br \/>\n            <span class=\"tag\">MCP\u8fde\u63a5\u5668<\/span><br \/>\n            <span class=\"tag\">\u6d4f\u89c8\u5668\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">\u4efb\u52a1\u8c03\u5ea6<\/span><br \/>\n            <span class=\"tag\">\u56e2\u961f\u534f\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">Grokbot\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>\u76ee\u524d\u4ec5\u6709\u4e00\u6761\u5f00\u53d1\u8005\u81ea\u8ff0\u8bc4\u8bba\uff081\u8d5e\uff09\uff0c\u5185\u5bb9\u4e3a\u9080\u8bf7\u7528\u6237\u8bd5\u7528\u5e76\u53cd\u9988\u5efa\u8bae\uff0c\u65e0\u5b9e\u8d28\u6027\u7528\u6237\u95ee\u9898\u6216\u529f\u80fd\u7f3a\u9677\u6307\u51fa\uff0c\u4ea7\u54c1\u5c1a\u5904\u4e8e\u65e9\u671f\u51b7\u542f\u52a8\u9636\u6bb5\uff0c\u7f3a\u4e4f\u7b2c\u4e09\u65b9\u9a8c\u8bc1\u6027\u53cd\u9988\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                OPENBOT\u7684\u5207\u5165\u70b9\u7cbe\u51c6\u8e29\u4e2d\u4e86\u5f53\u524dAI Agent\u8d5b\u9053\u7684\u4e24\u4e2a\u81f4\u547d\u4f24\uff1a\u4e00\u662f\u201c\u5bf9\u8bdd\u5373\u5931\u5fc6\u201d\u7684\u77ed\u671f\u8bb0\u5fc6\u9677\u9631\uff0c\u4e8c\u662f\u201c\u53ea\u80fd\u804a\u5929\u4e0d\u80fd\u5e72\u6d3b\u201d\u7684\u5de5\u5177\u9694\u79bb\u3002\u5176\u201c\u5177\u540d\u957f\u751f\u547d\u5468\u671fAgent\u201d+\u201c\u5171\u4eab\u6301\u4e45\u5316\u7535\u8111\uff08\u6d4f\u89c8\u5668\/Shell\/\u6587\u4ef6\u7cfb\u7edf\uff09\u201d\u7684\u8bbe\u8ba1\uff0c\u672c\u8d28\u4e0a\u662f\u5c06AI\u4ece\u201c\u804a\u5929\u7a97\u53e3\u201d\u5347\u7ea7\u4e3a\u201c\u865a\u62df\u5458\u5de5\u201d\uff0c\u8bd5\u56fe\u91cd\u6784\u4eba\u673a\u534f\u4f5c\u7684\u5355\u4f4d\u2014\u2014\u4ece\u201c\u6b21\u4f1a\u8bdd\u201d\u53d8\u4e3a\u201c\u6301\u7eed\u89d2\u8272\u201d\u3002\u8fd9\u4e00\u7406\u5ff5\u4e0eOpenAI\u7684Operator\u3001Anthropic\u7684Computer Use\u540c\u9891\uff0c\u4f46\u901a\u8fc7\u5f00\u6e90\u548cMCP\uff08\u6a21\u578b\u4e0a\u4e0b\u6587\u534f\u8bae\uff09\u7684\u6807\u51c6\u5316\u8fde\u63a5\u5668\uff0c\u964d\u4f4e\u4e86\u4f01\u4e1a\u79c1\u6709\u5316\u90e8\u7f72\u548c\u5b9a\u5236\u5316\u7684\u95e8\u69db\uff0c\u5177\u6709\u66f4\u7075\u6d3b\u7684\u957f\u5c3e\u573a\u666f\u9002\u914d\u6027\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u5fc5\u987b\u6cfc\u51b7\u6c34\uff1a13\u4e2a\u6295\u7968\u548c\u96f6\u6709\u6548\u7528\u6237\u53cd\u9988\uff0c\u8bf4\u660e\u4ea7\u54c1\u5c1a\u5904\u4e8e\u6982\u5ff5\u9a8c\u8bc1\u7684\u201c\u5a74\u513f\u671f\u201d\uff0c\u8fdc\u672a\u5f62\u6210\u793e\u533a\u5171\u8bc6\u3002\u5176\u6838\u5fc3\u96be\u70b9\u4e0d\u5728\u7406\u5ff5\uff0c\u800c\u5728\u5de5\u7a0b\u5151\u73b0\u2014\u2014\u6301\u4e45\u5316Agent\u5982\u4f55\u5728\u957f\u65f6\u95f4\u8fd0\u884c\u4e2d\u4e0d\u4ea7\u751f\u72b6\u6001\u8150\u5316\uff08\u8bb0\u5fc6\u6df7\u6dc6\u3001\u6587\u4ef6\u7cfb\u7edf\u9519\u4e71\uff09\u3001\u5982\u4f55\u5b89\u5168\u5730\u6388\u6743\u6d4f\u89c8\u5668\u548cShell\u64cd\u4f5c\uff08\u6743\u9650\u8fb9\u754c\u5d29\u584c\u5c06\u76f4\u63a5\u5bfc\u81f4\u707e\u96be\uff09\u3001\u4ee5\u53ca\u591aAgent\u95f4\u5982\u4f55\u534f\u8c03\u907f\u514d\u8d44\u6e90\u51b2\u7a81\uff0c\u90fd\u662f\u6781\u9ad8\u590d\u6742\u5ea6\u7684\u7cfb\u7edf\u95ee\u9898\u3002\u6b64\u5916\uff0cGrokbot\u672c\u8eab\u5df2\u4f9d\u6258X\u5e73\u53f0\u7684\u751f\u6001\u548c\u6d41\u91cf\uff0cOPENBOT\u58f0\u79f0\u201c\u66ff\u4ee3\u201d\u5374\u7f3a\u4e4f\u540c\u6837\u89c4\u6a21\u7684\u793e\u4ea4\u56fe\u8c31\u6570\u636e\uff0c\u5728\u6a21\u578b\u80fd\u529b\u76f8\u5f53\u7684\u524d\u63d0\u4e0b\uff0c\u5176\u5dee\u5f02\u5316\u4ef7\u503c\u5fc5\u987b\u5b8c\u5168\u4f9d\u8d56\u201c\u5de5\u5177\u94fe\u6df1\u5ea6\u201d\u6765\u8bc1\u660e\uff0c\u8fd9\u9700\u8981\u6781\u91cd\u7684\u5f00\u53d1\u6295\u5165\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4e00\u53e5\u8bdd\u603b\u7ed3\uff1a\u65b9\u5411\u662f\u5bf9\u7684\uff0c\u91ce\u5fc3\u591f\u5927\uff0c\u4f46\u5f53\u524d\u66f4\u50cf\u4e00\u4efd\u201c\u8bbe\u8ba1\u6587\u6863\u201d\u800c\u975e\u6210\u719f\u4ea7\u54c1\u3002\u82e5\u56e2\u961f\u4e0d\u80fd\u5728\u4e09\u4e2a\u6708\u5185\u62ff\u51fa\u8ba9\u5f00\u53d1\u8005\u793e\u533a\u773c\u524d\u4e00\u4eae\u7684\u81ea\u6258\u7ba1\u6f14\u793a\uff08\u4f8b\u5982\uff1a\u4e00\u4e2a\u65e0\u4eba\u503c\u5b88\u7684Agent\u81ea\u52a8\u5b8c\u6210\u8de8\u7f51\u7ad9\u6570\u636e\u6574\u7406+\u53d1\u90ae\u4ef6+\u751f\u6210\u62a5\u8868\u7684\u5b8c\u6574\u6848\u4f8b\uff09\uff0c\u5219\u6781\u6613\u6ca6\u4e3a\u53c8\u4e00\u4e2a\u505c\u7559\u5728GitHub Star\u9636\u6bb5\u7684\u201c\u5f00\u6e90\u73a9\u5177\u201d\u3002\u5efa\u8bae\u5173\u6ce8\u5176\u6743\u9650\u5b89\u5168\u5ba1\u8ba1\u5de5\u5177\u94fe\u548cMCP\u751f\u6001\u517c\u5bb9\u6027\u7684\u5b9e\u9645\u843d\u5730\u8d28\u91cf\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\">OPENBOT<\/span>\n                <\/div>\n<div class=\"comment-content\">Most agent tooling gives you a chat box that resets. OPENBOT gives you teammates: named, long-lived agents with their own conversation, memory and schedule, sharing one persistent computer with a browser, a shell and a filesystem. You message a Bot like a colleague. It does the work in the actual tools, through MCP where a connector exists and through the browser where one does not, and comes back when it needs your approval.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I am all open for feedback and suggestions, try it out and drop suggestions !<\/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<\/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\/KRMJEUCVZWZYZZ\" class=\"app-title\">DailyOutbid.lol<\/a><\/p>\n<div class=\"one-liner\">Another outbid.lol copycat, but leaderboard resets EVERY 24h<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">11<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong><\/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\/465d8e0f-616c-4756-bd3e-4ec39ff0e9a3.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\/30708da1-8c24-4923-8b9b-5d942fb75abd.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\/ab8ec6e4-1810-4e90-9cf9-b97092fd8175.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\">Marketing<\/span><br \/>\n            <span class=\"tag\">SEO<\/span><br \/>\n            <span class=\"tag\">SaaS<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\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><\/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\">DailyOutbid.lol<\/span>\n                <\/div>\n<div class=\"comment-content\">Pay to rank. Resets at midnight. A daily pay-to-rank leaderboard where $1 gets you started: outbid competitors, top the board, and keep a permanent dofollow backlink.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Great project man! I joined the board \u2764\ufe0f<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@alexcloudstar\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alexcloudstar<\/a>&nbsp;thanks for joining brother \ud83d\ude00<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/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\/WVNOBLJVDNDQEG\" class=\"app-title\">asktube.xyz<\/a><\/p>\n<div class=\"one-liner\">AI for YouTube power users<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">9<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>asktube \u8ba9 YouTube \u91cd\u5ea6\u7528\u6237\u80fd\u50cf\u641c\u7d22\u672c\u5730\u6587\u4ef6\u4e00\u6837\uff0c\u8de8\u81ea\u5df1\u8ba2\u9605\u7684\u9891\u9053\u548c\u624b\u5de5\u6574\u7406\u7684\u64ad\u653e\u5217\u8868\u8fdb\u884c AI \u95ee\u7b54\uff0c\u89e3\u51b3\u201c\u6536\u85cf\u4e86\u51e0\u5343\u4e2a\u89c6\u9891\u5374\u65e0\u6cd5\u7edf\u4e00\u68c0\u7d22\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\/a34ba163-bea3-4fc5-97a2-25e1a803d639.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\/efe03ff9-e742-4b34-b8f1-537654b2f1db.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=n64ClqIqyug\"><source src=\"https:\/\/www.youtube.com\/watch?v=n64ClqIqyug\" 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\">YouTube<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">YouTube \u6548\u7387\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">AI \u641c\u7d22<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730 AI<\/span><br \/>\n            <span class=\"tag\">\u77e5\u8bc6\u5e93\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">Playlist \u68c0\u7d22<\/span><br \/>\n            <span class=\"tag\">\u521b\u4f5c\u8005\u7ecf\u6d4e<\/span><br \/>\n            <span class=\"tag\">MCP \u534f\u8bae<\/span><br \/>\n            <span class=\"tag\">\u9690\u79c1\u4fdd\u62a4<\/span><br \/>\n            <span class=\"tag\">\u89c6\u9891\u95ee\u7b54<\/span><br \/>\n            <span class=\"tag\">\u8ba2\u9605\u7ba1\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>\u591a\u6570\u8bc4\u8bba\u8868\u8fbe\u8ba4\u53ef\uff0c\u8ba4\u4e3a\u201c\u81ea\u5e26\u6a21\u578b+\u672c\u5730\u5bc6\u94a5\u201d\u7684\u9690\u79c1\u65b9\u6848\u662f\u4eae\u70b9\u3002\u6838\u5fc3\u7591\u95ee\u96c6\u4e2d\u4e8e\u201c\u4f7f\u7528\u672c\u5730\u6a21\u578b\u65f6\uff0c20\u79d2\u9996\u7b54\u5ef6\u8fdf\u662f\u5426\u6539\u5584\u201d\uff0c\u53e6\u6709\u7528\u6237\u8be2\u95ee\u4e0e\u73b0\u6709\u5de5\u5177\u7684\u96c6\u6210\u4fbf\u5229\u6027\uff0c\u6574\u4f53\u53cd\u9988\u504f\u79ef\u6781\uff0c\u6682\u65e0\u5c16\u9510\u6279\u8bc4\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                asktube \u5207\u4e2d\u7684\u662f\u4e00\u4e2a\u771f\u5b9e\u4e14\u88ab\u957f\u671f\u5ffd\u89c6\u7684\u75db\u70b9\u2014\u2014YouTube \u7684\u201c\u6536\u85cf\u578b\u77e5\u8bc6\u5e93\u201d\u4e0e\u201c\u5168\u5c40\u641c\u7d22\u7b97\u6cd5\u201d\u4e4b\u95f4\u7684\u65ad\u5c42\u3002\u5176\u4ef7\u503c\u4e0d\u5728 AI \u672c\u8eab\uff0c\u800c\u5728\u4e8e\u201c\u6570\u636e\u4e3b\u6743\u201d\u7684\u7acb\u573a\uff1a\u8ba9\u7528\u6237\u7528\u81ea\u5df1\u7684\u6a21\u578b\u3001\u81ea\u5df1\u7684\u5bc6\u94a5\u3001\u81ea\u5df1\u7684\u5e93\uff0c\u8fd9\u6bd4\u4efb\u4f55\u4e91\u7aef AI \u529f\u80fd\u90fd\u66f4\u5177\u4fe1\u4efb\u57fa\u7840\u3002\u4ea7\u54c1\u8bbe\u8ba1\u903b\u8f91\u6e05\u6670\uff0c\u4ece\u201c\u95ee\u7b54\u201d\u5207\u5165\uff0c\u5ef6\u5c55\u5230\u201c\u8de8\u9891\u9053\u5bf9\u6bd4\u201d\u548c\u201cMCP \u5f00\u53d1\u8005\u63a5\u53e3\u201d\uff0c\u53d8\u73b0\u8def\u5f84\u672a\u6765\u53ef\u671f\u3002\u4f46\u98ce\u9669\u540c\u6837\u660e\u663e\uff1a20\u79d2\u7684\u9996\u7b54\u5ef6\u8fdf\u5728\u4f53\u9a8c\u4e0a\u51e0\u4e4e\u4e0d\u53ef\u5bb9\u5fcd\uff0c\u65e0\u8bba\u74f6\u9888\u5728\u9605\u8bfb\u8fd8\u662f\u68c0\u7d22\uff0c\u7528\u6237\u8010\u5fc3\u6709\u9650\uff1b\u6f14\u793a\u6570\u636e\u7531\u521b\u59cb\u4eba\u624b\u5de5\u6311\u9009\uff0c\u65e0\u6cd5\u8bc1\u660e\u771f\u6b63\u9762\u5bf9 200+\u9891\u9053\u300150+\u64ad\u653e\u5217\u8868\u65f6\u7684\u89c4\u6a21\u6027\u80fd\uff1b\u201c\u514d\u8d39\u4f46\u81ea\u5907\u6a21\u578b\u201d\u770b\u4f3c\u6177\u6168\uff0c\u5b9e\u5219\u5c06\u786c\u4ef6\u6210\u672c\u548c\u8c03\u8bd5\u95e8\u69db\u8f6c\u5ac1\u7ed9\u7528\u6237\uff0c\u8fd9\u5e76\u975e\u4eba\u4eba\u53ef\u7528\u7684\u201c\u514d\u8d39\u201d\u3002\u6700\u81f4\u547d\u7684\u7591\u95ee\u662f\uff1a\u4f9d\u8d56\u4e3b\u89c2\u6536\u85cf\u6784\u5efa\u7684\u201c\u77e5\u8bc6\u82b1\u56ed\u201d\u662f\u5426\u771f\u7684\u9700\u8981 AI \u68c0\u7d22\uff1f\u5982\u679c\u7528\u6237\u8fde\u81ea\u5df1\u4fdd\u5b58\u4e86\u4ec0\u4e48\u90fd\u6709\u6e05\u6670\u8bb0\u5fc6\uff0casktube \u7684\u6548\u7387\u4f18\u52bf\u4fbf\u4f1a\u88ab\u524a\u5f31\u3002\u5b83\u66f4\u50cf\u4e00\u4e2a\u201c\u9ad8\u73a9\u5de5\u5177\u201d\uff0c\u6ce8\u5b9a\u662f\u5c0f\u4f17\u5e02\u573a\uff0c\u80fd\u5426\u7a81\u7834\u5708\u5c42\u53d6\u51b3\u4e8e\u5bf9\u9690\u79c1\u654f\u611f\u578b\u4e13\u4e1a\u7528\u6237\uff08\u7814\u7a76\u8005\u3001\u8bfe\u7a0b\u5236\u4f5c\u8005\uff09\u7684\u6df1\u5ea6\u8fd0\u8425\uff0c\u800c\u975e\u6cdbYouTube\u4eba\u7fa4\u3002\u4ea7\u54c1\u65b9\u5411\u503c\u5f97\u5c0a\u91cd\uff0c\u4f46\u8ddd\u79bb\u6210\u4e3a\u201cYouTube \u7684 Alfred\u201d\u8fd8\u6709\u4e0d\u5c11\u5de5\u7a0b\u4e0e\u4f53\u9a8c\u7684\u786c\u4ed7\u8981\u6253\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\">asktube.xyz<\/span>\n                <\/div>\n<div class=\"comment-content\">You hand-built your YouTube library \u2014 topic playlists, videos saved for when you&#8217;d need them, channels you chose to follow. Your curated knowledge garden. Then you have a question, and YouTube can&#8217;t search across any of it. Its AI answers from the one video you&#8217;re watching. Really? asktube is the AI for YouTube power users: search and ask across every channel and playlist you follow, the way you search your own files. YouTube&#8217;s AI sees one video; asktube sees the library you built.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hi Product Hunt \ud83d\udc4b<\/p>\n<\/p>\n<p>I&#8217;m a power user of YouTube \u2014 and honestly, why wouldn&#8217;t you be? YouTube is a genuinely competitive marketplace. Creators get paid by how many people watch, so they&#8217;re incentivised to do the research properly, check it, and present it well. Better work earns more views. Whatever you think of the feed, the good material on YouTube is very good, and a lot of it exists nowhere else.<\/p>\n<\/p>\n<p>So I use it deliberately. I go through my feed daily and drop anything worth keeping into a topic playlist \u2014 for when I actually sit down to go deep on that subject. When I find someone consistently doing real work, I subscribe, so more of it reaches me. That&#8217;s 200+ channels and 50+ playlists now. YouTube caps a playlist at 5,000 videos, which I know because I&#8217;ve hit it. That&#8217;s a knowledge base, and I built it by hand, over years.<\/p>\n<\/p>\n<p>And then I go to use it, and there&#8217;s nothing there. YouTube gives me no tool that touches any of that effort. I can&#8217;t search across my own subscriptions and playlists \u2014 every search is a global search of all of YouTube, ranked by parameters I don&#8217;t control and can&#8217;t switch off. Its AI will discuss the one video I happen to have open, and nothing about the thousands I chose. The library is mine. The one thing I can&#8217;t do with it is use it.<\/p>\n<\/p>\n<p>That&#8217;s what asktube is for. Ask across every channel you follow and get one answer with the videos it came from. Ask a single creator. Compare a few. Or ask it to build the playlist that takes you from beginner to competent on something \u2014 and then you go and watch it. asktube works out what deserves your time; it isn&#8217;t trying to replace the watching.<\/p>\n<\/p>\n<p>The part I&#8217;d most like you to poke at: it&#8217;s free, including the AI. Not trial-free \u2014 free, because the AI is yours. asktube runs on Bodhi App, a local AI gateway I also built: you connect your own model, approve exactly what asktube may use, and your keys never leave your machine. asktube is the proof that a website can use your local AI safely. Everyone else in this category rents you someone else&#8217;s model for $8\u201320 a month.<\/p>\n<\/p>\n<p>There&#8217;s a live demo \u2014 no account, nothing to install. Being straight about it: the channels in the demo are hand-picked by me, not yours, and the AI is capped by the hour and by depth, because I&#8217;m paying for it. Everything it does, it does for real.<\/p>\n<\/p>\n<p>What&#8217;s rough: first answers take ~20 seconds, because it&#8217;s reading rather than recalling. Mobile is newer than desktop. And the demo collection is a slice, not the product.<\/p>\n<\/p>\n<p>What&#8217;s next: better cross-channel comparison, and the developer surface \u2014 asktube speaks MCP, so your coding agent can research your YouTube library directly.<\/p>\n<\/p>\n<p>I&#8217;d genuinely rather have your criticism than your upvote. Try the demo and tell me where it falls over \u2014 I&#8217;ll be in the comments all day.<\/p>\n<\/p>\n<p>\u2014 Amir<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@anagri\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@anagri<\/a>&nbsp;<\/p>\n<p>&#8220;Free because the AI is yours&#8221; is a much more interesting claim than the usual free tier. Connecting my own model through Bodhi and keeping the keys local is the only version of this I&#8217;d actually run against my whole subscription history.<\/p>\n<p>Question: if I point it at a local model rather than an API key, does the ~20s first answer get better or worse? Curious where the bottleneck actually is.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\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 helpful for my use cases. Easy to integrate with other 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\/@anugrah3\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@anugrah3<\/a>&nbsp;thanks for comment, glad you are finding it 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>looks to be a neat solution for missing content in ever growing youtube subscription feed<br \/>good luck<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@abhishekkr\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@abhishekkr<\/a>&nbsp;thank you for kind comment, glad that 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>asktube is really helpful. <\/p>\n<p>All the best for the launch Amir! <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@devenbhooshan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@devenbhooshan<\/a>&nbsp;thanks for the kind comment Deven. Wish you the best 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<\/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\/D3GWB6G6WTTH6D\" class=\"app-title\">OverMCP<\/a><\/p>\n<div class=\"one-liner\">The market for builders.<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">7<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>OverMCP \u662f\u4e00\u4e2a\u9762\u5411 SaaS \u548c\u5e94\u7528\u5f00\u53d1\u8005\u7684\u5b9e\u65f6\u7ade\u4e89\u699c\u5355\u5e73\u53f0\uff0c\u901a\u8fc7\u900f\u660e\u5316\u7684\u70b9\u51fb\u6570\u636e\u548c\u7ade\u4ef7\u673a\u5236\uff0c\u5e2e\u521b\u59cb\u4eba\u76f4\u89c2\u770b\u5230\u4ea7\u54c1\u70ed\u5ea6\u6392\u540d\uff0c\u89e3\u51b3\u201c\u4ea7\u54c1\u4e0a\u7ebf\u540e\u7f3a\u4e4f\u771f\u5b9e\u5173\u6ce8\u5ea6\u53cd\u9988\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\/7b0b348f-c3a0-42ec-ba18-dd66cd0d84df.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\/433badb6-316c-4eed-bb0e-af46088ee05b.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\/320a36d2-528b-4515-9f7f-8289934ec930.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\/8cd47a77-f97c-4c1a-a100-7219811115b5.jpeg?auto=format\" data-video-url=\"https:\/\/youtube.com\/shorts\/KnsqJNlFc6c\"><source src=\"https:\/\/youtube.com\/shorts\/KnsqJNlFc6c\" 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\">SaaS<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u4ea7\u54c1\u53d1\u5e03\u5e73\u53f0<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u65f6\u6392\u884c\u699c<\/span><br \/>\n            <span class=\"tag\">\u7ade\u4ef7\u6392\u540d<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u793e\u533a<\/span><br \/>\n            <span class=\"tag\">SaaS\u63a8\u5e7f<\/span><br \/>\n            <span class=\"tag\">\u7528\u6237\u589e\u957f<\/span><br \/>\n            <span class=\"tag\">\u7ade\u4e89\u6570\u636e<\/span><br \/>\n            <span class=\"tag\">\u900f\u660e\u5316\u6570\u636e<\/span><br \/>\n            <span class=\"tag\">Product Hunt\u7ade\u54c1<\/span><br \/>\n            <span class=\"tag\">\u83b7\u5ba2\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\u5bf9\u201c\u4e89\u62a2\u699c\u9996\u201d\u7684\u7ade\u4ef7\u673a\u5236\u8868\u73b0\u51fa\u6d53\u539a\u5174\u8da3\uff0c\u597d\u5947\u4e24\u4eba\u6301\u7eed\u62ac\u4ef7\u65f6\u5e73\u53f0\u5982\u4f55\u5e94\u5bf9\u3002\u90e8\u5206\u8bc4\u8bba\u4e3a\u5e38\u89c4\u652f\u6301\u4e0e\u795d\u798f\uff0c\u53e6\u6709\u4eba\u5173\u6ce8\u5df2\u6709\u4e09\u4eba\u5360\u4f4d\uff0c\u671f\u5f85\u540e\u7eed\u7ade\u4e89\u52a8\u6001\u3002\u6709\u6548\u5efa\u8bae\u4e0d\u591a\uff0c\u6838\u5fc3\u7591\u95ee\u96c6\u4e2d\u5728\u7ade\u4ef7\u89c4\u5219\u4e0e\u53cd\u6ee5\u7528\u673a\u5236\u4e0a\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                OverMCP \u7684\u7acb\u610f\u5f88\u201c\u6027\u611f\u201d\u2014\u2014\u628a Product Hunt \u5f0f\u7684\u201c\u6295\u7968\u53e3\u7891\u201d\u6539\u9020\u6210\u201c\u771f\u91d1\u767d\u94f6\u7684\u7ade\u4ef7\u6ce8\u610f\u529b\u5e02\u573a\u201d\u3002\u5b83\u5ba3\u79f0\u201c\u900f\u660e\u5316\u70b9\u51fb\u201d\u548c\u201c\u5b9e\u65f6\u6392\u540d\u201d\uff0c\u672c\u8d28\u4e0a\u662f\u5c06\u6d41\u91cf\u5206\u914d\u6743\u4ece\u7b97\u6cd5\u9ed1\u7bb1\u8f6c\u79fb\u5230\u4e86\u4ef7\u683c\u4fe1\u53f7\uff0c\u8fd9\u786e\u5b9e\u5207\u4e2d\u4e86\u90e8\u5206\u521b\u59cb\u4eba\u5bf9\u201c\u53d1\u5e03\u5373\u77f3\u6c89\u5927\u6d77\u201d\u7684\u7126\u8651\u3002\u4f46\u8fd9\u91cc\u6709\u4e00\u4e2a\u81f4\u547d\u6096\u8bba\uff1a\u5982\u679c\u201c\u8d62\u8005\u901a\u5403\u201d\u7684\u699c\u5355\u9876\u7aef\u53ea\u5c5e\u4e8e\u51fa\u4ef7\u6700\u9ad8\u8005\uff0c\u90a3\u4e48\u8be5\u5e73\u53f0\u7684\u4ea7\u54c1\u53d1\u73b0\u4ef7\u503c\u4f1a\u8fc5\u901f\u9000\u5316\u3002\u6240\u6709\u8bbf\u5ba2\u6700\u7ec8\u53ea\u4f1a\u770b\u5230\u8d22\u529b\u6700\u96c4\u539a\uff08\u800c\u975e\u4ea7\u54c1\u6700\u4f18\uff09\u7684\u7ade\u4ef7\u8005\uff0c\u8fd9\u4f1a\u8ba9\u666e\u901a\u7528\u6237\u5931\u53bb\u6d4f\u89c8\u5174\u8da3\uff0c\u5bfc\u81f4\u6d41\u91cf\u6c60\u67af\u7aed\u3002\u6700\u7ec8\uff0c\u8fd9\u4e2a\u5e02\u573a\u4f1a\u4ece\u201c\u53d1\u73b0\u597d\u4ea7\u54c1\u201d\u53d8\u6210\u201c\u5e7f\u544a\u4f4d\u62cd\u5356\u884c\u201d\uff0c\u800c\u5b83\u5f15\u4ee5\u4e3a\u50b2\u7684\u201c\u771f\u5b9e\u70b9\u51fb\u201d\u82e5\u7f3a\u4e4f\u7b2c\u4e09\u65b9\u5ba1\u8ba1\uff0c\u4e5f\u6781\u6613\u6ca6\u4e3a\u5237\u91cf\u5de5\u5177\u3002\u76ee\u524d\u4ec57\u7968\u7684\u51b7\u542f\u52a8\u6570\u636e\u8bf4\u660e\uff0c\u5b83\u5c1a\u672a\u5efa\u7acb\u8d77\u201c\u5148\u6709\u89c2\u4f17\u540e\u6709\u5356\u5bb6\u201d\u7684\u98de\u8f6e\u3002\u521b\u59cb\u4eba\u663e\u7136\u770b\u5230\u4e86\u201c\u6ce8\u610f\u529b\u5b9a\u4ef7\u201d\u7684\u7a7a\u767d\uff0c\u4f46\u5982\u679c\u6ca1\u6709\u4e00\u5957\u5e73\u8861\u7ade\u4ef7\u8005\u4e0e\u666e\u901a\u6d4f\u89c8\u8005\u5229\u76ca\u7684\u673a\u5236\uff0c\u6bd4\u5982\u9650\u5236\u5355\u65e5\u51fa\u4ef7\u4e0a\u9650\u3001\u5f15\u5165\u793e\u533a\u53cd\u5783\u573e\u6295\u7968\uff0c\u6216\u8005\u5c06\u7ade\u4ef7\u6536\u5165\u90e8\u5206\u56de\u9988\u7ed9\u771f\u5b9e\u70b9\u51fb\u7528\u6237\uff0c\u8fd9\u4e2a\u5e02\u573a\u7684\u6d41\u52a8\u6027\u5f88\u5feb\u5c31\u4f1a\u67af\u7aed\u3002\u4e00\u53e5\u8bdd\uff1a\u70b9\u5b50\u950b\u5229\uff0c\u4f46\u7ecf\u6d4e\u5b66\u6a21\u578b\u5c1a\u5f85\u9a8c\u8bc1\uff0c\u5c0f\u5fc3\u6ca6\u4e3a\u201c\u6bd4\u8c01\u94b1\u591a\u201d\u7684\u865a\u8363\u6307\u6807\u5c55\u89c8\u9986\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\">OverMCP<\/span>\n                <\/div>\n<div class=\"comment-content\">Discover products, follow real clicks, and bid for the top spot on a transparent live leaderboard.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">We just launched OverMCP on Product Hunt \ud83d\ude80<\/p>\n<p>We\u2019re building a live market for SaaS and app builders, where products compete for attention and founders can see who\u2019s climbing the ranks.<\/p>\n<p>If you\u2019re a founder or builder, we\u2019d love your support.<\/p>\n<p>Check it out, leave a comment, and tell us what you think \ud83d\udc47<\/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>good luck \ud83d\ude80 curious what happens when two people keep outbidding each other for #1<\/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\/@ashimanski\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ashimanski<\/a>&nbsp;Haha that\u2019s exactly what I want to see \ud83d\ude02 Two people fighting for #1 would make the leaderboard really fun.<\/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>Awesome project, best of luck!<\/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\/@alexcloudstar\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alexcloudstar<\/a>&nbsp;thank you alex <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\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>that honestly huge<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b1491a34-6662-4e32-a281-f50edcaf56dd.png?auto=compress,format&amp;codec=mozjpeg&amp;cs=strip\" style=\"max-width: 100%\"><\/p>\n<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>3 founders already claimed their spots \ud83d\udc40<\/p>\n<p>Who\u2019s going to take the <strong>4th spot?<\/strong> \ud83d\udc40\ud83d\udd25<\/p>\n<p>The race is getting interesting. Who\u2019s making the next move?<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/743cd2e6-71b0-4b86-922f-a6e822c3a358.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<\/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\/A2QXRIMZYYZQT6\" class=\"app-title\">Comu Action Pro<\/a><\/p>\n<div class=\"one-liner\">Your pocket-sized Al workmate<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">5<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Comu Action Pro \u662f\u4e00\u6b3e\u201c\u53e3\u888bAI\u5de5\u53cb\u201d\uff0c\u8ba9\u7528\u6237\u901a\u8fc7\u8bed\u97f3\u8bb0\u5f55\u4f1a\u8bae\u3001\u8bbf\u8c08\u548c\u7075\u611f\uff0c\u65e0\u9700\u63d0\u793a\u8bcd\u6216\u590d\u6742\u6d41\u7a0b\uff0c\u81ea\u52a8\u751f\u6210\u8ddf\u8fdb\u90ae\u4ef6\u3001\u5f85\u529e\u6e05\u5355\u3001\u6f14\u793a\u6587\u7a3f\u548c\u6458\u8981\uff0c\u89e3\u51b3\u201c\u8bf4\u4e86\u5c31\u5fd8\u3001\u4f1a\u540e\u6574\u7406\u8017\u65f6\u201d\u7684\u804c\u573a\u6548\u7387\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/19422a26-51ca-43c8-ab07-e7b19bd21d2e.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=Nc25kWcwtGk\"><source src=\"https:\/\/www.youtube.com\/watch?v=Nc25kWcwtGk\" 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\/bd84fe31-1b30-4fc7-937c-ae54015222d3.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\/53da0095-4ff1-41ac-b0ee-4cc1e8e1db42.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\/86d86020-4614-4a74-9e88-ae58d5457a6f.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\/2a06652e-1dd0-4be9-867a-5aec70941bb5.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\/2d6f8a03-b733-4e57-8644-33d548bf48d8.jpeg?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Meetings<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u8bed\u97f3\u52a9\u624b<\/span><br \/>\n            <span class=\"tag\">\u4f1a\u8bae\u8bb0\u5f55<\/span><br \/>\n            <span class=\"tag\">\u81ea\u52a8\u6458\u8981<\/span><br \/>\n            <span class=\"tag\">\u884c\u52a8\u6e05\u5355<\/span><br \/>\n            <span class=\"tag\">\u90ae\u4ef6\u751f\u6210<\/span><br \/>\n            <span class=\"tag\">\u6f14\u793a\u6587\u7a3f<\/span><br \/>\n            <span class=\"tag\">\u6548\u7387\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u751f\u4ea7\u529b\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u8bed\u97f3\u8f6c\u5199<\/span><br \/>\n            <span class=\"tag\">\u667a\u80fd\u529e\u516c<\/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>\u5f53\u524d\u4ec55\u7968\uff0c\u6682\u65e0\u6587\u5b57\u8bc4\u8bba\u3002\u4ece\u4ea7\u54c1\u9875\u4fe1\u606f\u770b\uff0c\u7528\u6237\u6f5c\u5728\u5173\u5207\u53ef\u80fd\u96c6\u4e2d\u5728\uff1a\u8bed\u97f3\u8f6c\u5199\u51c6\u786e\u7387\u3001\u591a\u8bed\u8a00\u652f\u6301\u3001\u6a21\u677f\u81ea\u5b9a\u4e49\u7a0b\u5ea6\u3001\u4e0e\u73b0\u6709\u65e5\u5386\/\u90ae\u4ef6\u7cfb\u7edf\u96c6\u6210\u6df1\u5ea6\uff0c\u4ee5\u53ca\u514d\u8d39\u989d\u5ea6\u9650\u5236\u3002\u5efa\u8bae\u5c3d\u5feb\u8865\u5145\u771f\u5b9e\u7528\u6237\u53cd\u9988\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                Comu Action Pro \u7684\u5b9a\u4f4d\u806a\u660e\uff0c\u5207\u4e2d\u4e86\u201c\u4f1a\u8bae\u540e\u52a8\u4f5c\u201d\u8fd9\u4e00\u9ad8\u9891\u4e14\u88ab\u4f4e\u4f30\u7684\u75db\u70b9\u2014\u2014\u4e0d\u662f\u8bb0\u5f55\u672c\u8eab\uff0c\u800c\u662f\u4ece\u8bb0\u5f55\u5230\u6267\u884c\u7684\u201c\u6700\u540e\u4e00\u516c\u91cc\u201d\u3002\u5b83\u8bd5\u56fe\u7528\u201c\u514d\u63d0\u793a\u8bcd\u3001\u7eaf\u5bf9\u8bdd\u201d\u7684\u65b9\u5f0f\u964d\u4f4e\u4f7f\u7528\u95e8\u69db\uff0c\u8fd9\u786e\u5b9e\u6bd4\u4f20\u7edfAI\u7b14\u8bb0\u5de5\u5177\uff08\u5982Otter\u3001Fireflies\uff09\u66f4\u6fc0\u8fdb\uff0c\u4e5f\u66f4\u63a5\u8fd1\u201cAI\u5458\u5de5\u201d\u800c\u975e\u201c\u5de5\u5177\u201d\u7684\u5f62\u6001\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u95ee\u9898\u540c\u6837\u660e\u663e\uff1a\u7b2c\u4e00\uff0c\u5f53\u524d\u4ec55\u7968\uff0c\u7f3a\u4e4f\u4efb\u4f55\u771f\u5b9e\u7528\u6237\u8bc4\u8bba\uff0c\u4ea7\u54c1\u5f88\u53ef\u80fd\u5904\u4e8e\u6781\u65e9\u671f\u6216\u79cd\u5b50\u7528\u6237\u6781\u5c11\uff0c\u6838\u5fc3\u5356\u70b9\uff08\u65e0\u63d0\u793a\u8bcd\u751f\u6210PPT\u3001\u90ae\u4ef6\uff09\u7684\u771f\u5b9e\u8d28\u91cf\u5b58\u7591\u3002\u7b2c\u4e8c\uff0c\u201c\u65e0\u63d0\u793a\u8bcd\u201d\u662f\u4e00\u628a\u53cc\u5203\u5251\u2014\u2014AI\u9700\u8981\u4ece\u6a21\u7cca\u8bed\u97f3\u4e2d\u63a8\u65ad\u7528\u6237\u610f\u56fe\uff0c\u4e00\u65e6\u63a8\u65ad\u9519\u8bef\uff08\u5982\u5206\u4e0d\u6e05\u201c\u5f85\u529e\u201d\u548c\u201c\u5f85\u8ba8\u8bba\u201d\uff09\uff0c\u7ea0\u9519\u6210\u672c\u53cd\u800c\u9ad8\u4e8e\u624b\u52a8\u6574\u7406\u3002\u7b2c\u4e09\uff0c\u6b64\u7c7b\u5de5\u5177\u7684\u6570\u636e\u9690\u79c1\u4e0e\u5408\u89c4\u98ce\u9669\u5f88\u9ad8\uff0c\u4f1a\u8bae\u5f55\u97f3\u6d89\u53ca\u654f\u611f\u4fe1\u606f\uff0c\u82e5\u6ca1\u6709\u660e\u786e\u7684\u4f01\u4e1a\u7ea7\u5b89\u5168\u80cc\u4e66\uff0c\u5f88\u96be\u8fdb\u5165\u4e3b\u6d41\u804c\u573a\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u53e6\u5916\uff0c\u5e02\u9762\u4e0a\u98de\u4e66\u5999\u8bb0\u3001\u901a\u4e49\u542c\u609f\u5df2\u514d\u8d39\u63d0\u4f9b\u8f6c\u5199+\u6458\u8981\uff0cNotion AI\u548cChatGPT\u4e5f\u80fd\u4f4e\u6210\u672c\u751f\u6210\u884c\u52a8\u9879\u3002Comu\u7684\u5dee\u5f02\u5316\u5fc5\u987b\u4f53\u73b0\u5728\u201c\u884c\u52a8\u94fe\u8def\u7684\u95ed\u73af\u201d\u2014\u2014\u6bd4\u5982\u76f4\u63a5\u521b\u5efaJira\u4efb\u52a1\u3001\u66f4\u65b0CRM\u3001\u53d1\u9001Slack\u6d88\u606f\uff0c\u4f46\u76ee\u524d\u4ecb\u7ecd\u4e2d\u672a\u89c1\u96c6\u6210\u751f\u6001\uff0c\u4ec5\u505c\u7559\u5728\u201c\u751f\u6210\u6587\u6863\u201d\u5c42\u9762\uff0c\u62a4\u57ce\u6cb3\u8584\u5f31\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4e00\u53e5\u8bdd\u9510\u8bc4\uff1a\u60f3\u6cd5\u6f02\u4eae\uff0c\u4f46\u5f53\u524d\u72b6\u6001\u66f4\u50cf\u4e00\u4e2a\u201c\u6982\u5ff5Demo\u201d\uff0c\u82e5\u65e0\u96c6\u6210\u80fd\u529b\u548c\u9ad8\u8d28\u91cf\u8bed\u97f3\u7406\u89e3\u6a21\u578b\uff0c\u5f88\u5feb\u4f1a\u88ab\u5927\u5382\u529f\u80fd\u6df9\u6ca1\u3002\u5efa\u8bae\u56e2\u961f\u5148\u79ef\u7d2f\u5c0f\u4f17\u5782\u76f4\u573a\u666f\uff08\u5982\u9500\u552e\u8bbf\u8c08\u3001\u8bb0\u8005\u91c7\u8bbf\uff09\u7684\u6df1\u5ea6\u6848\u4f8b\uff0c\u518d\u8c08\u6cdb\u5316\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\">Comu Action Pro<\/span>\n                <\/div>\n<div class=\"comment-content\">Comu is your pocket-sized AI workmate that turns conversations into action. Record meetings, interviews, and ideas with ease, then instantly transform them into follow-up emails, action lists, presentations, summaries, and more. No prompts, no complicated workflows. Just talk, and get work done.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/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-08-23 PH\u70ed\u699c | 2026-08-23 #1 Const [&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-322","post","type-post","status-publish","format-standard","hentry","category-producthunt"],"_links":{"self":[{"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/posts\/322","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=322"}],"version-history":[{"count":0,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/posts\/322\/revisions"}],"wp:attachment":[{"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/media?parent=322"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/categories?post=322"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/tags?post=322"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}