{"id":246,"date":"2026-06-09T12:38:54","date_gmt":"2026-06-09T04:38:54","guid":{"rendered":"https:\/\/ph.listeningo.cn\/index.php\/2026\/06\/09\/2026-06-08\/"},"modified":"2026-06-09T12:38:54","modified_gmt":"2026-06-09T04:38:54","slug":"2026-06-08","status":"publish","type":"post","link":"https:\/\/ph.listeningo.cn\/index.php\/2026\/06\/09\/2026-06-08\/","title":{"rendered":"PH\u70ed\u699c | 2026-06-08"},"content":{"rendered":"<p><!DOCTYPE html><br \/>\n<html lang=\"zh-CN\"><br \/>\n<head><br \/>\n    <meta charset=\"UTF-8\"><br \/>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"><br \/>\n    <title>Product Hunt \u6bcf\u65e5\u70ed\u699c 2026-06-08<\/title><\/p>\n<style>\n        \/* --- \u5168\u5c40\u91cd\u7f6e\u4e0e\u5b57\u4f53 --- *\/\n        :root {\n            --ph-orange: #FF6154;\n            --text-main: #21293C;\n            --text-secondary: #4B587C;\n            --bg-ai: #F7F7F9;\n            --border-color: #E6E6E6;\n        }<\/p>\n<p>        body {\n            font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif;\n            color: var(--text-main);\n            background-color: #ffffff;\n            line-height: 1.6;\n            margin: 0;\n            padding: 20px;\n        }<\/p>\n<p>        .container {\n            max-width: 800px;\n            margin: 0 auto;\n        }<\/p>\n<p>        \/* --- \u5361\u7247\u6837\u5f0f --- *\/\n        .app-card {\n            border-bottom: 1px solid var(--border-color);\n            padding-bottom: 40px;\n            margin-bottom: 40px;\n        }<\/p>\n<p>        \/* --- 1. \u5934\u90e8\u533a\u57df --- *\/\n        .app-header {\n            display: flex;\n            align-items: flex-start;\n            gap: 16px;\n            margin-bottom: 20px;\n        }<\/p>\n<p>        .rank {\n            font-size: 24px;\n            font-weight: 300;\n            color: #999;\n            min-width: 30px;\n            padding-top: 4px;\n        }<\/p>\n<p>        .title-group {\n            flex: 1;\n        }<\/p>\n<p>        .app-title {\n            font-size: 24px;\n            font-weight: 800;\n            margin: 0 0 4px 0;\n            color: var(--text-main);\n            text-decoration: none;\n            display: inline-block;\n        }<\/p>\n<p>        .app-title:hover {\n            color: var(--ph-orange);\n            text-decoration: underline;\n        }<\/p>\n<p>        .vote-btn {\n            display: flex;\n            flex-direction: column;\n            align-items: center;\n            justify-content: center;\n            border: 1px solid var(--border-color);\n            border-radius: 8px;\n            padding: 8px 12px;\n            background: #fff;\n            min-width: 60px;\n            box-shadow: 0 1px 2px rgba(0,0,0,0.05);\n        }<\/p>\n<p>        .vote-arrow {\n            color: var(--ph-orange);\n            font-size: 14px;\n            margin-bottom: -2px;\n        }<\/p>\n<p>        .vote-count {\n            font-weight: 600;\n            font-size: 14px;\n        }<\/p>\n<p>        \/* --- 2. \u5347\u7ea7\u7248\u5a92\u4f53\u753b\u5eca (\u5173\u952e\u4fee\u6539) --- *\/\n        .media-gallery {\n            display: flex;\n            gap: 16px;\n            overflow-x: auto; \/* \u5141\u8bb8\u6a2a\u5411\u6eda\u52a8 *\/\n            padding-bottom: 16px; \/* \u7559\u51fa\u6eda\u52a8\u7a7a\u95f4 *\/\n            scroll-snap-type: x mandatory; \/* \u6eda\u52a8\u5438\u9644\u6548\u679c *\/\n            -webkit-overflow-scrolling: touch; \/* iOS \u5e73\u6ed1\u6eda\u52a8 *\/\n            margin-bottom: 20px;<\/p>\n<p>            \/* \u9690\u85cf\u9ed8\u8ba4\u6eda\u52a8\u6761\u4f46\u4fdd\u7559\u529f\u80fd (Firefox) *\/\n            scrollbar-width: thin;\n            scrollbar-color: #ddd transparent;\n        }<\/p>\n<p>        \/* Webkit \u6eda\u52a8\u6761\u6837\u5f0f\u4f18\u5316 *\/\n        .media-gallery::-webkit-scrollbar {\n            height: 6px;\n        }\n        .media-gallery::-webkit-scrollbar-track {\n            background: transparent;\n        }\n        .media-gallery::-webkit-scrollbar-thumb {\n            background-color: #eee;\n            border-radius: 10px;\n        }<\/p>\n<p>        .media-item-wrapper {\n            flex: 0 0 auto; \/* \u9632\u6b62\u88ab\u538b\u7f29 *\/\n            width: 80%;     \/* \u79fb\u52a8\u7aef\u9ed8\u8ba4\u9732\u51fa\u4e00\u70b9\u4e0b\u4e00\u5f20\uff0c\u63d0\u793a\u53ef\u6ed1\u52a8 *\/\n            max-width: 500px; \/* \u684c\u9762\u7aef\u6700\u5927\u5bbd\u5ea6 *\/\n            aspect-ratio: 16\/9; \/* \u7edf\u4e00\u6bd4\u4f8b *\/<\/p>\n<p>            position: relative;\n            border-radius: 12px;\n            overflow: hidden;\n            border: 1px solid rgba(0,0,0,0.08);\n            background-color: #f5f5f5;\n            scroll-snap-align: center; \/* \u6eda\u52a8\u505c\u6b62\u65f6\u5c45\u4e2d *\/\n        }<\/p>\n<p>        .media-content {\n            width: 100%;\n            height: 100%;\n            object-fit: cover; \/* \u586b\u5145\u5bb9\u5668 *\/\n            display: block;\n            cursor: pointer;\n        }<\/p>\n<p>        \/* \u89c6\u9891\u6807\u7b7e\u7279\u6b8a\u5904\u7406 *\/\n        video.media-content {\n            background-color: #000;\n            cursor: pointer;\n        }<\/p>\n<p>        \/* \u5982\u679c\u53ea\u67091\u4e2a\u5a92\u4f53\uff0c\u4e0d\u8981\u6eda\u52a8\uff0c\u4e14\u5bbd\u5ea6\u81ea\u9002\u5e94 *\/\n        .media-gallery.single-item .media-item-wrapper {\n            width: 100%;\n            max-width: 100%;\n        }<\/p>\n<p>        \/* --- 3. \u63cf\u8ff0\u4e0e\u6807\u7b7e --- *\/\n        .one-liner {\n            font-size: 18px;\n            color: var(--text-secondary);\n            margin-bottom: 12px;\n            font-weight: 500;\n        }<\/p>\n<p>        .tags-container {\n            display: flex;\n            flex-wrap: wrap;\n            gap: 8px;\n            margin-bottom: 24px;\n        }<\/p>\n<p>        .tag {\n            font-size: 12px;\n            color: var(--text-secondary);\n            background-color: #F2F2F2;\n            padding: 4px 10px;\n            border-radius: 20px;\n            font-weight: 600;\n            text-transform: uppercase;\n        }<\/p>\n<p>        \/* --- 4. AI \u6458\u8981\u533a --- *\/\n        .ai-section {\n            background-color: var(--bg-ai);\n            border-radius: 12px;\n            padding: 20px;\n            margin-bottom: 20px;\n            border-left: 4px solid var(--ph-orange);\n        }<\/p>\n<p>        .ai-title {\n            font-size: 14px;\n            font-weight: 700;\n            color: var(--text-main);\n            margin: 0 0 12px 0;\n            display: flex;\n            align-items: center;\n            gap: 6px;\n        }<\/p>\n<p>        .ai-content {\n            font-size: 15px;\n            color: #333;\n            margin-bottom: 0;\n            line-height: 1.7;\n        }<\/p>\n<p>        \/* --- 5. \u8bc4\u8bba\u533a --- *\/\n        .reviews-section {\n            margin-top: 10px;\n        }<\/p>\n<p>        .review-item {\n            display: flex;\n            gap: 10px;\n            margin-bottom: 12px;\n            font-size: 14px;\n        }<\/p>\n<p>        .review-avatar {\n            font-size: 18px;\n            margin-top: 2px;\n            min-width: 24px;\n        }<\/p>\n<p>        .review-bubble {\n            background: #fff;\n            border: 1px solid var(--border-color);\n            padding: 8px 12px;\n            border-radius: 0 12px 12px 12px;\n            color: var(--text-secondary);\n            line-height: 1.5;\n        }<\/p>\n<p>        .review-author {\n            font-weight: 700;\n            color: var(--text-main);\n            margin-right: 4px;\n            font-style: normal;\n        }<\/p>\n<p>        .comments-section {\n            margin-top: 30px;\n            border-top: 1px solid var(--border-color);\n            padding-top: 20px;\n        }<\/p>\n<p>        .comments-toggle {\n            background-color: #f8f9fa;\n            border: 1px solid var(--border-color);\n            border-radius: 8px;\n            padding: 12px 20px;\n            cursor: pointer;\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            width: 100%;\n            font-size: 14px;\n            font-weight: 600;\n            color: var(--text-main);\n            transition: all 0.3s ease;\n        }<\/p>\n<p>        .comments-toggle:hover {\n            background-color: #e9ecef;\n        }<\/p>\n<p>        .comments-toggle .toggle-arrow {\n            font-size: 18px;\n            transition: transform 0.3s ease;\n        }<\/p>\n<p>        .comments-toggle.open .toggle-arrow {\n            transform: rotate(180deg);\n        }<\/p>\n<p>        .comments-container {\n            max-height: 0;\n            overflow: hidden;\n            transition: max-height 0.5s ease;\n            margin-top: 15px;\n        }<\/p>\n<p>        .comments-container.open {\n            max-height: 800px;\n            overflow: auto;\n        }<\/p>\n<p>        .comment-item {\n            background-color: #fff;\n            border: 1px solid var(--border-color);\n            border-radius: 8px;\n            padding: 16px;\n            margin-bottom: 12px;\n            font-size: 14px;\n        }<\/p>\n<p>        .comment-header {\n            display: flex;\n            justify-content: space-between;\n            align-items: flex-start;\n            margin-bottom: 8px;\n        }<\/p>\n<p>        .comment-author {\n            font-weight: 600;\n            color: var(--text-main);\n            margin-right: 8px;\n        }<\/p>\n<p>        .comment-content {\n            color: var(--text-secondary);\n            line-height: 1.5;\n            margin-bottom: 10px;\n            word-break: break-word;\n            word-wrap: break-word;\n            overflow-wrap: anywhere;\n            white-space: normal;\n        }<\/p>\n<p>        .comment-content p {\n            margin: 0;\n            word-break: break-word;\n            word-wrap: break-word;\n            overflow-wrap: anywhere;\n            white-space: normal;\n        }<\/p>\n<p>        \/* \u4f18\u5316\u8868\u60c5\u7b26\u53f7\u663e\u793a *\/\n       .emoji {\n            display: inline;\n            max-width: 15px;\n            overflow-wrap: normal;\n        }<\/p>\n<p>        .comment-actions {\n            display: flex;\n            align-items: center;\n            gap: 16px;\n            font-size: 12px;\n            color: var(--text-secondary);\n        }<\/p>\n<p>        .comment-vote {\n            display: flex;\n            align-items: center;\n            gap: 4px;\n            cursor: pointer;\n        }<\/p>\n<p>        .comment-replies {\n            margin-top: 12px;\n            margin-left: 20px;\n            padding-left: 12px;\n            border-left: 2px solid var(--border-color);\n        }<\/p>\n<p>        .reply-item {\n            background-color: #f8f9fa;\n            border: 1px solid var(--border-color);\n            border-radius: 6px;\n            padding: 12px;\n            margin-bottom: 8px;\n            font-size: 13px;\n        }<\/p>\n<p>        .reply-content {\n            color: var(--text-secondary);\n            line-height: 1.4;\n            margin-bottom: 6px;\n        }<\/p>\n<p>        \/* --- \u54cd\u5e94\u5f0f\u5fae\u8c03 --- *\/\n        @media (min-width: 600px) {\n            .media-item-wrapper {\n                width: 60%; \/* \u684c\u9762\u7aef\u7a0d\u5fae\u7a84\u4e00\u70b9\uff0c\u5c55\u793a\u66f4\u591a\u5f20 *\/\n                scroll-snap-align: start; \/* \u684c\u9762\u7aef\u9760\u5de6\u5bf9\u9f50 *\/\n            }\n        }<\/p>\n<p>        \/* \u79fb\u52a8\u8bbe\u5907\u54cd\u5e94\u5f0f\u4f18\u5316 *\/\n        @media (max-width: 599px) {\n            \/* \u6a21\u6001\u6846\u4f18\u5316 *\/\n            .modal-content {\n                max-width: 95%;\n                max-height: 85vh;\n                margin: 10vh auto;\n            }<\/p>\n<p>            .close {\n                top: 10px;\n                right: 20px;\n                font-size: 30px;\n                \/* \u589e\u5927\u70b9\u51fb\u533a\u57df *\/\n                padding: 15px;\n            }<\/p>\n<p>            \/* \u89c6\u9891\u64ad\u653e\u56fe\u6807\u4f18\u5316 *\/\n            .play-icon {\n                width: 60px;\n                height: 60px;\n                font-size: 18px;\n            }<\/p>\n<p>            \/* \u786e\u4fdd\u5a92\u4f53\u5185\u5bb9\u5728\u5c0f\u5c4f\u5e55\u4e0a\u6b63\u786e\u663e\u793a *\/\n            .media-content {\n                object-fit: cover;\n            }\n        }<\/p>\n<p>        \/* --- \u56fe\u7247\u653e\u5927\u6a21\u6001\u6846\u6837\u5f0f --- *\/\n        .modal {\n            display: none;\n            position: fixed;\n            z-index: 1000;\n            left: 0;\n            top: 0;\n            width: 100%;\n            height: 100%;\n            background-color: rgba(0, 0, 0, 0.9);\n            overflow: auto;\n            transition: opacity 0.3s ease;\n        }<\/p>\n<p>        .modal-content {\n            display: block;\n            max-width: 90%;\n            max-height: 90vh;\n            margin: 5vh auto;\n            object-fit: contain;\n            animation: zoom 0.3s;\n        }<\/p>\n<p>        @keyframes zoom {\n            from {transform: scale(0.8); opacity: 0;}\n            to {transform: scale(1); opacity: 1;}\n        }<\/p>\n<p>        .close {\n            position: absolute;\n            top: 20px;\n            right: 35px;\n            color: #fff;\n            font-size: 40px;\n            font-weight: bold;\n            transition: 0.3s;\n            cursor: pointer;\n            \/* \u6dfb\u52a0\u89e6\u63a7\u4f18\u5316 *\/\n            padding: 10px;\n            line-height: 1;\n            user-select: none;\n            -webkit-user-select: none;\n        }<\/p>\n<p>        .close:hover,\n        .close:focus {\n            color: #bbb;\n            text-decoration: none;\n        }<\/p>\n<p>        \/* \u89c6\u9891\u70b9\u51fb\u63d0\u793a\u6837\u5f0f *\/\n        .video-overlay {\n            position: absolute;\n            top: 0;\n            left: 0;\n            width: 100%;\n            height: 100%;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            background-color: rgba(0, 0, 0, 0.2);\n            opacity: 0;\n            transition: opacity 0.3s ease;\n            \/* \u89e6\u63a7\u4f18\u5316 *\/\n            touch-action: manipulation;\n            cursor: pointer;\n        }<\/p>\n<p>        .media-item-wrapper:hover .video-overlay {\n            opacity: 1;\n        }<\/p>\n<p>        \/* \u4e3a\u89e6\u6478\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u6548\u679c *\/\n        .media-item-wrapper:active .video-overlay {\n            opacity: 0.8;\n        }<\/p>\n<p>        .play-icon {\n            width: 80px;\n            height: 80px;\n            background-color: rgba(255, 255, 255, 0.9);\n            border-radius: 50%;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            color: var(--ph-orange);\n            font-size: 24px;\n            font-weight: bold;\n            \/* \u89e6\u63a7\u4f18\u5316 *\/\n            user-select: none;\n            -webkit-user-select: none;\n        }<\/p>\n<p>        \/* --- \u54cd\u5e94\u5f0f\u5fae\u8c03 --- *\/\n        @media (min-width: 600px) {\n            .media-item-wrapper {\n                width: 60%; \/* \u684c\u9762\u7aef\u7a0d\u5fae\u7a84\u4e00\u70b9\uff0c\u5c55\u793a\u66f4\u591a\u5f20 *\/\n                scroll-snap-align: start; \/* \u684c\u9762\u7aef\u9760\u5de6\u5bf9\u9f50 *\/\n            }\n        }<\/p>\n<p>        \/* \u79fb\u52a8\u8bbe\u5907\u54cd\u5e94\u5f0f\u4f18\u5316 *\/\n        @media (max-width: 599px) {\n            \/* \u6a21\u6001\u6846\u4f18\u5316 *\/\n            .modal-content {\n                max-width: 95%;\n                max-height: 85vh;\n                margin: 10vh auto;\n            }<\/p>\n<p>            .close {\n                top: 10px;\n                right: 20px;\n                font-size: 30px;\n                \/* \u589e\u5927\u70b9\u51fb\u533a\u57df *\/\n                padding: 15px;\n            }<\/p>\n<p>            \/* \u89c6\u9891\u64ad\u653e\u56fe\u6807\u4f18\u5316 *\/\n            .play-icon {\n                width: 60px;\n                height: 60px;\n                font-size: 18px;\n            }<\/p>\n<p>            \/* \u786e\u4fdd\u5a92\u4f53\u5185\u5bb9\u5728\u5c0f\u5c4f\u5e55\u4e0a\u6b63\u786e\u663e\u793a *\/\n            .media-content {\n                object-fit: cover;\n            }\n        }\n    <\/style>\n<p><\/head><br \/>\n<body><\/p>\n<div class=\"container\">\n<h1 style=\"text-align:center; margin-bottom:40px; font-weight:900;\">PH\u70ed\u699c | 2026-06-08<\/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\/INE5ILTLAZIF32\" class=\"app-title\">Browse.sh<\/a><\/p>\n<div class=\"one-liner\">Give your agents muscle memory for automating the web<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">375<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Browse.sh\u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u6d4f\u89c8\u5668\u81ea\u52a8\u5316\u6280\u80fd\u76ee\u5f55\uff0c\u4e3aAI\u4ee3\u7406\u63d0\u4f9b\u53ef\u590d\u7528\u7684\u201c\u808c\u8089\u8bb0\u5fc6\u201d\uff0c\u89e3\u51b3\u6bcf\u6b21\u6267\u884c\u4efb\u52a1\u90fd\u8981\u4ece\u96f6\u63a2\u7d22\u7f51\u7ad9\u7684\u75db\u70b9\uff0c\u5b9e\u73b0\u66f4\u9ad8\u6548\u3001\u66f4\u4f4e\u6210\u672c\u7684\u7f51\u9875\u81ea\u52a8\u5316\u64cd\u4f5c\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/ed2d3a5b-7266-4d97-8b8b-c22946131266.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\/ba8a0fe8-c0c8-48d8-b7c9-c22177b28bac.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\/cdcffbd9-90aa-4c05-b1ae-11b886a9aa33.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\/0dca63fe-78bd-40f2-ab14-264c56ff757e.jpeg?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/edcdd1e0-ba49-4a33-a642-9c0cf03f1a7b.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/MPdThK9UWiQ\"><source src=\"https:\/\/youtu.be\/MPdThK9UWiQ\" 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\">\u6d4f\u89c8\u5668\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">AI\u4ee3\u7406<\/span><br \/>\n            <span class=\"tag\">\u6280\u80fd\u76ee\u5f55<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90<\/span><br \/>\n            <span class=\"tag\">\u5de5\u4f5c\u6d41\u590d\u7528<\/span><br \/>\n            <span class=\"tag\">Token\u4f18\u5316<\/span><br \/>\n            <span class=\"tag\">\u7f51\u9875\u64cd\u4f5c\u8bb0\u5fc6<\/span><br \/>\n            <span class=\"tag\">CLI\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u6548\u7387\u63d0\u5347<\/span><br \/>\n            <span class=\"tag\">\u81ea\u52a8\u5316\u7f16\u6392<\/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\u8bb0\u5fc6\u5c42\u201d\u89e3\u51b3\u4ee3\u7406\u91cd\u590d\u63a2\u7d22\u7684\u75db\u70b9\uff0c\u5173\u6ce8\u70b9\u96c6\u4e2d\u5728\uff1aUI\u53d8\u66f4\u540e\u6280\u80fd\u5982\u4f55\u81ea\u9002\u5e94\uff08\u5982\u81ea\u52a8\u66f4\u65b0\u8fd8\u662f\u624b\u52a8\u4fee\u590d\uff09\u3001\u5f00\u653e\u76ee\u5f55\u7684\u8d28\u91cf\u63a7\u5236\u4e0e\u9632\u6076\u610f\u6ce8\u5165\uff08\u5982\u6280\u80fd\u6765\u6e90\u53ef\u4fe1\u5ea6\u3001\u5ba1\u67e5\u673a\u5236\uff09\u3001\u4ee5\u53ca\u4f55\u65f6\u9009\u62e9\u6280\u80fd\u800c\u975ePlaywright\u811a\u672c\u6216\u901a\u7528\u4ee3\u7406\u5faa\u73af\uff08\u5efa\u8bae100%\u786e\u5b9a\u6027\u4efb\u52a1\u6682\u4e0d\u9002\u7528\uff09\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Browse.sh\u5de7\u5999\u5730\u6293\u4f4f\u4e86AI\u4ee3\u7406\u9886\u57df\u4e00\u4e2a\u9690\u6027\u7684\u5374\u6781\u5176\u6838\u5fc3\u7684\u6548\u7387\u9ed1\u6d1e\u2014\u2014\u201c\u6bcf\u4e2a\u4f1a\u8bdd\u90fd\u5f97\u4ece\u96f6\u5b66\u8d70\u8def\u201d\u3002\u5176\u601d\u8def\u672c\u8d28\u4e0a\u662f\u4e3a\u6d4f\u89c8\u5668\u81ea\u52a8\u5316\u5efa\u7acb\u4e00\u5957\u201c\u53ef\u590d\u7528\u7684\u884c\u4e3a\u6a21\u677f\u201d\uff0c\u8fd9\u6bd4\u5355\u7eaf\u4f9d\u8d56\u5927\u6a21\u578b\u4e0a\u4e0b\u6587\u7a97\u53e3\u6216\u957f\u94fe\u63a8\u7406\u5b9e\u5728\u5f97\u591a\u3002\u4ece\u6280\u672f\u67b6\u6784\u770b\uff0cAutobrowse\u901a\u8fc7\u5b9e\u65f6\u5206\u6790DOM\u53d8\u5316\u3001\u7f51\u7edc\u6d3b\u52a8\u3001\u622a\u56fe\u548c\u5931\u8d25\u8def\u5f84\u6765\u6301\u7eed\u4f18\u5316\u5de5\u4f5c\u6d41\uff0c\u8fd9\u5c55\u793a\u4e86\u5bf9\u201c\u786e\u5b9a\u6027\u201d\u4e0e\u201c\u7075\u6d3b\u6027\u201d\u4e4b\u95f4\u5e73\u8861\u7684\u52a1\u5b9e\u6001\u5ea6\u2014\u2014\u4e0d\u662f\u8ba9\u4ee3\u7406\u5b8c\u5168\u81ea\u7531\u53d1\u6325\uff0c\u800c\u662f\u901a\u8fc7\u5f55\u64ad\u5b66\u4e60\u5f62\u6210\u6807\u51c6\u5316\u811a\u672c\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u4ea7\u54c1\u7684\u6838\u5fc3\u6311\u6218\u5728\u4e8e\u201c\u5f00\u653e\u76ee\u5f55\u201d\u7684\u6096\u8bba\uff1a\u4e00\u65e6\u793e\u533a\u8d21\u732e\u89c4\u6a21\u5316\uff0c\u6280\u80fd\u8d28\u91cf\u3001\u7248\u672c\u517c\u5bb9\u6027\u3001\u6076\u610f\u4ee3\u7801\u6ce8\u5165\u7b49\u95ee\u9898\u5c06\u6307\u6570\u7ea7\u4e0a\u5347\u3002\u76ee\u524d\u7684\u201c\u4eba\u5de5\u5ba1\u67e5+\u6bcf\u5468\u91cd\u8dd1\u201d\u7b56\u7565\u5728\u9762\u5bf9\u4e0a\u4e07\u6280\u80fd\u65f6\u6ce8\u5b9a\u4e0d\u53ef\u6301\u7eed\uff0c\u672a\u6765\u5fc5\u987b\u5f15\u5165\u81ea\u52a8\u5316\u8bc4\u7ea7\u3001\u53bb\u4e2d\u5fc3\u5316\u5171\u8bc6\u4e0e\u56de\u6eda\u673a\u5236\u3002\u53e6\u4e00\u4e2a\u6f5c\u85cf\u98ce\u9669\u662fUI\u53d8\u66f4\u2014\u2014\u5373\u4fbf\u6709\u91cd\u65b0\u9a8c\u8bc1\u673a\u5236\uff0c\u9ad8\u9891\u6539\u7248\u7684SaaS\u4ea7\u54c1\uff08\u5982SAP\u3001Salesforce\uff09\u4f1a\u8ba9\u6280\u80fd\u5feb\u901f\u5931\u6548\uff0c\u7528\u6237\u4f1a\u56e0\u7ef4\u62a4\u6210\u672c\u800c\u9000\u56de\u4f7f\u7528Playwright\u811a\u672c\u3002\u6b64\u5916\uff0c\u201cnpm for browser\u201d\u7684\u6bd4\u55bb\u867d\u597d\uff0c\u4f46\u6d4f\u89c8\u5668\u6280\u80fd\u6bd4npm\u5e93\u66f4\u8106\u5f31\uff1a\u4e00\u4e2aCSS\u7c7b\u540d\u53d8\u5316\u5c31\u53ef\u80fd\u8ba9\u6574\u6761\u6d41\u7a0b\u65ad\u88c2\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u771f\u6b63\u503c\u5f97\u5173\u6ce8\u7684\u662f\u5176\u5728\u201c\u4ee3\u7406\u6548\u7387\u5c42\u201d\u7684\u5b9a\u4f4d\uff1a\u5b83\u4e0d\u5236\u9020\u65b0\u80fd\u529b\uff0c\u800c\u662f\u628a\u5df2\u6709agent\u7684\u80fd\u529b\u56fa\u5316\u5e76\u538b\u7f29\u6210\u53ef\u8c03\u7528\u7684\u539f\u5b50\u7ec4\u4ef6\u3002\u5bf9\u4e8e\u4f01\u4e1a\u7ea7\u81ea\u52a8\u5316\u573a\u666f\uff0cBrowse.sh\u53ef\u80fd\u6bd4\u7eafAgent\u6846\u67b6\u66f4\u6709\u4ef7\u503c\u2014\u2014\u56e0\u4e3a\u5b83\u63d0\u4f9b\u7684\u662f\u201c\u53ef\u88ab\u5ba1\u8ba1\u3001\u53ef\u89e3\u91ca\u3001\u53ef\u91cd\u590d\u4f7f\u7528\u201d\u7684\u786e\u5b9a\u6027\u8def\u5f84\uff0c\u8fd9\u6b63\u662f\u8ba9\u4f01\u4e1a\u4fe1\u4efbAI\u4ee3\u7406\u7684\u524d\u63d0\u3002\u4e0d\u8fc7\u73b0\u9636\u6bb5\u5b83\u66f4\u50cf\u662f\u628aPlaywright\u642c\u8fdb\u4e86GitHub\u4ed3\u5e93\uff0c\u771f\u6b63\u7684\u62a4\u57ce\u6cb3\u5728\u4e8e\uff1a\u80fd\u5426\u5728\u89c4\u6a21\u589e\u957f\u7684\u540c\u65f6\u7ef4\u6301\u201c\u6bcf\u4e00\u6b21\u6210\u529f\u8fd0\u884c\u5373\u53ef\u590d\u73b0\u201d\u7684\u53ef\u9760\u6027\u627f\u8bfa\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\">Browse.sh<\/span>\n                <\/div>\n<div class=\"comment-content\">browse.sh \u2014 an open catalog of browser automation skills for any website. Find reusable SKILL.md recipes that teach AI agents to complete tasks online, and install them with the browse CLI.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Product Hunt \ud83d\udc4b<\/p>\n<p>I&#8217;m Shrey,<\/p>\n<p>Over the last year, we&#8217;ve watched AI agents get remarkably good at using browsers. But we&#8217;ve also noticed something strange: every time an agent visits a website, it starts from zero.<\/p>\n<p>It re-explores the interface, re-discovers buttons, re-learns navigation paths, and re-finds the same workflows it already completed yesterday.<\/p>\n<p>Humans don&#8217;t work that way.<\/p>\n<p>Once you learn how to search Zillow listings, review a GitHub PR, or book a campsite on <a href=\"http:\/\/Recreation.gov\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Recreation.gov<\/a>, you don&#8217;t relearn the entire website every time you come back.<\/p>\n<p>Agents shouldn&#8217;t have to either.<\/p>\n<p>That&#8217;s why we built <a href=\"http:\/\/Browse.sh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Browse.sh<\/a>, an open catalog of browser skills that agents can install and reuse across the web. Instead of exploring a website from scratch, agents load the relevant skill and execute against a known workflow.<\/p>\n<p>The result is faster execution, lower token costs, more reliable outcomes, and better multi-site workflows. Today, the catalog includes 250+ skills across real websites and applications, including partner skills like submitting reimbursements on Ramp, creating projects on Lovable, extracting document data on Reducto, and many more.<\/p>\n<p>And when a skill doesn&#8217;t exist yet, <a href=\"http:\/\/Browse.sh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Browse.sh<\/a> can create one.<\/p>\n<p>Behind the scenes, <a href=\"http:\/\/Browse.sh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Browse.sh<\/a> is powered by Autobrowse, our system that runs tasks in real browsers, analyzes traces, DOM changes, network activity, screenshots, and failures, then continuously improves the workflow until it converges on a durable strategy.<\/p>\n<p>Over time, one successful browser run becomes a reusable skill that anyone can install.<\/p>\n<p><a href=\"http:\/\/Browse.sh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Browse.sh<\/a> is open source, free to use, and available today.<\/p>\n<p>We&#8217;d love your feedback:<\/p>\n<p>&#8211; Which websites do your agents struggle with most today?<br \/>&#8211; What skills should we add next?<br \/>&#8211; What workflows are you automating with AI agents?<\/p>\n<p>We&#8217;ll be around all day answering questions. Thanks for checking us out \ud83e\udd1e<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>23<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@shrey150\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@shrey150<\/a>&nbsp;This solves one of the most frustrating bottlenecks in agentic workflows, Shrey! Watching agents waste massive token budgets re-exploring the exact same DOM elements and navigation paths day after day is a huge pain point. Building a shared memory layer of &#8216;browser skills&#8217; is a brilliant architectural decision.<\/p>\n<p>The fact that it analyzes traces and network activity via Autobrowse to build durable strategies is incredibly smart. Quick question: How does <a href=\"http:\/\/Browse.sh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Browse.sh<\/a> handle sudden UI changes or front-end updates on major sites without breaking the installed skill?<\/p>\n<p>Huge congrats on the launch and keeping it open source! Definite upvote from me. \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\/@shrey150\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@shrey150<\/a>&nbsp;, congrats on Browserbase&#8217;s scale! As a UX\/UI designer for complex AI infrastructure, I analyzed your Session Inspector. Noticed a specific DX friction point in log-to-video syncing that might increase Time-to-Value for new devs. Recorded a 90s Loom with a fix. If you want me to send over the link,<\/p>\n<p> I can send it to you via email<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\/@shrey150\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@shrey150<\/a>&nbsp;This is the missing memory layer for browser agents, the fact that every agent run starts from zero today is such an obvious inefficiency once you name it. Persistent, reusable skills that compound across runs is exactly the abstraction the agentic stack has been waiting for.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hello hunters! We&#8217;re so excited to be back and launching browse.sh. I&#8217;m Paul, founder of Browserbase. If you have any questions, I&#8217;d be happy to help answer them. <\/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 the on the launch! We&#8217;ve been using Browserbase to benchmark <a href=\"https:\/\/github.com\/pixiebrix\/agent-browser-shield\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/github.com\/pixiebrix\/agent-browser-shield<\/a> and prototyping how to enforce\/apply the <a href=\"http:\/\/browse.sh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">browse.sh<\/a> content at the harness layer instead of context layer! Love it!<\/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\/@tschiller\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@tschiller<\/a>&nbsp;<a href=\"https:\/\/browse.sh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">browse.sh<\/a> skills in the harness will definitely give your agents the edge they need, enforcing the workflow rather than just hoping that the agent picks 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<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Looks nicely done, looking forward to try it !<\/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\/@louislafont\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@louislafont<\/a>&nbsp;appreciate your support! What is one of the skills that you&#8217;d want to try out in your daily 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\">If a team is choosing between (a) writing Playwright scripts, (b) using a generic LLM browser loop, and (c) installing a Browse.sh skill, what\u2019s the switching trigger where (c) becomes the clear winner\u2014and what types of workflows should *not* be turned into skills yet?<\/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>Hey<a href=\"https:\/\/www.producthunt.com\/@curiouskitty\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@curiouskitty<\/a>&nbsp;!<\/p>\n<p>The trigger where using a <a href=\"https:\/\/Browse.sh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Browse.sh<\/a> skill is the clear winner for an automation is if you want the fastest\/simplest path to automation. You can give OpenClaw\/other agents access to <a href=\"https:\/\/Browse.sh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Browse.sh<\/a> and they&#8217;ll be able to run every skill\/automation on the platform. <\/p>\n<p>Writing Playwright scripts is completely deterministic, but takes maintenance and time to create. Generic full agent loops are usually too loosely defined and won&#8217;t stay within the bounds of the task. (skills here help you save tokens as well) <\/p>\n<p>Things that should NOT yet be turned into skills are workflows that need 100% determinism. We&#8217;re converging to agents becoming more reliable, but there&#8217;s always a chance that it goes off course. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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 web was built for humans, and we are happy to launch this skills catalog that finally makes the web a playground for your Claude Code! You&#8217;re building a web app that needs data that doesn&#8217;t exist on an API, or you&#8217;re just looking to automate your weekly lunch planning? <a href=\"https:\/\/Browse.sh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Browse.sh<\/a> is for you!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This looks very interesting, definitely going to try a few of these skills this week. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@vcoisne\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@vcoisne<\/a>&nbsp;Thank you for the support! \ud83d\ude4c<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The &#8220;muscle memory&#8221; framing resonates \u2014 we deal with a similar problem in Telegram moderation where the AI needs to accumulate trust signals from cross-community behavior rather than re-evaluating from scratch each interaction. Curious how you persist agent state across sessions \u2014 is the memory layer per-task, per-user, or per-organization? The trade-offs around isolation vs reusability feel close to what we hit when designing cross-group reputation.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@daryna_fornalska\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@daryna_fornalska<\/a>&nbsp;The memory layer is per-task. If you prefer to write full scripts and want per-org memory, you should try out Stagehand Caching! <a href=\"https:\/\/docs.stagehand.dev\/v3\/references\/act#caching\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Checkout the docs here.<\/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>Interesting angle. For agent browser automation, the thing I\u2019d want to inspect first is not just success rate, but replayability: logs, screenshots, failed steps, and whether the agent can hand control back cleanly when the page changes.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on the launch! What are some surprisingly hard websites\/workflows for agents to automate today that <a href=\"http:\/\/Browse.sh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Browse.sh<\/a> makes easier?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@shrey150\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"shrey150\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@shrey150<\/a> nice! I have been perplexed as to why the Claude browser plug-in doesn&#8217;t already have this feature. I have wasted so much time re-reaching Claude the same steps over and over again because of this exact problem. Look forward to trying this out.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@millwiller\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@millwiller<\/a>&nbsp;100%, we\u2019ve felt Claude in Chrome is a half-baked implementation at agentic browser capabilities. We built our CLI to fill those gaps!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This is a great use of memory! How do you deal with information recency?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@patrick_monnot\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@patrick_monnot<\/a>&nbsp;A little confused by the question, but I&#8217;ll attempt to answer. We revalidate the skills every week so our skills stay up to date (if the page changes or data updates, our skills should too). Memory here is like a weak cache, we invalidate if our data is stale. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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 very smart. i worked at Strawberry Browser before and this was a thing i thought about a lot<\/p>\n<p>curious how you handle quality for open skills? like preventing stale, brittle, or low-quality workflows from spreading through the catalog<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@joel_edholm\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@joel_edholm<\/a>&nbsp;We hand review all skills and requests to make sure that we&#8217;re not getting straight slop into the official list. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@joel_edholm\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@joel_edholm<\/a>&nbsp;right now all skill runs are vetted by hand for success. We also routinely re-run skills every week to ensure quality. In the future as skill generation scales up, we may implement a consensus mechanism between different skill submissions to ensure most up-to-date info!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The &#8220;npm for browser skills&#8221; framing is exciting and honestly a little scary. With an open catalog and community contributions, when two skills exist for the same site, how does an agent decide which one to trust? And what stops a subtly wrong or even malicious skill from spreading before your weekly revalidation catches it? Feels like skill provenance and reputation become the real product once the catalog gets big.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This makes a lot of sense. Agents relearning the same website flow every time feels like such a waste. Curious how you handle it when a site changes its UI slightly. Does the skill update itself or need manual fixing?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>great ship guys! composio loves browserbase<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>love the domain based installation!<\/p>\n<\/p>\n<p>browse skills add <a href=\"https:\/\/amazon.com\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">amazon.com<\/a><\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>recreation.gov skill is a life-saver!!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I like the idea of agents not starting from zero every time. Re learning the same website flow feels like wasted time and tokens. How do you handle skills when a website changes its layout or button names?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@shrey150\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"shrey150\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@shrey150<\/a> The idea that agents should have muscle memory like humans do is so obviously right that it\u2019s wild nobody shipped this sooner. Watching an agent re-explore the same GitHub PR workflow for the tenth time feels like watching someone forget how to use a doorknob&#8230; and now there\u2019s finally a fix. Yaay! <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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;agents start from zero every time&#8221; framing is exactly right. I drive a browser agent every day for marketing routines and the recurring tax is re-finding the same comment box, the same upvote button, the same auth modal. Reusable <a href=\"https:\/\/SKILL.md\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">SKILL.md<\/a> per domain is the unlock &#8211; and an open catalog turns it into a network effect. Following.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>fire proposition. played around with browser automation to scrape scholarships off the web; wonder if something like this could help me apply to them automatically asw &#8230;<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@sanjith_sambath1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sanjith_sambath1<\/a> Yep you should be able to create a skill to help you apply as well. If <a href=\"https:\/\/Browse.sh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Browse.sh<\/a> gets you a scholarship I hope we get 1% haha<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Memory seems useful when an agent is actively working, but the harder problem feels like deciding what deserves to be remembered in the first place.<\/p>\n<p>Have you found the biggest gains come from long-term memory across sessions, or from reducing context loss within a single 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<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>agents have no muscle memory, and that&#8217;s a real cost in tokens, in time, in reliability.<\/p>\n<p>the open catalog model is interesting. curious how skill quality is managed as it scales. is there a review layer or does it mostly rely on community signal to surface what actually works?<br \/>good luck with the launch!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>How much of an issue have you found captchas to be? Are websites trying to restrict agents or are they open to agentic browsing?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>&#8220;Muscle memory for agents&#8221; nails the problem \u2014 re-deriving the same web flow on every run is where agent automations get slow and brittle. Congrats on the launch. Does the recorded memory adapt when a site&#8217;s DOM shifts, or does it need a re-teach?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@oleksii_sekundant\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@oleksii_sekundant<\/a>&nbsp;we revalidate\/update the skills every week. Adapting memory does sound interesting though, potentially on the fly updates may make sense in the future. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This makes a lot of sense. Teaching agents the same website every day feels a bit like deleting your browser history before every session \ud83d\ude04 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\/@alina_tyslenok_\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alina_tyslenok_<\/a>&nbsp;100%, imagine trying to do your job everyday but you forget all your passwords and where all the information lives. <a href=\"https:\/\/Browse.sh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Browse.sh<\/a> gives your agents context on how it should do tasks (based on how it&#8217;s been done 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\">\n<p>The interesting part for me is not just reusing browser steps, it is making them reviewable.<\/p>\n<p>For agent workflows I\u2019d want to see how a skill handles the boring cases: site layout changes, failed clicks, partial completion, and logs that explain why the agent chose a path. That is usually where browser agents either become useful or become hard 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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@kevinzrzgg\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@kevinzrzgg<\/a>&nbsp;We built the Browserbase Platform with o11y as a priority. Our dashboard has network logs, events, stagehand actions, session replays, tab replay, and literally everything that you&#8217;d ever need to debug and review your browser sessions. Would love feedback on any parts of the session you think could have better o11y. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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 &#8216;muscle memory&#8217; framing is apt: it&#8217;s really a domain-specific replay buffer for web interactions. We&#8217;ve been building AI agents that automate customer workflows and session state management across sites is genuinely hard. How does <a href=\"https:\/\/Browse.sh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Browse.sh<\/a> handle sites that frequently change DOM structure? Does the agent re-learn from scratch or do partial cache invalidation?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@retain_dev\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@retain_dev<\/a>&nbsp;We do re-run skills to validate if they&#8217;re still working and regenerate them upon DOM changes 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<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Anyone made a ryanair skill yet? I guess we need GPT 6 or 7 before its possible to navigate that website with AI \ud83d\ude2c<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@conduit_design\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@conduit_design<\/a>&nbsp;I was navigating the TAP airlines website yesterday and was literally feeling that pain \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\">#2<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/KGWER5KAKVLXHX\" class=\"app-title\">Honen<\/a><\/p>\n<div class=\"one-liner\">Automated teaching + learning infrastructure for any company<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">372<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Honen\u5c06\u4f01\u4e1a\u6587\u6863\u3001\u77e5\u8bc6\u5e93\u7b49\u96f6\u6563\u4fe1\u606f\uff0c\u5728\u6570\u79d2\u5185\u81ea\u52a8\u8f6c\u5316\u4e3a\u7531AI\u4e3b\u5bfc\u7684\u4e92\u52a8\u8bfe\u7a0b\uff0c\u5e76\u5b9e\u73b0\u968f\u6e90\u6587\u6863\u53d8\u52a8\u800c\u81ea\u52a8\u66f4\u65b0\uff0c\u89e3\u51b3\u4e86\u4f20\u7edf\u4f01\u4e1a\u57f9\u8bad\u5185\u5bb9\u5236\u4f5c\u6162\u3001\u6613\u8fc7\u65f6\u3001\u7ef4\u62a4\u6210\u672c\u9ad8\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\/ac3232b7-1a90-4a9d-9ced-086e2c4cabfb.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\/d72bda7d-5981-479d-9e0f-20a946868054.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\/971447fd-efd8-4e59-9477-657fe865a064.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\/4a78d52b-a711-4322-9ce4-3724f91339b5.jpeg?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/5e2bceb0-5f65-40fd-a1eb-7d924e7e23d4.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/zRBhj3lcL0s?si=0wrXi91G1yDkupeu\"><source src=\"https:\/\/youtu.be\/zRBhj3lcL0s?si=0wrXi91G1yDkupeu\" 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\">Education<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u4f01\u4e1a\u57f9\u8bad<\/span><br \/>\n            <span class=\"tag\">\u81ea\u52a8\u5316\u8bfe\u7a0b\u751f\u6210<\/span><br \/>\n            <span class=\"tag\">\u77e5\u8bc6\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u81ea\u9002\u5e94\u5b66\u4e60<\/span><br \/>\n            <span class=\"tag\">LMS<\/span><br \/>\n            <span class=\"tag\">\u5458\u5de5\u6280\u80fd\u63d0\u5347<\/span><br \/>\n            <span class=\"tag\">\u5185\u5bb9\u66f4\u65b0\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">AI\u6a21\u62df<\/span><br \/>\n            <span class=\"tag\">MCP\u96c6\u6210<\/span><br \/>\n            <span class=\"tag\">\u5b66\u4e60\u5206\u6790<\/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\u5173\u6ce8\u81ea\u52a8\u66f4\u65b0\u673a\u5236\uff08\u5982\u53d8\u66f4\u68c0\u6d4b\u3001\u5ba1\u6279\u6d41\u3001\u7248\u672c\u56de\u6eda\uff09\u3001\u8bfe\u7a0b\u7ef4\u62a4\u4e0e\u8bca\u65ad\uff08\u5982\u4f55\u533a\u5206\u5185\u5bb9\u5f31\/\u7f3a\u524d\u7f6e\/\u4e0d\u6295\u5165\uff09\u3001\u89d2\u8272\u5185\u5bb9\u5dee\u5f02\u5316\u3001\u4ee5\u53ca\u9632\u77e5\u8bc6\u4f20\u64ad\u9519\u8bef\u7684\u95ee\u9898\u3002\u591a\u6570\u63d0\u95ee\u56f4\u7ed5\u5185\u5bb9\u53d8\u66f4\u65f6\u7684\u5b89\u5168\u7ba1\u63a7\u4e0e\u8bca\u65ad\u51c6\u786e\u6027\uff0c\u56e2\u961f\u56de\u5e94\u5f3a\u8c03\u4e86\u4eba\u5de5\u5ba1\u6279\u3001\u7248\u672c\u63a7\u5236\u4e0e\u57fa\u4e8e\u7528\u6237\u884c\u4e3a\u6570\u636e\u7684\u5f52\u56e0\u5206\u6790\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                Honen\u7684\u6838\u5fc3\u5356\u70b9\u201c\u81ea\u52a8\u5316\u6559\u5b66\u57fa\u7840\u8bbe\u65bd\u201d\u542c\u8d77\u6765\u5f88\u6027\u611f\uff0c\u4f46\u4ed4\u7ec6\u5206\u6790\uff0c\u5176\u771f\u6b63\u7684\u62a4\u57ce\u6cb3\u53ef\u80fd\u4e0d\u5728\u4e8eAI\u751f\u8bfe\uff0c\u800c\u5728\u4e8e\u201c\u77e5\u8bc6\u4e0e\u8bfe\u7a0b\u7684\u751f\u547d\u5468\u671f\u7ba1\u7406\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5e02\u573a\u4e0a\u5df2\u7ecf\u6709\u4e00\u5806AI\u751f\u6210\u5185\u5bb9\u7684\u5de5\u5177\uff0c\u4ece\u6587\u672c\u5230\u89c6\u9891\uff0c\u770b\u4f3c\u65e0\u6240\u4e0d\u80fd\u3002\u4f46Honen\u5207\u4e2d\u4e86\u4e00\u4e2a\u771f\u6b63\u88ab\u5ffd\u89c6\u7684\u75db\u70b9\uff1a\u4f01\u4e1a\u57f9\u8bad\u5185\u5bb9\u4e0d\u662f\u201c\u505a\u51fa\u6765\u201d\u5c31\u5b8c\u4e86\uff0c\u800c\u662f\u201c\u7ef4\u62a4\u4e0b\u53bb\u201d\u624d\u662f\u5730\u72f1\u3002\u5927\u90e8\u5206\u516c\u53f8\u82b1\u5927\u4ef7\u94b1\u505a\u4e86\u8bfe\u7a0b\uff0c\u534a\u5e74\u540e\u6d41\u7a0b\u4e00\u6539\uff0c\u8bfe\u7a0b\u5c31\u53d8\u6210\u4e86\u534a\u6c38\u4e45\u6027\u9519\u8bef\u8bb0\u5fc6\u5e93\u3002Honen\u5f3a\u8c03\u7684\u201c\u77e5\u8bc6\u5e93-\u8bfe\u7a0b\u7ed1\u5b9a+\u81ea\u52a8\u68c0\u6d4b\u53d8\u66f4+\u7248\u672c\u63a7\u5236\u201d\uff0c\u624d\u662f\u6bd4\u201c\u751f\u6210\u8bfe\u7a0b\u201d\u66f4\u6709\u4ef7\u503c\u7684\u957f\u671f\u7c98\u6027\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u95ee\u9898\u5728\u4e8e\u201c\u4fe1\u4efb\u201d\u3002\u8bc4\u8bba\u533a\u7684\u6838\u5fc3\u7126\u8651\u96c6\u4e2d\u5728\uff1a\u673a\u5668\u5982\u4f55\u5224\u65ad\u53d8\u66f4\u662f\u201c\u6b63\u786e\u66f4\u65b0\u201d\u8fd8\u662f\u201c\u9519\u8bef\u566a\u58f0\u201d\uff1f\u5f53AI\u6839\u636e\u88ab\u7be1\u6539\u7684\u4f4e\u8d28\u91cf\u6587\u6863\u81ea\u52a8\u201c\u4fee\u590d\u201d\u8bfe\u7a0b\u65f6\uff0c\u8fd9\u53ef\u80fd\u4f1a\u52a0\u901f\u9519\u8bef\u8ba4\u77e5\u5728\u4f01\u4e1a\u5185\u90e8\u7684\u4f20\u64ad\u3002\u867d\u7136\u56e2\u961f\u56de\u590d\u4e86\u201c\u4eba\u5de5\u5ba1\u6279\u201d\uff0c\u4f46\u8fd9\u53c8\u4e0e\u201c\u81ea\u52a8\u5316\u201d\u7684\u521d\u5fc3\u4ea7\u751f\u4e86\u77db\u76fe\u2014\u2014\u5982\u679c\u6bcf\u4e2a\u66f4\u65b0\u90fd\u8981\u4eba\u5ba1\uff0c\u90a3\u81ea\u52a8\u5316\u4f18\u52bf\u4f55\u5728\uff1f\u8bca\u65ad\u7684\u201c\u5f52\u56e0\u80fd\u529b\u201d\u66f4\u662f\u5173\u952e\uff0c\u5b83\u9700\u8981\u533a\u5206\u5185\u5bb9\u662f\u8d28\u91cf\u5dee\u3001\u5458\u5de5\u57fa\u7840\u5f31\u8fd8\u662f\u5355\u7eaf\u4e0d\u611f\u5174\u8da3\uff0c\u8fd9\u9700\u8981\u6781\u5176\u5f3a\u5927\u7684\u6570\u636e\u95ed\u73af\u548c\u591a\u6a21\u6001\u5206\u6790\u80fd\u529b\uff0c\u8fd9\u5bf9\u4e00\u4e2a\u4eceTo C\uff08StudyFetch\uff09\u8f6c\u5411To B\u7684\u56e2\u961f\u6765\u8bf4\u662f\u5de8\u5927\u7684\u6280\u672f\u6311\u6218\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4e0eNVIDIA\u7684\u5408\u4f5c\u5f88\u6f02\u4eae\uff0c\u662f\u7edd\u4f73\u7684\u5e02\u573a\u80cc\u4e66\u3002\u4f46\u957f\u8fdc\u770b\uff0cHonen\u6700\u5927\u7684\u654c\u4eba\u4e0d\u662f\u7ade\u4e89\u5bf9\u624b\uff0c\u800c\u662f\u4f01\u4e1a\u5ba2\u6237\u7684\u201c\u60f0\u6027\u201d\u2014\u2014\u5982\u679c\u4f01\u4e1a\u8fde\u6587\u6863\u90fd\u61d2\u5f97\u66f4\u65b0\uff0c\u90a3\u8fd9\u4e2a\u81ea\u52a8\u5316\u57fa\u7840\u8bbe\u65bd\u5c31\u662f\u65e0\u6e90\u4e4b\u6c34\u3002\u5b83\u662f\u5426\u771f\u7684\u80fd\u6539\u53d8\u4f01\u4e1a\u57f9\u8bad\u7684\u5e95\u5c42\u903b\u8f91\uff0c\u8fd8\u662f\u53ea\u662f\u4e00\u6b3e\u66f4\u9ad8\u6548\u7684\u201c\u65f6\u4ee3\u6027\u77e5\u8bc6\u7ba1\u7406\u5de5\u5177\u9644\u5e26\u7684\u8bfe\u7a0b\u751f\u6210\u5668\u201d\uff1f\u8fd9\u53d6\u51b3\u4e8e\u5b83\u80fd\u5426\u8bc1\u660e\uff0c\u81ea\u5df1\u5728\u201c\u6301\u7eed\u7ef4\u62a4\u201d\u8fd9\u4e2a\u73af\u8282\u80fd\u771f\u6b63\u505a\u5230\u667a\u80fd\u4e14\u53ef\u9760\uff0c\u800c\u4e0d\u53ea\u662f\u5728\u201c\u9996\u6b21\u751f\u6210\u201d\u65f6\u770b\u8d77\u6765\u5f88\u7f8e\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Honen<\/span>\n                <\/div>\n<div class=\"comment-content\">Create employee training that keeps up with your company. Honen turns team knowledge into interactive AI-led courses in seconds, complete with adaptive lessons, simulations, and learner insights. When your docs, tools, or processes change, courses update automatically.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Product Hunt \ud83d\udc4b<\/p>\n<\/p>\n<p>I&#8217;m Ryan, one of the makers of <strong>Honen<\/strong>, and I&#8217;m pumped to finally share what we&#8217;ve been building!<\/p>\n<\/p>\n<p>Quick backstory: at StudyFetch, we&#8217;ve helped <strong>8 million students<\/strong> understand everything from first-year history to advanced healthcare topics.&nbsp;<\/p>\n<p>So we took everything we learned and brought it to businesses and the workforce. That&#8217;s Honen.<\/p>\n<\/p>\n<p><strong>The problem we kept seeing:<\/strong> Companies are spending billions on generic training that teaches outdated material and leaves people behind. By the time a course is finished, the skills it teaches are already half-stale.<\/p>\n<\/p>\n<p><strong>What Honen actually is:<\/strong> A platform that automates a company&#8217;s entire learning and training infrastructure,&nbsp; so businesses can teach new skills faster and adapt their people to an ever-changing world.<\/p>\n<\/p>\n<p><strong>How it works:<\/strong><\/p>\n<p>\ud83d\udfe2 <em>Building a course starts in seconds.<\/em> Drag in your existing training docs, connect to internal knowledge sources, or just type a topic. Honen acts as a researcher and curriculum designer at the same time, it reads your material, understands the subject, and builds the full course structure. You pick how interactive and how deep.<\/p>\n<p>\ud83d\udfe2 <em>Ship it instantly.<\/em> Send the course to any learner with a link, or sync into your existing LMS \/ HR system.<\/p>\n<p>\ud83d\udfe2 <em>Built for engagement, not just completion.<\/em> Our AI teacher guides learners through visuals, interactive artifacts, podcasts, games, and flashcards,&nbsp; each personalized to the learner&#8217;s interests and preferences.<\/p>\n<p>\ud83d\udfe2 <em>Hands-on projects, not just videos.<\/em> Live scenarios where a learner runs a mock virtual client meeting and is graded on how they handle it. Screen-share projects where the AI teacher walks them through setting up and using 3rd party software in real time.<\/p>\n<p>\ud83d\udfe2 <em>Admins get a real-time view.<\/em> You can ask the course agent anything \u2014 <em>&#8220;my learners are struggling with this topic, what&#8217;s going on?&#8221;<\/em>, and Honen visualizes the answer, then uses what it knows to auto-adjust the content or teaching style.<\/p>\n<p>\ud83d\udfe2 <em>One knowledgebase, two kinds of learners.<\/em> Drag any file into Honen&#8217;s knowledgebase or write new ones with the Workspace Assistant. Then turn that knowledge into courses for your people <em>and<\/em> serve it to your AI agents over MCP.&nbsp; We call it <strong>parallel training<\/strong>, a single source of truth that teaches your team and gives the agents working alongside them the same context and skills, so everyone in your org stays in sync.<\/p>\n<\/p>\n<p><strong>Launch news:<\/strong> As a first step, we&#8217;re collaborating with <strong>NVIDIA<\/strong> to bring professional AI training to students and professionals, starting with 250,000 high school students nationwide.<\/p>\n<\/p>\n<p>Our goal with Honen is to let every business, whether you&#8217;ve got 10 employees or 10,000,&nbsp; invest in their people in the most efficient and scalable way possible. So learning actually continues across someone&#8217;s entire career, not just during week-one onboarding.<\/p>\n<\/p>\n<p>Free to try at <a href=\"http:\/\/honen.com\" target=\"_blank\" rel=\"nofollow noopener noreferrer\"><strong>honen.com<\/strong><\/a>, no card needed. Your first course takes about 30 seconds.<\/p>\n<\/p>\n<p>Hanging in the comments all day,&nbsp; ask us anything \ud83d\ude4f<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>28<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ryan_trattner\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ryan_trattner<\/a>&nbsp;you mentionad that honen creates interactive artifacts ,games, and even the podcast for the learners. are the podcasts audio generated based on the company&#8217;s uploaded documetns and can employees listen to them on a mobile app during commute ?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\/@ryan_trattner\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ryan_trattner<\/a>&nbsp;congrats on the launch Ryan, how do you deal with assessment and post course retention so this isn&#8217;t just a tick box tool?<\/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\/@ryan_trattner\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ryan_trattner<\/a>&nbsp;Wow, bringing the tech behind StudyFetch into B2B corporate training is brilliant. Automated curriculum creation solves a massive headache for scaling teams whose docs go out of date instantly.<\/p>\n<p>The &#8216;Parallel Training&#8217; feature via MCP sounds fascinating. Are you seeing teams use this more to onboard human employees or to sync up their internal digital workflows?<\/p>\n<p>Congrats on the launch and the incredible NVIDIA partnership, Ryan! Definite upvote from me. \ud83d\ude80<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">A lot of AI course tools look great for generating v1, but maintenance is the killer. When a source doc\/SOP changes, how do updates actually work in Honen (change detection, approvals, version history), and what happens for learners mid-course so you don\u2019t invalidate grades or confuse cohorts?<\/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\/@curiouskitty\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@curiouskitty<\/a>&nbsp;Great questions! (you might know a thing or two about AI courses haha) <\/p>\n<p>These are some important things that we&#8217;ve taken into account when designing Honen. <\/p>\n<p>We think of course maintenance in two ways on Honen:<\/p>\n<p>The first is our course creation, management, and editor experience, which is built with full version history. Each course is a revision, you can deploy, rollback any version. This allows you to deploy a specific revision to a cohort of learners (via assignments), so you can choose wether you want to update a course mid-flight while learners are taking it, or only for the future students.  <\/p>\n<p>For the documents, we centralize knowledge in something called the Honen knowledge base. This allows you to connect external sources or upload documents, or craft knowledge manually. When courses depend on knowledge they can reference the knowledge base item, when that item changes it flags, and the course agent can update the course (subject to approvals). <\/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>This looks amazing, Ryan! And I just learned about StudyFetch as well (I&#8217;m a retiree who&#8217;s now a part-time tutor of high school students, so that one really hit home for me).<\/p>\n<\/p>\n<p>Your point about the traditional training courses being outdated at businesses (I also worked at a Fortune 500 company for 25 years) is so true. I imagine your business clients will be even more amenable to AI tools, so this seems like an idea whose time has definitely come! Good luck with your new product; you have my upvote!<\/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\/@chargewhat_team\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@chargewhat_team<\/a>&nbsp;Thank you so much! Glad you are checking out StudyFetch as well (We have some absolutely stunning updates for studyfetch that are happening right before the school year starts again in fall so stay tuned for those! Let us know how we can help! <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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! When a knowledge base item changes, the course update is gated behind approvals right? But does the MCP feed to the agents wait on that same approval or get the raw change immediately?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@artstavenka1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@artstavenka1<\/a>&nbsp;All changes made by either our course editor agent or MCP are stored as a draft revision that you have to apply to learners! <\/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>hold upppp!!! it&#8217;s so incredible that it turns source into sections\/lessons so that I won&#8217;t be swamped with unstructured docs &amp; resource. I really like it<\/p>\n<p>what&#8217;s your take on honen positioning vs notebook LLM? <\/p>\n<\/p>\n<p>btw I found some text\/title is hard to read. some tweak there and should be good to go.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/d1efcb2e-7baa-48ff-acb3-9b8377e0c073.png?auto=compress,format&amp;codec=mozjpeg&amp;cs=strip\" alt=\"Image\" style=\"max-width: 100%\"><\/p>\n<p>andddd when will we have dark mode? I&#8217;m a night learner and would love it!!!<\/p>\n<\/p>\n<p>congrats on the launch! it looks promising <\/p>\n<\/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\/@nathan_tran2\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@nathan_tran2<\/a>&nbsp;Appreciate you trying it out and thanks for the feedback (we just fixed those colors!). <\/p>\n<p>Notebook LM is a great product, Honen is created to perform a different type of job: <\/p>\n<p>Notebook LM operates more as an individual \/ group study experience where you drag in something and learn it, Honen is built to be a system that a company can use to up-skill \/ train its whole workforce similar to an LMS with built in assignments \/ roles \/ analytics etc. <\/p>\n<p>As for the courses: Honen courses are very structured and lead the learner down a path while Notebook LM focuses more on input to output. Course creation and managing are more tailored towards instructors creating very robust courses for learners to use, while Notebook LM would likely feed of an already created material. <\/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\/@nathan_tran2\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@nathan_tran2<\/a>&nbsp;Also you can access dark mode by clicking on your profile in the bottom left corner! <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/bec78a41-8015-498c-810d-8f5cfe7552f7.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>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>Hey! I&#8217;m Josh, COO at StudyFetch. AI is changing the what the workforce needs to know faster than ever, and the ability to learn new skills quickly matters more now than it ever has. We&#8217;ve been using Honen internally and our team members have picked up new skills and expanded their roles, and the whole company runs more efficiently because we can train our own people this fast with our own product. We&#8217;re excited to get this out to the world so other teams can feel that too. Happy to answer any questions!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The auto-adjust loop is the part I keep coming back to. When the course agent flags &#8220;learners are struggling with topic X,&#8221; how does it tell apart why? E.g., is it weak content, a missing prerequisite, or just disengagement? Those three need opposite fixes, so how confidently it diagnoses the cause before it rewrites the lesson. Feels like the whole thing lives or dies on getting that read right.<\/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\/@and_bayleaf\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@and_bayleaf<\/a>&nbsp;Great Question, we&#8217;ve done a lot of work on our <a href=\"https:\/\/studyfetch.com\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">studyfetch.com<\/a> product understanding specifically what leads to mastery and giving the system enough information to properly edit and change the course based on that info. For example, for pre-requisites it can look at topics \/pre-diagnostics that other students taking similar topics took before looking at the material and how they performed. For engagement we have statistics on time spent, engaged time, revisiting time, conversations with the tutor and can use that to determine based on different modalities students prefer what could be more engaging. We refine and focus based on the course as a whole, and have personalization applied on top of that so we&#8217;re mostly looking at cohorts which gives more data. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The auto-updating piece is the real standout, internal courses always go stale because nobody maintains them, having the course rewrite itself when the source docs change solves the exact reason corporate training fails the version history with rollback per cohort is a smart touch too, most tools would just push changes live and break things mid-course, one question, how do you handle the case where a doc gets updated badly or with wrong info? does a human have to approve before it reaches learners or can a bad edit silently propagate?<\/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\/@imoluuu\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@imoluuu<\/a>&nbsp;Thanks! Yes a human always approves and releases the draft. They can make changes in seconds using the course editor if something feels off. <\/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>Hey everyone! \ud83d\udc4b<\/p>\n<p>I&#8217;m Kiran, CMO at StudyFetch.<\/p>\n<p>I&#8217;ve had a front-row seat watching our team build this from the ground up, and it&#8217;s incredibly exciting to finally share it with the Product Hunt community.<\/p>\n<p>We believe there&#8217;s a huge opportunity to help upskill the workforce, and Honen is our step toward that vision.<\/p>\n<p>Thanks for checking us out today. We&#8217;d love to hear your thoughts and answer any questions!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The half-stale-by-launch problem is real &#8211; I&#8217;ve watched companies spend 6 figures on training that&#8217;s outdated by Q2. Auto-updating from the actual docs\/tools beats curated content by a mile. Curious how you handle role-specific deltas (e.g. ops needs a different slice of the same source). Following.<\/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\/@david_marko\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@david_marko<\/a>&nbsp;Anything you put in your knowledgebase can be scoped to specific groups or roles inside of your organization and shared with specific people. This allows you to create courses on specific sources in your knowledgebase which are scoped to specific roles or groups. Not sure if this is what you meant but creating the same course but with different content for multiple diff roles based on their available knowledge is actually a great 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<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Really impressed by how Honen tackles the \u201cstale training\u201d problem with real-time adaptability and hands-on projects. The parallel training idea\u2014keeping both people and AI agents in sync, feels like a game changer. Curious how you see this scaling for smaller teams who might not have a big knowledgebase yet? Congratulations to Honen team!<\/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\/@odeth_negapatan1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@odeth_negapatan1<\/a>&nbsp;Honen actually can create courses and knowledge off of just topics or telling it what you want. Whats cool about the knowledgebase is it hooks up via MCP to claude, chatgpt etc. so you can use those systems to write really good documentation or knowledge that can automatically be used to feed courses. <\/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>The auto-updating piece is the standout for me \u2014 training that rewrites itself when the underlying docs change solves the exact reason internal courses go stale. Congrats on shipping. How do you decide which changes actually warrant a lesson update versus noise?<\/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\/@oleksii_sekundant\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@oleksii_sekundant<\/a>&nbsp;We try and make small impactful changes e.g. if a small number changes from 5 to 10, thats still worth a change and the course assistant editor will make it as the information is technically not correct.<\/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! Integrating professional AI training for students alongside corporate training is a unique way to scale impact.<\/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\/@marianna_tymchuk\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@marianna_tymchuk<\/a>&nbsp;Thank you! <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>3<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>How do you prevent it from teaching the wrong thing if a doc gets edited badly or is outdated?<\/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\/@thamibenjelloun\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thamibenjelloun<\/a>&nbsp;It uses knowledgebase documents as the source of truth for the course, so it currently expects those to be updated properly and correctly to base its changes of of. Of course everything is able to be approved \/ published by a person!<\/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>The automatic course updating definitely caught my eye. How seamless is that process in practice? If we completely overhaul our internal wiki, does Honen flag the changes for admin review first, or does it just push the new course version live?<\/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\/@andika_fadhilah\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@andika_fadhilah<\/a>&nbsp;It&#8217;ll read through the entire changes vs the course and make changes, it might just take a bit longer. You apply the revision draft manually before the changes goes live to learners.<\/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>The stale training problem is very real. Course generation is useful, but the stronger part is keeping courses connected to the knowledge base so updates don\u2019t depend on someone remembering to fix onboarding docs later.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@farrukh_butt1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@farrukh_butt1<\/a>&nbsp;Thanks for the feedback! Appreciate it!<\/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>the parallel training idea is what makes this different from every other course builder. training your team and your AI agents from the same knowledge base so everyone stays in sync is something I haven&#8217;t seen anyone else do. also the auto-update when source docs change is huge&#8230; we&#8217;ve had onboarding materials go stale within weeks because nobody remembers to update the training when the product changes<\/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\/@tina_chhabra\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@tina_chhabra<\/a>&nbsp;Thanks for the feedback! Let us know what you think! <\/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>Hi Product Hunt,<\/p>\n<p>I&#8217;m Phillip, another one of the makers of <strong>Honen<\/strong>, and I&#8217;m stoked that this day is finally here.<\/p>\n<p><a href=\"https:\/\/www.producthunt.com\/@ryan_trattner\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"ryan_trattner\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ryan_trattner<\/a> already covered what Honen is. I want to talk about the thing that took the longest to get right.<\/p>\n<p>The easy version of this product is a course builder. Drag in docs, generate a course, ship it. That part works and it&#8217;s genuinely fast. But a course builder is still just a fancier static file. You make it once, it sits there, it goes stale.<\/p>\n<p>The hard version is making the course aware of itself. Knowing when learners are stuck. Knowing when the material no longer reflects how the world actually works. Having a course update itself without having to go back in, identify, and make the changes yourself. That&#8217;s what we kept pushing toward.<\/p>\n<\/p>\n<p>The other thing that took real focus: one knowledgebase that trains your people and your AI agents at the same time. Same source of truth, same context, in sync. We call it parallel training and I think it&#8217;s the most forward-looking part of what we built.<\/p>\n<p><a href=\"http:\/\/Honen.com\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Honen.com<\/a>, free to try. First course takes about 30 seconds.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@ryan_trattner\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ryan_trattner<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@pj_in_pjs\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@pj_in_pjs<\/a>&nbsp;These guys played a huge part of building this. Excited for everyone to finally see what we&#8217;ve been working on and get their hands on 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>Hi everyone! <\/p>\n<p>I&#8217;m Esan, cofounder\/CEO at StudyFetch<\/p>\n<p>We&#8217;ve been heads down building this for a while, so it&#8217;s exciting to finally share Honen with all of you.<\/p>\n<p>The idea behind Honen is: Companies have more knowledge than ever, and context is changing almost everyday, but turning that knowledge into training is still way too slow and manual. We wanted to change that.<\/p>\n<p>We&#8217;re still early, but the response so far has been incredibly encouraging, and we&#8217;re excited about what&#8217;s ahead.<\/p>\n<p>Thanks for stopping by and supporting the launch. I&#8217;d love to hear your thoughts and answer any questions.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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>Congratulations on the launch team \ud83d\ude4c <br \/>The parallel training concept is genuinely interesting<br \/>quick Q, how does the MCP integration work in practice? Do the agents pull from it dynamically, or is it a one-time sync?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@abod_rehman\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@abod_rehman<\/a>&nbsp;Good question! It&#8217;s dynamic, not a one-time sync. The Knowledge Base is the single source of truth, and the MCP server exposes it to the agents as live read\/write tools. So when an agent acts, it&#8217;s reading the current state of your company at that moment, and will not be outdated.<\/p>\n<p>That&#8217;s really the whole premise behind parallel training: you put knowledge in once, and it feeds both sides. Humans through courses, agents through Skills in MCP, all from the same source. <\/p>\n<p>Linked external sources stay updated on their own too, google drive, for example, re-syncs every minute, so changes upstream land in the base immediately.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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 live client meeting simulation is a standout feature \ud83d\ude4c <br \/>what criteria is the AI actually grading on? Is it customizable per company or is it a fixed rubric?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@boyuan_deng1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@boyuan_deng1<\/a>&nbsp;The grading isn&#8217;t a fixed, one-size-fits-all rubric. The whole Honen model is that everything runs off your company&#8217;s own knowledge base, so the criteria reflect what your org actually cares about in a client meeting, not a generic script. Same source of truth that powers your courses and agents feeds what &#8220;good&#8221; looks like in the simulation, so it stays consistent with how you actually train your team.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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\/@ryan_trattner\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ryan_trattner<\/a> Thanks for sharing what you&#8217;ve been building!<\/p>\n<\/p>\n<p>As others have previously indicated, the auto-updating aspect of the <a href=\"https:\/\/www.producthunt.com\/products\/honen\" target=\"_blank\" rel=\"noopener\">@Honen<\/a> system is a notably attractive feature. Since human reviewers will necessarily approve updates before deployment, I&#8217;m curious about the process for review. How will the proposed changes be marked for the reviewer? How will the reviewer approve\/deny a given change?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@underuncertainty\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@underuncertainty<\/a>&nbsp;Thanks! Every course has revisions that are visible in a &#8220;Draft&#8221; mode for instructors, so they can go through exactly what the learners see and ask to make any changes if needed, then you can choose to roll it out to learners. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>my friends and I have been talking about a product like this for some time now and its cool to see someone working on this! would you say that it is specifically designed for corporate learning or something that could be extended to desk-less workers 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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@hersh_singh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@hersh_singh<\/a>&nbsp;Appreciate it! It&#8217;s designed for all types of learning! We&#8217;ve actually been exploring a lot of work in the trades and non-desk roles specifically (such as HVAC, plumbing, electrical etc.) and building out courses that can help specifically with learners in those fields. <\/p>\n<p>We&#8217;re trying to make this as general a platform as possible and hit as many fields as possible. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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 very interesting. i have courses on GEO and it&#8217;s actually hard to update them. creating is easy but so many things change that it&#8217;s hard to keep 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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@heyitsirenechan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@heyitsirenechan<\/a>&nbsp;Would love to hear your feedback after using Honen! Try creating a course (you can even bring in your existing information) and the updating is very seamless from the educator end. You can just describe the changes you want and roll it out directly to learners. <\/p>\n<p>Happy to also show you on a call how we can get your existing courses imported into honen for you to edit and delivered to learners <a href=\"https:\/\/honen.com\/contact\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/honen.com\/contact<\/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<\/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\/PYMO5672CRDMQX\" class=\"app-title\">Vaani<\/a><\/p>\n<div class=\"one-liner\">Lip-synced AI dubbing for creators, brands and studios<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">298<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Vaani\u662f\u4e00\u6b3e\u4fdd\u7559\u539f\u58f0\u7279\u5f81\u7684\u53e3\u578b\u540c\u6b65AI\u914d\u97f3\u5de5\u5177\uff0c\u5e2e\u52a9\u521b\u4f5c\u8005\u3001\u54c1\u724c\u548c\u5de5\u4f5c\u5ba4\u4e00\u6b21\u6027\u5c06\u89c6\u9891\u7ffb\u8bd1\u914d\u97f3\u621040\u591a\u79cd\u8bed\u8a00\uff0c\u4ee5\u8fdc\u4f4e\u4e8e\u4f20\u7edf\u914d\u97f3\u7684\u6210\u672c\uff0c\u89e3\u51b3\u591a\u8bed\u8a00\u5e02\u573a\u5185\u5bb9\u672c\u5730\u5316\u65f6\u58f0\u97f3\u5931\u771f\u4e0e\u53e3\u578b\u4e0d\u540c\u6b65\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\/8c5797a8-d54a-4f59-9098-d397aa94b419.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/5b658366-1648-4b9e-b631-c3b4d9409d2f.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/738e9546-9562-40a0-a0d1-8ef517032f2a.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/24a10bfd-fa36-4192-b9fa-3fa1c3d61c80.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/63928b8f-376d-40b4-a32a-2ca008eb9413.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/c50aa88a-4a75-4a81-952c-253778148956.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\/1861a629-fa96-4002-88e4-67c434b951a1.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/_5v93kwGXxE\"><source src=\"https:\/\/youtu.be\/_5v93kwGXxE\" 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\">Audio<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u914d\u97f3<\/span><br \/>\n            <span class=\"tag\">\u53e3\u578b\u540c\u6b65<\/span><br \/>\n            <span class=\"tag\">\u58f0\u97f3\u514b\u9686<\/span><br \/>\n            <span class=\"tag\">\u591a\u8bed\u8a00\u7ffb\u8bd1<\/span><br \/>\n            <span class=\"tag\">\u89c6\u9891\u672c\u5730\u5316<\/span><br \/>\n            <span class=\"tag\">\u5185\u5bb9\u521b\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u54c1\u724c\u8425\u9500<\/span><br \/>\n            <span class=\"tag\">\u5de5\u4f5c\u5ba4\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u8bed\u97f3\u4fdd\u7559<\/span><br \/>\n            <span class=\"tag\">\u5370\u5ea6\u5e02\u573a<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u9ad8\u5ea6\u5173\u6ce8\u58f0\u97f3\u4fdd\u7559\u6280\u672f\uff08\u5982\u60c5\u611f\u97f5\u5f8b\u4e0e\u53e3\u578b\u540c\u6b65\uff09\uff0c\u666e\u904d\u8be2\u95ee\uff1a\u80fd\u5426\u9010\u53e5\u7f16\u8f91\u4fee\u6539\uff1f\u5982\u4f55\u5904\u7406\u5e7d\u9ed8\u3001\u6587\u5316\u5dee\u5f02\u4e0e\u5feb\u8bed\u901f\u5bf9\u8bdd\uff1f\u80cc\u666f\u97f3\u4e50\u662f\u5426\u4f1a\u53d7\u635f\uff1f\u5bf9\u4e8e\u9996\u6b21\u6e32\u67d3\u7684\u7a33\u5b9a\u6027\uff08\u5982\u5608\u6742\u97f3\u9891\u6e90\uff09\u4e0e7\u5206\u949f\u8bd5\u7528\u65f6\u95f4\u7684\u6700\u4f73\u7528\u6cd5\u4e5f\u5b58\u5728\u7591\u95ee\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                Vaani\u5728\u201cAI\u914d\u97f3\u201d\u8fd9\u4e2a\u62e5\u6324\u8d5b\u9053\u4e0a\uff0c\u786e\u5b9e\u5207\u4e2d\u4e86\u4e00\u4e2a\u88ab\u957f\u671f\u5ffd\u7565\u7684\u75db\u70b9\uff1a\u58f0\u97f3\u7684\u201c\u8eab\u4efd\u611f\u201d\u3002\u5927\u591a\u6570\u5de5\u5177\u7528\u901a\u7528AI\u8bed\u97f3\u66ff\u4ee3\u539f\u58f0\uff0c\u672c\u8d28\u4e0a\u662f\u5728\u6d88\u706d\u521b\u4f5c\u8005\u7684\u4e2a\u6027\uff0c\u800cVaani\u7684\u201c\u58f0\u97f3\u6307\u7eb9\u201d\u514b\u9686\u4e0e\u201c\u9010\u5e27\u53e3\u578b\u540c\u6b65\u201d\u6280\u672f\uff0c\u8bd5\u56fe\u56de\u7b54\u4e00\u4e2a\u66f4\u672c\u8d28\u7684\u95ee\u9898\uff1a\u5982\u679c\u58f0\u97f3\u4e0d\u518d\u662f\u4f60\u7684\uff0c\u90a3\u8fd9\u4e2a\u5185\u5bb9\u8fd8\u5c5e\u4e8e\u4f60\u5417\uff1f\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u6280\u672f\u8def\u7ebf\u770b\uff0cVaani\u7684\u91ce\u5fc3\u4e0d\u5728\u7ffb\u8bd1\u51c6\u786e\u7387\uff0c\u800c\u5728\u201c\u8868\u8fbe\u91cd\u6784\u201d\u3002\u5b83\u5f3a\u8c03\u7684\u201c\u91cd\u8ff0\u610f\u4e49\uff08retell meaning\uff09\u201d\u800c\u975e\u201c\u7ffb\u8bd1\u5355\u8bcd\u201d\uff0c\u5904\u7406\u7684\u662f\u8bed\u4e49\u5728\u6587\u5316\u8bed\u5883\u4e2d\u7684\u5b58\u6d3b\u95ee\u9898\uff0c\u8fd9\u5bf9\u5e7d\u9ed8\u3001\u53cd\u8bbd\u7b49\u9ad8\u8bed\u5883\u5185\u5bb9\u5c24\u4e3a\u5173\u952e\u3002\u4f46\u5fc5\u987b\u6307\u51fa\uff0c\u8fd9\u4e5f\u662f\u6700\u5927\u98ce\u9669\u70b9\u2014\u2014\u5f53\u7528\u6237\u4e0a\u4f20\u4e00\u6bb5\u590d\u6742\u5bf9\u8bdd\uff0c\u9996\u6b21\u81ea\u52a8\u5316\u8f93\u51fa\u80fd\u5426\u7a33\u5b9a\u8fbe\u5230\u201c\u60ca\u8273\u201d\u6548\u679c\uff1f\u76ee\u524d\u8bc4\u8bba\u4e2d\u7684\u59d4\u5a49\u56de\u7b54\u6697\u793a\uff0c\u5728\u5370\u6b27\u8bed\u7cfb\u4e4b\u95f4\u8868\u73b0\u4f18\u5f02\uff0c\u4f46\u5728\u65e5\u3001\u6c49\u8bed\u7b49\u58f0\u8c03\u8bed\u8a00\u4e2d\uff0c\u60c5\u611f\u4f20\u9012\u4f9d\u7136\u201c\u53d7\u9650\u4e8e\u7f16\u7801\u201d\uff0c\u8fd9\u8868\u660e\u5176\u5e95\u5c42\u6a21\u578b\u5bf9\u4e0d\u540c\u8bed\u8a00\u7684\u58f0\u5b66-\u8bed\u8a00\u5b66\u6620\u5c04\u5c1a\u672a\u5b8c\u7f8e\u6cdb\u5316\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u5546\u4e1a\u89d2\u5ea6\u770b\uff0cVaani\u7684\u201c\u914d\u97f3-\u53e3\u578b-\u8bed\u97f3\u514b\u9686\u201d\u4e09\u4f4d\u4e00\u4f53\uff0c\u5f62\u6210\u4e86\u4e00\u5b9a\u7684\u58c1\u5792\u3002\u4f46B2B\u5ba2\u6237\u9700\u8981\u7684\u9010\u53e5\u5ba1\u67e5\u7f16\u8f91\u5668\u4ecd\u5c5e\u201c\u5373\u5c06\u63a8\u51fa\u201d\u72b6\u6001\uff0c\u8fd9\u66b4\u9732\u4e86\u5176\u5f53\u524d\u7248\u672c\u66f4\u591a\u662f\u4e00\u4e2a\u201c\u6f14\u793a\u7ea7\u4ea7\u54c1\u201d\u2014\u2014\u7528\u60ca\u8273\u7684\u81ea\u52a8\u8f93\u51fa\u5438\u5f15\u6ce8\u610f\u529b\uff0c\u800c\u771f\u6b63\u7684\u4e13\u4e1a\u7ea7\u5de5\u4f5c\u6d41\u5c1a\u672a\u5c31\u7eea\u3002\u5bf9\u4e8e\u8bd5\u56fe\u75287\u5206\u949f\u514d\u8d39\u989d\u5ea6\u6d4b\u8bd5\u5176\u6781\u9650\u7684\u521b\u4f5c\u8005\uff0c\u5efa\u8bae\u4f18\u5148\u7528\u6e05\u6670\u7684\u5355\u4eba\u8bb2\u89e3\u89c6\u9891\u6d4b\u8bd5\uff0c\u800c\u975e\u590d\u6742\u7684\u591a\u4eba\u5bf9\u8bdd\u573a\u666f\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u603b\u4f53\u800c\u8a00\uff0cVaani\u662f\u5c11\u6570\u771f\u6b63\u7406\u89e3\u201c\u58f0\u97f3\u5373\u8d44\u4ea7\u201d\u8fd9\u4e00\u7406\u5ff5\u7684\u4ea7\u54c1\u3002\u5b83\u505a\u5bf9\u4e86\u4e00\u4ef6\u4e8b\uff1a\u628a\u521b\u4f5c\u8005\u800c\u975e\u7b97\u6cd5\u7f6e\u4e8e\u4e2d\u5fc3\u3002\u4f46\u80fd\u5426\u4ece\u201cDemo\u60ca\u8273\u201d\u8fdb\u5316\u5230\u201cProduction\u53ef\u9760\u201d\uff0c\u53d6\u51b3\u4e8e\u5b83\u5728\u8bed\u4e49\u4fdd\u771f\u5ea6\u3001\u5608\u6742\u73af\u5883\u9c81\u68d2\u6027\u4ee5\u53ca\u4f01\u4e1a\u7ea7\u7f16\u8f91\u5de5\u4f5c\u6d41\u4e0a\u7684\u6301\u7eed\u8fed\u4ee3\u3002\u5bf9\u4e8e\u5e0c\u671b\u5b89\u5168\u8fdb\u5165\u591a\u8bed\u8a00\u5e02\u573a\u7684\u54c1\u724c\u548c\u5185\u5bb9\u65b9\uff0c\u503c\u5f97\u89c2\u671b\u5176\u7f16\u8f91\u5668\u4e0a\u7ebf\u540e\u7684\u5b8c\u6574\u5b9e\u529b\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Vaani<\/span>\n                <\/div>\n<div class=\"comment-content\">Vaani is a voice-preserving AI dubbing tool to help you dub in 40+ languages, in one go, at a fraction of the cost of a traditional dub session. Where other tools give you a generic AI voice and lips that drift off-beat, Vaani clones your voice, preserves your music, and holds the meaning across languages, with frame-accurate lip sync. Built for anyone creating videos, from creators and brands to media companies, OTTs and studios.<\/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<br \/>I&#8217;m Abhinav Mohan, founder of Vaani.<\/p>\n<p><strong>\ud83c\udfac How Vaani started<\/strong><br \/><strong><br \/><\/strong>I was working on a personal video project a while back and wanted to make it accessible in a few languages beyond English. So I went looking for a tool and was genuinely shocked at what came back.<br \/>Voices that sounded like a customer-service IVR reading off a script. Lip sync that drifted two or three frames every line. Output that felt robotic in a way audiences clock instantly, even if they can&#8217;t say why.<br \/>I kept thinking someone must have solved this for serious creators by now. Turns out, not quite. Most tools optimise for speed and the lowest acceptable output, not for keeping your actual voice intact across languages.<br \/>The more creators and brand teams I talked to, the clearer it became everyone was hitting the same wall.<br \/>And the data backs it up: a well-made dub routinely outperforms the original by 2\u20133\u00d7 in non-English markets. But bad auto-dubbing actually hurts creators in the global YouTube algorithm, watch time drops, ranking falls, and channels lose ground in markets they used to win.<br \/>The wrong tool punishes you for trying to go global. That gap is exactly what we built Vaani for.<\/p>\n<p><strong>\u2728 What Vaani does<\/strong><br \/><strong><br \/><\/strong>Vaani captures the fingerprint of your voice, timbre, cadence, breath, the way you swallow small words, and redraws it in 40+ languages with frame-accurate lip sync. One shoot. One render. Heard everywhere.<br \/>The core loop:<br \/>\u2022 Drop a video<br \/>\u2022 Pick the languages<br \/>\u2022 Vaani traces your voice, regenerates it in each script, and re-times every mouth frame by frame<\/p>\n<p><strong>\ud83d\udc49 Try the interactive demo<\/strong><br \/><a href=\"https:\/\/app.arcade.software\/share\/zfXKZAc2lBD70Md6PzPm\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/app.arcade.software\/share\/zfXKZAc2lBD70Md6PzPm<\/a><\/p>\n<p><strong>\u26a1 Why Vaani is radically better<\/strong><br \/><strong><br \/><\/strong>\u2022 Most tools translate words. Vaani retells meaning, so jokes land and tone holds.<br \/>\u2022 Most tools overdub audio. Vaani re-times every mouth frame by frame, so lips actually match. No other tool does frame-accurate lip sync at this scale.<br \/>\u2022 Most tools give one generic voice. Vaani captures your voice fingerprint and redraws it across 40+ languages, with more Indian languages than any other dubbing tool.<br \/>\u2022 Most tools make you dub one video at a time. Glot is a node-based batch canvas, drop multiple videos, fan out to multiple languages, add lip sync, render in parallel, download a zip.<br \/>\u2022 And it does all this at a fraction of the cost of existing tools.<\/p>\n<p><strong>\ud83d\udc65 Who it&#8217;s for<\/strong><br \/><strong><br \/><\/strong>\u2022 YouTubers and podcasters reactivating their back catalog in 40+ markets<br \/>\u2022 Global brands shipping one ad in every language they sell in, same budget<br \/>\u2022 OTTs and studios regionalizing long-form content without losing the lead actor<br \/>\u2022 Course creators and educators reaching global cohorts<br \/>\u2022 Filmmakers who want a lip-synced, voice-cloned dub at a fraction of traditional cost<br \/><strong><br \/><\/strong>7 free minutes at signup,. Valid the next 7 days.<\/p>\n<p>\ud83d\udc49 Try Vaani free at <a href=\"https:\/\/vaani.media\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/vaani.media<\/a><\/p>\n<p><strong>\ud83d\udcac What we&#8217;re hoping for today<\/strong><br \/><strong><br \/><\/strong>Honestly? Feedback. Not upvotes. Specifically:<br \/>\u2022 What kind of content you&#8217;d try Vaani on first<br \/>\u2022 What&#8217;s missing, every request goes into Linear, no exceptions<br \/>\u2022 If something breaks, please yell at us in the comments \ud83d\udc1b<\/p>\n<p><strong>\ud83e\udd1d The team<\/strong><br \/><strong><br \/><\/strong>Built by a small team of four out of Bangalore \ud83c\uddee\ud83c\uddf3. I&#8217;ll be in the comments all day myself, but the team&#8217;s reading along, drop any technical, design, or roadmap question and we&#8217;ll get it answered.<\/p>\n<p><strong>\ud83d\udcec Reach us<\/strong><br \/><strong><br \/><\/strong>\u2022 \ud83d\udce7 <a href=\"mailto:hello@vaani.media\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">hello@vaani.media<\/a><br \/>\u2022 LinkedIn: <a href=\"https:\/\/www.linkedin.com\/company\/advant-ai\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/www.linkedin.com\/company\/advant-ai<\/a><br \/>\u2022 Discord Community: <a href=\"https:\/\/discord.gg\/nJ5Meuh6v\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/discord.gg\/nJ5Meuh6v<\/a><\/p>\n<p>Huge thanks to <a href=\"https:\/\/www.producthunt.com\/@rohanrecommends\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rohanrecommends<\/a> for hunting us, the @producthunt team for the launch infrastructure, and every one of you for reading this far. \u2764\ufe0f<br \/>I&#8217;ll be in the comments all day (and most of the night, we&#8217;re in IST, please forgive typos after midnight \ud83c\udf19). Ask me anything.<\/p>\n<p>Abhinav Mohan<br \/>Founder, Vaani<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>12<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@rohanrecommends\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rohanrecommends<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@producthunt\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@producthunt<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@abhinav_cinephile\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@abhinav_cinephile<\/a>&nbsp;The voice-preserving approach is really interesting. A lot of AI dubbing tools get the translation done, but lose the creator&#8217;s identity in the process. How are you handling cultural nuances and tone across different languages to make sure the dubbed version still feels authentic to the original content?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>6<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@rohanrecommends\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rohanrecommends<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@producthunt\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@producthunt<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@abhinav_cinephile\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@abhinav_cinephile<\/a>&nbsp;Kudos. Are users allowed to edit every line or change them before exporting their final project?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Voice preservation is the part I keep coming back to. Most dubbing tools flatten the speaker into a generic AI voice, so holding the original timbre across 40+ languages is a real differentiator. I work on voice AI for older adults, and we&#8217;ve found that a familiar-sounding voice changes how much people trust and engage with it, sometimes more than raw transcription accuracy. Curious how you handle emotional prosody: does the clone carry tone and pacing across languages, or mostly the timbre? Impressive that the lip sync stays frame-accurate at that scale.<\/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\/@igorgurovich\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@igorgurovich<\/a>&nbsp;Hi Igor, the older adults trust angle resonates, it is exactly the thing we keep landing on too.<\/p>\n<p>On prosody. We try to carry tone and pacing, not only timbre. The original audio is the source of expressive features and those get mapped into the target language.<\/p>\n<p>Honest caveat. It ports better in some pairs than others. English to Spanish or Hindi feels close to seamless. English to Japanese or Mandarin is harder because emotion is encoded differently in pitch and tone. We map as much as we can, more a translation of prosody than a clean copy.<\/p>\n<p>Thanks on the lip sync, that one took the most iterations.<\/p>\n<p>Abhinav<\/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>I need this to be a plugin for Zoom \/ MS Teams &#8211; working live during the meetings.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The creator-trust angle here is strong. Bad dubbing doesn\u2019t just sound off; it can make the original creator feel less credible in a market they\u2019re trying to enter.<\/p>\n<\/p>\n<p>One workflow detail I\u2019d care about: can users review the meaning\/tone changes separately from the lip-sync render? For brand, education, and founder-led videos, the scary failure mode isn\u2019t only \u201cthe lips drift,\u201d it\u2019s \u201cthe joke, caveat, or claim survived grammatically but not contextually.\u201d<\/p>\n<\/p>\n<p>If Vaani can show a lightweight line-by-line review before final export \u2014 original intent, localized wording, voice\/tone note, then render \u2014 I think teams would trust it for much higher-stakes content than simple back-catalog translation.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@jim_jeffers\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jim_jeffers<\/a>&nbsp;Hi Jim, this is the sharpest framing of the problem I have read all day.<\/p>\n<p>The failure mode you described, joke or caveat or claim surviving grammar but losing context, is exactly the one we have been designing against. Lip drift is a known visual problem with a known fix. The semantic drift is the dangerous one because nothing in the dub looks wrong, it just lands wrong.<\/p>\n<p>On your workflow question. We do have an advanced editor (currently used with B2B customers) that gives a line level review pass before the lip sync render. The spec is close to what you sketched. Reviewers can see the original, the localized version, and approve or flag changes before the expensive part of the pipeline runs.<\/p>\n<p>We chose to launch the one click version first because the quality of the auto output is the headline most people need to see. But your read is the right one. Teams buying dubbing for brand or founder content care less about throughput and more about not getting it wrong, and a review layer is what makes that possible. The editor lands as a separate launch soon.<\/p>\n<p>Abhinav<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Wishing you success with the launch! Out of curiosity, which type of content do users test first: short-form videos, ads, or long-form series?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@marianna_tymchuk\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@marianna_tymchuk<\/a>&nbsp;Hi Marianna, thanks for the well wishes.<\/p>\n<p>The pattern we have seen so far is that creators tend to start with short form to validate the quality, then move into longer pieces once they trust the output. Ads tend to come in between, the production stakes are higher but the length is still small.<\/p>\n<p>On the long form side, we now handle up to 30 minutes in a single run, and longer videos can be added too. So once a creator is past the initial trust check, they can put a whole episode or feature through the pipeline.<\/p>\n<p>Curious what made you ask.<\/p>\n<p>Abhinav<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Do you let users review and change individual lines before export, or is it mostly one click end to end?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@thamibenjelloun\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thamibenjelloun<\/a>&nbsp;<\/p>\n<p>Hi Thami, the honest answer is nuanced.<\/p>\n<p>For most creators editing line by line is not actually useful. If you are a Hindi creator dubbing into French you likely do not speak French, so the only editing you can really do is fix brand names or specific English terms anyway. So we focused on making the auto translation good enough that you do not need to touch it. Brand names and cultural nuance preservation are handled inside the dub itself.<\/p>\n<p>We do have an advanced editor with full line by line control that we use with B2B customers (studios running whole catalog passes), but we chose to launch the one click version first because we wanted people to see the quality of the auto output first. The editor lands as a separate launch soon.<\/p>\n<p>Abhinav<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Love how Vaani focuses on keeping the creator\u2019s identity intact instead of just translating words.<\/p>\n<p>The frame-accurate lip sync + voice fingerprinting sounds like a game changer, especially for long-form content and ads.<\/p>\n<p>Quick question: how does it handle humor, cultural nuances, and fast-paced dialogue?<\/p>\n<p>Killing it Abhinav this has huge potential! \ud83d\udd25<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Hi Moon, thanks for that. Three good questions, taken in order:<\/p>\n<p>Humor. This is the hardest of the three. Universal humor (timing, irony, sarcasm in delivery) carries over because the voice clone holds onto cadence and the way you stress a punchline. Regional humor and wordplay still benefit from a human pass, it is fundamentally a translation problem more than a voice one. We treat that as something to flag, not pretend we have solved.<\/p>\n<p>Cultural nuances. The translation step preserves intent and emotional weight over exact words. Brand names, regional terms, and references that do not have direct equivalents get adapted rather than literally translated.<\/p>\n<p>Fast paced dialogue. The lip sync runs frame by frame so the timing stays tight even when the speaker rattles off lines. The voice clone carries the pace from the original audio, so the dub does not slow down to fit the new language, it adjusts the rhythm to stay in sync with how you actually talk.<\/p>\n<p>Appreciate the kind words. More soon.<\/p>\n<p>Abhinav<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Love that you guys are focusing on translating the &#8220;meaning&#8221; and tone rather than just a literal word-for-word translation. Keeping jokes or specific idioms landing across languages is the hardest part. How much manual editing do you usually have to do to the script before rendering the final dub?<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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 fast-dub seems handy. I&#8217;ll just add that if you would like a promotional &#8220;war room&#8221; for your projects, see The Den in <a href=\"http:\/\/mentionfox.com\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">mentionfox.com<\/a> Engagement HQ for everywhere and to everyone you should comment\/reply on, a Grants Search module, Accellerators Search &amp; Apply Advice, and far more. Without it I&#8217;d be hard-pressed as a solopreneur.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>As a music producer the &#8220;preserves your music&#8221; bit is what got me \u2014 most dubbing tools trash the background track the second they touch the vocal. Are you splitting out the music stem and dropping the cloned voice back over the original mix, or regenerating the whole thing? Curious how clean the music stays.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>Lip-sync is key on video creation\/edition and it&#8217;s gonna help enough on it. Wish you all the best here guys!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>You said the quality of the auto output is the thing people need to see first. How consistent is that first render when the input is messy, multiple speakers, background music, fast cuts? I&#8217;m curious whether a new user reliably hits the wow on clip one, or whether the result leans a lot on having clean source audio. If it does, do they find that out before they burn their 7 free minutes on the wrong test video?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>Voice-preserving across languages is the right wedge &#8211; I build voice agents and the same gap exists in cloning: &#8220;close enough&#8221; voices break trust within seconds. Watch-time \/ ranking falling in non-English markets when you ship generic-voice dubs is a brutal stat. Following.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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 lip-sync is the hard part most dubbing tools skip, so leading with it is a strong signal. Congrats on the launch. How do you handle emotion and tone carrying across languages \u2014 does the dub keep the original delivery?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#4<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/OUDBSD6IBWNFYL\" class=\"app-title\">Supaste<\/a><\/p>\n<div class=\"one-liner\">Clipboard Manager for macOS<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">242<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Supaste \u662f\u4e00\u6b3e macOS \u672c\u5730\u4f18\u5148\u7684\u526a\u8d34\u677f\u4e0e\u622a\u56fe\u5386\u53f2\u7ba1\u7406\u5de5\u5177\uff0c\u901a\u8fc7\u53ef\u89c6\u5316\u65f6\u95f4\u8f74\u548c\u9ad8\u6548\u68c0\u7d22\uff0c\u89e3\u51b3\u7528\u6237\u5728\u5de5\u4f5c\u6d41\u4e2d\u53cd\u590d\u4e22\u5931\u590d\u5236\u5185\u5bb9\uff08\u6587\u672c\u3001\u56fe\u7247\u3001\u4ee3\u7801\u3001\u989c\u8272\u7b49\uff09\u7684\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/16fda144-4285-4eb7-bc4c-3625d510f6b5.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=F4_HccauNl0\"><source src=\"https:\/\/www.youtube.com\/watch?v=F4_HccauNl0\" 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\/bf51b94e-cc49-4345-8ba4-790e8025dba4.webp?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/eba191c8-2b7d-4f1c-b5c3-839b38bc0beb.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\/c33522f8-5fce-4e62-9145-ec95291be5b6.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\/18ee3bbd-ad92-461f-91c4-e7d0a6181cf1.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\">Mac<\/span><br \/>\n            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">Menu Bar Apps<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">macOS \u526a\u8d34\u677f\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u53ef\u89c6\u5316\u5386\u53f2\u8bb0\u5f55<\/span><br \/>\n            <span class=\"tag\">\u622a\u56fe\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u4f18\u5148<\/span><br \/>\n            <span class=\"tag\">\u6548\u7387\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u5185\u5bb9\u68c0\u7d22<\/span><br \/>\n            <span class=\"tag\">\u81ea\u5b9a\u4e49\u5206\u7c7b<\/span><br \/>\n            <span class=\"tag\">\u62d6\u62fd\u7c98\u8d34<\/span><br \/>\n            <span class=\"tag\">\u4e00\u6b21\u6027\u8d2d\u4e70<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u8ba4\u4e3a\u53ef\u89c6\u5316UI\u4f18\u4e8e\u4f20\u7edf\u6587\u5b57\u5217\u8868\uff0c\u4f46\u8d28\u7591\u4e0eRaycast\/Alfred\u53camacOS\u539f\u751f\u529f\u80fd\u7684\u5dee\u5f02\u5316\u3002\u6838\u5fc3\u9700\u6c42\uff1aiCloud\u540c\u6b65\u4e0eiOS\u5e94\u7528\uff08\u5df2\u89c4\u5212\uff09\u3001\u81ea\u6258\u7ba1\u79c1\u6709\u4e91\u540c\u6b65\u3001\u81ea\u5b9a\u4e49UI\u4f4d\u7f6e\u3002\u5173\u6ce8\u6027\u80fd\uff1a\u5927\u6587\u4ef6\/\u89c6\u9891\u5b58\u50a8\u65f6\u5185\u5b58\u5360\u7528\uff0c\u4ee5\u53caElectron\u5e94\u7528\u56fe\u6807\u8bc6\u522b\u51c6\u786e\u6027\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Supaste \u5728\u62e5\u6324\u7684 macOS \u526a\u8d34\u677f\u5de5\u5177\u5e02\u573a\u91cc\u505a\u4e86\u4e00\u4e2a\u7cbe\u51c6\u7684\u51cf\u6cd5\uff1a\u7528\u201c\u89c6\u89c9\u4f18\u5148\u201d\u548c\u201c\u672c\u5730\u4f18\u5148\u201d\u4e24\u4e2a\u652f\u70b9\uff0c\u8bd5\u56fe\u64ac\u52a8\u88abRaycast\u3001Alfred \u7b49\u4e00\u5207\u7686\u53ef\u641c\u7d22\u7684\u201c\u8d85\u7ea7\u542f\u52a8\u5668\u201d\u6240\u5360\u9886\u7684\u7528\u6237\u5fc3\u667a\u3002\u5b83\u7684\u4ef7\u503c\u5e76\u975e\u5728\u4e8e\u201c\u590d\u5236\u66f4\u591a\u201d\uff0c\u800c\u5728\u4e8e\u201c\u66f4\u597d\u5730\u56de\u987e\u4e0e\u590d\u7528\u201d\u3002\u53ef\u89c6\u5316\u65f6\u95f4\u8f74\u76f4\u63a5\u89e3\u51b3\u4e86\u4f20\u7edf\u526a\u8d34\u677f\u7ba1\u7406\u5668\u5728\u6df1\u5ea6\u5de5\u4f5c\u540e\u53d8\u6210\u201c\u6587\u672c\u4e71\u846c\u5c97\u201d\u7684\u75db\u70b9\uff0c\u5bf9\u4e8e\u9700\u8981\u9891\u7e41\u8c03\u7528\u8bbe\u8ba1\u5143\u7d20\u3001\u4ee3\u7801\u7247\u6bb5\u3001\u6587\u6848\u6a21\u677f\u7684\u521b\u610f\u53ca\u6280\u672f\u5de5\u4f5c\u8005\u6765\u8bf4\uff0c\u8fd9\u786e\u5b9e\u662f\u6740\u624b\u7ea7\u4f53\u9a8c\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u4ea7\u54c1\u5f53\u524d\u7684\u5904\u5883\u7565\u663e\u5c34\u5c2c\u3002\u4e00\u65b9\u9762\uff0c\u5176\u6838\u5fc3\u529f\u80fd\uff08\u5982\u5feb\u901f\u7c98\u8d34\u3001\u5386\u53f2\u641c\u7d22\uff09\u5bf9\u4e8e\u5df2\u6295\u5165Raycast\u7b49\u751f\u6001\u7cfb\u7edf\u7684\u9ad8\u9636\u7528\u6237\u800c\u8a00\uff0c\u5438\u5f15\u529b\u6709\u9650\u3002\u5f00\u53d1\u8005\u56de\u5e94\u7684\u201c\u66f4\u591a\u529f\u80fd\u5373\u5c06\u5230\u6765\u201d\uff08\u5982\u56fe\u7247\u5904\u7406\u3001\u6279\u91cf\u590d\u5236\uff09\uff0c\u6070\u6070\u66b4\u9732\u4e86\u5f53\u524d\u7248\u672c\u5728\u529f\u80fd\u6df1\u5ea6\u4e0a\u7684\u4e0d\u8db3\u2014\u2014\u5b83\u66f4\u50cf\u662f\u4e00\u4e2a\u6f02\u4eae\u7684\u201c\u9648\u5217\u67dc\u201d\uff0c\u800c\u975e\u4e00\u4e2a\u5f3a\u608d\u7684\u201c\u52a0\u5de5\u5382\u201d\u3002\u53e6\u4e00\u65b9\u9762\uff0c\u5176\u6700\u5927\u7684\u7ade\u4e89\u58c1\u5792\u201c\u672c\u5730\u4f18\u5148\u201d\uff0c\u5728\u7528\u6237\u8bc4\u8bba\u4e2d\u5374\u53d8\u6210\u4e86\u6700\u5927\u7684\u72b9\u8c6b\u70b9\u3002\u5355\u673a\u82e5\u65e0\u6cd5\u5b9e\u73b0\u65e0\u7f1d\u8de8\u8bbe\u5907\u540c\u6b65\uff08\u54ea\u6015\u662fiCloud\uff09\uff0c\u5728\u5982\u4eca\u591a\u8bbe\u5907\u534f\u540c\u5de5\u4f5c\u6d41\u4e0b\uff0c\u5c31\u4f1a\u6ca6\u4e3a\u201c\u5c40\u90e8\u6700\u4f18\u89e3\u201d\u3002\u88ab\u53cd\u590d\u95ee\u53ca\u7684\u201c\u662f\u5426\u540c\u6b65\u201d\uff0c\u4ee5\u53ca\u5f00\u53d1\u8005\u5bf9\u201ciCloud\u540c\u6b65\u5df2\u5728\u8def\u7ebf\u56fe\u201d\u7684\u591a\u6b21\u56de\u5e94\uff0c\u90fd\u8bc1\u660e\u4e86\u7eaf\u672c\u5730\u5b58\u50a8\u7684\u5e02\u573a\u6559\u80b2\u6210\u672c\u6781\u9ad8\uff0c\u4e14\u9700\u8981\u5f3a\u5927\u7684\u4e91\u540c\u6b65\u529f\u80fd\u4f5c\u4e3a\u4f53\u9a8c\u98de\u8f6e\u3002\n            <\/p>\n<p class=\"ai-content\">\n                Supaste \u8d4c\u5bf9\u4e86\u5ba1\u7f8e\u548c\u573a\u666f\uff0c\u4f46\u80fd\u5426\u4ece\u201c\u5c1d\u9c9c\u7684\u6f02\u4eae\u5de5\u5177\u201d\u8fdb\u5316\u6210\u201c\u5de5\u4f5c\u6d41\u7684\u552f\u4e00\u4f9d\u8d56\u201d\uff0c\u53d6\u51b3\u4e8e\u5176\u540e\u7eed\u66f4\u65b0\u80fd\u5426\u5728\u201c\u89c6\u89c9\u4f53\u9a8c\u201d\u7684\u62a4\u57ce\u6cb3\u5916\uff0c\u5feb\u901f\u6784\u5efa\u51fa\u201c\u9ad8\u6548\u52a8\u4f5c\u201d\uff08\u5982\u6279\u91cf\u5904\u7406\u3001\u81ea\u5b9a\u4e49\u5de5\u4f5c\u6d41\uff09\u548c\u201c\u65e0\u7f1d\u540c\u6b65\u201d\u8fd9\u4e24\u6761\u66f4\u5bbd\u7684\u62a4\u57ce\u6cb3\u3002\u5426\u5219\uff0c\u5b83\u5f88\u53ef\u80fd\u6210\u4e3a\u5f00\u53d1\u8005\u4e2a\u4eba\u79c0\u4e2d\u4e00\u9897\u8000\u773c\u7684\u6d41\u661f\uff0c\u800c\u975e\u7528\u6237\u57fa\u5ea7\u4e2d\u4e00\u5ea7\u575a\u5b9e\u7684\u5821\u5792\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\">Supaste<\/span>\n                <\/div>\n<div class=\"comment-content\">Supaste is a local-first clipboard and screenshot history app for Mac. Save copied text, links, images, files, code, colors, and screenshots in a beautiful searchable timeline.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey<\/p>\n<p>I built Supaste because I kept losing useful things I copied throughout the day \u2014 links, screenshots, code snippets, colors, assets, email templates, and random text I needed again 10 minutes later.<\/p>\n<p>Most clipboard managers felt either too plain or too messy for my workflow, so I wanted to make something more visual, fast, and easy to reuse.<\/p>\n<p>Supaste is a local-first clipboard and screenshot history app for macOS. It saves what you copy into a beautiful visual timeline, lets you filter by app or content type, organize clips into custom categories, drag and drop items back into other apps, and paste recent clips instantly with shortcuts.<\/p>\n<p>It\u2019s built for people who copy a lot while working \u2014 designers, developers, marketers, founders, sales\/support teams, and anyone who wants their Mac to remember what they copied.<\/p>\n<p>A few things I focused on:<br \/>\n\u2022 Visual history instead of a plain list<br \/>\n\u2022 App and type filters<br \/>\n\u2022 Custom categories for projects, templates, and assets<br \/>\n\u2022 Quick Paste from anywhere<br \/>\n\u2022 Drag and drop from the notch\/window<br \/>\n\u2022 Local-first, no cloud sync, no analytics<br \/>\n\u2022 One-time purchase, no subscription<\/p>\n<p>I\u2019d love to hear your feedback, ideas, and feature requests.<\/p>\n<p>Thanks for checking out Supaste<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>4<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@soltwagner\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@soltwagner<\/a>&nbsp;It&#8217;s Apple version of Win+V and I like using it to remember the copied passwords<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\">@soltwagner product from a problem \ud83d\udc4d<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\">@soltwagner Can you build clipboard manager for Linux and Windows also ?<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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 local-first no-cloud call is the interesting bet! Is no-sync a privacy stance you&#8217;re committed to or a v1 scope line you&#8217;ll cross later with end-to-end encrypted sync? 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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@artstavenka1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@artstavenka1<\/a>&nbsp;yes, in the next updates I will implement iCloud sync yes, and iOS app<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Many people already rely on Alfred or Raycast clipboard history\u2014what\u2019s the specific 30-second demo workflow where Supaste clearly outperforms those options, and why is that advantage hard for a launcher to replicate?<\/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\/@curiouskitty\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@curiouskitty<\/a>&nbsp;You can watch demo video here <a href=\"https:\/\/www.youtube.com\/watch?v=F4_HccauNl0\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/www.youtube.com\/watch?v=F4_HccauNl0<\/a><\/p>\n<p>and lot of more actions coming, image converter, image resize, remove background (demo here <a href=\"https:\/\/x.com\/soltwagner\/status\/2063652302020628793\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/x.com\/soltwagner\/status\/2063652302020628793<\/a>), more text actions, bulk copy (demo here <a href=\"https:\/\/x.com\/soltwagner\/status\/2063603367214215219\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/x.com\/soltwagner\/status\/2063603367214215219<\/a>), better UI, better UX<\/p>\n<\/p>\n<p>and more useful features coming in the next updates<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\">@soltwagner Just to make sure, would you say the biggest reason to switch today is mostly for the improved UI\/UX? Since you mentioned those other features are coming in later updates?<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>At first, I was like &#8220;Ok raycast has solved it already, and now it is native to macos&#8221; but when I&#8217;m seeing the interface, it looks really nice. I love how you use the dynamic island style.<\/p>\n<p>What if I already have an app that uses the notch? Could I use another UI?<\/p>\n<p>Congrats!<\/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\/@fberrez1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@fberrez1<\/a>&nbsp;I\u2019ll add more customization options in the next update. You\u2019ll be able to move the app from the top to the left, right, or bottom, and choose between a full library window or a small quick-paste window anywhere with the <a href=\"https:\/\/Supaste.com\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Supaste.com<\/a> 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<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@soltwagner\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"soltwagner\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@soltwagner<\/a> The visual timeline approach feels like the right fix for clipboard managers that turn into unreadable text dumps after an hour of deep work.<\/p>\n<p>Curious if the app-level filtering works reliably with Electron apps like Figma or VS Code, since they often report generic window titles instead of meaningful context? <\/p>\n<\/p>\n<p>That\u2019s usually where visual clipboard tools start to lose their edge over plain lists. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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>Drag-and-drop clipboard. I love that!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Clean, native-feeling clipboard managers are weirdly rare on macOS, so this is welcome! Congrats on launching. Does history sync across devices, or stay local for privacy?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@oleksii_sekundant\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@oleksii_sekundant<\/a>&nbsp;local first, privacy, in the next updates I will add iCloud sync, and app for iOS<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>As someone constantly juggling UTM parameters, ad copy variants, and brand hex codes, this looks like a massive lifesaver. Does Supaste allow you to pin or organize specific clippings into folders\/tags for different campaigns?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@andika_fadhilah\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@andika_fadhilah<\/a>&nbsp;yes, you can create your own collections\/folders<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>That&#8217;s a clean take. Is cross-device sync on the roadmap, or is it intentionally local-only?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@dhiraj_patel5\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dhiraj_patel5<\/a>&nbsp;at the momant local-first, iCloud sync and iOS app on the roadmap<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I feel like every few years I convince myself I don&#8217;t need a clipboard manager, and then spend the next week re-copying the same links, snippets, screenshots, and prompts \ud83d\ude05<\/p>\n<p>Love the visual-first approach. 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\/@chaitrali_kakde1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@chaitrali_kakde1<\/a>&nbsp;thank you \ud83d\ude4c and for sure, you need Supaste \ud83e\udee1 this is not just a clipboard manager<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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>Beautifully designed product! Well done : )<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@craigjbarber\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@craigjbarber<\/a>&nbsp;Thank you Craig \ud83d\udd25\ud83d\ude4c<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>How does it compare to the now native macOS Tahoe clipboard history? Nicely done!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@reneandritsch\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@reneandritsch<\/a>&nbsp;more features, more actions, better UI and UX, better filters, your own collections, pins, favorites, shortcuts for pins, history, custom shortcuts for any clipboards<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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\/@soltwagner\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"soltwagner\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@soltwagner<\/a> Thanks for sharing what you&#8217;ve been creating! I&#8217;m looking forward to trying this app in my design work.<\/p>\n<\/p>\n<p>I&#8217;m curious about temporary storage and memory usage. If video files or sets of large images are copied to the clipboard using this app, does the summed size of the files put strain on available memory that would normally not keep more than a single item on the clipboard?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\">Honestly like the app, but the price is a turn off. I can see where if a person truly cared about local only how this could be enticing, but more than half my copy pasting is between devices. Could there be an alternative to cloud where it integrates with a local self hosted option as the clipboard?<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This is one of those tools I can immediately imagine using during a messy building day. When I\u2019m working on product copy, small design details, support replies, screenshots, links, colors, and random snippets, I constantly copy things that I know I\u2019ll need again\u2026 and then somehow lose them five minutes later.<\/p>\n<\/p>\n<p>I like that Supaste treats clipboard history more visually, not just as a long technical list. The local-first part also matters a lot for this kind of app, because clipboard history can easily include private product stuff, emails, credentials, or unfinished drafts.<\/p>\n<\/p>\n<p>The one-time purchase is refreshing too. :))<\/p>\n<p>Curious how you think about search: is it mostly exact text search, or can it also help find things more loosely, like \u201cthat screenshot from the dashboard\u201d or \u201cthe blue color I copied yesterday\u201d?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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>also you got my upvote &#8212; it\u2019s a really cool product!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Local-first with a timeline that spans text, images, code, colors, and files in one searchable store is the hard part. Most clipboard managers pick one content type and add the others as an afterthought. I&#8217;ve hit the same mixed-type indexing tradeoffs when handling diverse data in a unified store. Do you use Core Data, SQLite, or something else for the local persistence layer?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\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\/MIBXX2H7FRROOC\" class=\"app-title\">The Virtual OS Museum<\/a><\/p>\n<div class=\"one-liner\">Relive vintage operating systems right on your desktop<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">179<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>The Virtual OS Museum \u662f\u4e00\u4e2a\u9884\u88c5\u4e86\u8d85\u8fc71700\u4e2a\u64cd\u4f5c\u7cfb\u7edf\uff08\u4ece1948\u5e74\u66fc\u5f7b\u65af\u7279\u5b9d\u8d1d\u5230\u73b0\u4ee3\u7cfb\u7edf\uff09\u7684Linux\u865a\u62df\u673a\u5305\uff0c\u8ba9\u7528\u6237\u65e0\u9700\u8d2d\u7f6e\u53e4\u8463\u786c\u4ef6\u5373\u53ef\u5728\u684c\u9762\u4e0a\u76f4\u63a5\u201c\u89e6\u6478\u201d\u548c\u8fd0\u884c\u8ba1\u7b97\u673a\u5386\u53f2\u4e2d\u7684\u7ecf\u5178\u7cfb\u7edf\uff0c\u89e3\u51b3\u4e86\u6280\u672f\u7231\u597d\u8005\u548c\u5386\u53f2\u7814\u7a76\u8005\u65e0\u6cd5\u771f\u5b9e\u4f53\u9a8c\u8001\u7cfb\u7edf\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\/4928af46-6490-495d-ba2d-0302d774bf57.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/1d6e73a1-b7ae-4f21-8e02-43c38bbff8af.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/fcccaf2a-586b-459b-a9ff-96e95238f912.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/783dd324-188c-47d8-9ee5-e59fb0e81090.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/e95aafb6-b3ae-4af9-bb1f-74f7c6f21eab.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/8e85a421-87a4-49d0-9637-e0642af9464b.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/7a40a79d-3b2c-4fe3-a2c0-b51e6581f257.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/1fff14c4-5ada-4f75-9129-8992d82ee2b7.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/1938d3cf-30d5-45e3-9b5a-0789d33f70bd.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/41fbdfef-163e-4d18-9e3c-40c5e931708b.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/01359b9b-3d42-49a7-b77b-2493b390a424.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b6f57b60-04c2-459f-b5b1-c431aebaf42d.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/28a56072-d640-4023-849b-be5de5fd433f.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/a9f6453f-ab7e-4420-89c5-c3e0153222f4.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/d6234225-cbcf-4470-a128-fe1d8d568cc0.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/d08efa9d-1ef1-4d21-8ec0-cdda6baaf32b.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/dbe51da2-6e6c-4c9a-b975-633945568232.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/03b7a556-95cb-464f-8087-3d087923cace.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/feced832-c350-4c11-a289-b5b19959f9ce.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/01c5cf42-9d66-420c-95c8-b7c21fbe03f2.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/107fe24c-a006-416e-9e33-6affb00fb1b5.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\/28075076-dc1c-4c73-bec8-b25c581800d9.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=J7qbblRw5JY\"><source src=\"https:\/\/www.youtube.com\/watch?v=J7qbblRw5JY\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Open Source<\/span><br \/>\n            <span class=\"tag\">Software Engineering<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u865a\u62df\u673a<\/span><br \/>\n            <span class=\"tag\">\u64cd\u4f5c\u7cfb\u7edf\u535a\u7269\u9986<\/span><br \/>\n            <span class=\"tag\">\u6570\u5b57\u4fdd\u5b58<\/span><br \/>\n            <span class=\"tag\">\u590d\u53e4\u8ba1\u7b97<\/span><br \/>\n            <span class=\"tag\">QEMU<\/span><br \/>\n            <span class=\"tag\">VirtualBox<\/span><br \/>\n            <span class=\"tag\">UTM<\/span><br \/>\n            <span class=\"tag\">\u5386\u53f2\u8f6f\u4ef6<\/span><br \/>\n            <span class=\"tag\">\u6280\u672f\u8003\u53e4<\/span><br \/>\n            <span class=\"tag\">\u4e00\u952e\u8fd0\u884c<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u9ad8\u5ea6\u8ba4\u53ef\u5176\u6570\u5b57\u4fdd\u5b58\u4ef7\u503c\uff0c\u4f46\u666e\u904d\u671f\u5f85\u6d4f\u89c8\u5668\u5728\u7ebf\u7248\u672c\u4ee5\u964d\u4f4e\u4f53\u9a8c\u95e8\u69db\u3002\u6709\u7528\u6237\u5e0c\u671b\u589e\u52a0\u201c\u65e9\u671fGUI\u201d\u7b49\u5f15\u5bfc\u5f0f\u6d4f\u89c8\u8def\u5f84\uff0c\u4e5f\u6709\u4eba\u5173\u5fc3\u7cfb\u7edf\u662f\u5426\u80fd\u771f\u6b63\u4ea4\u4e92\u6216\u4ec5\u4e3a\u9884\u89c8\u3002\u5c11\u6570\u8bc4\u8bba\u6307\u5411\u7ec6\u8282\u7f3a\u5931\uff08\u5982\u7f3a\u5c11Windows\u7684\u201c\u753b\u56fe\u201d\u8f6f\u4ef6\uff09\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                The Virtual OS Museum \u672c\u8d28\u4e0a\u662f\u4e00\u4e2a\u201c\u6570\u5b57\u9057\u4ea7\u5927\u793c\u5305\u201d\uff0c\u5176\u4ef7\u503c\u4e0d\u5728\u4e8e\u6280\u672f\u521b\u65b0\uff0c\u800c\u5728\u4e8e\u6781\u81f4\u7684\u6574\u7406\u4e0e\u5c01\u88c5\u30021700\u591a\u4e2a\u7cfb\u7edf\u88ab\u585e\u8fdb\u5355\u4e00\u865a\u62df\u673a\uff0c\u89e3\u51b3\u4e86\u201c\u6536\u85cf\u72c2\u201d\u7684\u7a7a\u95f4\u4e0e\u914d\u7f6e\u6210\u672c\u95ee\u9898\u2014\u2014\u8fd9\u662f\u6bd4\u5355\u7eaf\u6784\u5efa\u4e00\u5806\u6a21\u62df\u5668\u66f4\u806a\u660e\u7684\u4ea7\u54c1\u5316\u601d\u8def\uff0c\u56e0\u4e3a\u5b83\u628a\u201c\u4f53\u9a8c\u201d\u7684\u95e8\u69db\u4ece\u6280\u672f\u5b85\u964d\u5230\u4e86\u666e\u901a\u7231\u597d\u8005\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u5fc5\u987b\u6307\u51fa\uff0c\u5f53\u524d\u5f62\u6001\u5b58\u5728\u81f4\u547d\u77ed\u677f\uff1a\u4e0b\u8f7d\u4e00\u4e2a\u5de8\u578bVM\u5305\u672c\u8eab\u5c31\u662f\u53cd\u4e92\u8054\u7f51\u65f6\u4ee3\u7684\u64cd\u4f5c\u3002\u7528\u6237\u8bc4\u8bba\u4e2d\u6700\u9ad8\u547c\u58f0\u7684\u201c\u7f51\u9875\u7248\u201d\u76f4\u51fb\u8981\u5bb3\u2014\u2014\u5982\u679c\u65e0\u6cd5\u5373\u65f6\u3001\u96f6\u6469\u64e6\u5730\u542f\u52a81960\u5e74\u4ee3\u7684\u7cfb\u7edf\uff0c\u5b83\u5c31\u53ea\u662f\u4e00\u4e2a\u9759\u6001\u7684\u201cISO\u5408\u96c6\u201d\uff0c\u4e0e\u771f\u6b63\u7684\u201c\u4e92\u52a8\u535a\u7269\u9986\u201d\u76f8\u53bb\u751a\u8fdc\u3002\u6b64\u5916\uff0c\u9879\u76ee\u7f3a\u4e4f\u6e05\u6670\u7684\u5f15\u5bfc\u673a\u5236\uff1a\u9762\u5bf91700\u4e2a\u7cfb\u7edf\uff0c\u591a\u6570\u4eba\u53ea\u4f1a\u8ff7\u5931\u800c\u975e\u6df1\u5165\u63a2\u7d22\u3002\u82e5\u4e0d\u80fd\u8bbe\u8ba1\u51fa\u7c7b\u4f3c\u201c\u65f6\u5149\u8d70\u5eca\u201d\u6216\u201c\u64cd\u4f5c\u7cfb\u7edf\u8fdb\u5316\u6811\u201d\u7684\u7b56\u5c55\u903b\u8f91\uff0c\u5b83\u5f88\u5feb\u4f1a\u6ca6\u4e3a\u6536\u85cf\u54c1\u800c\u975e\u6559\u80b2\u8d44\u6e90\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5176\u771f\u6b63\u4ef7\u503c\u5728\u4e8e\u201c\u53ef\u8fd0\u884c\u201d\u800c\u975e\u201c\u53ef\u89c2\u770b\u201d\u3002\u5f53\u4f60\u80fd\u5728\u4e11\u964b\u7684\u5206\u8fa8\u7387\u4e0b\u771f\u6b63\u6572\u51faDOS\u547d\u4ee4\u6216\u6ed1\u52a8Palm OS\u7684\u89e6\u63a7\u7b14\u65f6\uff0c\u90a3\u79cd\u5386\u53f2\u89e6\u611f\u662f\u4efb\u4f55\u622a\u56fe\u548c\u89c6\u9891\u65e0\u6cd5\u66ff\u4ee3\u7684\u3002\u4f46\u82e5\u8981\u7834\u5708\uff0c\u56e2\u961f\u5fc5\u987b\u4ece\u201c\u628a\u53e4\u8463\u585e\u8fdb\u67dc\u5b50\u201d\u8f6c\u5411\u201c\u8ba9\u6e38\u5ba2\u8f7b\u677e\u8d70\u8fdb\u5c55\u5385\u201d\u2014\u2014\u505a\u51cf\u6cd5\uff08\u7cbe\u9009\u7cfb\u7edf\u3001\u63d0\u4f9b\u5f15\u5bfc\uff09\u3001\u505a\u8fde\u63a5\uff08\u6d4f\u89c8\u5668\u7aef\u3001\u4ea4\u4e92\u5f0f\u65f6\u95f4\u7ebf\uff09\uff0c\u624d\u662f\u4ece\u5de5\u5177\u5347\u7ea7\u4e3a\u6587\u5316\u57fa\u7840\u8bbe\u65bd\u7684\u5173\u952e\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">The Virtual OS Museum<\/span>\n                <\/div>\n<div class=\"comment-content\">Over 1,700 pre-installed operating systems spanning 1948 to today, in a single Linux VM. Bundled QEMU, VirtualBox, and UTM. One-click launchers for Windows and Linux.<\/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:\/\/virtualosmuseum.org\/about-the-curator\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Andrew<\/a> spent over 20 years collecting and configuring more than 1,700 operating system installations, from 1948\u2019s Manchester Baby to early mobile OSes, and packaged them into one <a href=\"https:\/\/virtualosmuseum.org\/downloads\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">ready-to-run VM<\/a>.<\/p>\n<p>It\u2019s genuinely impressive how much obscure and historically important software is made runnable here. At a time when a lot of what we interact with is generated and smoothed over, there\u2019s a certain appeal in being able to touch these older, rougher systems directly \ud83d\ude42<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>8<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@zaczuo Would love a web-based version where you can try OSes directly in browser without downloading the VM \u2014 like an interactive museum tour!<\/div>\n<div class=\"comment-actions\">\n<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\/@zaczuo\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@zaczuo<\/a>&nbsp;Wow, 20 years of collecting and configuring?! Andrew, this is an absolute masterpiece of digital preservation. Packing 1,700 operating systems all the way from the 1948 Manchester Baby into a single runnable VM is a monumental achievement.<\/p>\n<p>You are completely right-in a world where everything is smoothed over by modern UI and AI, getting to touch the raw, rough edges of computing history is incredibly grounding and inspiring.<\/p>\n<p>What was the single most difficult or obscure OS to finally get stable and running inside this VM? Huge congrats on the launch, this is a definite upvote! \ud83d\udd79\ufe0f<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I am missing the Painter software by Windows \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<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This is one of those projects I would open \u201cfor five minutes\u201d and then lose the rest of the afternoon.<\/p>\n<p>The best part is that it is not just screenshots or nostalgia content. Being able to actually poke around old operating systems makes the history feel real: weird menus, slow workflows, forgotten UI ideas, all of it.<\/p>\n<p>I\u2019d love to see some guided paths too, like \u201cearly GUIs,\u201d \u201cforgotten mobile OSes,\u201d or \u201csystems that influenced modern desktop design.\u201d<\/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\/@jj_jordan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jj_jordan<\/a>&nbsp;lol I just had this problem here&#8230; this is dangerous for elder millennials .. probably any geek.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This is such a fun idea. I like that it&#8217;s not just screenshots or nostalgia but actually running the old systems and seeing how they felt to use. A browser version would be amazing later but even as a VM it feels like a real archive people can explore instead of just read abt<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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>Are these full emulated environments where you can actually install software and poke around, or more curated snapshots that show the UI without real interactivity? <\/p>\n<p>Anyway that&#8217;s awesome! Congrats!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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>Funny timing. I was wanting to put this to actual use. We&#8217;ve got a track coming out called Nostalgi (I make music) and I wanted that degraded VHS look for the Instagram Reels, without it feeling like the same one-click filter everyone&#8217;s already scrolled past. This models the signal instead of faking it, so it should hold up. Bookmarking the browser version.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">I\u2019ve always been fascinated by IT history\u2014this is a wonderful resource for those of us who don\u2019t have the space and\/or money to hoard old systems!<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This is a great idea! I never had the chance to try the old OS (born too late for that ahah), so this is a great opportunity!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\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\/B6X2J7ZBCZZCG7\" class=\"app-title\">Tamadoggo<\/a><\/p>\n<div class=\"one-liner\">A living journal for your pet&#8217;s life, with AI insights<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">168<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Tamadoggo \u662f\u4e00\u6b3e\u5c06\u5ba0\u7269\u65e5\u5e38\u8bb0\u5f55\u8f6c\u5316\u4e3a\u201c\u6d3b\u6001\u65e5\u8bb0\u201d\u7684\u6e29\u6696\u5e94\u7528\uff0c\u901a\u8fc7\u6e29\u548c\u7684AI\u6d1e\u5bdf\uff08\u800c\u975e\u51b7\u51b0\u51b0\u7684\u8ffd\u8e2a\uff09\u5e2e\u52a9\u5ba0\u7269\u4e3b\u4eba\u8f7b\u677e\u6355\u6349\u996e\u98df\u3001\u5065\u5eb7\u3001\u884c\u4e3a\u7b49\u7ec6\u5fae\u53d8\u5316\uff0c\u89e3\u51b3\u4f20\u7edf\u5ba0\u7269\u5e94\u7528\u8fc7\u4e8e\u4e34\u5e8a\u5316\u3001\u4ee4\u4eba\u4ea7\u751f\u8d1f\u7f6a\u611f\u7684\u95ee\u9898\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/3a063a46-2854-4435-b93c-4613afde1118.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/da8cb2da-f0aa-47a6-80e7-18db1bde8fb1.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/6e1ba816-3976-465b-851b-7972c048bb29.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/24d8c91c-cb5d-45b4-aff4-d6b0448335ca.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/a13bec4e-ecb2-4f01-86e2-b3296ac7a4b2.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/ba2a20c0-c249-47ee-aa79-298caf736674.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/1b45455a-6587-4108-b04b-087d29e62aaa.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\/b0afd50a-af7b-47e2-ae0a-a6e42d4e9201.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/UkP-eAJItgo?si=e4BXZt4mRiJxhYpw\"><source src=\"https:\/\/youtu.be\/UkP-eAJItgo?si=e4BXZt4mRiJxhYpw\" 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\">Pets<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u5ba0\u7269\u65e5\u8bb0<\/span><br \/>\n            <span class=\"tag\">AI\u6d1e\u5bdf<\/span><br \/>\n            <span class=\"tag\">\u5ba0\u7269\u5065\u5eb7\u8ffd\u8e2a<\/span><br \/>\n            <span class=\"tag\">\u5ba0\u7269\u751f\u547d\u5468\u671f\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u517d\u533b\u6587\u6863\u626b\u63cf<\/span><br \/>\n            <span class=\"tag\">\u6708\u62a5<\/span><br \/>\n            <span class=\"tag\">\u6e29\u60c5\u8bbe\u8ba1<\/span><br \/>\n            <span class=\"tag\">\u4e00\u4eba\u5f00\u53d1<\/span><br \/>\n            <span class=\"tag\">iOS\u4f18\u5148<\/span><br \/>\n            <span class=\"tag\">React Native<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u8d5e\u8d4f\u5176\u6e29\u6696\u3001\u6545\u4e8b\u5316\u7684\u5b9a\u4f4d\uff0c\u80dc\u8fc7\u51b0\u51b7\u7684\u8ffd\u8e2a\u5668\u3002\u6838\u5fc3\u5173\u6ce8\u70b9\u5305\u62ec\uff1a\u4f55\u65f6\u652f\u6301\u732b\u53ca\u5176\u4ed6\u5ba0\u7269\uff08\u5df2\u627f\u8bfaV2\u9002\u914d\u732b\uff09\u3001\u80fd\u5426\u5f15\u5165\u591a\u4e3b\u4eba\u534f\u4f5c\uff08\u5982\u5206\u4eab\u65e5\u8bb0\u7167\u7247\uff09\u3001AI\u6d1e\u5bdf\u7684\u5177\u4f53\u7c7b\u578b\u4e0e\u751f\u6548\u65f6\u95f4\u3002\u5236\u4f5c\u8005\u5f3a\u8c03AI\u53ea\u505a\u6e29\u548c\u5efa\u8bae\uff0c\u4e0d\u8bca\u65ad\uff1b\u5e76\u900f\u9732\u5f53\u524d\u91c7\u7528Supabase+Claude\u5de5\u5177\u8c03\u7528\u5b9e\u73b0\u540e\u7aef\u7684AI\u5206\u6790\uff0c\u975e\u4f20\u7edf\u5355\u5411\u63d0\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                Tamadoggo \u7684\u6210\u529f\u4e0d\u5728\u4e8eAI\u6709\u591a\u5f3a\uff0c\u800c\u5728\u4e8e\u5b83\u7cbe\u51c6\u5730\u89c4\u907f\u4e86AI\u6700\u8ba9\u4eba\u53cd\u611f\u7684\u4e24\u4ef6\u4e8b\u2014\u2014\u8bf4\u6559\u548c\u8bef\u8bca\u3002\u5f53\u5927\u591a\u6570\u5ba0\u7269\u5e94\u7528\u5c06AI\u5957\u7528\u6210\u201c\u66f4\u806a\u660e\u7684\u8ddf\u8e2a\u5668\u201d\u65f6\uff0c\u5b83\u628aAI\u653e\u5728\u4e86\u5e55\u540e\uff0c\u8f6c\u5316\u4e3a\u201c\u66f4\u6e29\u60c5\u7684\u63d0\u9192\u201d\u3002\u8fd9\u79cd\u514b\u5236\u8ba9\u7528\u6237\u611f\u89c9\u88ab\u966a\u4f34\u800c\u975e\u88ab\u5ba1\u89c6\uff0c\u8fd9\u5728\u5fc3\u7406\u5065\u5eb7\u3001\u5ba0\u7269\u5173\u6000\u7b49\u60c5\u611f\u5bc6\u96c6\u578b\u4ea7\u54c1\u4e2d\u6781\u4e3a\u5173\u952e\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u6280\u672f\u5c42\u9762\uff0c\u5b83\u7528Claude\u7684\u5de5\u5177\u8c03\u7528\uff08\u800c\u975e\u7b80\u5355Prompt\uff09\u5b9e\u73b0\u6d1e\u5bdf\u5f52\u56e0\u4e0e\u88c1\u51b3\u5206\u79bb\uff0c\u662f\u4e00\u4e2a\u88ab\u4f4e\u4f30\u7684\u5de5\u7a0b\u4eae\u70b9\uff1a\u8ba9\u6a21\u578b\u9009\u62e9\u6027\u5730\u67e5\u8be2\u6570\u636e\uff0c\u800c\u4e0d\u662f\u6bcf\u6b21\u70e7\u5149\u4e0a\u4e0b\u6587\u2014\u2014\u8fd9\u4e0d\u4ec5\u964d\u4f4e\u5ef6\u8fdf\uff0c\u66f4\u907f\u514d\u4e86\u5e7b\u89c9\u3002\u4f46\u5355\u4eba\u5f00\u53d1\u4e5f\u610f\u5473\u7740\u98ce\u9669\uff1a\u591a\u5ba0\u7269\u652f\u6301\u8fd8\u505c\u7559\u5728\u8def\u7ebf\u56fe\uff0cAndroid\u9065\u9065\u65e0\u671f\uff0c\u591a\u7528\u6237\u5171\u4eab\u529f\u80fd\u5c31\u662f\u786c\u7f3a\u5931\u3002\u5982\u679c\u8fd9\u4e9b\u4e0d\u662f\u201c\u672a\u6765\u8003\u8651\u201d\u800c\u88ab\u89c6\u4e3a\u201c\u5f53\u524d\u75db\u70b9\u201d\uff0c\u7528\u6237\u5f88\u53ef\u80fd\u5728\u65b0\u9c9c\u611f\u8fc7\u540e\u5373\u6d41\u5931\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u8fd8\u6709\u4e00\u70b9\u503c\u5f97\u8b66\u60d5\uff1a\u5e94\u7528\u76ee\u524d\u7684\u5438\u5f15\u529b\u51e0\u4e4e\u5168\u9760\u201c\u6e29\u67d4\u5171\u9e23\u201d\u9a71\u52a8\uff0c\u4f46\u4e00\u65e6\u7528\u6237\u57fa\u6570\u6269\u5927\uff0c\u6570\u636e\u5b64\u5c9b\u548c\u9690\u79c1\u98ce\u9669\uff08\u5982\u626b\u63cf\u7684\u517d\u533b\u6587\u6863\uff09\u4f1a\u8fc5\u901f\u6210\u4e3a\u5408\u89c4\u4e0e\u4fe1\u4efb\u7684\u96f7\u533a\u3002\u5982\u679cTamadoggo\u5e0c\u671b\u4ece\u201c\u7f8e\u597d\u5c0f\u5e94\u7528\u201d\u8d70\u5411\u201c\u771f\u6b63\u65e5\u5e38\u4f7f\u7528\u7684\u5de5\u5177\u201d\uff0c\u5fc5\u987b\u5c3d\u5feb\u8865\u4e0a\u534f\u4f5c\u3001\u591a\u5e73\u53f0\u548c\u9690\u79c1\u900f\u660e\u8fd9\u4e09\u5757\u62fc\u56fe\u3002AI\u6e29\u60c5\u662f\u5165\u53e3\uff0c\u4ea7\u54c1\u5b8c\u6574\u5ea6\u624d\u662f\u7559\u5b58\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\">Tamadoggo<\/span>\n                <\/div>\n<div class=\"comment-content\">Most pet apps are clinical trackers. Tamadoggo is a living journal, a warm place to hold every walk, meal, vet visit and milestone. What stands out: gentle AI that never nags or diagnoses. It surfaces patterns across the timeline, gives breed and age-aware suggestions, scans a vet doc (photo or PDF) into auto-filled records, and writes a warm monthly letter. Each pet gets a &#8220;Crib&#8221;, an illustrated home for their whole life. The free tier is also genuinely complete. PRO adds the AI magic.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Heyo PH Crowd!\ud83d\udc4b I&#8217;m Sorin, the maker, a solo developer building this from Bucharest.<br \/>\nTamadoggo started with my own two dogs, Frankie and Carra. I kept forgetting the small things, when a limp started, what we&#8217;d changed about their food (Frankie is super allergic so her food changes often), the funny stuff that makes them them. The pet apps I tried were basically medical trackers: useful, but cold, and they made me feel a bit guilty for every gap. I wanted the opposite, a warm journal of a life, that happens to be smart.<\/p>\n<p>So Tamadoggo is a living journal first. You log walks, meals, vet visits, weight, milestones, little moments, and it builds into a story you can scroll back through. The AI works quietly in the background: it never nags and never diagnoses, just surfaces patterns you might&#8217;ve missed, gives breed- and age-aware nudges, turns a photo of a vet document into proper records, and once a month writes you a warm recap of your pet&#8217;s month.<\/p>\n<p>The free tier is genuinely complete, you get one pet, unlimited timeline, weight charts, your own reminders. Pro adds the deeper AI (insights, vet-doc scanning, monthly summaries) and unlimited pets. I tried hard to make Pro an invitation to go further, not a gate in front of the things that matter.<\/p>\n<p>Under the hood it&#8217;s React Native + Supabase, with the AI built on Claude&#8217;s tool-use through an MCP server.<\/p>\n<p>It&#8217;s just me on this, so I&#8217;d really love your honest feedback, especially from anyone who&#8217;s found other pet apps too clinical, or who&#8217;s juggling more than one animal. What would make this something you&#8217;d actually open every day?<\/p>\n<p>PS. iPhone only for now, Android&#8217;s on the roadmap and other cool features and whatever else people might suggest to improve.<\/p><\/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\/@sorin_vasiliu\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sorin_vasiliu<\/a>&nbsp;\ud83d\ude4f\ud83c\udffc\ud83d\ude4f\ud83c\udffc\ud83d\ude4f\ud83c\udffc<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\/@s0rvas\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@s0rvas<\/a>&nbsp;Congrats on your launch!! I love the idea and your version definitely has a warmth to it that others lack. Sadly, I&#8217;ll have to wait for the Android version. I noticed someone asked about other pets and you mentioned cats. What about other critters, like backyard hens?! Be a good way to keep track of any health issues with them.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This immediately caught my attention because I also own a dog. Though I only have a dog myself, I also curious about that are you planning to expand the experience beyond dogs in the future, for example to cats or other pets? I can imagine many pet owners would love this kind of app. <\/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\/@evakk\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@evakk<\/a>&nbsp;Yup! Can&#8217;t ignore the felines! V2 brings cat support with 6 cute avatars. It&#8217;s in the making as we speak. Future updates will add support for even more companions \ud83d\ude42 Thank you!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This is very interesting. It seems positioned at a consumer app, but have you considered running a pilot program with vets, dog sitters, dog walkers, or doggy daycares? This could be an exceptionally useful and cute way for all of these businesses to give updates to their dog owners.<\/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\/@james_effarah1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@james_effarah1<\/a>&nbsp;That&#8217;s a really interesting perspective, and it gives me a few threads to work with. Going to run with a few, and put them on the roadmap. Thank you!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@james_effarah1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@james_effarah1<\/a>&nbsp;Great suggestion! Could be an opportunity to white-label it and offer as a perk\/bonus for customer loyalty. Not to mention advertising\/branding options.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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. Was curious if this is just for dogs or other pets as well?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@swati_paliwal\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@swati_paliwal<\/a>&nbsp;Feline support is under way. Version 1.1 extends the crib for our cats too. Build is already submitted to the AppStore <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/877e3880-e127-42c6-a6de-d7eadcfdcd65.png?auto=compress,format&amp;codec=mozjpeg&amp;cs=strip\" style=\"max-width: 100%\"><\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Most pet apps stop at cute photo storage, so the AI-insights layer, which turns daily entries into actual patterns, is the harder, more useful half. Congrats on shipping. What kinds of insights can a new owner expect to get back, and how soon do they start showing up?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@oleksii_sekundant\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@oleksii_sekundant<\/a>&nbsp;Thanks! Four kinds: patterns (a food change followed by a tummy upset, say), reminders for things like vaccinations coming due, breed-specific tips, and gentle nudges when something&#8217;s gone untracked. Plus a warm monthly recap letter. On timing, it runs weekly in the background (somewhat like an email), so the first useful ones show up once you&#8217;ve logged a week or two. And if there&#8217;s nothing real to flag, it stays quiet. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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 Sorin, congrats on shipping this!<\/p>\n<p>Went through the website after seeing it here and I really think the Crib concept is a warm feature. <\/p>\n<p>One thing that stuck with me, though, is the origin story (allergic staffie, growing paper stack) might be a more compelling hook than &#8220;beautifully kept&#8221;. That specific chaos is exactly what your buyer recognizes. I write landing pages for a living so this stuff jumps out.<\/p>\n<p>Curious to see how this one takes off!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@oluwatooni\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@oluwatooni<\/a>&nbsp;Thank you or the review and the interesting insight! If that twist resonates with others, I might adapt it. Support is much appreciated! <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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 monthly \u201cwarm letter\u201d is a lovely touch. It makes logging feel rewarding and helps pet owners reflect on the month.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@alexandr_deev\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alexandr_deev<\/a>&nbsp;It truly is. It sounds like a small thing, but it feels like so much more when you review and in some way get to relive it. Thanks for the support!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on the launch! A warm, story-driven approach to pet tracking is such a refreshing alternative to cold, clinical apps.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@marianna_tymchuk\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@marianna_tymchuk<\/a>&nbsp;Thank you for the support! \u2764\ufe0f<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Love the philosophy behind this \u2764\ufe0f Congrats on the launch! \ud83d\ude80 I&#8217;m curious to see how the monthly recaps evolve, those sound like they could become something pet owners really look forward to reading and keeping over the years.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@gabriella_anjani\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@gabriella_anjani<\/a>&nbsp;Thank you for the support! \u2764\ufe0f<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on shipping, Sorin! I love that you went journal first rather than tracker first for this.<\/p>\n<p>I&#8217;m a solo founder building something architecturally similar in a different domain: AI-powered couples journal, where the AI&#8217;s tone is similarly load-bearing (has to challenge without preaching, facilitate without taking sides). Two questions where I think your decisions might actually transfer to my work:<\/p>\n<ol>\n<li>\n<p>The &#8220;gentle AI that never nags or diagnoses&#8221; constraint is the most thoughtful part of Tamadoggo, and probably the hardest to get right. How is it actually encoded, is it primarily prompt-based, structural (the AI is given tools that only let it surface, never recommend), or a separate review layer that filters output before it reaches the user?<\/p>\n<\/li>\n<li>\n<p>You mentioned the AI is built on Claude&#8217;s tool-use through an MCP server. I&#8217;m currently on streaming Claude API and have been wondering whether tool-use is the better fit for the kind of pattern-surfacing-across-events work both our products do. What pushed you toward MCP + tool-use over prompt-based generation?<\/p>\n<\/li>\n<\/ol>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@ferdi_sigona\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ferdi_sigona<\/a>&nbsp;Hi Ferdi! Thanks for the question!<\/p>\n<\/p>\n<ol>\n<li>\n<p>You&#8217;re correct on all 3. It&#8217;s given access to read-only tools, the common base prompt sets the voice (warm, never alarmist, never clinical, always uses the dog&#8217;s name) and the AI can only output a small, fixed set of things (or nothing if doesn&#8217;t find anything meaningful) but it&#8217;s not guaranteed it will return the structured data (best-effort, not guaranteed valid). So the last step is validating in code the returned text which should contain some specific enums I defined. This final review\/filter layer is where I match the free-text JSON against the type\/severity (specific enums), do some fuzzy-dedupes, drop any &#8220;pattern&#8221; whose event ids don&#8217;t resolve to real timeline rows etc.<\/p>\n<\/p>\n<p>I went the tool based approach instead of a prompt based one-shot mainly because of the 90 day event history I wanted to provide to the model which meant to first assemble the events then stuff everything into context on every run. Tool-based also allows the model to start slim, the prompt has in it something like &#8220;only query data that&#8217;s relevant, don&#8217;t query everything because you can&#8221;. All tools are read-only.<\/p>\n<\/p>\n<p>For pattern matching, going the tool-based way might be a bit of an overkill considering multi-round latency, orchestration and possible extra costs starting June 15 (hope not too much), but for my case because this happens behind the scenes and no one is actually waiting while it loads (these insights and monthly summaries come like an email) it&#8217;s acceptable. I also imagined maybe somewhere along the way users might want to use an MCP with their model outside the app and &#8220;talk&#8221; to their data.<\/p>\n<\/p>\n<\/li>\n<li>\n<p>I know I said there&#8217;s an MCP Server in action, but not quite. I ended up dropping it for V1 just to save on the extra Railway server costs and maintenance. So I ended up using a Supabase edge function (the db is also in Supabase so less latency) which fetches <a href=\"http:\/\/api.anthropic.com\/v1\/messages\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">api.anthropic.com\/v1\/messages<\/a> with a tools array and runs a multi-turn loop: Claude emits tool_use blocks &gt; the worker executes them against Postgres &gt; feeds tool_result back &gt; repeats until Claude returns a final answer (capped at 10 rounds). This has it&#8217;s downsides but if the need for a separate server comes it can be easily replaced with a full fledged one (tools are authored in MCP-server shape).<\/p>\n<\/li>\n<\/ol>\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>Hey Sorin, love the Tamagotchi throwback. Congrats on the launch! <\/p>\n<p>On first look, It looks good. Do you have plans to allow for multiple pet owners to view the same pet profile? My partner usually feeds my dog breakfast while I usually take care of dinner. It would be great if we could both track which vitamins and toppers we each gave him or any big treats we each gave (my dog won&#8217;t like this.. he definitely tries to shake us both down for maximum treat dispensing!).<\/p>\n<p>Quick note &#8211; I created a profile and it took me about 3 tries to add a profile image. On first try, after I selected the photo, nothing happened. On second try, it took me to the image cropping page, then nothing happened. For context I am using an iPhone 12. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#7<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/RQYYBDC3IALPXU\" class=\"app-title\">NTSC-RS<\/a><\/p>\n<div class=\"one-liner\">Open-source video emulation of analog TV and VHS artifacts<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">152<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>ntsc-rs \u901a\u8fc7\u5e95\u5c42\u6a21\u62dfNTSC\/VHS\u4fe1\u53f7\u8def\u5f84\uff0c\u4e3a\u89c6\u9891\u521b\u4f5c\u8005\u63d0\u4f9b\u6bd4\u666e\u901a\u6ee4\u955c\u66f4\u771f\u5b9e\u7684\u590d\u53e4\u6a21\u62df\u7535\u89c6\u4e0e\u78c1\u5e26\u6548\u679c\uff0c\u652f\u6301\u6d4f\u89c8\u5668\u3001\u72ec\u7acb\u5e94\u7528\u53ca\u591a\u5e73\u53f0\u63d2\u4ef6\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\/01430291-5166-4dca-953b-c26a360703e8.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=h8rojYQvR3A\"><source src=\"https:\/\/www.youtube.com\/watch?v=h8rojYQvR3A\" 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\/5e1c5977-26e9-4b29-bc70-81cd99439f97.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b46698d8-1931-42d0-8725-658a55bf6aca.webp?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/6231ee24-715f-4765-b535-4948179d835f.webp?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/3758afa4-46b7-43bd-aea2-b2f819a2bb14.webp?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/a1d887da-0359-42ff-ad36-3cdb7053793d.webp?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Open Source<\/span><br \/>\n            <span class=\"tag\">TV<\/span><br \/>\n            <span class=\"tag\">GitHub<\/span><br \/>\n            <span class=\"tag\">Photo &#038; Video<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u5f00\u6e90<\/span><br \/>\n            <span class=\"tag\">VHS\u6548\u679c<\/span><br \/>\n            <span class=\"tag\">\u6a21\u62df\u7535\u89c6<\/span><br \/>\n            <span class=\"tag\">\u590d\u53e4\u89c6\u9891<\/span><br \/>\n            <span class=\"tag\">\u4fe1\u53f7\u6a21\u62df<\/span><br \/>\n            <span class=\"tag\">OpenFX\u63d2\u4ef6<\/span><br \/>\n            <span class=\"tag\">DaVinci Resolve<\/span><br \/>\n            <span class=\"tag\">After Effects<\/span><br \/>\n            <span class=\"tag\">\u89c6\u9891\u7279\u6548<\/span><br \/>\n            <span class=\"tag\">\u6000\u65e7\u7f8e\u5b66<\/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\u5e95\u5c42\u4fe1\u53f7\u6a21\u62df\u5e26\u6765\u7684\u771f\u5b9e\u611f\uff0c\u8ba4\u4e3a\u6bd4\u7b80\u5355\u53e0\u52a0\u566a\u70b9\u7684\u6ee4\u955c\u66f4\u9ad8\u7ea7\u3002\u6709\u7528\u6237\u8be2\u95ee\u6548\u679c\u662f\u5426\u53ef\u79cd\uff08seedable\uff09\u4ee5\u4fdd\u6301\u955c\u5934\u95f4\u4e00\u81f4\u6027\uff1b\u53e6\u6709\u4eba\u5bf9NTSC\/PAL\u547d\u540d\u7ec6\u8282\u63d0\u51fa\u7591\u95ee\u3002\u591a\u4f4d\u8bc4\u8bba\u8868\u8fbe\u4e86\u6000\u65e7\u5171\u9e23\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                ntsc-rs \u7684\u806a\u660e\u4e4b\u5904\u5728\u4e8e\u201c\u53cd\u5957\u8def\u201d\u2014\u2014\u5f53\u5927\u591a\u6570VHS\u6ee4\u955c\u8fd8\u5728\u7528\u566a\u70b9+\u626b\u63cf\u7ebf\u7cca\u5f04\u7528\u6237\u65f6\uff0c\u5b83\u76f4\u63a5\u6a21\u62df\u4fe1\u53f7\u4f20\u8f93\u7684\u5e95\u5c42\u7f3a\u9677\u3002\u8fd9\u79cd\u201c\u7f8e\u5b66\u7684\u5931\u8d25\u8bba\u201d\u786e\u5b9e\u6233\u4e2d\u5185\u5bb9\u521b\u4f5c\u9886\u57df\u7684X\u70b9\uff1a\u4ece\u9ed1\u80f6\u5e95\u566a\u5230\u9971\u548c\u78c1\u5e26\u5931\u771f\uff0c\u6280\u672f\u7f3a\u9677\u53cd\u590d\u88ab\u5305\u88c5\u6210\u98ce\u683c\u3002\u4f46\u95ee\u9898\u4e5f\u968f\u4e4b\u800c\u6765\uff1a\u4fe1\u53f7\u6a21\u62df\u8d8a\u771f\uff0c\u6027\u80fd\u5f00\u9500\u8d8a\u5927\uff0c\u5bf9\u4e8e\u5927\u91cf\u526a\u8f91\u573a\u666f\u662f\u5426\u53cb\u597d\uff1f\u53e6\u5916\uff0c\u7528\u6237\u8bc4\u8bba\u4e2d\u201cseedable\u201d\u7684\u7591\u95ee\u66b4\u9732\u4e86\u5b9e\u7528\u6027\u75db\u70b9\u2014\u2014\u5f71\u89c6\u5de5\u4f5c\u6d41\u9700\u8981\u7684\u662f\u53ef\u590d\u73b0\u3001\u53ef\u5fae\u8c03\u7684\u4e00\u81f4\u6548\u679c\uff0c\u800c\u975e\u6bcf\u6b21\u968f\u673a\u7684\u201c\u771f\u201d\u3002\u9879\u76ee\u5f00\u6e90\u4e14\u62e5\u62b1\u63d2\u4ef6\u751f\u6001\u662f\u806a\u660e\u6253\u6cd5\uff0c\u4f46\u82e5\u65e0\u6cd5\u5728\u771f\u5b9e\uff08\u6a21\u62df\u7cbe\u5ea6\uff09\u548c\u53ef\u63a7\uff08\u53c2\u6570\u5316\u79cd\u5b50+\u6027\u80fd\u4f18\u5316\uff09\u95f4\u627e\u5230\u5e73\u8861\uff0c\u5f88\u53ef\u80fd\u6ca6\u4e3a\u6781\u5ba2\u73a9\u5177\u800c\u975e\u521b\u4f5c\u8005\u5de5\u5177\u3002\u503c\u5f97\u6ce8\u610f\u7684\u662f\uff0c\u8bc4\u8bba\u4e2d\u65e0\u4eba\u63d0\u53ca\u7ade\u54c1\uff08\u5982Red Giant\u7684VHS\u63d2\u4ef6\uff09\u7684\u5bf9\u6bd4\uff0c\u8bf4\u660e\u7279\u8272\u867d\u9c9c\u660e\uff0c\u4f46\u5e02\u573a\u7ad9\u4f4d\u4ecd\u9700\u6253\u78e8\u3002\u4e00\u53e5\u201c\u6bcf\u4e2a\u4ecb\u8d28\u8fdf\u65e9\u628a\u6545\u969c\u53d8\u6210\u7f8e\u5b66\u201d\u56fa\u7136\u91d1\u53e5\uff0c\u4f46\u5f00\u53d1\u8005\u5e94\u8be5\u8b66\u60d5\uff1a\u522b\u8ba9\u8fd9\u53e5\u6587\u6848\u6210\u4e3a\u4ea7\u54c1\u552f\u4e00\u7684\u95ea\u5149\u70b9\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\">NTSC-RS<\/span>\n                <\/div>\n<div class=\"comment-content\">ntsc-rs is a free, open-source VHS and analog TV video effect. Use it online in your browser, as a standalone application, or as a plugin for DaVinci Resolve, After Effects, and more.<\/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>ntsc-rs is the kind of retro tool I actually love.<\/p>\n<p>Most VHS filters fake the vibe from the outside. ntsc-rs goes lower-level and simulates the NTSC\/VHS signal path itself, so the artifacts feel less like a preset and more like the real mess.<\/p>\n<p>You can use it as a <a href=\"https:\/\/ntsc.rs\/download\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">standalone app<\/a>, in the <a href=\"https:\/\/web.ntsc.rs\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">browser<\/a>, or as a <a href=\"https:\/\/ntsc.rs\/docs\/after-effects-plugin\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">plugin<\/a> inside Premiere, After Effects, DaVinci Resolve, and other OpenFX editors.<\/p>\n<p>There is something funny about this category. The artifacts people once tried so hard to avoid are now becoming the look people want back.<\/p>\n<p>Maybe every medium eventually turns its failure modes into aesthetics..!<\/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\/@zaczuo\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@zaczuo<\/a>&nbsp;instant upvote! Will check it out later today. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I dig this.. Especially that last line about every medium turning its failure modes into aesthetics. That&#8217;s gonna stick with me. Happens in music too, tape hiss and distortion were problems people spent decades engineering out, now we pay for plugins to put them back. Funny world we live in. Cool project.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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>what a cool PH find for me. i love retro stuff. i remember cleaning VHS tapes for my grandparents. \ud83d\ude06<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>Modeling the actual signal path instead of slapping noise on top is exactly why tape-saturation plugins beat a &#8220;hiss&#8221; preset in music \u2014 the artifacts come from the chain, not a layer on top. Are they seedable so you can match the same look across shots?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>this is awesome! reflection about the name &#8211; I thought NTSC and PAL were equivalent in Europe\/US! Is there any actual difference of formats or is it just a nice name? :- D<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>It&#8217;s funny how entire generations of engineers worked to remove these artifacts, and now creators are trying to bring them back \ud83d\ude04 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>This is exactly the kind of \u201cVHS effect\u201d tool I\u2019d want to use.<\/p>\n<p>A lot of retro filters just throw noise, scanlines, and a color overlay on top, and it looks fake pretty quickly. ntsc-rs seems more interesting because it actually tries to model the signal and tape artifacts behind the look.<\/p>\n<p>The plugin support is also a big deal. If I can use it inside Premiere, After Effects, or Resolve instead of exporting through a separate toy app, it becomes part of a real editing 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<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I really like this idea. Dont know why maybe becouse I was back then a teenager I used to use VHS casettes to record tv programms and rent movies on that formats. your solution gives me back that nostalgia feeling that is pretty rewarding.  I added similar effect to my app, like monochromatic cinematoskope on which I watched VHS cassettes, So I pretty understand your concept. It is really really Great!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/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\/XFCSIE5NJAAMVU\" class=\"app-title\">Sigma File Manager<\/a><\/p>\n<div class=\"one-liner\">Free, open-source, cross-platform, modern file manager app<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">131<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Sigma File Manager\u662f\u4e00\u6b3e\u514d\u8d39\u5f00\u6e90\u3001\u8de8\u5e73\u53f0\u73b0\u4ee3\u5316\u6587\u4ef6\u7ba1\u7406\u5668\uff0c\u901a\u8fc7\u6781\u901f\u5168\u5c40\u641c\u7d22\u3001\u667a\u80fd\u5bfc\u822a\u548c\u6269\u5c55\u5e02\u573a\u7b49\u7279\u8272\u529f\u80fd\uff0c\u89e3\u51b3\u7528\u6237\u5728\u4f7f\u7528\u7cfb\u7edf\u9ed8\u8ba4\u6587\u4ef6\u7ba1\u7406\u5668\u65f6\u9047\u5230\u7684\u641c\u7d22\u6162\u3001\u64cd\u4f5c\u7e41\u7410\u3001\u6269\u5c55\u6027\u5dee\u7b49\u6548\u7387\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/d6af88d2-64b7-4472-9a88-9943163a3a18.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/94f5f9ec-e41f-483b-a8d5-a499dba927bd.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/9919d557-a12a-4dca-8fac-1859a7e376b2.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/1d10a07c-b5ce-4329-ae56-fc6d029102c7.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/001973a7-73b7-45fd-9ac5-cc8ae32e687b.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/019f39ad-2c80-4956-8f6c-73d3429c48db.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/1ebae3fc-3320-4284-b2a4-28c2090a5b11.webp?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/c9953656-825e-44da-a2d6-a2c296c8cb2c.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/2bb592cb-6c5f-476d-9cb5-84839a268579.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\">GitHub<\/span><br \/>\n            <span class=\"tag\">Tech<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u6587\u4ef6\u7ba1\u7406\u5668<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90<\/span><br \/>\n            <span class=\"tag\">\u8de8\u5e73\u53f0<\/span><br \/>\n            <span class=\"tag\">\u5168\u5c40\u641c\u7d22<\/span><br \/>\n            <span class=\"tag\">\u6269\u5c55\u5e02\u573a<\/span><br \/>\n            <span class=\"tag\">\u6807\u7b7e\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u5c40\u57df\u7f51\u5171\u4eab<\/span><br \/>\n            <span class=\"tag\">\u952e\u76d8\u5feb\u6377\u64cd\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u591a\u9762\u677f<\/span><br \/>\n            <span class=\"tag\">\u514d\u8d39<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u8d5e\u8d4f\u4ea7\u54c1\u529f\u80fd\u4e30\u5bcc\u548c\u5f00\u53d1\u8fdb\u5c55\uff0c\u5e0c\u671b\u589e\u52a0macOS\u5b98\u65b9\u6784\u5efa\u3001\u4f18\u5316\u5feb\u6377\u952e\u81ea\u5b9a\u4e49\u53ca\u6587\u4ef6\u5939\u5feb\u901f\u8df3\u8f6c\u7b49\u751f\u4ea7\u529b\u529f\u80fd\uff0c\u5e76\u5efa\u8bae\u4e30\u5bcc\u6269\u5c55\u5e02\u573a\u5185\u5bb9\u3002\u540c\u65f6\uff0c\u6709\u7528\u6237\u5173\u6ce8\u8de8\u5e73\u53f0\u66f4\u65b0\u540c\u6b65\u6027\u95ee\u9898\uff0c\u4ee5\u53ca\u76f8\u6bd4\u7cfb\u7edf\u9ed8\u8ba4\u7ba1\u7406\u5668\u662f\u5426\u6709\u72ec\u7279\u7684\u5de5\u4f5c\u6d41\u6539\u8fdb\uff08\u5982\u6279\u91cf\u91cd\u547d\u540d\u3001\u76ee\u5f55\u5bf9\u6bd4\u7b49\uff09\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Sigma File Manager\u5728\u5145\u6ee1\u201c\u610f\u4e49\u4e0d\u660e\u201d\u7684vibecoding\u9879\u76ee\u548c\u81c3\u80bf\u7684Electron\u5e94\u7528\u4e2d\uff0c\u7b97\u662f\u4e00\u80a1\u6e05\u6d41\u3002\u5b83\u5207\u5b9e\u51fb\u4e2d\u4e86\u5982\u4eca\u7cfb\u7edf\u9ed8\u8ba4\u6587\u4ef6\u7ba1\u7406\u5668\uff08Windows Explorer\u3001macOS Finder\uff09\u7684\u8f6f\u808b\uff1a\u641c\u7d22\u5982\u8717\u725b\u3001\u6807\u7b7e\/\u9762\u677f\u7ba1\u7406\u843d\u540e\u3001\u6269\u5c55\u6027\u8fd1\u4e4e\u4e3a\u96f6\u3002\u5176\u5ba3\u79f0\u7684\u201c1TB\u5168\u76d8\u641c\u7d222\u79d2\u5185\u5b8c\u6210\u201d\u548c\u81ea\u5e26\u7ea0\u9519\u7cfb\u7edf\uff0c\u5e76\u975e\u5671\u5934\u2014\u2014\u5e95\u5c42\u7d22\u5f15\u673a\u5236\u5982\u679c\u771f\u5982\u5176\u63cf\u8ff0\uff0c\u786e\u5b9e\u80fd\u91cd\u5851\u7528\u6237\u64cd\u4f5c\u4e60\u60ef\u3002\u7136\u800c\uff0c\u4ea7\u54c1\u5c1a\u5904\u4e8e\u65e9\u671f\u9636\u6bb5\uff0c\u6709\u4e24\u70b9\u503c\u5f97\u8b66\u60d5\uff1a\u7b2c\u4e00\uff0c\u6838\u5fc3\u5dee\u5f02\u5316\uff08\u5982\u5168\u5c40\u641c\u7d22\u3001\u6269\u5c55\u6027\uff09\u7684\u7a33\u5b9a\u6027\u4e0e\u517c\u5bb9\u6027\u5b58\u7591\uff0c\u5c24\u5176\u5bf9\u4e8e\u4e13\u4e1a\u7528\u6237\uff0c\u66ff\u6362\u9ed8\u8ba4\u6587\u4ef6\u7ba1\u7406\u5668\u4f34\u968f\u9ad8\u98ce\u9669\uff1b\u7b2c\u4e8c\uff0c\u8de8\u5e73\u53f0\u652f\u6301\u4e25\u91cd\u504f\u79d1\uff0cmacOS\u9700\u8981\u81ea\u884c\u7f16\u8bd1\uff0c\u4e14\u5f00\u53d1\u8005\u660e\u786e\u8868\u793a\u6682\u65e0Mac\u8bbe\u5907\uff0c\u8fd9\u610f\u5473\u7740OS X\u7528\u6237\u5c06\u957f\u671f\u88ab\u7f6e\u4e8e\u4e8c\u7b49\u5730\u4f4d\uff0c\u800c\u8fd9\u4e00\u7fa4\u4f53\u6070\u6070\u662f\u6587\u4ef6\u7ba1\u7406\u5de5\u5177\u7684\u4ed8\u8d39\u610f\u613f\u9ad8\u5730\u3002\u6b64\u5916\uff0c\u793e\u533a\u53cd\u9988\u4e2d\u5173\u4e8e\u6279\u91cf\u64cd\u4f5c\u3001\u5feb\u6377\u952e\u6df1\u5ea6\u5b9a\u5236\u7b49\u201c\u751f\u4ea7\u529b\u521a\u9700\u201d\u5c1a\u672a\u88ab\u5b98\u65b9\u91cd\u70b9\u63d0\u53ca\uff0c\u8fd9\u6216\u8bb8\u662f\u4e0b\u4e00\u9636\u6bb5\u7684\u5173\u952e\u7834\u5c40\u70b9\u3002\u603b\u7684\u6765\u8bf4\uff0c\u9879\u76ee\u65b9\u5411\u6b63\u786e\u4e14\u6267\u884c\u624e\u5b9e\uff0c\u4f46\u8ddd\u79bb\u201c\u66ff\u4ee3\u54c1\u201d\u751a\u81f3\u201c\u6700\u597d\u201d\u8fd8\u6709\u4e00\u6bb5\u786c\u5b9e\u529b\u7684\u8ddd\u79bb\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\">Sigma File Manager<\/span>\n                <\/div>\n<div class=\"comment-content\">&#8220;Sigma File Manager&#8221; is a free, open-source, quickly evolving, modern file manager (explorer \/ browser) app for Windows and Linux (Mac is supported but the build is not provided yet, can be built from source). &#8211; aleksey-hoffman\/sigma-file-manager<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey guys \ud83d\udc4b<\/p>\n<p>I&#8217;m building modern open-source file manager that aims to be the best at everything.<br \/>Created with real skills, before the vibecoding slop.<\/p>\n<p>Here&#8217;s some of its major features:<\/p>\n<p>&#8211; <strong>Smart global search<\/strong>: Finds files and folders in seconds (searches full `1TB` drive in under 2 seconds on average). Its typo correction system handles typos, wrong case, wrong word order, missing words, missing symbols, and missing file extension.<br \/>&#8211; <strong>Tabs<\/strong>: Keep multiple directories open and switch between them instantly.<br \/>&#8211; <strong>Split view<\/strong>: Any tab can be split into 2 panes which you can navigate independently and transfer files between them easily.<br \/>&#8211; <strong>Extensions and marketplace<\/strong>: Install extensions from the built-in marketplace or local folders. Extensions can add commands, pages, shortcuts, settings, and more.<br \/>&#8211; <strong>Default file manager<\/strong>: On Windows, Sigma can replace File Explorer for most everyday file actions.<br \/>&#8211; <strong>LAN file sharing<\/strong>: Share or stream files and folders over your local network, with browser access, QR codes, and FTP support.<br \/>&#8211; <strong>Network locations (Alpha stage)<\/strong>: Connect to remote locations such as SSHFS, NFS, SMB, and CIFS.<br \/>&#8211; <strong>Address bar<\/strong>: Navigate with the keyboard, autocomplete paths, and quickly jump to parent folders.<br \/>&#8211; <strong>Item filter<\/strong>: Narrow large folders with glob patterns and property filters for size, dates, MIME type, and more.<br \/>&#8211; <strong>Smart drag and drop<\/strong>: Move or copy local files more comfortably, and handle web drops more smoothly.<br \/>&#8211; <strong>Shortcuts and command palette<\/strong>: Most actions are keyboard-friendly, with global shortcuts and a fast command palette for app and extension commands.<br \/>&#8211; <strong>Home banner and visual effects<\/strong>: Personalize the UI with custom images, videos, built-in artwork, transparency, blend modes, and other style controls.<br \/>&#8211; <strong>Dashboard and quick access<\/strong>: Reach favorites, tagged files, most visited locations, and history data from one central area.<br \/>&#8211; <strong>Tags<\/strong>: Organize your files and folders with tags.<br \/>&#8211; <strong>Zip archives<\/strong>: Compress files into `.zip` archives and extract them without leaving the app.<br \/>&#8211; <strong>In-app updates<\/strong>: Download and install updates directly from update notifications.<br \/>&#8211; <strong>Quick view<\/strong>: Instantly preview images, videos, audio, PDFs, and text files with `Space`, then move through files without opening external apps.<br \/>&#8211; <strong>WSL drives<\/strong>: On Windows, browse detected WSL distributions directly in the navigator.<br \/>&#8211; <strong>Localization<\/strong>: The app has translations for all most used languages. <br \/>&#8211; And more. Extensions provide additional features like video downloading (1000+ sites supported, including YouTube, Twitch, etc.), media converter, image size optimizer, etc.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@aleksey_hoffman\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aleksey_hoffman<\/a>&nbsp;Great man!<\/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>Huge congratulations, Aleksey! I\u2019ve been following the development of your SFM pretty much from the start and I\u2019m thrilled to see how far you\u2019ve come! It\u2019s a pleasure to work with SFM and I hope you\u2019ll keep delighting us with updates for a long time to come! The Extensions Marketplace, in particular, could do with a few more ideas!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@martin_staiger\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@martin_staiger<\/a>&nbsp;thank you, brother \ud83d\ude00 it&#8217;s great to find someone who followed the project for a while, especially from the start. People like you motivated me to keep creating something, you know, just a comment on Reddit or some upvote, it means a lot<\/p>\n<p>The next update is coming soon<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>As someone who moved from Windows to macOS about 15 years ago, I still occasionally miss Total Commander \ud83d\ude04<\/p>\n<p>I\u2019ve never fully gotten used to Finder. For me, file management is one of those core workflows where small UX improvements save a surprising amount of time.<\/p>\n<p>A few features immediately caught my eye:<\/p>\n<ul>\n<li>\n<p>ZIP archives without leaving the app<\/p>\n<\/li>\n<li>\n<p>Split view<\/p>\n<\/li>\n<li>\n<p>Fast search<\/p>\n<\/li>\n<li>\n<p>Keyboard-first navigation<\/p>\n<\/li>\n<\/ul>\n<p>One question: how far have you gone with hotkeys and folder navigation?<\/p>\n<p>For example, can I assign shortcuts to jump directly to specific folders, favorites, projects, or frequently used locations? Fast navigation is probably one of the biggest productivity multipliers in a file manager.<\/p>\n<\/p>\n<p>Congrats on the launch and good luck today \ud83d\ude80<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ilya_makarov2\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ilya_makarov2<\/a>&nbsp;most actions in the app are already mapped to configurable hotkeys, including folder navigation, the plan is to map all actions<\/p>\n<p>Thanks for the kind words \ud83d\ude42<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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>Great idea, I hope there will be a macOS version as well. I know many users who have to work on at least two operating systems and then it would be nice to have the same UI no matter where you currently juggle your files.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@reneandritsch\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@reneandritsch<\/a>&nbsp;thanks mate! You can already build it from source for Mac. Unfortunately I don&#8217;t have a Mac myself currently, so I cannot build myself. I might get a Mac soon though<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Shame no macOS! Looks cool \ud83d\ude42<\/div>\n<div class=\"comment-actions\">\n<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\/@grey_seymour\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@grey_seymour<\/a>&nbsp;It does support MacOS \ud83d\ude42 and some people reported they managed to build it from source code and run it successfully. Unfortunately I don&#8217;t have a Mac currently, so I cannot build and test it myself yet <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>File managers are one of those categories where the defaults (Finder, Windows Explorer) are good enough that most people don&#8217;t switch unless something specific annoys them. Curious what the core workflow improvements are here, whether it&#8217;s around things like batch renaming, directory diffing, or something more opinionated about how tabs and panes work. Also wondering how the cross-platform support holds up in practice, specifically whether the Linux build gets the same attention as the Mac and Windows ones or tends to lag on fixes.<\/p>\n<\/p>\n<p>Congrats for 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\/@fberrez1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@fberrez1<\/a>&nbsp;thanks! The idea is to make it the best file manager in everything &#8211; design, features, UX, stability, performance, animations, everything. It already reached this status in some aspects and it already has some features that no other file manager has, for example: <\/p>\n<p>&#8211; Global search: one of the fastest and can find things that other apps cannot<br \/>&#8211; LAN file sharing and streaming<br \/>&#8211; Extensions<br \/>&#8211; Configurable local and global shortcuts for most actions the app<br \/>&#8211; Advanced address bar features<br \/>And many more<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#9<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/HDUUY4RDTVMFZ4\" class=\"app-title\">Claude Artifact Player<\/a><\/p>\n<div class=\"one-liner\">Run your Claude AI artifacts natively, No browser. No cloud.<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">71<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Claude Artifact Player\u662f\u4e00\u6b3eMac\u539f\u751f\u684c\u9762\u5de5\u5177\uff0c\u8ba9\u7528\u6237\u65e0\u9700\u6d4f\u89c8\u5668\u548c\u4e91\u7aef\u5373\u53ef\u79bb\u7ebf\u8fd0\u884cClaude AI\u751f\u6210\u7684HTML\u3001React JSX\u548cTypeScript TSX\u4ea4\u4e92\u5f0f\u6587\u4ef6\uff0c\u89e3\u51b3\u4e86AI\u5bf9\u8bdd\u4ea7\u7269\u96be\u4ee5\u672c\u5730\u4fdd\u5b58\u3001\u590d\u7528\u548c\u8fed\u4ee3\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\/e4129523-6fd4-4017-ba71-4d960759e742.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/4d64b2be-4654-4274-9217-eda826b8cee6.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/676d5d36-4d02-44a7-81bf-12a7f7e563fe.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/f43dbac1-6fcf-44cb-9bdf-9badecfd6fc9.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\">User Experience<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u672c\u5730\u79bb\u7ebf\u8fd0\u884c<\/span><br \/>\n            <span class=\"tag\">AI Artifact\u64ad\u653e\u5668<\/span><br \/>\n            <span class=\"tag\">React\/TSX\u89e3\u6790<\/span><br \/>\n            <span class=\"tag\">Mac\u539f\u751f\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u9690\u79c1\u5b89\u5168<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u6587\u4ef6\u76d1\u89c6\u81ea\u52a8\u5237\u65b0<\/span><br \/>\n            <span class=\"tag\">Node.js\u8fd0\u884c\u65f6<\/span><br \/>\n            <span class=\"tag\">\u65e0\u6d4f\u89c8\u5668\u4f9d\u8d56<\/span><br \/>\n            <span class=\"tag\">\u521b\u610f\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\u6838\u5fc3\u5173\u5207\u6709\u4e09\uff1a\u4e00\u662f\u590d\u6742React\/TSX\u5236\u54c1\u7684\u517c\u5bb9\u6027\uff08\u5b98\u65b9\u56de\u5e94\u4f9d\u8d56\u81ea\u52a8\u5b89\u88c5\uff09\uff1b\u4e8c\u662f\u4f9d\u8d56\u7ba1\u7406\u548c\u73af\u5883\u9694\u79bb\uff08\u8ba1\u5212V1\u7b80\u5355\u6a21\u5f0f+V2\u5bb9\u5668\u5316\u53cc\u8f68\uff09\uff1b\u4e09\u662fAPI\u8c03\u7528\u652f\u6301\uff08\u79bb\u7ebf\u4ecd\u53ef\u67e5\u770b\uff0c\u4f46API\u8c03\u7528\u4f1a\u5931\u8d25\uff09\u3002\u793e\u533a\u9ad8\u5ea6\u8ba4\u53ef\u672c\u5730\u5b9e\u65f6\u91cd\u8f7d\u3001\u6587\u4ef6\u5939\u76d1\u89c6\u548c\u9690\u79c1\u4fdd\u62a4\u8bbe\u8ba1\uff0c\u671f\u671b\u672a\u6765\u652f\u6301ESM\u5bfc\u5165\u548c\u7248\u672c\u7ba1\u7406\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Claude Artifact Player\u89e3\u51b3\u4e86\u4e00\u4e2a\u771f\u5b9e\u5374\u975e\u4e3b\u6d41\u7684\u75db\u70b9\u2014\u2014AI\u5bf9\u8bdd\u4ea7\u7269\u201c\u843d\u7eb8\u6210\u7070\u201d\u7684\u5c34\u5c2c\u3002\u5f53Claude Artifacts\u60ca\u8273\u5730\u751f\u6210UI\u539f\u578b\u3001\u53ef\u89c6\u5316\u4eea\u8868\u76d8\u6216\u6570\u636e\u5de5\u5177\u65f6\uff0c\u7528\u6237\u5e38\u5e38\u9677\u5165\u201c\u6d4f\u89c8\u5668\u91cc\u770b\u5b8c\uff0c\u7136\u540e\u5c31\u6ca1\u4e86\u201d\u7684\u56f0\u5c40\u3002\u8fd9\u6b3e\u4ea7\u54c1\u672c\u8d28\u4e0a\u662f\u4e00\u4e2a\u201cAI\u4ea7\u7269\u7684\u672c\u5730\u8fd0\u884c\u65f6\u6c99\u7bb1\u201d\uff0c\u7528\u6700\u5c0f\u7684\u6280\u672f\u6808\uff08Node.js + \u5185\u5d4cWebView\uff09\u5b8c\u6210\u4e86\u4e00\u6b21\u7cbe\u51c6\u7684\u6865\u63a5\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u6280\u672f\u5c42\u9762\u770b\uff0c\u5b83\u65e2\u806a\u660e\u53c8\u7c97\u7cd9\u3002\u806a\u660e\u4e4b\u5904\u5728\u4e8e\uff1a\u5c06React 18\u548cBabel\u76f4\u63a5\u6253\u5305\u8fdbapp\uff0c\u907f\u514d\u4e86\u7528\u6237\u5b89\u88c5\u590d\u6742\u73af\u5883\uff1b\u7528\u6587\u4ef6\u5939\u76d1\u89c6+\u2318R\u5b9e\u73b0\u70ed\u91cd\u8f7d\uff0c\u590d\u523b\u4e86\u4e3b\u6d41IDE\u7684\u5f00\u53d1\u4f53\u9a8c\uff1b\u5168\u79bb\u7ebf\u6267\u884c\u76f4\u63a5\u62d4\u9ad8\u4e86\u9690\u79c1\u5e95\u7ebf\u2014\u2014\u5bf9\u5904\u7406\u654f\u611f\u6570\u636e\u6216\u516c\u53f8\u5408\u89c4\u8981\u6c42\u7684\u7528\u6237\u662f\u81f4\u547d\u5438\u5f15\u529b\u3002\u7c97\u7cd9\u4e4b\u5904\u5728\u4e8e\uff1aV1\u4f9d\u8d56\u5bbf\u4e3b\u673a\u73af\u5883\u5b89\u88c5\u4f9d\u8d56\uff0c\u4e0d\u540cmacOS\u7248\u672c\u95f4\u7684Node\u6a21\u5757\u517c\u5bb9\u6027\u95ee\u9898\u6050\u96be\u907f\u514d\uff1b\u5bf9\u590d\u6742\u5236\u54c1\uff08\u8c03\u7528\u5916\u90e8API\u3001\u542bESM import\u3001\u4f9d\u8d56\u7279\u5b9aC++\u5e93\uff09\u7684\u652f\u6301\u660e\u663e\u8584\u5f31\u3002\u89c4\u5212\u4e2d\u7684\u5bb9\u5668\u5316\u53cc\u8f68\u6a21\u5f0f\u662f\u6b63\u786e\u65b9\u5411\uff0c\u4f46\u5b9e\u9645\u843d\u5730\u7684\u7a33\u5b9a\u6027\u6709\u5f85\u9a8c\u8bc1\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u771f\u6b63\u503c\u5f97\u8ba8\u8bba\u7684\u662f\u5b83\u7684\u4ea7\u54c1\u903b\u8f91\uff1a\u5b83\u4e0d\u505a\u201c\u66f4\u597d\u7684\u6d4f\u89c8\u5668\u201d\uff0c\u800c\u662f\u505a\u201cAI\u4ea7\u7269\u7684\u672c\u5730\u8d44\u4ea7\u5316\u5de5\u5177\u201d\u3002\u5f53\u7528\u6237\u5f00\u59cb\u628aartifact\u5f53\u4f5c\u53ef\u7ec4\u5408\u7684\u5de5\u7a0b\u6a21\u5757\u3001\u800c\u975e\u4e00\u6b21\u6027\u804a\u5929\u8bb0\u5f55\u65f6\uff0c\u4ea7\u54c1\u5c31\u5207\u5165\u4e86\u66f4\u6df1\u5c42\u7684\u9700\u6c42\u2014\u2014AI\u751f\u6210\u5185\u5bb9\u5982\u4f55\u8fdb\u5165\u5f00\u53d1\u8005\u7684\u65e5\u5e38\u5de5\u7a0b\u6d41\u7a0b\u3002\u8bc4\u8bba\u4e2d\u63d0\u5230\u201cartifact\u4f5c\u4e3a\u53ef\u590d\u7528\u6784\u5efa\u5757\u201d\u7684\u6d1e\u5bdf\u975e\u5e38\u5230\u4f4d\uff0c\u8fd9\u4e5f\u6697\u793a\u4e86\u540e\u7eed\u8fed\u4ee3\u7684\u53ef\u80fd\u6027\uff1a\u652f\u6301\u7248\u672c\u6807\u8bb0\u3001\u5236\u54c1\u95f4\u4f9d\u8d56\u94fe\u63a5\u3001\u5bfc\u51fa\u4e3a\u6807\u51c6\u9879\u76ee\u6a21\u677f\u7b49\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u653e\u773c\u7ade\u4e89\u683c\u5c40\uff0c\u76ee\u524d\u5c1a\u6ca1\u6709\u540c\u7b49\u5b9a\u4f4d\u7684\u4ea7\u54c1\uff0c\u4f46\u95e8\u69db\u5e76\u4e0d\u9ad8\u2014\u2014anywhere\u89e3\u91ca\u5668\u3001\u672c\u5730WebView\u65b9\u6848\u5e76\u975e\u72ec\u5bb6\u6280\u672f\u3002\u771f\u6b63\u7684\u62a4\u57ce\u6cb3\u5728\u4e8e\u5bf9AI artifact\u683c\u5f0f\u53d8\u5316\u7684\u524d\u77bb\u9002\u914d\u80fd\u529b\uff0c\u4ee5\u53ca\u56f4\u7ed5\u201c\u672c\u5730\u5316\u590d\u7528\u201d\u6784\u5efa\u7684\u5f00\u53d1\u8005\u4f53\u9a8c\u95ed\u73af\u3002\u5982\u679c\u56e2\u961f\u53ea\u662f\u505a\u597d\u4e00\u4e2a\u64ad\u653e\u5668\uff0c\u6700\u591a\u662f\u4e2a\u7cbe\u81f4\u7684\u5de5\u5177\uff1b\u5982\u679c\u80fd\u628a\u201c\u64ad\u653e\u201d\u5ef6\u4f38\u4e3a\u201c\u7f16\u8f91\u2192\u7248\u672c\u7ba1\u7406\u2192\u5de5\u7a0b\u96c6\u6210\u201d\u7684\u7ba1\u9053\uff0c\u624d\u53ef\u80fd\u4ece\u5de5\u5177\u8fdb\u5316\u4e3a\u5e73\u53f0\u3002\u76ee\u524d\u6765\u770b\uff0c\u5b83\u8fd8\u662f\u524d\u8005\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Claude Artifact Player<\/span>\n                <\/div>\n<div class=\"comment-content\">Run your Claude AI artifacts natively on your Mac, fully offline. No browser. No cloud. Instant playback. Claude Artifact Player lets you open and run the interactive files that Claude&#8217;s Artifacts feature generates \u2014 HTML pages, React JSX components, and TypeScript TSX files \u2014 directly on your Mac, without a browser and without uploading anything anywhere.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@alsarem\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"alsarem\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alsarem<\/a> I have a question that , how are you handling compatibility as Claude&#8217;s artifact formats evolve over time , especially for more complex React or TSX based artifacts ?<\/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\/@liam_bailey2\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@liam_bailey2<\/a>&nbsp;<br \/>Hi Liam, great question!<\/p>\n<p>Technically, our player runs a Node.js server that spins up a complete, isolated environment for each artifact \u2014 handling all the necessary setup and dependency installation automatically.<\/p>\n<p>So even as Claude continues to evolve and generate more complex artifacts, they ultimately compile down to Node.js applications, which means there are specific requirements that need to be installed fresh each time to ensure everything runs correctly.<\/p>\n<p>Hope that clears things up! Feel free to ask if you have any follow-up questions. \ud83d\ude0a<\/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>This fixes a very specific Claude workflow problem.<\/p>\n<p>Artifacts are great while they\u2019re inside the chat, but once I want to save one, tweak it, reopen it later, or show it like a normal little app, the flow gets awkward.<\/p>\n<p>The folder watching and local reload are the details I\u2019d probably use most. It turns artifacts from \u201ccool thing Claude made once\u201d into something I can keep editing on my Mac.<\/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\/@alicia_data\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alicia_data<\/a>&nbsp;Exactly<\/p>\n<p>The local editing will be a future feature in our app \ud83d\ude09 <\/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\/@alicia_data\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alicia_data<\/a>&nbsp;there&#8217;s a stack version of this too. the artifacts come out as  react jsx,  but the codebase i&#8217;m in all day is angular \u2014 so a react artifact is never something i can just open in the stack i&#8217;m already in, it&#8217;s always a context switch. a player that runs the jsx as-is means i&#8217;m not bouncing out of my own setup to look at 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><strong>Claude Artifact Player<\/strong> lets you open and run the interactive files that Claude&#8217;s Artifacts feature generates \u2014 HTML pages, React JSX components, and TypeScript TSX files \u2014 directly on your Mac, without a browser and without uploading anything anywhere.<\/p>\n<p><strong>WHAT IT DOES<\/strong><\/p>\n<p>Claude (Anthropic&#8217;s AI) can generate standalone interactive files: data visualisations, UI prototypes, dashboards, calculators, mini-apps, and more. Claude Artifact Player is the fastest way to run those files locally.<\/p>\n<p><strong>KEY FEATURES<\/strong><\/p>\n<p>\u2022 Open any .html, .jsx, or .tsx artifact file in one click<\/p>\n<p>\u2022 Watch a folder \u2014 the app auto-discovers artifacts as you add files and lists them in a sidebar<\/p>\n<p>\u2022 Persistent folder memory \u2014 your folder is remembered across relaunches<\/p>\n<p>\u2022 Fully offline \u2014 React 18 and Babel are bundled inside the app, no internet required for rendering<\/p>\n<p>\u2022 Reload with \u2318R while you edit files externally<\/p>\n<p>\u2022 Reveal any artifact in Finder with a right-click<\/p>\n<p><strong>PRIVACY FIRST<\/strong><\/p>\n<p>Claude Artifact Player never connects to the internet to render your artifacts. All JSX\/TSX transpilation happens inside a sandboxed WebView on your Mac. Your files never leave your machine.<\/p>\n<p><strong>WHO IT&#8217;S FOR<\/strong><\/p>\n<p>\u2022 Developers and designers exploring Claude-generated UI prototypes<\/p>\n<p>\u2022 Data analysts running Claude-built visualisations and dashboards<\/p>\n<p>\u2022 Prompt engineers iterating on artifact outputs without copy-pasting into a browser<\/p>\n<p>\u2022 Anyone who wants to keep a local library of AI-generated interactive tools<\/p>\n<p><strong>REQUIREMENTS<\/strong><\/p>\n<p>macOS 15 Sequoia or later.<\/p>\n<p>Developed by Creative AI Studio \u2014 your partner for Generative AI.<\/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\/@alsarem\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alsarem<\/a>&nbsp;Interesting product<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Running artifacts locally solves a reproducibility problem that browser-sandboxed execution doesn&#8217;t. We&#8217;ve built pipelines that generate Claude artifacts as outputs and realized testing them required the browser sandbox, adding friction. How do you handle artifact dependencies locally? Is there a containerized runtime, or does it rely on the host environment&#8217;s installed packages?<\/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\/@retain_dev\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@retain_dev<\/a>&nbsp;<br \/>That&#8217;s a good question.<\/p>\n<p>In future versions, we plan to automatically containerize artifacts to provide a more reproducible and isolated execution environment. However, for V1, we&#8217;re intentionally keeping the architecture as simple as possible, so artifacts are installed and executed directly on the local machine, with dependencies resolved through the host environment.<\/p>\n<p>We recognize that this approach does not guarantee full reproducibility across different systems, but it significantly lowers the setup complexity and makes the first version easier to adopt and maintain.<\/p>\n<p>Our current thinking is to offer two execution modes:<\/p>\n<ul>\n<li>\n<p><strong>Simple Mode<\/strong>: Runs artifacts directly on the host environment and targets users who want the quickest setup experience.<\/p>\n<\/li>\n<li>\n<p><strong>Advanced Mode<\/strong>: Uses Docker (or another containerized runtime) to provide stronger isolation, dependency management, and reproducibility guarantees.<\/p>\n<\/li>\n<\/ul>\n<p>The goal is to balance ease of use for most users with the reproducibility and environment consistency that more advanced workflows require.<\/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>Interesting use case. Does it handle artifacts that make API calls, or doesn&#8217;t offline mode allow that?<\/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\/@dhiraj_patel5\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dhiraj_patel5<\/a>&nbsp;If the Artifact make API calls, we don&#8217;t interfere with it, so normally it will works. You can see this app as a simple install + Run of NodeJs app.<br \/>If your are offline, you will still able to view the artifact but the API calls will failed.<\/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>One thing we&#8217;ve noticed with AI workflows is that artifacts often outlive the conversation that created them.<\/p>\n<p>Do users mostly revisit artifacts for reference, or are they becoming reusable building blocks that get incorporated into future workflows?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@zaid_mallik1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@zaid_mallik1<\/a>&nbsp;Both patterns exist, but we&#8217;re seeing the reusable building block behavior emerge more than expected. Users start by revisiting for reference, but once they have a local library of artifacts they can reload and tweak, the workflow shifts \u2014 they start treating artifacts as composable primitives rather than one-off outputs.<\/p>\n<p>The folder-watching feature was partly designed with this in mind: when your artifacts live in a persistent local directory alongside your other project files, they naturally get pulled into larger workflows rather than staying siloed in a chat history.<\/p>\n<p>The more interesting question for us is tooling around that second pattern \u2014 versioning, tagging, or linking related artifacts so the library stays navigable as it grows. That&#8217;s on our roadmap.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Bundling React 18 and Babel inside a sandboxed WebView to handle JSX\/TSX transpilation locally is a smart call. You skip shipping a separate runtime layer while keeping execution fully offline. I&#8217;ve run into the same tradeoff between isolation and dependency freshness. Do you plan to support ESM imports, or do all dependencies need to be bundled at the app level?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@anand_thakkar1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@anand_thakkar1<\/a>&nbsp;<br \/>ESM imports may come on later version, because supporting ESM properly offline would require either intercepting and caching those remote imports or pre-bundling a wider set of common libraries.<\/p>\n<p>So:<br \/>Loading first time must be online then viewing later offline will be possible.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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 folder-watch + \u2318R reload loop is the dream \u2014 I build little audio tool prototypes as Claude artifacts and the browser round-trip kills my flow. Does the offline player handle artifacts that use the Web Audio API \/ Tone.js for sound, or is it mostly visual right now?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Running interactive TSX\/JSX components completely offline is a massive win for privacy. Are these rendered inside an isolated local sandbox like an Electron instance, or how are you handling secure execution locally? Congrats on the launch!<\/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<\/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\/JNQC7JLKLXZB3X\" class=\"app-title\">Slashspace AI<\/a><\/p>\n<div class=\"one-liner\">Canvas first AI agent harness. MCP native. Local first.<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">65<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Slashspace AI \u662f\u4e00\u6b3e\u4ee5\u753b\u5e03\u4e3a\u6838\u5fc3\u3001\u672c\u5730\u4f18\u5148\u7684AI\u667a\u80fd\u4f53\u5de5\u4f5c\u53f0\uff0c\u89e3\u51b3\u4e86\u591a\u5e94\u7528\u95f4\u53cd\u590d\u590d\u5236\u7c98\u8d34\u63d0\u793a\u8bcd\u3001\u4e0a\u4e0b\u6587\u788e\u7247\u5316\u5bfc\u81f4\u590d\u6742\u5de5\u4f5c\u4e2d\u65ad\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\/77bec8c2-3703-4238-9638-603888e2af87.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/deb71486-0c9e-4167-9bff-07dc116477f0.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/66c73f59-b5f5-4ded-8a4e-ddfe0df87ec1.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/72e9798b-13e5-4aa1-8c8e-1a162e95d5c0.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/60a99792-4ebd-41b2-8e19-eb5f8c2390b1.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/918890b6-df53-40c1-b800-cbefe09db21b.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/0e3aa1bd-d1ab-4a5d-b163-c76bec0c2722.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/8757d982-1d65-44d1-8b87-7bbceee65568.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\/17af500f-4fed-48f7-8056-2f8ddf9c8833.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/w30t-E7Jiqc?si=MJ9AlTBSk12kpZiX\"><source src=\"https:\/\/youtu.be\/w30t-E7Jiqc?si=MJ9AlTBSk12kpZiX\" 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\">Development<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u753b\u5e03<\/span><br \/>\n            <span class=\"tag\">\u667a\u80fd\u4f53\u5de5\u4f5c\u53f0<\/span><br \/>\n            <span class=\"tag\">\u591aAgent\u534f\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u4f18\u5148<\/span><br \/>\n            <span class=\"tag\">MCP\u5de5\u5177\u96c6\u6210<\/span><br \/>\n            <span class=\"tag\">\u4e0a\u4e0b\u6587\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">AI\u539f\u751f\u5de5\u4f5c\u6d41<\/span><br \/>\n            <span class=\"tag\">\u684c\u9762\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u590d\u6742\u5de5\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u901a\u7528\u578b\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\u8d5e\u8d4f\u753b\u5e03\u4ea4\u4e92\u548c\u201c\u4e0a\u4e0b\u6587\u7a7a\u95f4\u201d\u6982\u5ff5\uff0c\u8ba4\u4e3a\u7b26\u5408\u590d\u6742\u601d\u8003\u4e60\u60ef\u3002\u6838\u5fc3\u7591\u95ee\u96c6\u4e2d\u5728\u753b\u5e03\u53d8\u5927\u65f6\u7684\u4e0a\u4e0b\u6587\u9009\u62e9\u673a\u5236\uff08\u81ea\u52a8\u8fd8\u662f\u624b\u52a8\uff09\uff0c\u4ee5\u53ca\u8f93\u51fa\u6eaf\u6e90\u80fd\u529b\uff08\u5982\u4f55\u8ffd\u8e2a\u7b14\u8bb0\u6216\u8282\u70b9\u5f71\u54cd\u4e86\u6700\u7ec8\u7ed3\u679c\uff09\u3002\u672c\u5730\u4f18\u5148\u5bf9\u9690\u79c1\u548c\u957f\u671f\u4e0a\u4e0b\u6587\u79ef\u7d2f\u7684\u4ef7\u503c\u88ab\u63d0\u53ca\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                Slashspace AI \u7684\u91ce\u5fc3\u5728\u4e8e\u91cd\u65b0\u5b9a\u4e49AI\u65f6\u4ee3\u7684\u201c\u5de5\u4f5c\u754c\u9762\u201d\u3002\u5b83\u654f\u9510\u5730\u6355\u6349\u5230\u5f53\u524dChatGPT\u7c7b\u201c\u804a\u5929\u6846\u201d\u8303\u5f0f\u7684\u6838\u5fc3\u7f3a\u9677\u2014\u2014\u4e0a\u4e0b\u6587\u5f52\u96f6\u4e0e\u7ebf\u6027\u4ea4\u4e92\u4e0d\u9002\u5408\u590d\u6742\u3001\u53d1\u6563\u7684\u7cfb\u7edf\u6027\u5de5\u4f5c\u3002\u753b\u5e03+\u591aAgent\u5e76\u884c+\u672c\u5730\u4f18\u5148\u7684\u4e09\u91cd\u8bbe\u8ba1\uff0c\u5728\u7406\u8bba\u4e0a\u76f4\u51fb\u75db\u70b9\uff1a\u753b\u5e03\u4f5c\u4e3a\u6301\u4e45\u4e14\u53ef\u89c6\u5316\u7684\u4e0a\u4e0b\u6587\u5bb9\u5668\uff0c\u5141\u8bb8\u7528\u6237\u540c\u65f6\u8c03\u5ea6\u591a\u4e2a\u6a21\u578b\u5e76\u89c2\u5bdf\u5176\u4e92\u52a8\uff0c\u8fd9\u6bd4\u5355\u7eaf\u7684\u201c\u5206\u7a97\u53e3\u201d\u66f4\u63a5\u8fd1\u4eba\u8111\u7684\u5e76\u884c\u4e0e\u8054\u60f3\u6a21\u5f0f\u3002\u5176\u4ef7\u503c\u4e0d\u5728\u4e8e\u63d0\u4f9b\u4e86\u4e00\u4e2a\u66f4\u5f3a\u7684AI\uff0c\u800c\u5728\u4e8e\u4e3a\u201c\u601d\u8003\u201d\u672c\u8eab\u642d\u5efa\u4e86\u4e00\u4e2a\u53ef\u7f16\u8f91\u3001\u53ef\u56de\u653e\u3001\u53ef\u534f\u4f5c\u7684\u201c\u7b2c\u4e8c\u5927\u8111\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u9510\u8bc4\u4e5f\u5fc5\u987b\u6307\u51fa\u5176\u98ce\u9669\u3002\u7b2c\u4e00\uff0c\u753b\u5e03\u6a21\u5f0f\u80fd\u5426\u5728\u771f\u6b63\u5e9e\u5927\u590d\u6742\u7684\u9879\u76ee\uff08\u6570\u767e\u4e2a\u8282\u70b9\uff09\u4e2d\u4fdd\u6301\u6d41\u7545\u548c\u6e05\u6670\u7684\u903b\u8f91\uff0c\u662f\u60ac\u800c\u672a\u51b3\u7684\u6311\u6218\uff0c\u8fc7\u5ea6\u4f9d\u8d56\u624b\u52a8\u201c\u7ec4\u5757\u5316\u201d\u53ef\u80fd\u6210\u4e3a\u65b0\u7684\u64cd\u4f5c\u8d1f\u62c5\u3002\u7b2c\u4e8c\uff0c\u201c\u591aAgent\u53ef\u89c1\u5168\u90e8\u4e0a\u4e0b\u6587\u201d\u542c\u8d77\u6765\u7f8e\u597d\uff0c\u4f46\u7f3a\u4e4f\u7cbe\u51c6\u7684\u4e0a\u4e0b\u6587\u8def\u7531\u53ef\u80fd\u5bfc\u81f4\u4fe1\u606f\u8fc7\u8f7d\u6216\u201c\u75c5\u6001\u534f\u4f5c\u201d\uff0c\u5373Agent\u95f4\u4e92\u76f8\u5e72\u6270\u6216\u9677\u5165\u6b7b\u5faa\u73af\uff0c\u800c\u975e\u9ad8\u6548\u5206\u5de5\u3002\u7b2c\u4e09\uff0c\u4f5c\u4e3a\u72ec\u7acb\u684c\u9762\u5e94\u7528\uff0c\u5176\u751f\u6001\u7684\u4e30\u5bcc\u6027\uff08MCP\u5de5\u5177\u63a5\u5165\u7684\u5e7f\u5ea6\uff09\u548c\u56e2\u961f\u534f\u4f5c\u80fd\u529b\u662f\u51b3\u5b9a\u5176\u80fd\u5426\u4ece\u5c0f\u4f17\u201c\u6781\u5ba2\u73a9\u5177\u201d\u8dc3\u5347\u4e3a\u56e2\u961f\u7ea7\u201c\u751f\u4ea7\u529b\u5e73\u53f0\u201d\u7684\u5173\u952e\u3002\u603b\u4f53\u800c\u8a00\uff0cSlashspace\u662f\u4e00\u4e2a\u7406\u5ff5\u9886\u5148\u3001\u8bbe\u8ba1\u7cbe\u826f\u7684\u5b9e\u9a8c\uff0c\u5b83\u8bd5\u56fe\u4e3aAI\u534f\u4f5c\u63d0\u4f9b\u4e00\u4e2a\u201c\u64cd\u4f5c\u7cfb\u7edf\u201d\u7ea7\u522b\u7684\u5e95\u7a3f\uff0c\u4f46\u80fd\u5426\u5728\u6613\u7528\u6027\u4e0e\u590d\u6742\u6027\u4e4b\u95f4\u627e\u5230\u5e73\u8861\uff0c\u8fd8\u9700\u65f6\u95f4\u68c0\u9a8c\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\">Slashspace AI<\/span>\n                <\/div>\n<div class=\"comment-content\">An AI native user today copy-pastes prompts across a dozen apps. It&#8217;s a broken experience for any kind of meaningful work. Every new chat box collapses context to zero. Slashspace solves that with an AI canvas where AI lives on the canvas, and you can run many chats as nodes. The canvas becomes the context space, and all the agents can see each other. Canvas is stored as files on your computer. Built with 1600 power users for over 1.5 years, we&#8217;re the most mature canvas AI on the market.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p><strong>Hello, Product Hunt! \ud83d\udc4b<\/strong><\/p>\n<p>After years of being a designer and developer, AI came into my life and changed everything. It gave me the confidence to go after my most ambitious products. But chat boxes and fragmented contexts across many apps aren&#8217;t built for complex work.<\/p>\n<p>As a founder, developer, and marketer, I&#8217;m a generalist. I work on many things that don&#8217;t fit into single sessions. I needed a new kind of interface that works along with my brain, not against it. <\/p>\n<p>Slashspace is a canvas-first interface for AI. It&#8217;s a desktop app that stores everything locally. For each complex problem, you create a new space. Add all your documents to this space, connect to all the MCP tools you want, and run many agents. <\/p>\n<p>All the agents see everything in the space. Run multiple agents in parallel, ask them to derive context from one another, and direct them to solve problems that you wouldn&#8217;t have been able to do in a linear app. <\/p>\n<p>Slashspace is the 10x generalist&#8217;s interface AI interface. It can write, delegate, plan, code, create, and do many things. If ChatGPT raised the floor on who can build things, Slashspace is meant to raise the ceiling on what&#8217;s possible for ambitious people and teams to build in the AI-era.<\/p>\n<blockquote>\n<p><em>Previously, we were known as RabbitHoles AI \u2013 a node-based chat workflow. Slashspace is a result of everything we&#8217;ve learnt over the last 1.5 years.<\/em><\/p>\n<\/blockquote>\n<p>Hope you all enjoy using the app, and share your feedback. <\/p>\n<p>Best<br \/><strong>Praneeth<\/strong><\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>13<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@praneethpike\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@praneethpike<\/a>&nbsp;I\u2019m curious how Slashspace handles context selection when the canvas gets large. If all agents can see the space, does the system automatically decide what context is relevant for each agent, or do users manually scope what each node\/agent should pay attention to?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\/@praneethpike\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@praneethpike<\/a>&nbsp;A canvas-first, multi-agent workspace that finally matches how complex thinkers actually operate, this is the interface upgrade ambitious builders have been waiting for. Great work on the launch!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Love the name and product, as a visual person this is my favorite way to use LLMs. The canvas approach just makes sense. 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<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The \u201ccontext space\u201d framing is strong. For founder\/marketer workflows, the hard part is usually not a single prompt \u2014 it\u2019s keeping positioning notes, audience assumptions, research snippets, and draft messaging in view without turning the whole thing into one giant undifferentiated chat history.<\/p>\n<\/p>\n<p>I\u2019m curious how you handle provenance inside the canvas: when one agent pulls from another node or attached document, can users trace which notes actually shaped the output? That feels especially important for marketing\/strategy work where a confident sentence can sound good but drift away from the evidence.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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>Such a nice design and product overall! Great job!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@eugzolotarenko\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@eugzolotarenko<\/a>&nbsp;Thanks, Eugene!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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 love how this is different, love the UX<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@thibaultll\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thibaultll<\/a>&nbsp;thank you, Tibo! means a lot that you are impressed!!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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 fam \ud83d\udc4b<\/p>\n<\/p>\n<p>If you\u2019re a power AI user, you already know the pain. You\u2019re copy-pasting between Claude, ChatGPT, Cursor, Notion, and five browser tabs, playing telephone with your own ideas. Every context switch costs you focus AND costs the AI the context it needs to actually help you. Your best thinking keeps getting lost in disconnected threads. Slashspace fixes this at the root.<\/p>\n<\/p>\n<p>Slashspace is a canvas-first desktop AI interface where everything lives in one space. Your PDFs, websites, Slack, email, spreadsheets, YouTube videos. Connect your MCP tools, run multiple AI models in parallel, and let every agent see the full picture. No copy-pasting. No context collapse. Just deep, sustained, complex work the way your brain actually operates.<\/p>\n<\/p>\n<p>My friend <a href=\"https:\/\/www.producthunt.com\/@praneethpike\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"praneethpike\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@praneethpike<\/a> and his team have been locked in on this problem for 2 years, first through RabbitHoles AI and now with Slashspace as the result of everything they\u2019ve learned. That kind of earned conviction shows in the product. They\u2019re all here today so drop your questions below \ud83d\udc47<\/p>\n<\/p>\n<p>Try it free for 3 days and see what becomes possible when your AI interface finally keeps up with you. \ud83d\ude80<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Local-first seems to solve more than just privacy.<\/p>\n<p>Have you found users mainly care about ownership of their environment, or about having a workspace that naturally accumulates context over long periods of time?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@zaid_mallik1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@zaid_mallik1<\/a>&nbsp;Yeah, accumulated context over time is a major reason. Also, a user generally has many context sources on the machine. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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 have been using the app, and Praneeth keeps improving it,<br \/> so I&#8217;m pleased to explore this new era of SlashSpace AI!<br \/>Congratas <a href=\"https:\/\/www.producthunt.com\/@praneethpike\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"praneethpike\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@praneethpike<\/a> <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@lfgellon\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@lfgellon<\/a>&nbsp;thank you, luis! I know you&#8217;ve been there since the beginning helping us with all the bugs and feedback. truly appreciate your support!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The agentic web might just need this workflow. I&#8217;m looking at it. \ud83d\udc4d\ud83d\ude80<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@lula_mwape\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@lula_mwape<\/a>&nbsp;thank you!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#11<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/2H5UVESU3L7M63\" class=\"app-title\">Olo<\/a><\/p>\n<div class=\"one-liner\">Style smarter with the world&#8217;s first AI companion for guys<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">53<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Olo\u662f\u5168\u7403\u9996\u4e2a\u7537\u6027AI\u9020\u578b\u52a9\u624b\uff0c\u901a\u8fc7\u5206\u6790\u7528\u6237\u4f53\u578b\u3001\u80a4\u8272\u3001\u573a\u5408\u53ca\u73b0\u6709\u8863\u6a71\uff0c\u63d0\u4f9b\u4e2a\u6027\u5316\u7a7f\u642d\u5efa\u8bae\uff0c\u89e3\u51b3\u7537\u6027\u201c\u4e0d\u77e5\u9053\u7a7f\u4ec0\u4e48\u201d\u7684\u65e5\u5e38\u56f0\u6270\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\/96f60df1-4a8f-4fe5-8a5b-c365280632aa.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\/b4bd8b10-1e67-4b9a-8627-f4cbf95a7892.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\/932a4471-a2ed-4bfe-b9f9-0a372e9b082b.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\">Fashion<\/span><br \/>\n            <span class=\"tag\">Dating<\/span><br \/>\n            <span class=\"tag\">Tech<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u7a7f\u642d\u52a9\u624b<\/span><br \/>\n            <span class=\"tag\">\u7537\u6027\u65f6\u5c1a<\/span><br \/>\n            <span class=\"tag\">\u4e2a\u6027\u5316\u63a8\u8350<\/span><br \/>\n            <span class=\"tag\">\u8863\u6a71\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u9020\u578b\u5efa\u8bae<\/span><br \/>\n            <span class=\"tag\">\u573a\u666f\u7a7f\u642d<\/span><br \/>\n            <span class=\"tag\">\u865a\u62df\u8bd5\u8863<\/span><br \/>\n            <span class=\"tag\">\u667a\u80fd\u5f62\u8c61\u987e\u95ee<\/span><br \/>\n            <span class=\"tag\">\u65e5\u5e38\u7a7f\u642d<\/span><br \/>\n            <span class=\"tag\">\u7537\u6027\u6d88\u8d39<\/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\u4e0d\u77e5\u9053\u7a7f\u4ec0\u4e48\u201d\u662f\u7537\u6027\u771f\u5b9e\u75db\u70b9\u3002\u6838\u5fc3\u7591\u95ee\u805a\u7126\u4e8e\u4e2a\u6027\u5316\u673a\u5236\uff1a\u662f\u5426\u652f\u6301\u4e0a\u4f20\u771f\u5b9e\u8863\u6a71\u3001\u5982\u4f55\u5b66\u4e60\u7528\u6237\u98ce\u683c\uff08\u51b7\u542f\u52a8\u95ee\u9898\uff09\u3001\u662f\u5426\u8003\u8651\u533a\u57df\u5929\u6c14\u4e0e\u65f6\u5c1a\u8d8b\u52bf\u3002\u90e8\u5206\u7528\u6237\u5efa\u8bae\u52a0\u5165\u201c\u98ce\u683c\u5076\u50cf\u201d\u6a21\u7248\u529f\u80fd\u3002\u521b\u59cb\u4eba\u56de\u5e94\u652f\u6301\u8863\u6a71\u7167\u7247\u4e0a\u4f20\u53ca\u6587\u672c\u63cf\u8ff0\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                Olo\u5207\u4e2d\u4e86\u4e00\u4e2a\u957f\u671f\u88ab\u5ffd\u89c6\u7684\u7ec6\u5206\u5e02\u573a\uff1a\u7537\u6027\u65e5\u5e38\u7a7f\u642d\u51b3\u7b56\u56f0\u96be\u3002\u4e0e\u9762\u5411\u5973\u6027\u6216\u6f6e\u4eba\u7684\u65f6\u5c1aApp\u4e0d\u540c\uff0c\u5b83\u4e0d\u5356\u5ba1\u7f8e\u6743\u5a01\uff0c\u4e0d\u63a8\u9ad8\u4ef7\u5355\u54c1\uff0c\u800c\u662f\u505a\u201c\u964d\u4f4e\u51b3\u7b56\u95e8\u69db\u201d\u7684\u5de5\u5177\u3002\u8fd9\u4e00\u5b9a\u4f4d\u806a\u660e\u4e14\u52a1\u5b9e\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u4ea7\u54c1\u903b\u8f91\u770b\uff0cOlo\u7684\u5dee\u5f02\u5316\u5728\u4e8e\u201c\u8863\u6a71\u4f18\u5148\u201d\u800c\u975e\u201c\u5546\u54c1\u63a8\u8350\u201d\u3002\u4e0a\u4f20\u5df2\u6709\u8863\u7269\u8fdb\u884c\u642d\u914d\uff0c\u907f\u514d\u7528\u6237\u9677\u5165\u201c\u4e70\u4e70\u4e70\u201d\u7684\u6d88\u8d39\u4e3b\u4e49\u9677\u9631\uff0c\u8fd9\u8d62\u5f97\u4e86\u8bc4\u8bba\u533a\u7684\u4fe1\u4efb\u3002\u4f46\u98ce\u9669\u5728\u4e8e\uff1a\u5176\u6838\u5fc3\u201c\u4e2a\u6027\u5316\u201d\u7684\u6df1\u5ea6\u4ecd\u6709\u7591\u95ee\u3002\u5f53\u524d\u4e3b\u8981\u901a\u8fc7\u4f53\u578b\u3001\u80a4\u8272\u3001\u573a\u5408\u7b49\u6709\u9650\u6807\u7b7e\u8fdb\u884c\u63a8\u8350\uff0c\u672c\u8d28\u4e0a\u4ecd\u662f\u201c\u89c4\u5219+\u6807\u7b7e\u201d\u7684\u521d\u7ea7AI\uff0c\u800c\u975e\u771f\u6b63\u7406\u89e3\u7528\u6237\u957f\u671f\u7a7f\u7740\u4e60\u60ef\u4e0e\u5ba1\u7f8e\u504f\u597d\u7684\u8fdb\u8350\u7cfb\u7edf\u3002\u7528\u6237\u95ee\u201c\u5982\u4f55\u5b66\u4e60\u6211\u7684\u98ce\u683c\u201d\uff0c\u521b\u59cb\u4eba\u7b54\u4e86\u6d41\u7a0b\u800c\u975e\u7b97\u6cd5\uff0c\u66b4\u9732\u4e86\u5929\u82b1\u677f\uff1a\u5982\u679c\u6ca1\u6709\u8db3\u591f\u7684\u5386\u53f2\u4ea4\u4e92\u6570\u636e\u6216\u89c6\u89c9\u8bc6\u522b\u6a21\u578b\uff0cOlo\u5f88\u53ef\u80fd\u53d8\u6210\u201c\u6362\u4e86\u76ae\u80a4\u7684\u53e3\u888b\u7a7f\u642d\u6e05\u5355\u201d\uff0c\u800c\u975e\u201c\u61c2\u4f60\u7684AI\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5546\u4e1a\u6a21\u5f0f\u4e0a\uff0c\u5982\u679c\u4f9d\u8d56\u5bfc\u8d2d\u4f63\u91d1\uff0c\u5219\u4f1a\u91cd\u8e48\u540c\u7c7b\u4ea7\u54c1\u8986\u8f99\uff08\u7528\u6237\u770b\u63a8\u8350\u540e\u79bb\u5f00\uff0c\u5e73\u53f0\u65e0\u6cd5\u53d8\u73b0\uff09\u3002\u66f4\u597d\u7684\u8def\u5f84\u662f\u8f6c\u5411\u8ba2\u9605\u5236\uff0c\u63d0\u4f9b\u201c\u8863\u6a71\u6570\u5b57\u5316\u7ba1\u7406+\u9020\u578b\u5e08\u8fdc\u7a0b\u670d\u52a1\u201d\u7684\u589e\u503c\u95ed\u73af\u3002\u6b64\u5916\uff0c\u521b\u59cb\u4eba\u201c\u4ece\u5bf9\u8bdd\u4e2d\u751f\u957f\u201d\u7684\u521d\u5fc3\u503c\u5f97\u80af\u5b9a\uff0c\u4f46\u8981\u628a\u201c\u966a\u804a\u5f0f\u53cd\u9988\u201d\u8f6c\u5316\u4e3a\u201c\u53ef\u91cf\u5316\u7684\u7a7f\u8863\u6548\u679c\u201d\uff0c\u6bd4\u5982\u5f15\u5165\u7528\u6237\u62cd\u7167\u53cd\u9988\u3001\u793e\u4ea4\u8bc4\u5206\u7b49\u5faa\u73af\u673a\u5236\uff0c\u624d\u80fd\u771f\u6b63\u5f62\u6210\u6570\u636e\u98de\u8f6e\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4e00\u53e5\u8bdd\uff1a\u65b9\u5411\u5bf9\uff0c\u4f46AI\u6df1\u5ea6\u5c1a\u6d45\uff0c\u522b\u8ba9\u201c\u966a\u4f34\u201d\u53d6\u4ee3\u4e86\u201c\u8fdb\u5316\u201d\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Olo<\/span>\n                <\/div>\n<div class=\"comment-content\">&#8220;What do I wear for a date?&#8221; is one of the most common questions guys ask themselves. Olo was built to solve exactly that. The world&#8217;s first AI style companion for guys, Olo provides personalised outfit recommendations, styling advice, wardrobe guidance, and instant feedback tailored to your preferences and occasion. From dates and work to weddings and everyday wear, Olo helps guys dress with confidence.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">The idea for Olo didn&#8217;t come from a fashion background, it came from conversations.<\/p>\n<p>When I started speaking to guys about style, one problem kept coming up over and over again: &#8220;I never know what to wear.&#8221; Whether it was for a date, work, a vacation, or even a casual outing, many guys wanted to dress better but didn&#8217;t know where to start.<\/p>\n<p>I realised that while there was plenty of fashion content online, finding advice that felt relevant and personalised often meant spending hours scrolling through blogs, videos, and social media and asking their own guy friends.<\/p>\n<p>That&#8217;s what inspired me to build Olo, the world&#8217;s first AI style companion for guys.<\/p>\n<p>As a solo founder, I approached the problem by focusing on simplicity: creating a companion that could provide personalized style guidance instantly. The product evolved through countless iterations, user conversations, feedback sessions, and late-night improvements. Every feature was shaped by real questions and real frustrations shared by guys.<\/p>\n<p>Olo is my attempt to make style advice more accessible, personalised, and confidence-building for men everywhere. <\/p>\n<p>Olo is a Finnish word that relates to one&#8217;s feeling, state, or sense of well-being. I love how it connected with the idea that the right outfit can change how you feel, carry yourself, and show up in the world and create your own &#8216;presence&#8217; wherever you go.<\/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\/@vb_30\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@vb_30<\/a>&nbsp;congrats on the launch Vaishnavi. Can one select a style icon and model the output after that? i.e new james bond.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>A lot of men want to dress better but don&#8217;t want to spend hours researching fashion advice. Making style guidance more personal and accessible is a great idea. 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>Hi<a href=\"https:\/\/www.producthunt.com\/@alina_tyslenok_\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alina_tyslenok_<\/a>&nbsp;, thank you so much for the appreciation, means a lot to me. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Does Olo work off photos of your actual wardrobe, or is it mostly recommendations from a generic catalog? <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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>Hi <a href=\"https:\/\/www.producthunt.com\/@thamibenjelloun\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thamibenjelloun<\/a>&nbsp;, you can upload a picture of your wardrobe and it will recommend you. <\/p>\n<p>Attaching a link below &#8211; <a href=\"https:\/\/www.youtube.com\/watch?v=UhUbbRcWCzg\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/www.youtube.com\/watch?v=UhUbbRcWCzg<\/a><\/p>\n<p>Do try it out and let me know your thoughts\/feedback \ud83d\ude00<\/p>\n<p>Thank you so much for your comment <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@thamibenjelloun\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thamibenjelloun<\/a>&nbsp;, also, thank you so much for the comment, it really means a lot <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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 \u201cwhat do I wear?\u201d problem is very real for a lot of guys. I like that Olo seems focused on practical confidence, not just fashion inspiration. The most useful part would be getting advice based on what someone already owns instead of only suggesting new things to buy.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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>Hi<a href=\"https:\/\/www.producthunt.com\/@farrukh_butt1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@farrukh_butt1<\/a>&nbsp;, thank you so much for the appreciation and your feedback. Olo, based on what you have in your wardrobe helps you pair up your outfits smarter. sharing a reference below &#8211;<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b865e6d1-80ae-4352-949f-54776ec22736.jpeg?auto=compress,format&amp;codec=mozjpeg&amp;cs=strip\" style=\"max-width: 100%\"><\/p>\n<p>sharing a demo for reference &#8211;<a href=\"https:\/\/youtu.be\/UhUbbRcWCzg\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/youtu.be\/UhUbbRcWCzg<\/a><\/p>\n<p>do try it out and share your feedback or thoughts on the same, I would love to hear<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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 info or trends does Olo look at when giving outfit suggestions for guys? <\/p>\n<p>It reminds me of when people were sharing videos using AI tools for outfit advice, and the results were often more funny than actually wearable\ud83d\ude02<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Hi <a href=\"https:\/\/www.producthunt.com\/@evakk\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@evakk<\/a>&nbsp;, hahahah I remember those times when the outfits seem to be way out of the &#8216;wearable league&#8217;, however on Olo, it recommends based on the guy&#8217;s body type, physique, complexion, type of occasion, what&#8217;s in his wardrobe, so yes the recommendation is completely wearable. <\/p>\n<p>sharing a demo for reference &#8211;<a href=\"https:\/\/youtu.be\/UhUbbRcWCzg\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/youtu.be\/UhUbbRcWCzg<\/a><\/p>\n<p>do ask your guy friends to try it out and share feedback or thoughts on the same, I would love to hear<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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 really interesting idea, and definitely a relatable problem.<\/p>\n<\/p>\n<p>One thing I\u2019m curious about: how does Olo actually learn my style?<\/p>\n<\/p>\n<p>From the screenshots, I don\u2019t see an onboarding step with photos, wardrobe uploads, or body type analysis. So how does it determine what suits me personally versus giving more generic recommendations?<\/p>\n<\/p>\n<p>Would love to understand how the personalization works under the hood. \ud83d\udc40<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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>Hi <a href=\"https:\/\/www.producthunt.com\/@ilya_makarov2\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ilya_makarov2<\/a>&nbsp;, thank you so much for the appreciation. Loved the questions<\/p>\n<p>regarding the onboarding steps &#8211; <\/p>\n<p>It asks you your body type, complexion, physique and accordingly gives you reccos, it also asks you the occasion that you are planning the outfit for &#8211; <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/14bbd212-6585-46eb-bda4-dd27dec36ec9.jpeg?auto=compress,format&amp;codec=mozjpeg&amp;cs=strip\" style=\"max-width: 100%\"><\/p>\n<p>sharing a demo for reference &#8211;<a href=\"https:\/\/youtu.be\/UhUbbRcWCzg\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/youtu.be\/UhUbbRcWCzg<\/a><\/p>\n<p>do try it out and share your feedback or thoughts on the same, I would love to hear<\/p>\n<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The origin story is the strongest part of this for me, the fact that it came from conversations rather than a fashion background. That&#8217;s usually the difference between a tool that solves a real frustration and one that solves an imagined one. &#8220;I never know what to wear&#8221; is a genuinely under-served pain for guys, most fashion advice assumes you already have taste and just need options.<\/p>\n<\/p>\n<p>The detail I like: letting someone upload what they already own and styling from that, instead of just pushing them to buy new things. That&#8217;s the trust-builder, it signals you&#8217;re optimizing for the user looking good, not for affiliate clicks. Curious how you&#8217;re handling the cold-start problem, when a new user hasn&#8217;t uploaded a wardrobe yet, does Olo lean on a few questions to bootstrap recommendations, or does it need the photos first to feel useful?<\/p>\n<\/p>\n<p>Also, Olo as a Finnish word for a sense of well-being, that&#8217;s a quietly perfect name for what you&#8217;re actually selling, which isn&#8217;t clothes, it&#8217;s presence. 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>Hi<a href=\"https:\/\/www.producthunt.com\/@emir_citak\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@emir_citak<\/a>&nbsp;, thank you so much for the appreciation, means a lot to me. <\/p>\n<p>Answering your question &#8211; &#8220;&#8230;when a user hasn&#8217;t uploaded a wardrobe yet&#8221; &#8211; Olo would ask some questions and ask the user to &#8211;<\/p>\n<ol>\n<li>\n<p>upload their wardrobe photo<\/p>\n<\/li>\n<li>\n<p>share through texts or use voice to text on what they have (eg., 1 blue polo tshirt, black trousers, 1 white basic tshirt, etc)<\/p>\n<\/li>\n<\/ol>\n<p>and based on this Olo gives your reccos<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/32a31c0e-5cde-4c2d-87bd-08fbcffae0da.jpeg?auto=compress,format&amp;codec=mozjpeg&amp;cs=strip\" style=\"max-width: 100%\"><\/p>\n<p>sharing a demo for reference &#8211;<a href=\"https:\/\/youtu.be\/UhUbbRcWCzg\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/youtu.be\/UhUbbRcWCzg<\/a><\/p>\n<p>do try it out and share your feedback or thoughts on the same, I would love to hear<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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>Interesting concept! Men&#8217;s style can vary wildly depending on regional trends\u2014does Olo take the user&#8217;s location into account for weather and local fashion vibes when recommending an outfit? Congrats on launching!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#12<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/EE5VAUH62FBSUJ\" class=\"app-title\">The Incident Challenge<\/a><\/p>\n<div class=\"one-liner\">The Engineering Challenge for the AI age<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">29<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>The Incident Challenge \u662f\u4e00\u4e2a\u9762\u5411AI\u65f6\u4ee3\u7684\u7ebf\u4e0a\u5b9e\u65f6\u8c03\u8bd5\u6311\u6218\u8d5b\uff0c\u901a\u8fc7\u6a21\u62df\u771f\u5b9e\u751f\u4ea7\u73af\u5883\u4e2d\u7684\u590d\u6742\u6545\u969c\uff08\u5982\u8de8\u533a\u57df\u5206\u5e03\u5f0f\u7cfb\u7edf\u7ade\u4e89\u6761\u4ef6\uff09\uff0c\u8ba9\u5de5\u7a0b\u5e08\u5728\u65e5\u5fd7\u3001\u4ee3\u7801\u3001\u8fd0\u884c\u65f6\u3001\u6587\u6863\u548c\u67b6\u6784\u4e2d\u6392\u67e5\u95ee\u9898\u5e76\u4fee\u590d\uff0c\u4ee5\u6392\u884c\u699c\u7ade\u6280\u5f62\u5f0f\u68c0\u9a8c\u5de5\u7a0b\u5b9e\u6218\u80fd\u529b\uff0c\u89e3\u51b3\u201cAI\u80fd\u5199\u4ee3\u7801\u4f46\u65e0\u6cd5\u5904\u7406\u7cfb\u7edf\u7ea7\u751f\u4ea7\u4e8b\u6545\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\/5030ce38-982c-482b-a9a0-ff3cde4987d4.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\/af563ddb-de35-4147-82ef-ccffa63ea68e.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\/ac91e6c3-4e9e-4c12-a056-4795bf616ffe.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\/04a9cffd-7d22-4612-9629-35a57c2c910b.jpeg?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/0452529d-d256-4d17-83bb-fd2dcffbe5c6.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/EjrAeY31nmw\"><source src=\"https:\/\/youtu.be\/EjrAeY31nmw\" 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\">Free Games<\/span><br \/>\n            <span class=\"tag\">Software Engineering<\/span><br \/>\n            <span class=\"tag\">Tech<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u751f\u4ea7\u6545\u969c\u6a21\u62df<\/span><br \/>\n            <span class=\"tag\">\u8c03\u8bd5\u6311\u6218\u8d5b<\/span><br \/>\n            <span class=\"tag\">AI\u65f6\u4ee3\u5de5\u7a0b\u6280\u80fd<\/span><br \/>\n            <span class=\"tag\">\u5206\u5e03\u5f0f\u7cfb\u7edf\u7ade\u6001\u6761\u4ef6<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u65f6\u7ade\u6280\u6392\u884c\u699c<\/span><br \/>\n            <span class=\"tag\">\u5de5\u7a0b\u5e08\u80fd\u529b\u8bc4\u4f30<\/span><br \/>\n            <span class=\"tag\">DevTools\u5728\u7ebf\u5b9e\u9a8c<\/span><br \/>\n            <span class=\"tag\">\u590d\u6742\u7cfb\u7edf\u6392\u67e5<\/span><br \/>\n            <span class=\"tag\">\u65e5\u5fd7\u5206\u6790\u8bad\u7ec3<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u79f0\u8d5e\u6311\u6218\u8d5b\u7684\u666e\u9002\u6027\uff08300+\u5f00\u53d1\u8005\u53c2\u4e0e\uff09\u548c\u96be\u5ea6\u8bbe\u8ba1\uff08\u524d\u4e24\u540d\u4ec5\u5dee13\u79d2\uff09\u3002\u53cd\u9988\u96c6\u4e2d\u4e8e\uff1a\u671f\u5f85\u9876\u5c16\u9009\u624b\u7684\u6392\u67e5\u6a21\u5f0f\u6d1e\u5bdf\uff08\u5982\u65e5\u5fd7\u5bfc\u822a\u901f\u5ea6\u3001\u5047\u8bbe\u7eaa\u5f8b\u3001\u4f55\u65f6\u4e0d\u4fe1\u4efbAgent\uff09\uff1b\u65b0\u7248\u672c\u201c\u6700\u7ec8Boss\u201d\u56e0\u5206\u5e03\u5f0f\u7ade\u4e89\u6761\u4ef6\u95ee\u9898\u5728\u771f\u5b9e\u8d1f\u8f7d\u4e0b\u590d\u73b0\u56f0\u96be\uff0c\u4e14\u9a8c\u8bc1\u5668\u53ea\u63d0\u793a\u9519\u8bef\u533a\u57df\u6570\u91cf\u4f46\u4e0d\u6307\u660e\u4f4d\u7f6e\uff0c\u9632\u6b62\u53d6\u5de7\u3002\u5efa\u8bae\u589e\u52a0\u533a\u57df\u8ba1\u6570\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                \u8fd9\u4e2a\u4ea7\u54c1\u5207\u4e2d\u4e86\u4e00\u4e2a\u6781\u5176\u7cbe\u51c6\u7684\u75db\u70b9\uff1aAI\u964d\u4f4e\u4e86\u7f16\u7801\u95e8\u69db\uff0c\u5374\u62ac\u9ad8\u4e86\u201c\u7cfb\u7edf\u7406\u89e3\u201d\u7684\u95e8\u69db\u3002\u5f53\u4eba\u4eba\u90fd\u80fd\u9760Copilot\u5199\u51faCURD\uff0c\u80fd\u5b9a\u4f4d\u201c\u751f\u4ea7\u73af\u5883\u62d2\u7edd\u6392\u540d\u7ed3\u679c\u201d\u7684\u5de5\u7a0b\u5e08\u624d\u7a00\u7f3a\u3002\u8fd9\u4e0d\u662f\u53c8\u4e00\u4e2aLeetCode\u9898\u5e93\u2014\u2014\u5b83\u7528\u201c\u7ade\u6280\u6e38\u620f\u201d\u5f62\u5f0f\uff0c\u628a\u5206\u5e03\u5f0f\u4e00\u81f4\u6027\u3001\u7ade\u6001\u6761\u4ef6\u3001\u65e5\u5fd7\u8bef\u5bfc\u7b49\u771f\u5b9e\u5de5\u7a0b\u6076\u75be\u5305\u88c5\u6210\u53ef\u91cd\u653e\u526f\u672c\uff0c\u5e76\u4e14\u901a\u8fc7\u201c\u9a8c\u8bc1\u5668\u53ea\u62a5\u9519\u6570\u91cf\u4e0d\u62a5\u4f4d\u7f6e\u201d\u7684\u8bbe\u8ba1\uff0c\u5f3a\u5236\u53c2\u4e0e\u8005\u653e\u5f03\u6a21\u7cca\u731c\u6d4b\u800c\u4e0d\u5f97\u4e0d\u642d\u5efa\u7cfb\u7edf\u6a21\u578b\u53bb\u63a8\u7406\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u8981\u6ce8\u610f\uff0c\u4ea7\u54c1\u76ee\u524d\u66f4\u50cf\u4e00\u573a\u201c\u70ab\u8000\u6027\u7edd\u6d3b\u79c0\u201d\u800c\u975e\u53ef\u6301\u7eed\u7684\u6559\u80b2\u5de5\u5177\u300224\u5c0f\u65f6\u9650\u65f6\u6311\u6218\u548c\u4e24\u5468\u4e00\u8f6e\u7684\u9891\u7387\uff0c\u7f3a\u4e4f\u5bf950%\u4ee5\u4e0a\u5931\u8d25\u6848\u4f8b\u7684\u56de\u653e\u5206\u6790\u6216\u89e3\u6cd5\u62c6\u89e3\uff0c\u53ef\u80fd\u4f1a\u53d8\u6210\u5c11\u6570Lambda\u9ad8\u624b\u7684\u6392\u884c\u699c\u800c\u529d\u9000\u4e2d\u7ea7\u5de5\u7a0b\u5e08\u3002\u5982\u679c\u53ea\u662f\u53cd\u590d\u7528\u201c\u6700\u7ec8Boss\u201d\u7684\u5206\u5e03\u5f0f\u62d0\u5f2f\u78e8\u635f\u7528\u6237\u7684\u8010\u5fc3\uff0c\u800c\u6ca1\u6709\u914d\u5957\u7684\u6559\u5b66\u8def\u5f84\u2014\u2014\u6bd4\u5982\u5728\u5931\u8d25\u540e\u7ed9\u51fa\u201c\u4e3a\u4ec0\u4e48\u5ef6\u8fdf\u65b9\u6848\u662f\u9677\u9631\u201d\u7684\u8bca\u65ad\u6a21\u677f\u2014\u2014\u90a3\u4e48\u7528\u6237\u7559\u5b58\u5c06\u4e25\u91cd\u4f9d\u8d56\u8bdd\u9898\u70ed\u5ea6\u800c\u975e\u80fd\u529b\u590d\u5229\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ef7\u503c\u5728\u4e8e\uff1a\u5b83\u6d4b\u8bd5\u7684\u662fAI\u65e0\u6cd5\u4ee3\u7406\u7684\u5de5\u7a0b\u6838\u5fc3\u2014\u2014\u67b6\u6784\u51b3\u7b56\u3001\u4e0d\u786e\u5b9a\u6027\u5bb9\u5fcd\u3001\u5047\u8bbe\u9a8c\u8bc1\u7eaa\u5f8b\u3002\u4f46\u5fc5\u987b\u8b66\u60d5\u8d70\u5411\u201c\u4e3a\u96be\u800c\u96be\u201d\u7684\u8def\u7ebf\uff0c\u8ba9\u89e3\u6cd5\u53d8\u6210\u53ea\u80fd\u9760\u6f2b\u65e0\u76ee\u7684\u91cd\u8bd5\u7684\u5237\u699c\u6e38\u620f\uff0c\u5931\u53bb\u5bf9\u771f\u5b9e\u5de5\u7a0b\u51b3\u7b56\u7684\u62bd\u7ec3\u3002\u5efa\u8bae\u589e\u52a0\u5931\u8d25\u590d\u76d8\u673a\u5236\uff0c\u5c06\u201c\u6700\u4f18\u89e3\u80cc\u540e\u79fb\u9664\u4e86\u54ea\u4e2a\u72b6\u6001\u5224\u65ad\u201d\u4f5c\u4e3a\u6c38\u4e45\u5b66\u4e60\u8d44\u4ea7\uff0c\u624d\u80fd\u771f\u6b63\u6210\u4e3aAI\u65f6\u4ee3\u7684\u5de5\u7a0b\u80fd\u529b\u8ba4\u8bc1\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\">The Incident Challenge<\/span>\n                <\/div>\n<div class=\"comment-content\">The Incident Challenge is a live debugging challenge for the AI age, where engineers investigate realistic failures across logs, code, runtime, docs, and architecture, then ship the fix and race the leaderboard. Bring your agent. Maybe it helps. Maybe it doesn\u2019t \ud83d\ude42 The challenge is live now for 24 hrs. New challenge every two weeks.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Thank you to the 300+ devs who played the last challenge.<\/p>\n<p>The results were insanely close. First and second place were only 13 seconds apart.<\/p>\n<p>Your feedback helped us improve, add features, and make the challenge better.<\/p>\n<p>What&#8217;s new:<\/p>\n<ul>\n<li>\n<p>Public leaderboard<\/p>\n<\/li>\n<li>\n<p>Enhanced challenge UI<\/p>\n<\/li>\n<li>\n<p>Added Terminal &amp; SQL shortcuts<\/p>\n<\/li>\n<li>\n<p>Private Challenge Circle (beta) &#8211; compete against friends!!<\/p>\n<\/li>\n<li>\n<p>A special challenge (live now for 24hrs &#8211; check out the vid): <strong>Final Boss<\/strong><\/p>\n<\/li>\n<\/ul>\n<p>Players defeat the boss.<br \/>K.O. plays.<br \/>Staging accepts the win.<br \/>Production rejects the ranked result under load.<\/p>\n<p>Beautiful bug. Terrible day in prod.<\/p>\n<p>Go play, test your engineering skills and compete globally!<\/p>\n<\/p>\n<p>The idea behind the challenge:<br \/>AI made writing code easier. But when production breaks, can it actually understand the system?<br \/>The Incident Challenge drops engineers into realistic production failures. You investigate logs, code, runtime, docs, and architecture, then ship the fix and race the leaderboard.<\/p>\n<p>Agents are allowed. Encouraged, actually.<\/p>\n<p>But the challenge is built around the messy parts of engineering that don\u2019t fit neatly into a prompt: dependencies, runtime behavior, race conditions, misleading logs, and staging behaving nothing like prod.<\/p>\n<p>Would love feedback from engineers, founders, devtools people, and anyone thinking about how engineering skills should be tested in the age of AI. <\/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\/@avi_ct\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@avi_ct<\/a>&nbsp;LETS GO<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@avi_ct\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@avi_ct<\/a>&nbsp;congrats on the launch Avi.I&#8217;d be interested to know what the patterns of the top performers are; faster log\/code navigation, better hypothesis discipline, knowing when not to trust the agent etc?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey hunters! \ud83d\udc4b Maker here.<\/p>\n<p>Just shipped our hardest incident yet!<\/p>\n<p>The setup: it&#8217;s a retro arcade ranked mode. Staging confirms the win. Production rejects it. Same fight, same replay &#8211; and it only breaks during leaderboard rushes.<\/p>\n<p>Here&#8217;s the twist that&#8217;s been wrecking playtesters: ranked combat got moved off a single synchronous path onto <strong>regional shards<\/strong>, each with its own worker pool. So now you get this:<\/p>\n<\/p>\n<p>A region that looks clean in one capture is <strong>not<\/strong> safe under load. The validator tells you <em>how many<\/em> regions are still wrong &#8211; never <em>which ones<\/em>. So you can&#8217;t whack-a-mole it.<\/p>\n<p>And the cheap fixes are all traps:<\/p>\n<ul>\n<li>\n<p>Trust the client? The UI is lying &#8211; it&#8217;s the whole point.<\/p>\n<\/li>\n<li>\n<p>Add a delay knob? Not a fix.<\/p>\n<\/li>\n<li>\n<p>Collapse back to synchronous? You just deleted the feature.<\/p>\n<\/li>\n<\/ul>\n<p>To win you have to make ranked finalization <strong>deterministic in every region under real concurrency<\/strong> &#8211; no stale canonical reads, no client authority, no synchronous cop-out. It&#8217;s a genuine distributed-systems race condition dressed up as a boss fight.<\/p>\n<p>Curious who can actually clear it without nuking the architecture. Post your region count when you&#8217;re stuck \ud83d\ude0f we&#8217;re reading every one.<\/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\/@shayliv\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@shayliv<\/a>&nbsp;the genius behind it all. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/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\/M6RZHATOYAXWFI\" class=\"app-title\">FixtureKit<\/a><\/p>\n<div class=\"one-liner\">Turn TypeScript interfaces into realistic mock data<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">23<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>FixtureKit\u662f\u4e00\u6b3e\u5b8c\u5168\u57fa\u4e8e\u6d4f\u89c8\u5668\u7684\u514d\u8d39\u5de5\u5177\uff0c\u901a\u8fc7\u8bed\u4e49\u63a8\u65ad\u5c06TypeScript\u63a5\u53e3\u6216Zod\u6a21\u5f0f\u76f4\u63a5\u8f6c\u5316\u4e3a\u903c\u771f\u7684\u6a21\u62df\u6570\u636e\uff0c\u5e2e\u52a9\u5f00\u53d1\u8005\u7701\u53bb\u624b\u52a8\u7f16\u5199\u548c\u66f4\u65b0mock\u5bf9\u8c61\u7684\u7e41\u7410\u5de5\u4f5c\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/23caa5cf-712a-4c55-a7e2-4dae6fde1ecd.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/0b5e7ede-740a-451e-97fa-0986ab9bde29.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/3ac039a1-de5c-4dde-aa8e-c19889a820d2.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/423e27c5-3294-4420-9d9a-a1122c0bd0a0.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Web App<\/span><br \/>\n            <span class=\"tag\">Software Engineering<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">GitHub<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">TypeScript<\/span><br \/>\n            <span class=\"tag\">mock\u6570\u636e\u751f\u6210<\/span><br \/>\n            <span class=\"tag\">\u6d4f\u89c8\u5668\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">Zod\u6a21\u5f0f<\/span><br \/>\n            <span class=\"tag\">\u8bed\u4e49\u63a8\u65ad<\/span><br \/>\n            <span class=\"tag\">\u6d4b\u8bd5\u6570\u636e<\/span><br \/>\n            <span class=\"tag\">MSW<\/span><br \/>\n            <span class=\"tag\">Playwright<\/span><br \/>\n            <span class=\"tag\">\u5bf9\u6297\u6a21\u5f0f<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u8ba4\u53ef\u5176\u63d0\u5347\u672c\u5730\u5f00\u53d1\u6548\u7387\uff0c\u8282\u7701\u624b\u52a8\u7f16\u5199mock\u65f6\u95f4\u3002\u4e3b\u8981\u7591\u95ee\u96c6\u4e2d\u5728Adversarial Mode\u5982\u4f55\u751f\u6210\u201c\u574f\u6570\u636e\u201d\u8fdb\u884c\u538b\u529b\u6d4b\u8bd5\uff0c\u4ee5\u53ca\u54ea\u4e9bschema\u6a21\u5f0f\u4f1a\u9020\u6210\u5de5\u5177\u89e3\u6790\u5931\u8d25\u3002\u5f00\u53d1\u8005\u6b63\u79ef\u6781\u6536\u96c6\u6b64\u7c7b\u8fb9\u754c\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                FixtureKit\u5207\u4e2d\u4e86\u4e00\u4e2a\u6781\u5176\u666e\u904d\u4f46\u672a\u88ab\u5b8c\u7f8e\u89e3\u51b3\u7684\u75db\u70b9\uff1aTypeScript\u5f00\u53d1\u4e2d\u7c7b\u578b\u7cfb\u7edf\u4e0e\u6d4b\u8bd5\/\u5f00\u53d1\u6570\u636e\u4e4b\u95f4\u7684\u5272\u88c2\u3002\u5b83\u7684\u6838\u5fc3\u4ef7\u503c\u4e0d\u5728\u4e8e\u201c\u751f\u6210\u6570\u636e\u201d\uff0c\u800c\u5728\u4e8e\u201c\u4ece\u5df2\u6709\u7c7b\u578b\u63a8\u65ad\u51fa\u6709\u610f\u4e49\u7684\u6570\u636e\u201d\uff0c\u8fd9\u7701\u53bb\u4e86\u5f00\u53d1\u8005\u624b\u52a8\u914d\u7f6eFaker\u89c4\u5219\u7684\u4e8c\u6b21\u52b3\u52a8\u3002\u6d4f\u89c8\u5668\u8fd0\u884c\u7684\u8bbe\u8ba1\u65e2\u662f\u4f18\u52bf\uff08\u96f6\u5b89\u88c5\u3001\u9690\u79c1\u5b89\u5168\uff09\u4e5f\u662f\u67b7\u9501\u2014\u2014\u590d\u6742\u7684\u4f01\u4e1a\u7ea7schema\uff08\u5982\u9012\u5f52\u3001\u6cdb\u578b\u3001\u590d\u6742\u8054\u5408\u7c7b\u578b\uff09\u7684\u5904\u7406\u80fd\u529b\u5b58\u7591\uff0c\u4e14\u65e0\u6cd5\u96c6\u6210\u5230CI\/CD\u6d41\u6c34\u7ebf\u3002\u5176\u5f15\u7528\u201c20\u5206\u949f\u201d\u7684\u6d6a\u8d39\u56fa\u7136\u771f\u5b9e\uff0c\u4f46\u5f00\u53d1\u8005\u771f\u6b63\u7684\u75db\u70b9\u5f80\u5f80\u85cf\u5728\u201c\u7ef4\u62a4200\u4e2a\u63a5\u53e3\u7684mock\u4e00\u81f4\u6027\u201d\u800c\u975e\u201c\u751f\u6210\u4e00\u4e2a\u5bf9\u8c61\u201d\u3002Adversarial Mode\u662f\u4eae\u70b9\uff0c\u80fd\u66b4\u9732UI\u5bf9\u5f02\u5e38\u8f93\u5165\u7684\u5bb9\u5fcd\u5ea6\uff0c\u4f46\u82e5\u80fd\u8fdb\u4e00\u6b65\u63d0\u4f9b\u53ef\u914d\u7f6e\u7684\u201c\u6545\u969c\u6ce8\u5165\u89c4\u5219\u201d\uff08\u5982\u7279\u5b9a\u5b57\u6bb5\u5f3a\u5236\u4e3a\u7a7a\u6216\u8d85\u957f\uff09\uff0c\u4f1a\u66f4\u8d34\u5408\u771f\u5b9e\u6d4b\u8bd5\u573a\u666f\u3002\u76ee\u524d23\u7968\u53cd\u6620\u5176\u4ecd\u5904\u4e8e\u65e9\u671f\u4f20\u64ad\u9636\u6bb5\uff0c\u6025\u9700\u89e3\u51b3\u590d\u6742schema\u7684\u517c\u5bb9\u6027\u548c\u94fe\u63a5\u5206\u4eab\u529f\u80fd\u7684\u534f\u4f5c\u5b9e\u7528\u5ea6\u3002\u603b\u4f53\u800c\u8a00\uff0c\u5b83\u662f\u4e2a\u806a\u660e\u7684\u201c\u8f7b\u91cf\u7ea7\u8865\u4e01\u201d\uff0c\u4f46\u79bb\u53d6\u4ee3Faker\u7b49\u6210\u719f\u5e93\u7684\u201c\u91cd\u6b66\u5668\u201d\u5730\u4f4d\u8fd8\u6709\u8ddd\u79bb\u2014\u2014\u9664\u975e\u5b83\u540e\u7eed\u80fd\u4e0e\u7f16\u8f91\u5668\u6df1\u5ea6\u7ed1\u5b9a\u6216\u652f\u6301\u5b9e\u65f6\u7c7b\u578b\u611f\u77e5\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\">FixtureKit<\/span>\n                <\/div>\n<div class=\"comment-content\">FixtureKit is a free, entirely browser-based tool that uses semantic inference to turn TypeScript interfaces or Zod schemas into realistic mock data. Copy as raw TS, JSON, MSW handlers, or Playwright route mocks. Features an Adversarial Mode to stress-test your UI.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This is super helpful actually, i&#8217;m a SWE and this tool helps me in local development, thanks.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@therayess\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@therayess<\/a>&nbsp;Thanks so much, Ammar! Really glad to hear it\u2019s useful for your local dev workflow. If you don&#8217;t mind me asking, are you mostly pasting in TypeScript interfaces or Zod schemas for your day-to-day work?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@therayess\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@therayess<\/a>&nbsp;Thanks! If you have a TypeScript schema that breaks FixtureKit, I&#8217;d love to see it.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Product Hunt! \ud83d\udc4b<\/p>\n<p>I built FixtureKit because I kept wasting the first 20 minutes of <\/p>\n<p>every project writing the same mock objects by hand. mockUser, <\/p>\n<p>mockProduct, mockOrder &#8212; all manually typed, all instantly outdated <\/p>\n<p>the moment I changed the interface.<\/p>\n<p>Every TypeScript dev knows this pain. Your types are perfect, but <\/p>\n<p>your test data is a mess of &#8220;string&#8221;, &#8220;string&#8221;, 123.<\/p>\n<p>The thing that bothered me most was that other tools either require <\/p>\n<p>installation, send your schema to a server, or just fill everything <\/p>\n<p>with meaningless placeholders. I wanted something that runs in the <\/p>\n<p>browser, understands what field names mean, and gives you something <\/p>\n<p>that actually looks real.<\/p>\n<p>So FixtureKit infers from the field name &#8212; email gets a real email, <\/p>\n<p>price gets a real number, createdAt gets an ISO date. It&#8217;s <\/p>\n<p>deterministic so the output is safe to commit. And it supports MSW <\/p>\n<p>and Playwright output so it plugs into the testing stack most <\/p>\n<p>TypeScript teams already use.<\/p>\n<p>Would love to hear what schema patterns break it &#8212; that&#8217;s the most <\/p>\n<p>useful feedback I can get 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><a href=\"https:\/\/www.producthunt.com\/@wasef_hussain\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@wasef_hussain<\/a>&nbsp;Congrats on launching! How does Adversarial Mode decide what kind of &#8216;bad&#8217; data to generate for the stress test?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Update: schemas are now shareable as links. <\/p>\n<p>Here&#8217;s an Order fixture you can open directly:<\/p>\n<p><a href=\"https:\/\/fixture-kit.vercel.app\/#JTdCJTIy\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/fixture-kit.vercel.app\/#JTdCJTIy<\/a>&#8230;<\/p>\n<p>Click &#8220;Copy link&#8221; on any fixture to share yours.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This solves one of those small dev chores that somehow eats half an afternoon.<\/p>\n<p>I like that it starts from the schema I already have, instead of making me set up Faker rules from scratch. The Playwright and MSW exports are probably where I\u2019d use it most, because mock data is much more useful when it can drop straight into tests or local dev.<\/p>\n<p>Adversarial Mode is a nice idea too. Tables, forms, and profile screens always look fine until one weird string, empty value, or unsafe input shows 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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@eliot_argy\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@eliot_argy<\/a>&nbsp;Thanks Eliot! You nailed it &#8212; setting up Faker rules from scratch for every single project was exactly the headache that pushed me to build this. I&#8217;m really glad the MSW\/Playwright exports resonate with you. And totally agreed on Adversarial Mode; it\u2019s amazing how quickly a &#8216;perfect&#8217; UI breaks when a user decides to input a 500-character string or a null value \ud83d\ude02 Let me know if you run into any edge-case schemas it struggles with!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@eliot_argy\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@eliot_argy<\/a>&nbsp;If you have a TypeScript schema that breaks FixtureKit, I&#8217;d love to see it.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#14<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/54YD2FC7UF6CXO\" class=\"app-title\">Trekme.pro<\/a><\/p>\n<div class=\"one-liner\">Turn real developer work into skill proof beyond AI resumes<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">21<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Trekme.pro \u901a\u8fc7\u672c\u5730\u5316\u8ffd\u8e2a\u5f00\u53d1\u8005\u6bcf\u5468\u7684\u4ee3\u7801\u5de5\u4f5c\u6570\u636e\uff0c\u81ea\u52a8\u751f\u6210\u52a8\u6001\u6280\u80fd\u65f6\u95f4\u7ebf\u62a5\u544a\uff0c\u66ff\u4ee3\u4f20\u7edf\u7b80\u5386\uff0c\u89e3\u51b3\u201c\u5de5\u4f5c\u7ecf\u9a8c\u65e0\u6cd5\u91cf\u5316\u9a8c\u8bc1\u201d\u7684\u62db\u8058\u4fe1\u4efb\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\/c40e7ae8-2ac3-4949-bc9b-3f2bc95334e4.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/727c0947-bbaf-4c1f-80eb-db42a03d65eb.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/bf4d9085-7c42-4e54-a36c-653b1a512811.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/8b660b33-6351-47ab-81fc-9d5d770a25d1.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\/8cd67348-b3a6-4fb2-bbce-794b3d15bcde.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/Kf5coBpcTrg\"><source src=\"https:\/\/youtu.be\/Kf5coBpcTrg\" 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\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">Career<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u6280\u80fd\u8bc1\u660e<\/span><br \/>\n            <span class=\"tag\">\u52a8\u6001\u7b80\u5386<\/span><br \/>\n            <span class=\"tag\">\u4ee3\u7801\u8ffd\u8e2a<\/span><br \/>\n            <span class=\"tag\">\u62db\u8058\u4fe1\u4efb<\/span><br \/>\n            <span class=\"tag\">\u6570\u636e\u9690\u79c1<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u5316\u5206\u6790<\/span><br \/>\n            <span class=\"tag\">\u804c\u4e1a\u4eea\u8868\u76d8<\/span><br \/>\n            <span class=\"tag\">\u6280\u672f\u6808\u9a8c\u8bc1<\/span><br \/>\n            <span class=\"tag\">\u81ea\u6211\u91cf\u5316<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u8ba4\u53ef\u201c\u65f6\u95f4\u7ebf\u6bd4\u7b80\u5386\u53ef\u4fe1\u201d\uff0c\u4f46\u5173\u6ce8\u9690\u79c1\u4e0e\u64cd\u4f5c\u4fbf\u6377\u6027\u3002\u4e3b\u8981\u95ee\u9898\uff1a\u5982\u4f55\u5728\u4e0d\u66b4\u9732\u4ee3\u7801\u5e93\u7684\u524d\u63d0\u4e0b\u5b89\u5168\u8ffd\u8e2a\uff1f\u662f\u5426\u5fc5\u987b\u624b\u52a8\u5f55\u5165\uff1f\uff08\u83b7\u56de\u5e16\u8bf4\u660e\uff1a\u672c\u5730LLM\u5206\u6790\uff0c\u4ec5\u4e0a\u4f20\u6280\u672f\u540d\u79f0\uff0c\u652f\u6301\u624b\u52a8\u8868\u5355\uff09\u3002\u4e5f\u6709\u7528\u6237\u5efa\u8bae\u589e\u52a0\u6e38\u620f\u5316\u6fc0\u52b1\uff0c\u4ee5\u4fdd\u6301\u6570\u636e\u5f55\u5165\u7684\u6301\u7eed\u6027\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Trekme.pro \u5207\u4e2d\u7684\u662f\u62db\u8058\u5e02\u573a\u4e2d\u4e00\u4e2a\u957f\u671f\u88ab\u5ffd\u89c6\u5374\u6781\u5176\u6839\u672c\u7684\u77db\u76fe\u2014\u2014\u7b80\u5386\u7684\u201c\u81ea\u6211\u9648\u8ff0\u201d\u6027\u8d28\u4e0e\u96c7\u4e3b\u5bf9\u201c\u5ba2\u89c2\u8bc1\u636e\u201d\u7684\u6e34\u671b\u3002\u5b83\u8bd5\u56fe\u5c06\u201c\u7ecf\u9a8c\u201d\u4ece\u4e00\u6bb5\u6587\u5b57\u53d8\u6210\u4e00\u7ec4\u53ef\u8ffd\u6eaf\u3001\u53ef\u9a8c\u8bc1\u7684\u65f6\u95f4\u5e8f\u5217\u6570\u636e\uff0c\u8fd9\u4e2a\u65b9\u5411\u672c\u8eab\u6709\u98a0\u8986\u6027\u3002\u4f46\u5b83\u7684\u6838\u5fc3\u74f6\u9888\u4e0d\u5728\u4ea7\u54c1\u903b\u8f91\uff0c\u800c\u5728\u7528\u6237\u52a8\u673a\uff1a\u5f00\u53d1\u8005\u51ed\u4ec0\u4e48\u6bcf\u5468\u6216\u6bcf\u5929\u4e3b\u52a8\u8bb0\u5f55\u5de5\u4f5c\u6280\u672f\u6808\uff1f\u5373\u4fbf\u5f15\u5165\u4e86\u672c\u5730\u5316\u548c\u4e00\u5b9a\u7a0b\u5ea6\u7684\u81ea\u52a8\u5316\uff0c\u4ecd\u9700\u7528\u6237\u5728\u5df2\u6709\u5de5\u4f5c\u6d41\u4e4b\u5916\u989d\u5916\u64cd\u4f5c\u4e00\u4e2a\u201c\u8bb0\u8d26\u201d\u52a8\u4f5c\u3002\u66f4\u4f55\u51b5\uff0c\u7edd\u5927\u591a\u6570\u5f00\u53d1\u8005\u5728\u6c42\u804c\u4e4b\u5916\uff0c\u5bf9\u201c\u91cf\u5316\u804c\u4e1a\u5c65\u5386\u201d\u8fd9\u4ef6\u4e8b\u5e76\u65e0\u5373\u65f6\u9a71\u52a8\u529b\u3002\u9664\u975eTrekme\u80fd\u5d4c\u5165\u66f4\u6df1\u7684\u5f00\u53d1\u73af\u5883\uff08\u5982IDE\u63d2\u4ef6\u81ea\u52a8\u8bc6\u522b\u6846\u67b6\u3001\u5e93\u7248\u672c\u53d8\u66f4\uff0c\u66f4\u63a5\u8fd1\u201c\u88ab\u52a8\u8bb0\u5f55\u201d\uff09\u5e76\u4e14\u4e0e\u4e3b\u6d41\u62db\u8058\u5e73\u53f0\u6216HR\u7cfb\u7edf\u6253\u901a\uff0c\u5426\u5219\u5b83\u66f4\u53ef\u80fd\u88ab\u5c11\u6570\u9ad8\u5ea6\u804c\u4e1a\u89c4\u5212\u7684\u201c\u81ea\u9a71\u52a8\u578b\u201d\u5f00\u53d1\u8005\u4f7f\u7528\uff0c\u96be\u4ee5\u6210\u4e3a\u4e3b\u6d41\u5de5\u5177\u3002\u53e6\u5916\uff0c\u9690\u79c1\u95ee\u9898\u867d\u5df2\u901a\u8fc7\u672c\u5730\u6a21\u578b\u89c4\u907f\uff0c\u4f46\u4e5f\u9650\u5236\u4e86\u5b83\u5728\u89c4\u6a21\u5316\u90e8\u7f72\u65f6\u7684\u6027\u80fd\u4e0e\u529f\u80fd\u6df1\u5ea6\u3002\u603b\u4f53\u800c\u8a00\uff0c\u5b83\u662f\u4e00\u4e2a\u7406\u5ff5\u51fa\u8272\u4f46\u4f9d\u8d56\u5f3a\u7528\u6237\u7eaa\u5f8b\u7684\u201c\u5c0f\u4f17\u5229\u5668\u201d\uff0c\u800c\u975e\u5927\u4f17\u6740\u624b\u7ea7\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\">Trekme.pro<\/span>\n                <\/div>\n<div class=\"comment-content\">Stop saying &#8220;I know Python.&#8221; Start showing it. Trekme turns your weekly developer work into dashboards and reports that act like an interactive resume and update themselves every week. Think New Relic or Datadog for your career: a living, portable record of what you built with, how deeply you used it, and how your skills evolve over time, giving you documented evidence beyond one-shot, AI-written resumes.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey Product Hunt, I\u2019m Andrzej, maker of Trekme.<\/p>\n<p>I built this because hiring still works backwards. A role opens, then the candidate rewrites a CV to fit the posting. On top of that, a resume has to compress years of work into a small space, so relevant but less obvious experience often gets dropped entirely.<\/p>\n<p>That makes it hard to answer simple questions with confidence: When did this person actually start using this technology? How consistently have they used it? Was it shallow exposure or real working depth?<\/p>\n<p>My goal with Trekme is to help developers build that record before they need it, not reconstruct it after the fact. So when a job asks for Python, Django, AWS, or anything else, you can show that you were already working with it before the posting even existed.<\/p>\n<p>I\u2019d love feedback from both job seekers and hiring managers: would a time-based record of real experience be more useful than a polished one-page CV? What would make you trust it?<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>5<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@andrzej_bistram\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@andrzej_bistram<\/a>&nbsp;Congrats on launching! How does the tool securely track and process a developer&#8217;s weekly work without exposing sensitive repository data or proprietary code<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Is this tracking gotten locally from my git history, or do I have to connect accounts and upload data?<\/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\/@thamibenjelloun\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thamibenjelloun<\/a>&nbsp;tracking is done locally (your own LLM is reviewing codebase changes ) and only technology names are uploaded via MCP, or if you like: by old-school web based form that you can update every week. so there is no way to leak the codebase <\/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>That&#8217;s a great idea, but my problem is keeping up with regular data entry. <\/p>\n<p>The <a href=\"https:\/\/Treckme.pro\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Treckme.pro<\/a> has reminders, but some extra motivation would be helpful (like in mobile games). Every time you enter data regularly, a plant grows, you level up a pet, or something like that. Gamification would definitely help motivate people to keep entering data.<\/p>\n<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@artur_ross\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@artur_ross<\/a>&nbsp;We have some basic gamification elements implemented, like: showing your current and potential streak in filled up consecutive weeks, and your place in global high-score table. each weekly reminder email also shows you insights from recent weeks&#8230; but i I wrote, those are rather basic as we focus on usability for our users first&#8230; currently we focus on making reports and dashboards better<\/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>I\u2019d trust a skill timeline more than a polished CV, but only if it stays close to real work.<\/p>\n<p>A resume line like \u201cexperienced with AWS\u201d is too easy to stretch. Showing when someone used it, how often, and in what kind of project gives a much better signal.<\/p>\n<p>The privacy controls would matter a lot though. Developers should be able to prove depth without exposing company details, private repos, or client work.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>better than recruitment tasks created by LLM and solved by another LLM, or questions prepared and answered the same way<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/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\/Q7SIH2MCCFRDO2\" class=\"app-title\">Vox <\/a><\/p>\n<div class=\"one-liner\">Superb free Voice-to-Text that never leaves your device<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">20<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Vox\u662f\u4e00\u6b3e\u5b8c\u5168\u79bb\u7ebf\u7684\u8bed\u97f3\u8f6c\u6587\u5b57\u5de5\u5177\uff0c\u901a\u8fc7\u672c\u5730AI\u6a21\u578b\u5b9e\u73b0\u65e0\u9700\u8054\u7f51\u3001\u65e0\u9700\u6ce8\u518c\u3001\u65e0\u8ffd\u8e2a\u7684\u9ad8\u8d28\u91cf\u542c\u5199\uff0c\u89e3\u51b3\u4e86\u7528\u6237\u5728\u6253\u5b57\u573a\u666f\u4e0b\u5bf9\u9690\u79c1\u3001\u8ba2\u9605\u548c\u7f51\u7edc\u4f9d\u8d56\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\/57fc7b48-c206-4fa8-a370-8ea96f4eb7b6.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/eda43be3-e738-4977-9f1e-7a86773ae6e8.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/23747ec8-a3dd-472b-8e8a-e93fea8316e3.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/a10ef619-795b-4cb4-b974-f363975daad0.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b0ff7518-b6a2-4a77-8729-3e66acea5a65.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/7bb5516f-ef32-4e83-ae02-100b52276982.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Mac<\/span><br \/>\n            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u8bed\u97f3\u8f6c\u6587\u5b57<\/span><br \/>\n            <span class=\"tag\">\u79bb\u7ebf\u8f6c\u5f55<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730AI<\/span><br \/>\n            <span class=\"tag\">\u9690\u79c1\u4fdd\u62a4<\/span><br \/>\n            <span class=\"tag\">\u542c\u5199\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u8de8\u5e73\u53f0<\/span><br \/>\n            <span class=\"tag\">Mac<\/span><br \/>\n            <span class=\"tag\">Windows<\/span><br \/>\n            <span class=\"tag\">Whisper<\/span><br \/>\n            <span class=\"tag\">Gemma 4<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u79f0\u8d5e\u5176\u9690\u79c1\u4fdd\u62a4\u548c\u65e0\u7f1d\u4f53\u9a8c\uff0c\u5c24\u5176\u8ba4\u53ef\u9488\u5bf9\u4e0d\u540c\u5e94\u7528\u7684\u8bed\u97f3\u6a21\u5f0f\u3002\u5f00\u53d1\u8005\u56de\u5e94\u4e86\u5173\u4e8e\u975e\u6807\u51c6\u8bed\u97f3\uff08\u5982\u8001\u5e74\u4eba\u8bed\u901f\u6162\u3001\u53e3\u9f7f\u4e0d\u6e05\uff09\u7684\u6d4b\u8bd5\uff0c\u5c55\u793a\u4e86\u672c\u5730\u6a21\u578b\u4e5f\u80fd\u6709\u6548\u5904\u7406\u3002\u4e3b\u8981\u5efa\u8bae\u662f\u589e\u5f3a\u81ea\u5b9a\u4e49\u6a21\u5f0f\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                Vox\u7684\u4eae\u70b9\u4e0d\u5728\u201c\u514d\u8d39\u201d\u6216\u201c\u79bb\u7ebf\u201d\uff0c\u800c\u5728\u4e8e\u5b83\u5c06\u8bed\u97f3\u8f6c\u6587\u5b57\u4ece\u201c\u4e91\u670d\u52a1\u201d\u903b\u8f91\u5f7b\u5e95\u62c9\u56de\u5230\u201c\u672c\u5730\u5de5\u5177\u201d\u7684\u8303\u5f0f\u3002\u5f53\u5927\u90e8\u5206\u7ade\u54c1\u8fd8\u5728\u7528\u8ba2\u9605\u5236\u548c\u6570\u636e\u6362\u4f53\u9a8c\u65f6\uff0cVox\u9009\u62e9\u8ba9\u4e00\u5207\u53d1\u751f\u5728\u8bbe\u5907\u4e0a\u2014\u2014\u8fd9\u4e0d\u4ec5\u662f\u9690\u79c1\u724c\uff0c\u4e5f\u610f\u5473\u7740\u7528\u6237\u771f\u6b63\u62e5\u6709\u4e86\u63a7\u5236\u6743\uff1a\u6ca1\u6709\u7f51\u7edc\u3001\u6ca1\u6709\u8d26\u53f7\uff0c\u751a\u81f3\u4e0d\u9700\u8981\u4fe1\u4efb\u670d\u52a1\u5668\u3002\u66f4\u6df1\u5c42\u770b\uff0c\u5176\u201c\u5e94\u7528\u611f\u77e5\u7684\u8bed\u97f3\u6a21\u5f0f\u201d\u624d\u662f\u5dee\u5f02\u5316\u6838\u5fc3\uff1a\u5b83\u610f\u8bc6\u5230\u7528\u6237\u5728\u4e0d\u540c\u573a\u666f\u4e0b\u5199\u51fa\u7684\u201c\u53e3\u6c14\u201d\u622a\u7136\u4e0d\u540c\uff0c\u800c\u4e0d\u662f\u7b80\u5355\u5730\u628a\u8bed\u97f3\u53d8\u6210\u6587\u672c\u3002\u8fd9\u8ba9Vox\u4ece\u901a\u7528\u8f6c\u5f55\u5de5\u5177\u8fdb\u5316\u6210\u8bed\u5883\u5316\u7684\u5199\u4f5c\u8f85\u52a9\u3002\u5f53\u7136\uff0c\u672c\u5730\u6a21\u578b\u7684\u7b97\u529b\u5929\u82b1\u677f\u4f9d\u7136\u5b58\u5728\uff1aWhisper\u5728\u5608\u6742\u73af\u5883\u6216\u975e\u6807\u51c6\u53e3\u97f3\u4e0b\u7684\u51c6\u786e\u5ea6\u4ecd\u4e0d\u5982\u4e91\u7aef\u65b9\u6848\uff0cGemma 4\u7684\u201c\u6da6\u8272\u201d\u867d\u806a\u660e\uff0c\u4f46\u4e5f\u53ef\u80fd\u8fc7\u5ea6\u6539\u5199\u539f\u610f\u3002\u800c\u5546\u4e1a\u6a21\u5f0f\u7684\u6a21\u7cca\u2014\u2014\u201c\u4e2a\u4eba\u514d\u8d39\uff0c\u4f01\u4e1a\u4ed8\u8d39\u201d\u2014\u2014\u80fd\u5426\u652f\u6491\u957f\u671f\u7ef4\u62a4\u548c\u6a21\u578b\u66f4\u65b0\uff0c\u662f\u4e2a\u73b0\u5b9e\u95ee\u9898\u3002\u603b\u4f53\u800c\u8a00\uff0cVox\u662f\u90a3\u4e9b\u5bf9\u9690\u79c1\u654f\u611f\u3001\u53cd\u611f\u8ba2\u9605\u5236\u3001\u5e76\u5e0c\u671b\u5728\u4e0d\u540c\u5e94\u7528\u95f4\u4fdd\u6301\u201c\u5199\u4f5c\u98ce\u683c\u4e00\u81f4\u6027\u201d\u7684\u7528\u6237\u7684\u6700\u4f73\u5019\u9009\uff0c\u4f46\u8ffd\u6c42\u6781\u9650\u8f6c\u5f55\u51c6\u786e\u7387\u6216\u5e0c\u671b\u6df1\u5ea6\u96c6\u6210\u4e91\u7aef\u80fd\u529b\u7684\u7528\u6237\uff0c\u4ecd\u4f1a\u611f\u5230\u5c40\u9650\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\">Vox <\/span>\n                <\/div>\n<div class=\"comment-content\">Vox is voice typing that runs entirely on your Mac or Windows machine. Hold a hotkey, speak normally. Cleaned-up text lands on your clipboard, ready to paste. Whisper \/ Parakeet handle transcription. Superb and fast local Gemma 4 model cleans it up. No audio ever leaves your device, no account to create, no tracking in the app, and it keeps working on a plane. Free for personal use.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Hunters \ud83d\udc4b<br \/>I built <a href=\"https:\/\/vox.rizenhq.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Vox<\/a> because I type a lot (AI prompts, emails, Slack, etc.) and every good dictation app I tried wanted me to send my voice to their servers, create yet another account, and pay for one more subscription. For something that hears everything I say all day, that felt backwards.<\/p>\n<p>So Vox does the opposite: everything runs on your own device. You hold a hotkey, talk normally (the &#8220;ums&#8221;, self-corrections, and lists are fine \u2013 it cleans them up), and the polished text lands on your clipboard ready to paste.<\/p>\n<p>Whisper or NVIDIA&#8217;s Parakeet do the transcription; <br \/>Superb local Gemma 4 model or Apple Intelligence do the cleanup.<\/p>\n<p>No audio, no transcripts, no telemetry ever leaves your machine \u2013 you can verify it yourself with Little Snitch or GlassWire. It even works on a plane.<\/p>\n<p>A few things that make it nice to actually live with:<br \/>1. No account. Download, hold the key, start dictating. Nothing to sign up for.<br \/>2. Voice modes. It picks a cleanup style based on the app you&#8217;re in (formal for email, terse for Slack, present-tense for code comments, etc.) or you can write your own.<br \/>3. Free for personal use. Your own writing, side projects, hobby work \u2013 free, forever. (If you want to roll it out to the multi-person company, there&#8217;s a commercial license.)<\/p>\n<p>It runs on Apple Silicon Macs (M1+, macOS 14+) and Windows 10\/11.<\/p>\n<p>What I&#8217;d love feedback on: the cleanup quality across different apps, and whether the voice modes match how you actually write. If there&#8217;s a mode you wish existed, tell me \u2013 custom modes are a core feature and I want to see what people build.<\/p>\n<p>You can see everything I&#8217;m planning to work on at <a href=\"https:\/\/rizenhq.com\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">rizenhq.com<\/a><br \/>Say hi on <a href=\"https:\/\/x.com\/Serhii_Klym\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">X<\/a>.<\/p>\n<p>Report issues in <a href=\"https:\/\/github.com\/KlymSerhii\/vox-releases\/issues\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Github<\/a>.<\/p>\n<p>Join the <a href=\"https:\/\/discord.gg\/M54rKAcEBt\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Discord<\/a> community.<\/p>\n<p>Thanks for taking a look \ud83d\ude4f<\/p>\n<p>P.S. macOS version is already live for almost a month, was used by 300+ people and polished according to the feedback.<br \/>Windows is more fresh. While it has all the features, some bugs may be present.<\/p>\n<p>\u2013 Serhii Klymenko<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This is an <strong>amazing<\/strong> product. I have always wanted a tool that allows me to use dictation everywhere, but the issue was that every single app has their own dictation capability and they all differed in quality. On top of that you almost always have to manually clean it up afterward. This meant that it always felt more cumbersome to dictate rather than to type. <\/p>\n<\/p>\n<p>Building Vox as a Mac app changes things completely and the AI layer on top of it makes it feel absolutely seamless. I still have to remind myself to stop typing and start dictating but I can see this app changing how I work completely. Well done. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@victorykung\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@victorykung<\/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>I\u2019ve been using Vox for a little over a week and am very impressed by it so far. 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>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\/@cronberry\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@cronberry<\/a>&nbsp;Thank you, I appreciate it a lot!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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 app-aware cleanup modes are the detail that stands out to me. Switching tone for email vs Slack vs code comments is exactly the context most dictation tools ignore. I build voice AI for older adults, where transcription has to survive slower speech, long pauses, and heavy disfluency, so I&#8217;m curious whether running Whisper\/Parakeet fully on-device forces a smaller model that trades off accuracy on non-standard speech, or whether the local Gemma cleanup pass recovers most of that. Privacy-first dictation is a real gap. Nice work.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@igorgurovich\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@igorgurovich<\/a>&nbsp;It&#8217;s a very good question!<\/p>\n<p>First, small honest point &#8211; I&#8217;ve never tested it imitating any medical speech limitations \/ issues. Saying that, sometimes I make stops to think about my next word (while app is running), often I&#8217;m speaking (um, uh, etc.), sometimes I change my mind in the middle. It handles all these cases perfectly.<\/p>\n<\/p>\n<p>It&#8217;s honestly a great question, and I&#8217;ll run an experiment right now:<\/p>\n<p>Here is the initial text I was speaking:<\/p>\n<pre><code>W-w-well, you see, back in m-my day... where was I? Oh yes, the, the thing\u2014the whatchamacallit, the box that shows pictures. Televisthion. We didn't have none of them fancy... I tell ya, my hip's been actin' up somethin' fierce. Now, what I wanted to thay was, the young folks today, they jutht don't unde'thtand. My late husband, God retht him, he alwayth thaid... hm. I forget. Where'd I put my glatheth? They're right on your head, dear. Oh! So they are. Anyhow, like I wath thaying, it'th not like it uthed to be, no thir.<\/code><\/pre>\n<\/p>\n<p>Here is the output:<\/p>\n<pre><code>Back in my day, we didn't have none of those fancy things. I tell ya, my hips have been acting up something fierce. What I wanted to say was, the young folks today, they just don't understand. My late husband, God rest him, always said, \"I forget where I put my glasses.\" They're right on your head, dear. So they are. Anyway, like I was. It's not like it used to be, no there.<\/code><\/pre>\n<p>Link to the video demo of this particular case &#8211; <a href=\"https:\/\/www.youtube.com\/watch?v=K8YsP0hnCDE\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/www.youtube.com\/watch?v=K8YsP0hnCDE<\/a><\/p>\n<\/p>\n<p>I used &#8216;General&#8217; mode for this polish. I&#8217;d say that for elderly people the output can be improved even more by making a custom mode for the with system prompt for Gemma 4 tailored for them.<\/p>\n<p>Also, users can make their custom modes by themselves.<\/p>\n<\/p>\n<p>In the future, I have an idea to create a marketplace of free custom modes created by other users, so you can find some mode that other user created and use it if you find it useful.<\/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<\/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\/V7M2HKKY6OWKRK\" class=\"app-title\">Stepmello<\/a><\/p>\n<div class=\"one-liner\">A quiet space to pause, reflect, and just be<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">17<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Stepmello \u662f\u4e00\u6b3e\u6781\u7b80\u7684\u201c\u6570\u5b57\u6682\u505c\u7a7a\u95f4\u201d\uff0c\u5e2e\u52a9\u7528\u6237\u5728\u601d\u7eea\u6742\u4e71\u65f6\uff0c\u65e0\u9700\u767b\u5f55\u3001\u65e0\u538b\u529b\u5730\u901a\u8fc7\u4e66\u5199\u3001\u62cd\u7167\u6216\u9759\u5750\u6765\u5feb\u901f\u91cd\u7f6e\u5fc3\u795e\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\/09cbe858-9dd6-4422-8044-fe57f2b3b2ef.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/7df6e76d-2c2f-4198-8827-0147603b7360.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\">Meditation<\/span><br \/>\n            <span class=\"tag\">Lifestyle<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u6b63\u5ff5<\/span><br \/>\n            <span class=\"tag\">\u6781\u7b80\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u6570\u5b57\u6392\u6bd2<\/span><br \/>\n            <span class=\"tag\">\u60c5\u7eea\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u65e5\u8bb0<\/span><br \/>\n            <span class=\"tag\">\u51a5\u60f3\u8f85\u52a9<\/span><br \/>\n            <span class=\"tag\">\u6ce8\u610f\u529b\u4f11\u606f<\/span><br \/>\n            <span class=\"tag\">\u65e0\u538b\u529b\u4f53\u9a8c<\/span><br \/>\n            <span class=\"tag\">\u53cd\u601d\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u751f\u6d3b\u5c0f\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>\u521b\u59cb\u4eba\u5f3a\u8c03\u201c\u505a\u51cf\u6cd5\u201d\u7684\u8bbe\u8ba1\u7406\u5ff5\u83b7\u597d\u8bc4\u3002\u7528\u6237\u5efa\u8bae\u589e\u52a0\u6d82\u9e26\u529f\u80fd\uff0c\u4f46\u521b\u59cb\u4eba\u8c28\u614e\u907f\u514d\u5f15\u5165\u5de5\u5177\u611f\u3002\u6709\u8bc4\u8bba\u6307\u51fa\u5176\u514b\u5236\u98ce\u683c\u672a\u5c06\u201c\u4f11\u606f\u201d\u53d8\u6210\u65b0\u4efb\u52a1\uff0c\u4ef7\u503c\u5728\u4e8e\u63d0\u4f9b\u7eaf\u7cb9\u65e0\u7ed3\u6784\u7684\u6682\u505c\u7a7a\u95f4\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                Stepmello \u7684\u806a\u660e\u4e4b\u5904\uff0c\u5728\u4e8e\u5b83\u7cbe\u51c6\u5207\u5165\u4e86\u4e00\u4e2a\u88ab\u5927\u591a\u6570\u201c\u6548\u7387\u201d\u4e0e\u201c\u5065\u5eb7\u201d\u5e94\u7528\u96c6\u4f53\u5ffd\u7565\u7684\u7f1d\u9699\uff1a\u73b0\u4ee3\u4eba\u9700\u8981\u7684\u4e0d\u662f\u53c8\u4e00\u4e2a\u5faa\u5faa\u5584\u8bf1\u7684\u6559\u7ec3\u6216\u7ed3\u6784\u5316\u7684\u6210\u957f\u8ba1\u5212\uff0c\u800c\u662f\u4e00\u4e2a\u201c\u53ef\u4ee5\u4ec0\u4e48\u4e8b\u90fd\u4e0d\u505a\u201d\u7684\u8bb8\u53ef\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u7522\u54c1\u8bbe\u8ba1\u770b\uff0cStepmello \u7684\u672c\u8d28\u662f\u4e00\u79cd\u201c\u53cd\u5e94\u7528\u7684\u5e94\u7528\u201d\u3002\u5b83\u62d2\u7edd\u4e86\u6240\u6709\u5e38\u89c4\u7684\u7c98\u6027\u624b\u6bb5\u2014\u2014\u65e0\u767b\u5f55\u3001\u65e0\u529f\u80fd\u5f15\u5bfc\u3001\u65e0\u6570\u636e\u770b\u677f\u3001\u65e0\u793e\u4ea4\u5206\u4eab\uff0c\u751a\u81f3\u5f31\u5316\u4e86\u201c\u5199\u65e5\u8bb0\u201d\u8fd9\u4e00\u6838\u5fc3\u52a8\u4f5c\u7684\u5b58\u5728\u611f\uff0c\u8ba9\u4e00\u5207\u6ca6\u4e3a\u53ef\u9009\u3002\u8fd9\u79cd\u6781\u7aef\u7684\u514b\u5236\uff0c\u53cd\u800c\u6210\u4e86\u5b83\u6700\u950b\u5229\u7684\u6b66\u5668\uff1a\u5b83\u5411\u7528\u6237\u627f\u8bfa\u4e86\u4e00\u4e2a\u201c\u96f6\u671f\u5f85\u201d\u7684\u5e87\u62a4\u6240\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c17 \u7968\u7684\u5fae\u5f31\u6570\u636e\u4e5f\u66b4\u9732\u51fa\u8fd9\u79cd\u8bbe\u8ba1\u7684\u5929\u7136\u6096\u8bba\uff1a\u6781\u81f4\u8f7b\u76c8\u610f\u5473\u7740\u6781\u4f4e\u7684\u7528\u6237\u7559\u5b58\u5f15\u529b\u3002\u7528\u6237\u53ea\u6709\u5728\u201c\u5927\u8111\u5feb\u8981\u6ea2\u51fa\u6765\u201d\u7684\u7279\u5b9a\u89e6\u53d1\u65f6\u523b\u624d\u4f1a\u6253\u5f00\u5b83\uff0c\u8fd9\u6837\u7684\u4f4e\u9891\u573a\u666f\u5f88\u96be\u652f\u6491\u8d77\u4e00\u4e2a\u4ea7\u54c1\u7684\u6301\u7eed\u8fd0\u8425\u548c\u8fed\u4ee3\u3002\u521b\u59cb\u4eba\u9762\u4e34\u7684\u6838\u5fc3\u6311\u6218\u4e0d\u662f\u52a0\u529f\u80fd\uff0c\u800c\u662f\u5982\u4f55\u5728\u4e0d\u7834\u574f\u201c\u7a7a\u201d\u7684\u524d\u63d0\u4e0b\uff0c\u8ba9\u8fd9\u4e2a\u7a7a\u95f4\u5728\u7528\u6237\u5fc3\u4e2d\u7559\u4e0b\u201c\u951a\u70b9\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5546\u4e1a\u6f5c\u529b\u540c\u6837\u5b58\u7591\u3002\u8ba2\u9605\u5236\u7684\u903b\u8f91\u5728\u8fd9\u91cc\u663e\u5f97\u7b28\u91cd\uff0c\u56e0\u4e3a\u5b83\u4e0e\u4ea7\u54c1\u201c\u65e0\u9700\u627f\u8bfa\u201d\u7684\u4f53\u9a8c\u76f8\u6096\u3002\u82e5\u4e0d\u80fd\u627e\u5230\u4e00\u4e2a\u65b0\u7684\u9760\u5185\u5bb9\u6216\u6350\u8d60\u53d8\u73b0\u7684\u8f7b\u6a21\u5f0f\uff0cStepmello \u5f88\u53ef\u80fd\u6c38\u8fdc\u505c\u7559\u5728\u5c0f\u4f17\u7231\u597d\u8005\u7684\u5b9d\u77f3\u5217\u8868\u91cc\u3002\u5b83\u5f88\u7f8e\uff0c\u4f46\u7f8e\u5f97\u6709\u4e9b\u8106\u5f31\u2014\u2014\u597d\u5728\uff0c\u6709\u65f6\u5019\u201c\u5b58\u5728\u201d\u672c\u8eab\uff0c\u5c31\u662f\u5b83\u5168\u90e8\u7684\u4ef7\u503c\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\">Stepmello<\/span>\n                <\/div>\n<div class=\"comment-content\">Most apps want your attention. Stepmello gives it back. Stepmello is a calm, minimal space to pause, reflect, and capture thoughts without pressure, streaks, or setup. Just enter the moment, breathe, and begin. No pressure. No expectations. No structure. Write if you want. Capture a photo. Or simply sit with your thoughts. Everything is optional nothing is forced. Built for those small moments in the day when your mind feels full and you just need a reset.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey PH \ud83d\udc4b Founder here<br \/>\nI built StepMello for a really simple reason.<br \/>\nSometimes my head just gets too full\u2026 and I just want somewhere to go for a minute. Not to fix anything or do anything. Just to pause.<br \/>\nSo that&#8217;s what StepMello is.<br \/>\nA quiet space you can open when things feel like a lot. You can breathe, write something down, slow down and notice or just sit there for a bit.<br \/>\nNo pressure. No structure. No expectations.<br \/>\nI kept removing things while building it until it felt light enough to just open anytime.<br \/>\nIf your head gets crowded sometimes, this was built for you. Give it a try and let me know what it feels like I&#8217;m actively shaping the experience and your feedback means everything right now \ud83d\ude4f<\/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\/@emeka_ugbanu\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@emeka_ugbanu<\/a>&nbsp;&#8211; &#8220;I kept removing things while building it until it felt light enough&#8221;: that&#8217;s the whole game isn&#8217;t it. The restraint required to ship something intentionally minimal is genuinely underrated.<\/p>\n<p>I&#8217;ve been building in the same space with Transcendence,  a meditation timer for iOS. The hardest conversations I have with myself are always about what not to add. Nice to see someone else arriving at the same place from a different direction.<\/p>\n<p>This looks lovely. Good luck with the launch \ud83d\ude4f<\/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\/@emeka_ugbanu\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@emeka_ugbanu<\/a>&nbsp;Hi Emeka, Congrats on the launch. Interesting tool, what do you see as the main usp&#8217;s for this?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This feels like a pocket journal for whatever is on your mind. One small idea: have you considered adding a draw or doodle option in the future app version?<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/f46e8fd4-476b-469e-87e9-d6d2089a82c2.png?auto=compress,format&amp;codec=mozjpeg&amp;cs=strip\" style=\"max-width: 100%\"><\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@evakk\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@evakk<\/a>&nbsp;Really appreciate that \u201cpocket journal\u201d is a nice way to put it.That\u2019s a good idea too. I\u2019ve thought about adding something like doodling, but trying to be careful not to add anything that turns it into a tool or adds friction. Definitely something I\u2019ll explore in a way that still keeps the experience simple and calm. 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>I like that StepMello does not try to turn rest into another task.<\/p>\n<p>A lot of \u201ccalm\u201d apps still end up asking you to build a habit, keep a streak, follow a structure, or measure your mood. Sometimes you just need somewhere to land for a minute, write one messy thought, breathe, and leave.<\/p>\n<p>The best thing about this is the restraint. I hope it stays light.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@alfian_nurhakimut\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alfian_nurhakimut<\/a>&nbsp;Really appreciate, this means a lot. That\u2019s exactly the direction I want to keep it in. 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<\/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\/SNFSI2EK4LSX2J\" class=\"app-title\">Pitch Planner App<\/a><\/p>\n<div class=\"one-liner\">Free playing-time tracking for youth soccer coaches. <\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">16<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Pitch Planner App \u662f\u4e00\u6b3e\u4e13\u4e3a\u9752\u5c11\u5e74\u8db3\u7403\u6559\u7ec3\u8bbe\u8ba1\u7684\u514d\u8d39\u4e0a\u573a\u65f6\u95f4\u8ffd\u8e2a\u5de5\u5177\uff0c\u5e2e\u52a9\u6559\u7ec3\u5728\u6bd4\u8d5b\u4e2d\u901a\u8fc7\u4e00\u90e8\u624b\u673a\u8f7b\u677e\u7ba1\u7406\u6362\u4eba\u3001\u8f6e\u6362\u3001\u9635\u5bb9\u548c\u7403\u5458\u51fa\u52e4\u8bb0\u5f55\uff0c\u786e\u4fdd\u6240\u6709\u7403\u5458\u83b7\u5f97\u516c\u5e73\u7684\u51fa\u573a\u673a\u4f1a\uff0c\u89e3\u51b3\u4eba\u5de5\u7edf\u8ba1\u6df7\u4e71\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 single-item\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/03436fbe-e65c-4653-8550-438e52419ea8.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\">Soccer<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u9752\u5c11\u5e74\u8db3\u7403<\/span><br \/>\n            <span class=\"tag\">\u4e0a\u573a\u65f6\u95f4\u8ffd\u8e2a<\/span><br \/>\n            <span class=\"tag\">\u6362\u4eba\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u6559\u7ec3\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u8fd0\u52a8\u79d1\u6280<\/span><br \/>\n            <span class=\"tag\">\u6bd4\u8d5b\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u9635\u5bb9\u8f6e\u6362<\/span><br \/>\n            <span class=\"tag\">\u514d\u8d39APP<\/span><br \/>\n            <span class=\"tag\">\u7403\u5458\u51fa\u52e4<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u5173\u6ce8\u5b9e\u9645\u6bd4\u8d5b\u4e2d\u7684\u4e34\u573a\u6df7\u4e71\u95ee\u9898\uff0c\u7279\u522b\u662f\u5f00\u8d5b\u524d\u6700\u540e\u4e00\u523b\u7684\u53d8\u52a8\u5982\u4f55\u5904\u7406\uff1b\u540c\u65f6\u6709\u7528\u6237\u8be2\u95ee\u662f\u5426\u652f\u6301\u5176\u4ed6\u8fd0\u52a8\uff0c\u5e76\u5bf9AI\u9a71\u52a8\u6559\u7ec3\u7cfb\u7edf\u7684\u6f5c\u529b\u8868\u793a\u671f\u5f85\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Pitch Planner App\u5207\u4e2d\u4e86\u4e00\u4e2a\u771f\u5b9e\u4e14\u4f4e\u9891\u4f46\u6781\u4e3a\u521a\u9700\u7684\u75db\u70b9\u2014\u2014\u9752\u5c11\u5e74\u8db3\u7403\u6559\u7ec3\u5bf9\u201c\u516c\u5e73\u4e0a\u573a\u65f6\u95f4\u201d\u7684\u624b\u5de5\u7ba1\u7406\u548c\u5bb6\u957f\u9884\u671f\u538b\u529b\u3002\u5176\u201c\u514d\u8d39\u201d\u7b56\u7565\u7cbe\u51c6\u9501\u5b9a\u4e86\u9884\u7b97\u6709\u9650\u7684\u4e1a\u4f59\u6559\u7ec3\u7fa4\u4f53\uff0c\u964d\u4f4e\u4e86\u5c1d\u8bd5\u95e8\u69db\uff0c\u529f\u80fd\u4e13\u7cbe\u4e8e\u6362\u4eba\u3001\u8f6e\u8f6c\u548c\u56de\u653e\uff0c\u907f\u514d\u4e86\u8fc7\u5ea6\u590d\u6742\u5316\u3002\u7136\u800c\uff0c16\u4e2a\u6295\u7968\u6570\u53cd\u6620\u51fa\u4ea7\u54c1\u5728\u4f20\u64ad\u6216\u5dee\u5f02\u5316\u4e0a\u5b58\u5728\u660e\u663e\u74f6\u9888\u3002\u4e00\u65b9\u9762\uff0c\u7528\u6237\u8bc4\u8bba\u4e2d\u201c\u6700\u540e\u4e00\u523b\u7684\u6df7\u4e71\u201d\u63ed\u793a\u4e86\u5de5\u5177\u5728\u9ad8\u9891\u7a81\u53d1\u4e8b\u4ef6\u4e0b\u7684\u7075\u6d3b\u6027\u4e0d\u8db3\uff0c\u8fd9\u53ef\u80fd\u662f\u4e0a\u624b\u540e\u7684\u6838\u5fc3\u4f53\u9a8c\u7f3a\u9677\uff1b\u53e6\u4e00\u65b9\u9762\uff0c\u201c\u4ec5\u652f\u6301\u8db3\u7403\u201d\u7684\u5b9a\u4f4d\u867d\u805a\u7126\uff0c\u5374\u9650\u5236\u4e86\u7528\u6237\u57fa\u6570\uff0c\u5c24\u5176\u5bf9\u6bd4\u8bb8\u591a\u7efc\u5408\u6027\u4f53\u80b2\u7ba1\u7406\u5e73\u53f0\uff0c\u5176\u6210\u957f\u5929\u82b1\u677f\u8f83\u4f4e\u3002\u771f\u6b63\u7684\u4ef7\u503c\u5728\u4e8e\uff1a\u5b83\u7528\u6781\u4f4e\u6210\u672c\u9a8c\u8bc1\u4e86\u201c\u516c\u5e73\u7ba1\u7406\u201d\u8fd9\u4e00\u60c5\u611f\u9700\u6c42\u5728\u9752\u5c11\u5e74\u4f53\u80b2\u4e2d\u7684\u4ed8\u8d39\u53ef\u80fd\u6027\u3002\u4f46\u82e5\u60f3\u7a81\u7834\uff0c\u9700\u5feb\u901f\u8fed\u4ee3\u4e34\u573a\u52a8\u6001\u8c03\u6574\u7684\u4ea4\u4e92\u903b\u8f91\uff0c\u6216\u8003\u8651\u5ac1\u63a5AI\u8f85\u52a9\u751f\u6210\u6700\u4f73\u8f6e\u6362\u65b9\u6848\uff0c\u4ece\u201c\u8bb0\u5f55\u5de5\u5177\u201d\u8fdb\u5316\u6210\u201c\u51b3\u7b56\u8f85\u52a9\u201d\u3002\u5426\u5219\uff0c\u5b83\u5f88\u53ef\u80fd\u6ca6\u4e3a\u6559\u7ec3\u624b\u673a\u91cc\u4e00\u4e2a\u7528\u5b8c\u5373\u5f03\u7684\u201c\u6bd4\u8d5b\u65e5\u8ba1\u7b97\u5668\u201d\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Pitch Planner App<\/span>\n                <\/div>\n<div class=\"comment-content\">Free youth soccer substitution tracker for lineups, rotations, equal playing time, player minutes, rosters, and match-day recaps from one phone.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on the launch Emily. How do you deal with the last minute chaos that turns up minutes before a match?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This solves a very practical match-day problem. Equal playing time sounds simple until you\u2019re managing substitutions, rotations, and parent expectations from the sideline on one phone.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Any plans to support other sports too, or are you staying focused on soccer rotations?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I want to work on something that&#8217;s a full coaching system reliant on AI. Something that would only require professional clubs to hire player managers. Seeing your product gave me so much hope.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\">#18<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/WKF3Q2MC4GVKEF\" class=\"app-title\">Kyro<\/a><\/p>\n<div class=\"one-liner\">An AI security bugs hunter for your web app<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">16<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Kyro\u662f\u4e00\u6b3eAI\u9a71\u52a8\u7684Web\u5e94\u7528\u5b89\u5168\u6f0f\u6d1e\u730e\u4eba\uff0c\u53ea\u9700\u8f93\u5165URL\u5373\u53ef\u81ea\u52a8\u626b\u63cf\u3001\u590d\u73b0\u5e76\u8f93\u51fa\u5df2\u786e\u8ba4\u53ef\u5229\u7528\u7684\u5b89\u5168\u6f0f\u6d1e\u53ca\u590d\u73b0\u6b65\u9aa4\uff0c\u89e3\u51b3\u5c0f\u56e2\u961f\u65e0\u529b\u8d1f\u62c5\u4e13\u4e1a\u6e17\u900f\u6d4b\u8bd5\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\/763de8f1-581f-49df-89b0-ddd64ce871fb.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/87b9e18c-1a43-46b3-8d43-33c018b6171b.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/bd88c12e-bb58-4430-8ae6-fb12fc0a0e7a.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/117972a8-16d1-48fb-9812-f33756543272.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/f5b70bff-bdac-4d2d-a0b8-974e12338996.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\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">Security<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u5b89\u5168\u6d4b\u8bd5<\/span><br \/>\n            <span class=\"tag\">Web\u6f0f\u6d1e\u626b\u63cf<\/span><br \/>\n            <span class=\"tag\">\u81ea\u52a8\u5316\u6e17\u900f\u6d4b\u8bd5<\/span><br \/>\n            <span class=\"tag\">\u6f0f\u6d1e\u590d\u73b0<\/span><br \/>\n            <span class=\"tag\">\u6301\u7eed\u5b89\u5168\u76d1\u63a7<\/span><br \/>\n            <span class=\"tag\">\u4e2d\u5c0f\u578b\u4f01\u4e1a<\/span><br \/>\n            <span class=\"tag\">Bug Bounty<\/span><br \/>\n            <span class=\"tag\">\u5b89\u5168\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u653b\u51fb\u94fe\u6a21\u62df<\/span><br \/>\n            <span class=\"tag\">\u6f0f\u6d1e\u62a5\u544a<\/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\u4ece\u771f\u5b9e\u75db\u70b9\u51fa\u53d1\u7684\u8d77\u6e90\u6545\u4e8b\uff0c\u5c24\u5176\u8ba4\u53ef\u201c\u590d\u73b0\u9a8c\u8bc1\u201d\u529f\u80fd\u6bd4\u666e\u901a\u626b\u63cf\u5668\u7684\u201c\u6f5c\u5728\u95ee\u9898\u201d\u66f4\u5b9e\u7528\u3002\u540c\u65f6\u5173\u6ce8\u6301\u7eed\u6d4b\u8bd5\u7684\u80fd\u529b\uff0c\u5e76\u63d0\u95ee\u5982\u4f55\u89c4\u6a21\u5316\u5904\u7406\u8bef\u62a5\uff08\u5bf9\u65e0\u5b89\u5168\u4eba\u5458\u7684\u5c0f\u56e2\u961f\u81f3\u5173\u91cd\u8981\uff09\uff0c\u4ee5\u53ca\u5982\u4f55\u907f\u514d\u56e0\u5ba2\u6237\u8303\u56f4\u9650\u5236\u800c\u4ea7\u751f\u201c\u865a\u8363\u5fbd\u7ae0\u201d\u5f0f\u7684\u7ed3\u679c\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Kyro\u7684\u95ea\u5149\u70b9\u5e76\u975e\u201cAI\u201d\u8fd9\u4e2a\u6807\u7b7e\uff0c\u800c\u662f\u5176\u4ea7\u54c1\u903b\u8f91\u7684\u7cbe\u786e\u53d6\u820d\u2014\u2014\u5b83\u679c\u65ad\u629b\u5f03\u4e86\u4f20\u7edf\u5b89\u5168\u626b\u63cf\u5668\u201c\u6279\u91cf\u53d1\u73b0\u3001\u6d77\u91cf\u8bef\u62a5\u201d\u7684\u505a\u6d3e\uff0c\u8f6c\u800c\u951a\u5b9a\u201c\u53ef\u590d\u73b0\u201d\u4e0e\u201c\u5df2\u9a8c\u8bc1\u201d\u8fd9\u4e24\u4e2a\u786c\u6838\u6307\u6807\u3002\u8fd9\u76f4\u51fb\u4e86\u5b89\u5168\u5e02\u573a\u7684\u6838\u5fc3\u65ad\u5c42\uff1a\u4f01\u4e1a\u7ea7\u6e17\u900f\u6d4b\u8bd5\u670d\u52a1\uff08\u5982HackerOne\uff09\u5bf9\u4e2d\u5c0f\u4f01\u4e1a\u800c\u8a00\u592a\u8d35\u4e14\u592a\u91cd\uff0c\u800c\u5e02\u9762\u4e0a\u7684SaaS\u626b\u63cf\u5668\u53c8\u592a\u201c\u865a\u201d\uff0c\u65e0\u6cd5\u63d0\u4f9b\u53ef\u884c\u52a8\u7684\u8bc1\u636e\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u521b\u59cb\u4eba\u672c\u8eab\u662f\u8d44\u6df1\u8d4f\u91d1\u730e\u4eba\uff0c\u8fd9\u786e\u4fdd\u4e86\u4ea7\u54c1\u4ece\u201c\u653b\u51fb\u8005\u601d\u7ef4\u201d\u800c\u975e\u201c\u5408\u89c4\u601d\u7ef4\u201d\u51fa\u53d1\u3002\u5176\u590d\u73b0\u80fd\u529b\u672c\u8d28\u4e0a\u662f\u5728\u7528AI\u6a21\u62df\u771f\u5b9e\u9ed1\u5ba2\u7684\u653b\u51fb\u94fe\uff0c\u800c\u975e\u673a\u68b0\u5730\u5339\u914d\u89c4\u5219\u5e93\u3002\u8fd9\u79cd\u4ece\u201c\u627e\u95ee\u9898\u201d\u5230\u201c\u8bc1\u660e\u95ee\u9898\u201d\u7684\u8fdb\u5316\uff0c\u6709\u6548\u964d\u4f4e\u4e86\u975e\u4e13\u4e1a\u7528\u6237\u7684\u5b89\u5168\u51b3\u7b56\u6210\u672c\u3002\u4e0d\u8fc7\uff0c\u5176\u771f\u6b63\u7684\u6311\u6218\u5728\u4e8e\u201c\u6301\u7eed\u6d4b\u8bd5\u201d\u7684\u65b0\u610f\u2014\u2014\u5982\u4f55\u5728\u4e0d\u4ea7\u751f\u6d77\u91cf\u566a\u97f3\u548c\u6210\u672c\u7684\u524d\u63d0\u4e0b\uff0c\u667a\u80fd\u5730\u8bc6\u522b\u51fa\u201c\u968f\u65f6\u95f4\u66b4\u9732\u201d\u7684\u9ad8\u5371\u65b0\u6f0f\u6d1e\uff0c\u8fd9\u9700\u8981\u975e\u5e38\u7cbe\u5999\u7684\u4e0a\u4e0b\u6587\u7406\u89e3\u548c\u72b6\u6001\u7ba1\u7406\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u76ee\u524d16\u7968\u7684\u4f4e\u70ed\u5ea6\u4e5f\u4fa7\u9762\u53cd\u6620\uff0cKyro\u9762\u4e34\u7684\u6700\u5927\u58c1\u5792\u662f\u4fe1\u4efb\uff1a\u5b89\u5168\u9886\u57df\u6781\u5ea6\u4fdd\u5b88\uff0c\u4f01\u4e1a\u5f88\u96be\u8f7b\u6613\u5c06\u5e94\u7528\u4ea4\u7ed9\u4e00\u4e2a\u201cAI\u9ed1\u76d2\u201d\u53bb\u626b\u63cf\u5e76\u51fa\u5177\u62a5\u544a\u3002\u82e5\u65e0\u8db3\u591f\u900f\u660e\u7684\u653b\u51fb\u6848\u4f8b\u5e93\u3001\u6a21\u578b\u900f\u660e\u5ea6\u6216\u7b2c\u4e09\u65b9\u5ba1\u8ba1\u62a5\u544a\uff0c\u5b83\u5f88\u53ef\u80fd\u6ca6\u4e3a\u4e00\u4e2a\u8fdb\u9636\u7684\u73a9\u5177\uff0c\u800c\u975e\u98a0\u8986\u6027\u7684\u6b66\u5668\u3002\u4f46\u65b9\u5411\u7edd\u5bf9\u6b63\u786e\uff0c\u5b83\u7cbe\u51c6\u5730\u523a\u4e2d\u4e86\u88ab\u4f20\u7edf\u5b89\u5168\u5e02\u573a\u957f\u671f\u5ffd\u89c6\u7684\u201c\u4e2d\u7b49\u89c4\u6a21\u201d\u75db\u70b9\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\">Kyro<\/span>\n                <\/div>\n<div class=\"comment-content\">Kyro is an AI security bugs hunter for your web app. Give it a URL (plus optional creds and scope). It maps the app, chains attacks like a real hunter, and reproduces every finding before emailing you. confirmed, exploitable bugs with reproduction steps, not a scanner&#8217;s &#8220;potential issues.&#8221;<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\"># Hey Hunters \ud83d\udc4b<\/p>\n<p>For years I&#8217;ve been doing bug bounty hunting on programs across HackerOne and Intigriti.<\/p>\n<p>I kept seeing the same gap: enterprises can pay people like me to test their systems. Small businesses usually can&#8217;t.<\/p>\n<p>&#8212;<\/p>\n<p>## How Kyro Started<\/p>\n<p>I originally built Kyro for myself. It wasn&#8217;t meant to be a product. I just wanted something that could handle the repetitive parts of bug hunting while I focused on the interesting work.<\/p>\n<p>Over the last few months it evolved from a helper into something much bigger. Instead of just finding issues, it:<\/p>\n<p>&#8211; **Reproduces and validates** findings before reporting them<br \/>\n&#8211; **Keeps testing over time** instead of doing a one-off scan<\/p>\n<p>At some point I realized I was relying on it so much that it made sense to let other people use it too.<\/p>\n<p>That&#8217;s how Kyro was born.<\/p>\n<p>&#8212;<\/p>\n<p>## Looking for Feedback<\/p>\n<p>I&#8217;d love feedback on:<\/p>\n<p>&#8211; The **reports**<br \/>\n&#8211; The **findings quality**<br \/>\n&#8211; Where you think **AI security testing still falls short**<\/p>\n<p>&#8212;<\/p>\n<p>Thanks to everyone who tested early versions and helped shape the product \u2764\ufe0f<\/p>\n<p><a href=\"https:\/\/kyroai.dev\/demo\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/kyroai.dev\/demo<\/a><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@belkhadir_abdelilah\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@belkhadir_abdelilah<\/a>&nbsp;This is a genuinely smart origin story\u2014you identified a real market gap and built from your own pain point rather than chasing a trend. The continuous testing angle is particularly interesting since most tools do one-off scans and miss the vulnerabilities that emerge over time. Would be curious how you&#8217;re handling false positives at scale, since that&#8217;s usually what tanks adoption with smaller teams who don&#8217;t have security staff to triage results.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@belkhadir_abdelilah\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@belkhadir_abdelilah<\/a>&nbsp;Congrats on the launch Belkhadir. How do you handle client scope limitations which effectively just produce a vanity badge?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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 reproduced findings part is what stands out. A lot of security tools create more work by reporting \u201cpossible\u201d issues, so confirmed bugs with clear reproduction steps feels much more useful for small teams that don\u2019t have security people to triage everything.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#19<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/EBNOSZRHI2IJAV\" class=\"app-title\">Financial Data API<\/a><\/p>\n<div class=\"one-liner\">A free finance API with 25+ sources<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">15<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>\u4e00\u6b3e\u6574\u540825+\u91d1\u878d\u6570\u636e\u6e90\u7684\u514d\u8d39API\uff0c\u4e3a\u5f00\u53d1\u8005\u63d0\u4f9b\u5b9e\u65f6\u548c\u5386\u53f2\u5e02\u573a\u6570\u636e\u3001\u57fa\u672c\u9762\u3001\u8d22\u62a5\u7b49\u5168\u8d44\u4ea7\u8986\u76d6\uff0c\u51cf\u8f7b\u81ea\u5efa\u57fa\u7840\u8bbe\u65bd\u7684\u8d1f\u62c5\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\/92dfa4b9-6b44-4170-bb72-fd44c9ae1d9d.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/e499626e-bbaa-4c19-ac79-9c70aa194ac6.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/5dd01d96-e56f-422a-a5f1-2f7d6e61a7bd.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/ccff07c9-78bb-41d0-ad9b-747963748f7b.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">API<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">Data<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u91d1\u878dAPI<\/span><br \/>\n            <span class=\"tag\">\u514d\u8d39\u6570\u636e\u63a5\u53e3<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u65f6\u884c\u60c5<\/span><br \/>\n            <span class=\"tag\">\u5386\u53f2\u6570\u636e<\/span><br \/>\n            <span class=\"tag\">\u591a\u8d44\u4ea7\u7c7b<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u91cf\u5316\u6295\u8d44<\/span><br \/>\n            <span class=\"tag\">\u6570\u636e\u805a\u5408<\/span><br \/>\n            <span class=\"tag\">\u8d22\u7ecfSaaS<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u5173\u6ce8API\u6570\u636e\u6e90\u51b2\u7a81\u5904\u7406\u673a\u5236\uff08\u591a\u6e90\u6570\u503c\u5dee\u5f02\u65f6\u4ee5\u8c01\u4e3a\u51c6\uff09\uff0c\u8be2\u95eeYahoo Finance\u7684\u901f\u7387\u9650\u5236\u5e94\u5bf9\u7b56\u7565\uff0c\u4e5f\u6709\u8bd5\u7528\u8005\u8d5e\u8d4f\u514d\u8d39\u601d\u8def\u4f46\u62c5\u5fe7\u57fa\u7840\u8bbe\u65bd\u6210\u672c\uff0c\u4f5c\u8005\u56de\u5e94\u6210\u672c\u53ef\u63a7\u4e14\u6709\u610f\u901a\u8fc7\u5206\u6790\u4f7f\u7528\u573a\u666f\u6765\u8c03\u6574\u7b56\u7565\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                \u8fd9\u6b3e\u4ea7\u54c1\u7684\u723d\u70b9\u5728\u4e8e\u201c\u514d\u8d39+\u4e00\u7ad9\u5f0f\u201d\uff1a\u628a\u5f00\u53d1\u8005\u4ece\u81ea\u638f\u8170\u5305\u4e70Bloomberg\u7ec8\u7aef\u3001\u6216\u5fcd\u53d7yfinance\u7b49\u5f00\u6e90\u5e93\u7684\u4e0d\u7a33\u5b9a\u4e0e\u5408\u89c4\u98ce\u9669\u4e2d\u89e3\u653e\u51fa\u6765\u3002\u8986\u76d6100K+\u6807\u7684\u548c26\u4e2a\u6570\u636e\u6e90\uff08\u5305\u62ecYahoo\u3001Nasdaq\u3001CNBC\u7b49\uff09\u786e\u5b9e\u6709\u5438\u5f15\u529b\uff0c\u5c24\u5176\u662f\u514d\u8d39\u63d0\u4f9b\u7684\u63a8\u7406\u7aef\u70b9\uff0c\u7ed9\u6784\u5efa\u8d22\u7ecf\u95ee\u7b54\u673a\u5668\u4eba\u63d0\u4f9b\u4e86\u6377\u5f84\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u9700\u8981\u51b7\u601d\u8003\u7684\u662f\uff0c\u514d\u8d39\u6a21\u5f0f\u5728\u91d1\u878d\u6570\u636e\u9886\u57df\u662f\u53cc\u5203\u5251\u3002\u7b2c\u4e00\uff0c\u7a33\u5b9a\u6027\u582a\u5fe7\uff1a\u591a\u4e2a\u6765\u6e90\u6570\u636e\u51b2\u7a81\uff08\u7528\u6237\u5df2\u95ee\u53ca\uff09\u901a\u5e38\u9700\u8981\u5185\u90e8\u4ef2\u88c1\u903b\u8f91\uff0c\u514d\u8d39\u7248\u80fd\u5426\u4fdd\u6301\u6570\u636e\u6e05\u6d17\u548c\u5408\u5e76\u6c34\u51c6\u5b58\u7591\u3002\u7b2c\u4e8c\uff0c\u901f\u7387\u9650\u5236\u6f5c\u89c4\u5219\uff1aYahoo Finance\u5bf9\u9ad8\u9891\u6293\u53d6\u5e76\u4e0d\u53cb\u597d\uff0c\u82e5\u540e\u7aef\u88ab\u8feb\u964d\u4f4e\u5237\u65b0\u9891\u7387\u6216\u4f7f\u7528\u722c\u866b\u4ee3\u7406\uff0c\u7b49\u7528\u6237\u4f9d\u8d56\u540e\u53d1\u73b0\u6570\u636e\u5ef6\u8fdf\u5c31\u65e0\u6cd5\u88ab\u66ff\u4ee3\u3002\u7b2c\u4e09\uff0c\u957f\u671f\u5546\u4e1a\u903b\u8f91\u4e0d\u660e\uff1a\u4f5c\u8005\u8bf4\u201c\u6210\u672c\u4e0d\u9ad8\u4e14\u5e0c\u671b\u5206\u6790\u4f7f\u7528\u573a\u666f\u201d\uff0c\u4f46\u771f\u5b9e\u8fd0\u8425\u4e00\u4e2a\u591a\u6e90\u805a\u5408API\uff08\u5c24\u5176\u5305\u542bCBOE\u3001CFTC\u7b49\u53d7\u63a7\u6e90\uff09\u53ef\u80fd\u5f88\u5feb\u8d85\u8fc7\u4e2a\u4eba\u9884\u7b97\uff0c\u82e5\u540e\u671f\u8f6c\u5411\u4ed8\u8d39\u5219\u4f1a\u5c06\u65e9\u671f\u5f00\u53d1\u8005\u7528\u6237\u63a8\u7ed9\u5176\u4ed6\u7ade\u54c1\uff08\u5982Polygon\u3001Twelve Data\u7684\u514d\u8d39\u5c42\uff09\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u672c\u8d28\u4e0a\uff0c\u8fd9\u4e2a\u4ea7\u54c1\u66f4\u50cf\u662f\u4f5c\u8005\u5c55\u793a\u5176\u6570\u636e\u96c6\u6210\u80fd\u529b\u7684\u201cDemo\u201d\uff0c\u771f\u6b63\u7684\u4ef7\u503c\u5728\u4e8e\u964d\u4f4e\u5f00\u53d1\u8005\u539f\u578b\u9a8c\u8bc1\u6210\u672c\uff0c\u800c\u975e\u751f\u4ea7\u73af\u5883\u53ef\u9760\u6570\u636e\u6e90\u3002\u5efa\u8bae\u91cd\u5ea6\u7528\u6237\u77ed\u671f\u8bd5\u7528\u540e\uff0c\u4e3a\u5173\u952e\u4e1a\u52a1\u573a\u666f\u627e\u4ed8\u8d39\u5907\u80ce\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\">Financial Data API<\/span>\n                <\/div>\n<div class=\"comment-content\">A free, hosted financial data API covering 100k+ instruments across 8 asset classes. Get real-time and historical market data from 26 sources including Yahoo, Google, Nasdaq, TradingView, CNBC, CBOE, FINRA, CFTC, and more. Plus a free inference endpoint for cited finance answers.<\/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. I\u2019m launching a series of free data APIs for developers this week.<\/p>\n<p>Today is the Financial Data API: a free, hosted API that unifies 26 financial data sources behind one interface. It covers much of what developers typically use libraries like yfinance for (real-time and historical market data, company fundamentals, filings, options, ETFs, commodities, rates, FX, indices, etc), without having to host your own infra. This and a lot more data that popular finance libraries do not cover.<\/p>\n<p>It also includes a free inference endpoint, so you can ask finance questions and get source-backed answers in real-time.<\/p>\n<p>If you have any questions about usage, rate limits, or anything else, let me know!<\/p>\n<\/p>\n<p>Read docs here: <a href=\"https:\/\/bluedoor.sh\/apis\/financial-data\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/bluedoor.sh\/apis\/financial-data<\/a><\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@samuel_crombie\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@samuel_crombie<\/a>&nbsp;Covering 100k+ instruments across multiple asset classes is impressive, especially with both market data and cited finance answers in one platform. How do you handle discrepancies when different sources report slightly different values for the same instrument, and what determines which source becomes the &#8220;truth&#8221; for the API response?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>How are you guys managing Yahoo Finances&#8217; Rate Limits? Cool product tho, I already have an use case &#8211; one of the most requested offerings on Cohesivity right now is Financial data <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>That&#8217;s a pretty cool concept. I was actually looking for something like this for one of my projects, I will definitely give it a try! One question tho, you said it&#8217;s free but I can imagine the infrastructure it will require, so how are you managing 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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@sumitgautam0101\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sumitgautam0101<\/a>&nbsp;Let me know how it works out! As for the cost, it is honestly relatively inexpensive. I&#8217;m interested in analyzing usage + helping people find use cases for the time being, which I think requires high rate limits \ud83d\ude42<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/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\/UEWICIV7XZXT7U\" class=\"app-title\">thita.ai<\/a><\/p>\n<div class=\"one-liner\">One AI platform for the entire engineering interview<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">15<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>thita.ai\u5c06LeetCode\u5237\u9898\u3001YouTube\u6559\u5b66\u3001\u7b14\u8bb0\u3001\u6a21\u62df\u9762\u8bd5\u7b49\u5206\u6563\u7684\u5de5\u7a0b\u5e08\u9762\u8bd5\u51c6\u5907\u73af\u8282\u6574\u5408\u5230\u4e00\u4e2aAI\u9a71\u52a8\u7684\u5e73\u53f0\u4e0a\uff0c\u901a\u8fc799\u79cdDSA\u6a21\u5f0f\u3001AI\u8bed\u97f3\u6a21\u62df\u9762\u8bd5\u548c\u8d39\u66fc\u5f0f\u6559\u7ec3\uff0c\u89e3\u51b3\u5019\u9009\u4eba\u201c\u5de5\u5177\u5272\u88c2\u3001\u6548\u7387\u4f4e\u4e0b\u3001\u7f3a\u4e4f\u7cfb\u7edf\u6027\u53cd\u9988\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\/2de058b6-274d-41b0-a73d-105215192c04.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/ecacfc40-c804-4482-8c4a-ed03429a335d.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/0bad1990-f3ee-4674-a3cd-a890a8e31fef.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/35036556-41a6-4c35-b30d-86ed6da31e45.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/81a2d859-604e-410e-9e15-a08116c3115b.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/f313c157-825f-4768-a1ef-145b8d5fa8bd.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\">Career<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u9762\u8bd5\u51c6\u5907<\/span><br \/>\n            <span class=\"tag\">\u5de5\u7a0b\u5e08\u6c42\u804c<\/span><br \/>\n            <span class=\"tag\">\u6280\u672f\u9762\u8bd5<\/span><br \/>\n            <span class=\"tag\">\u7f16\u7a0b\u7b97\u6cd5\uff08DSA\uff09<\/span><br \/>\n            <span class=\"tag\">\u7cfb\u7edf\u8bbe\u8ba1<\/span><br \/>\n            <span class=\"tag\">\u6a21\u62df\u9762\u8bd5<\/span><br \/>\n            <span class=\"tag\">AI\u6559\u7ec3<\/span><br \/>\n            <span class=\"tag\">\u8bed\u97f3\u4ea4\u4e92<\/span><br \/>\n            <span class=\"tag\">\u9762\u8bd5\u57f9\u8bad<\/span><br \/>\n            <span class=\"tag\">\u4ea7\u54c1\u730e\u624b<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u8ba4\u53ef\u5e73\u53f0\u6574\u5408\u6027\uff08\u544a\u522b\u591a\u6807\u7b7e\u9875\u9762\uff09\u548c\u6d41\u7545\u4f53\u9a8c\uff1b\u6838\u5fc3\u53cd\u9988\u96c6\u4e2d\u5728\u201c\u601d\u7ef4\u6a21\u5f0f\/\u5224\u65ad\u7c7b\u95ee\u9898\u201d\u5904\u7406\u4e0a\uff0c\u56e2\u961f\u56de\u5e94\u5c06\u52a0\u5f3aAI\u6559\u7ec3\u5728\u7ed3\u6784\u5316\u601d\u8003\u3001\u6743\u8861\u5206\u6790\u65b9\u9762\u7684\u80fd\u529b\uff1b\u53e6\u6709\u7528\u6237\u597d\u5947\u7528\u6237\u7c98\u6027\u6700\u9ad8\u7684\u529f\u80fd\uff08\u6a21\u5f0f\u3001\u6559\u7ec3\u8fd8\u662f\u8bed\u97f3\u9762\u8bd5\uff09\uff0c\u56e2\u961f\u53cd\u9988\u662f\u201c\u751f\u6001\u7cfb\u7edf\u201d\u534f\u540c\u6548\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                thita.ai\u7684\u5207\u5165\u70b9\u7cbe\u51c6\uff0c\u7784\u51c6\u4e86\u5de5\u7a0b\u5e08\u9762\u8bd5\u51c6\u5907\u5e02\u573a\u4e2d\u4e00\u4e2a\u6781\u5176\u663e\u8457\u4f46\u672a\u88ab\u5145\u5206\u6ee1\u8db3\u7684\u75db\u70b9\u2014\u2014\u201c\u5de5\u5177\u788e\u7247\u5316\u201d\u3002\u5c06\u5237\u9898\uff08LeetCode\uff09\u3001\u5b66\u4e60\uff08YouTube\/Notion\uff09\u3001\u6a21\u62df\uff08Pramp\uff09\u548c\u7b54\u7591\uff08ChatGPT\uff09\u4e94\u5408\u4e00\uff0c\u672c\u8d28\u4e0a\u662f\u5728\u964d\u4f4e\u7528\u6237\u9ad8\u6602\u7684\u201c\u591a\u4efb\u52a1\u5207\u6362\u6210\u672c\u201d\u548c\u201c\u8ba4\u77e5\u8d1f\u8377\u201d\u3002\u5176\u6838\u5fc3\u4ef7\u503c\u5e76\u975e\u5355\u4e2a\u529f\u80fd\u7684\u521b\u65b0\uff0c\u800c\u5728\u4e8e\u201c\u5de5\u4f5c\u6d41\u91cd\u6784\u201d\u2014\u2014\u4ece\u201c\u6982\u5ff5\u5b66\u4e60\u201d\u5230\u201c\u6a21\u5f0f\u638c\u63e1\u201d\u5230\u201c\u6a21\u62df\u5b9e\u6218\u201d\u518d\u5230\u201c\u53cd\u9988\u4fee\u6b63\u201d\u7684\u95ed\u73af\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u503c\u5f97\u80af\u5b9a\u7684\u662f\uff0c\u56e2\u961f\u5bf9\u573a\u666f\u7684\u7406\u89e3\u8db3\u591f\u6df1\u3002\u8d39\u66fc\u6559\u7ec3\u7684\u201c\u53e3\u5934\u89e3\u91ca\u8bc4\u5206\u201d\u529f\u80fd\uff0c\u76f4\u51fb\u201c\u4f1a\u505a\u4f46\u8bf4\u4e0d\u6e05\u201d\u8fd9\u4e00\u5bfc\u81f4\u9762\u8bd5\u5931\u8d25\u7684\u9690\u5f62\u6740\u624b\uff1b\u8bed\u97f3\u6a21\u62df\u9762\u8bd5\u7684\u201c\u6253\u65ad\u5f0f\u201d\u4ea4\u4e92\uff0c\u5219\u89c4\u907f\u4e86\u4f20\u7edfAI\u9762\u8bd5\u7684\u673a\u68b0\u611f\uff0c\u5411\u771f\u5b9e\u7684\u4eba\u7c7b\u9762\u8bd5\u5b98\u4f53\u9a8c\u9760\u62e2\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u5fc5\u987b\u51b7\u9759\u770b\u5f85\u5176\u6311\u6218\u3002\u9996\u5148\uff0c25,000\u540d\u7528\u6237\u80cc\u540e\u662f\u201c\u96f6\u4ed8\u8d39\u83b7\u5ba2\u201d\u548c\u201c1M+\u66dd\u5149\u91cf\u7684\u6a21\u5f0f\u901f\u67e5\u8868\u201d\uff0c\u8fd9\u8bf4\u660e\u75c5\u6bd2\u5f0f\u589e\u957f\u9ad8\u5ea6\u4f9d\u8d56\u5185\u5bb9\u8d28\u91cf\u800c\u975e\u4ea7\u54c1\u672c\u8eab\u58c1\u5792\uff0c\u5f53\u5185\u5bb9\u8fb9\u754c\uff08\u9898\u76ee\u5e93\/\u6a21\u5f0f\u5e93\uff09\u88ab\u7ade\u54c1\u590d\u5236\u65f6\uff0c\u62a4\u57ce\u6cb3\u6709\u591a\u6df1\uff1f\u5176\u6b21\uff0c\u8bc4\u8bba\u4e2d\u7528\u6237\u8ffd\u95ee\u7684\u201c\u5224\u65ad\u7c7b\/\u6743\u8861\u7c7b\u201d\u95ee\u9898\uff0c\u662f\u7eaf\u7b97\u6cd5\u5e73\u53f0\u96be\u4ee5\u903e\u8d8a\u7684\u9e3f\u6c9f\u2014\u2014\u8fd9\u6d89\u53ca\u9886\u57df\u77e5\u8bc6\u3001\u7ecf\u9a8c\u751a\u81f3\u4ef7\u503c\u89c2\uff0cAI\u6559\u7ec3\u76ee\u524d\u53ea\u80fd\u201c\u7ed3\u6784\u5316\u601d\u8003\u201d\uff0c\u800c\u975e\u201c\u63d0\u4f9b\u771f\u77e5\u707c\u89c1\u201d\u3002\u6700\u540e\uff0c\u4ea7\u54c1\u5f62\u6001\uff08AI\u6559\u7ec3\u3001\u8bed\u97f3\u9762\u8bd5\uff09\u5bf9\u81ea\u7136\u8bed\u8a00\u5904\u7406\u548c\u5ef6\u8fdf\u8981\u6c42\u6781\u9ad8\uff0c\u65e9\u671f\u7248\u672c\u201c\u8bfb\u5267\u672c\u201d\u5f0f\u7684\u4f53\u9a8c\u63ed\u793a\u4e86\u6280\u672f\u95e8\u69db\u3002\u5b83\u80fd\u8d70\u591a\u8fdc\uff0c\u53d6\u51b3\u4e8e\u56e2\u961f\u80fd\u5426\u5728\u6574\u5408\u4e4b\u4e0a\uff0c\u6784\u5efa\u51fa\u4e0d\u53ef\u590d\u5236\u7684\u201c\u9762\u8bd5\u8ba4\u77e5\u56fe\u8c31\u201d\uff0c\u800c\u975e\u4ec5\u4ec5\u505a\u4e00\u4e2a\u597d\u770b\u7684\u5de5\u5177\u96c6\u5408\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\">thita.ai<\/span>\n                <\/div>\n<div class=\"comment-content\">Stop stitching together LeetCode, YouTube, Notion, and Pramp. Thita.ai is one AI platform: 99 DSA patterns, voice AI mock interviews, an AI coach, system design prep, and resume tools. Built for engineers targeting top companies, from new grad to senior. 25000+ learners<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">We built thita.ai because we lived the problem. Preparing for engineering interviews meant LeetCode in one tab, YouTube in another, Notion for notes, ChatGPT for explanations, and Pramp for mocks. Five tools, zero coherence, and most of the time spent on logistics instead of actual reps.<\/p>\n<p>Thita is one platform built around a single idea: interviews are won by structure. We mapped 99 DSA patterns that cover roughly 95% of coding rounds, then wrapped them with a voice AI interviewer, a 1:1 AI coach that teaches with diagrams, system design tracks, and resume tools. Concept to pattern to mock to offer, all in one place.<\/p>\n<p>The feature I am most attached to is AI coach with feynman Style. You explain the core insight of a problem out loud, and an AI judge scores your articulation. It catches the gap between solving a problem and understanding it, which is exactly the gap interviewers probe.<\/p>\n<p>We are the team behind Repowise. Thita has grown to 25,000 engineers across 50+ countries with zero paid acquisition, mostly off a DSA patterns sheet that reached over 1M+ people organically.<\/p>\n<p>Today we are opening it to the Product Hunt community. Run a mock interview or  just learn through patterns. We read every comment and ship fast.<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>4<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@swatiahuja\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@swatiahuja<\/a>&nbsp;Hi Swati, congrats on the launch. How do you deal with thought pattern questions that are more judgment based?<\/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\">@zolani_matebese Thanks, Zolani! Currently, Thita uses a curated question bank with detailed solutions and pattern based learning. For more judgment based questions, our AI Coach helps candidates structure their thinking, evaluate tradeoffs, challenge assumptions, and refine their reasoning. We\u2019re investing heavily in that direction because many interviews test decision making as much as technical knowledge.<\/div>\n<div class=\"comment-actions\">\n<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>Amazing product!!!<br \/>Have used this myself to cover topics of system design and dsa. <br \/>And honestly love the mock interview tool as well, helped me practice interviews so I could perform better in the real one!!!<\/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\">@hellovyom thank you for being an early user and for sharing your experience!<br \/>\nYour feedback has helped us shape the platform<br \/>\nHearing that Thita helped with System Design, DSA, and mock interview practice makes all the late nights worth it \ud83d\ude4c<\/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>Just started using the platform and honestly, I am amazed by how native the experience feels to me. I completely relate to the problem of managing stuff at multiple places during interview preparation and most of the times I end up keeping multiple tabs open which is definitely a clutter-filled way of doing things.<\/p>\n<\/p>\n<p>Good luck to the team building it and super excited to keep following this to see it going higher-further-faster \ud83d\ude00 <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@vaibhav_kushwaha3 Thanks Vaibhav, this is exactly the problem we felt ourselves while preparing for interviews.<\/p>\n<p> We wanted to bring everything into a single workflow that feels native instead of stitched together. Really appreciate you giving it a try and sharing such detailed feedback. \ud83d\ude4c<\/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><a href=\"https:\/\/www.producthunt.com\/@swatiahuja\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"swatiahuja\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@swatiahuja<\/a> Tried a quick look &#8211; the experience feels smoother than I expected. Curious to see where this goes<\/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\">@dipanshu_kushwaha5 Thanks Dipanshu, appreciate you taking the time to try it out. We spent a lot of effort making the experience feel fast and natural because interview prep tools often become frustrating when there\u2019s too much friction. Excited to keep improving it and would love to hear any feedback as you use it more.<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Maker here. Built this with Swati over the last year.<\/p>\n<p>The voice interviewer took the longest to get right. Early versions felt like reading off a script. We rebuilt the turn-taking so it interrupts you, pushes on weak answers, and picks the next question based on what you just said. It finally feels like a real loop.<\/p>\n<p>The feature I keep coming back to is the Feynman coach. You explain the core insight out loud before writing any code, and a judge scores your articulation. People who do this before mocks explain cleaner under pressure. That gap between solving a problem and explaining it is where most onsites get lost.<\/p>\n<p>We ship daily. If the voice lags, a pattern is missing, or you want a track we don&#8217;t have, drop it here. We read every comment and fix fast.<\/p>\n<p>Best way to judge it: start a mock cold and see how far the interviewer pushes you.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>What\u2019s the one feature people stick around for the most, patterns, the coach, or the voice interviews?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\">@thamibenjelloun Surprisingly, it\u2019s becoming the ecosystem rather than a single feature. People often come for the patterns, but many stay for the AI Coach because it ties everything together, identifies weaknesses, and tells them exactly what to do next. <\/p>\n<p>Voice interviews are growing fast as well because they simulate the real interview experience.<\/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<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<\/div>\n<p><!-- \u56fe\u7247\u653e\u5927\u6a21\u6001\u6846 --><\/p>\n<div id=\"imageModal\" class=\"modal\">\n    <span class=\"close\">&times;<\/span><br \/>\n    <img class=\"modal-content\" id=\"modalImage\">\n<\/div>\n<p><script>\n    \/\/ \u83b7\u53d6\u6a21\u6001\u6846\u5143\u7d20\n    const modal = document.getElementById(\"imageModal\");\n    const modalImg = document.getElementById(\"modalImage\");\n    const closeBtn = document.getElementsByClassName(\"close\")[0];<\/p>\n<p>    \/\/ \u68c0\u6d4b\u662f\u5426\u4e3a\u79fb\u52a8\u8bbe\u5907\n    const isMobile = \/iPhone|iPad|iPod|Android\/i.test(navigator.userAgent);<\/p>\n<p>    \/\/ \u4e3a\u79fb\u52a8\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u4f18\u5316\n    function addTouchOptimization() {\n        if (isMobile) {\n            \/\/ \u4e3a\u6240\u6709\u53ef\u70b9\u51fb\u5143\u7d20\u6dfb\u52a0\u89e6\u6478\u53cd\u9988\n            const clickableElements = document.querySelectorAll(\n                '.media-content, .close, .video-overlay, .play-icon'\n            );<\/p>\n<p>            clickableElements.forEach(el => {\n                el.style.touchAction = 'manipulation'; \/\/ \u9632\u6b62\u53cc\u51fb\u7f29\u653e\n            });\n        }\n    }<\/p>\n<p>    \/\/ \u4e3a\u6240\u6709\u56fe\u7247\u6dfb\u52a0\u70b9\u51fb\u4e8b\u4ef6\n    const images = document.querySelectorAll(\"img.media-content\");\n    images.forEach(img => {\n        img.onclick = function() {\n            modal.style.display = \"block\";\n            modalImg.src = this.src;\n            \/\/ \u963b\u6b62\u80cc\u666f\u6eda\u52a8\n            document.body.style.overflow = \"hidden\";\n        }<\/p>\n<p>        \/\/ \u4e3a\u79fb\u52a8\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u4e8b\u4ef6\u652f\u6301\n        if (isMobile) {\n            img.addEventListener('touchstart', function(e) {\n                \/\/ \u9632\u6b62\u89e6\u6478\u4e8b\u4ef6\u89e6\u53d1\u4e0d\u5fc5\u8981\u7684\u884c\u4e3a\n                e.preventDefault();\n                this.click();\n            }, { passive: false });\n        }\n    });<\/p>\n<p>    \/\/ \u4e3a\u89c6\u9891\u6dfb\u52a0\u70b9\u51fb\u4e8b\u4ef6 - \u8df3\u8f6c\u5230\u89c6\u9891URL\n    const videos = document.querySelectorAll(\"video.media-content\");\n    videos.forEach(video => {\n        \/\/ \u70b9\u51fb\u89c6\u9891\u672c\u8eab\u65f6\u8df3\u8f6c\u5230\u89c6\u9891URL\n        video.onclick = function(e) {\n            \/\/ \u68c0\u67e5\u70b9\u51fb\u76ee\u6807\u662f\u5426\u662f\u89c6\u9891\u63a7\u4ef6\u6216\u5176\u5b50\u5143\u7d20\n            let isControlClick = false;\n            let target = e.target;<\/p>\n<p>            \/\/ \u5411\u4e0a\u904d\u5386DOM\uff0c\u68c0\u67e5\u662f\u5426\u70b9\u51fb\u4e86\u63a7\u4ef6\u5143\u7d20\n            while (target && target !== this) {\n                \/\/ \u68c0\u67e5\u662f\u5426\u6709\u63a7\u4ef6\u76f8\u5173\u7684\u7c7b\u540d\u6216\u5c5e\u6027\n                if (target.classList.contains('video-js') || \n                    target.tagName.toLowerCase() === 'button' || \n                    target.tagName.toLowerCase() === 'input' || \n                    target.tagName.toLowerCase() === 'select' ||\n                    target.className.includes('control')) {\n                    isControlClick = true;\n                    break;\n                }\n                target = target.parentElement;\n            }<\/p>\n<p>            \/\/ \u53ea\u6709\u5f53\u70b9\u51fb\u7684\u662f\u89c6\u9891\u672c\u8eab\u800c\u975e\u63a7\u4ef6\u65f6\u624d\u8df3\u8f6c\n            if (!isControlClick && e.target.tagName.toLowerCase() === 'video') {\n                const videoUrl = this.getAttribute('data-video-url') || this.querySelector('source').src;\n                window.open(videoUrl, '_blank');\n            }\n        }<\/p>\n<p>        \/\/ \u4e3a\u79fb\u52a8\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u4e8b\u4ef6\u652f\u6301\n        if (isMobile) {\n            video.addEventListener('touchstart', function(e) {\n                \/\/ \u68c0\u67e5\u662f\u5426\u70b9\u51fb\u4e86\u63a7\u4ef6\n                let isControlClick = false;\n                let target = e.target;<\/p>\n<p>                while (target && target !== this) {\n                    if (target.tagName.toLowerCase() === 'button' || \n                        target.tagName.toLowerCase() === 'input' || \n                        target.className.includes('control')) {\n                        isControlClick = true;\n                        break;\n                    }\n                    target = target.parentElement;\n                }<\/p>\n<p>                if (!isControlClick) {\n                    e.preventDefault();\n                    const videoUrl = this.getAttribute('data-video-url') || this.querySelector('source').src;\n                    window.open(videoUrl, '_blank');\n                }\n            }, { passive: false });\n        }\n    });<\/p>\n<p>    \/\/ \u4e3a\u89c6\u9891\u906e\u7f69\u6dfb\u52a0\u70b9\u51fb\u4e8b\u4ef6\uff0c\u786e\u4fdd\u70b9\u51fb\u906e\u7f69\u4e5f\u80fd\u8df3\u8f6c\n    const videoOverlays = document.querySelectorAll('.video-overlay');\n    videoOverlays.forEach(overlay => {\n        overlay.onclick = function(e) {\n            \/\/ \u963b\u6b62\u4e8b\u4ef6\u5192\u6ce1\u5230\u89c6\u9891\u5143\u7d20\n            e.stopPropagation();\n            const video = this.parentElement.querySelector('video.media-content');\n            if (video) {\n                const videoUrl = video.getAttribute('data-video-url') || video.querySelector('source').src;\n                window.open(videoUrl, '_blank');\n            }\n        }<\/p>\n<p>        \/\/ \u4e3a\u79fb\u52a8\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u4e8b\u4ef6\u652f\u6301\n        if (isMobile) {\n            overlay.addEventListener('touchstart', function(e) {\n                e.preventDefault();\n                e.stopPropagation();\n                const video = this.parentElement.querySelector('video.media-content');\n                if (video) {\n                    const videoUrl = video.getAttribute('data-video-url') || video.querySelector('source').src;\n                    window.open(videoUrl, '_blank');\n                }\n            }, { passive: false });\n        }\n    });<\/p>\n<p>    \/\/ \u5173\u95ed\u6a21\u6001\u6846\n    closeBtn.onclick = function() {\n        modal.style.display = \"none\";\n        \/\/ \u6062\u590d\u80cc\u666f\u6eda\u52a8\n        document.body.style.overflow = \"auto\";\n    }<\/p>\n<p>    \/\/ \u4e3a\u79fb\u52a8\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u4e8b\u4ef6\u652f\u6301\n    if (isMobile) {\n        closeBtn.addEventListener('touchstart', function(e) {\n            e.preventDefault();\n            modal.style.display = \"none\";\n            document.body.style.overflow = \"auto\";\n        }, { passive: false });\n    }<\/p>\n<p>    \/\/ \u70b9\u51fb\u6a21\u6001\u6846\u5916\u90e8\u5173\u95ed\n    window.onclick = function(event) {\n        if (event.target === modal) {\n            modal.style.display = \"none\";\n            document.body.style.overflow = \"auto\";\n        }\n    }<\/p>\n<p>    \/\/ \u4e3a\u79fb\u52a8\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u4e8b\u4ef6\u652f\u6301\n    if (isMobile) {\n        modal.addEventListener('touchstart', function(e) {\n            if (e.target === modal) {\n                modal.style.display = \"none\";\n                document.body.style.overflow = \"auto\";\n            }\n        }, { passive: true });\n    }<\/p>\n<p>    \/\/ \u6309ESC\u952e\u5173\u95ed\u6a21\u6001\u6846\n    document.addEventListener('keydown', function(event) {\n        if (event.key === 'Escape' && modal.style.display === 'block') {\n            modal.style.display = 'none';\n            document.body.style.overflow = \"auto\";\n        }\n    });<\/p>\n<p>    \/\/ \u68c0\u67e5\u6bcf\u4e2a\u5a92\u4f53\u753b\u5eca\u4e2d\u662f\u5426\u53ea\u6709\u4e00\u4e2a\u9879\u76ee\uff0c\u5982\u679c\u662f\uff0c\u6dfb\u52a0single-item\u7c7b\n    document.querySelectorAll('.media-gallery').forEach(gallery => {\n        if (gallery.querySelectorAll('.media-item-wrapper').length === 1) {\n            gallery.classList.add('single-item');\n        }\n    });<\/p>\n<p>    \/\/ \u521d\u59cb\u5316\u89e6\u6478\u4f18\u5316\n    addTouchOptimization();<\/p>\n<p>    \/\/ \u7a97\u53e3\u5927\u5c0f\u53d8\u5316\u65f6\u91cd\u65b0\u68c0\u67e5\u753b\u5eca\u72b6\u6001\n    window.addEventListener('resize', function() {\n        document.querySelectorAll('.media-gallery').forEach(gallery => {\n            if (gallery.querySelectorAll('.media-item-wrapper').length === 1) {\n                gallery.classList.add('single-item');\n            } else {\n                gallery.classList.remove('single-item');\n            }\n        });\n    });<\/p>\n<p>    \/\/ --- \u8bc4\u8bba\u533a\u57df\u6298\u53e0\/\u5c55\u5f00\u529f\u80fd ---\n    const commentToggles = document.querySelectorAll('.comments-toggle');<\/p>\n<p>    commentToggles.forEach(toggle => {\n        toggle.addEventListener('click', function() {\n            \/\/ \u5207\u6362\u5f53\u524dtoggle\u7684open\u72b6\u6001\n            this.classList.toggle('open');<\/p>\n<p>            \/\/ \u83b7\u53d6\u5bf9\u5e94\u7684\u8bc4\u8bba\u5bb9\u5668\n            const commentsContainer = this.nextElementSibling;\n            if (commentsContainer && commentsContainer.classList.contains('comments-container')) {\n                commentsContainer.classList.toggle('open');\n            }\n        });\n    });\n<\/script><\/p>\n<p><\/body><br \/>\n<\/html><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Product Hunt \u6bcf\u65e5\u70ed\u699c 2026-06-08 PH\u70ed\u699c | 2026-06-08 #1 Brows [&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-246","post","type-post","status-publish","format-standard","hentry","category-producthunt"],"_links":{"self":[{"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/posts\/246","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=246"}],"version-history":[{"count":0,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/posts\/246\/revisions"}],"wp:attachment":[{"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/media?parent=246"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/categories?post=246"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/tags?post=246"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}