{"id":294,"date":"2026-07-27T12:05:55","date_gmt":"2026-07-27T04:05:55","guid":{"rendered":"https:\/\/ph.listeningo.cn\/index.php\/2026\/07\/27\/2026-07-26\/"},"modified":"2026-07-27T12:05:55","modified_gmt":"2026-07-27T04:05:55","slug":"2026-07-26","status":"publish","type":"post","link":"https:\/\/ph.listeningo.cn\/index.php\/2026\/07\/27\/2026-07-26\/","title":{"rendered":"PH\u70ed\u699c | 2026-07-26"},"content":{"rendered":"<p><!DOCTYPE html><br \/>\n<html lang=\"zh-CN\"><br \/>\n<head><br \/>\n    <meta charset=\"UTF-8\"><br \/>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"><br \/>\n    <title>Product Hunt \u6bcf\u65e5\u70ed\u699c 2026-07-26<\/title><\/p>\n<style>\n        \/* --- \u5168\u5c40\u91cd\u7f6e\u4e0e\u5b57\u4f53 --- *\/\n        :root {\n            --ph-orange: #FF6154;\n            --text-main: #21293C;\n            --text-secondary: #4B587C;\n            --bg-ai: #F7F7F9;\n            --border-color: #E6E6E6;\n        }<\/p>\n<p>        body {\n            font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif;\n            color: var(--text-main);\n            background-color: #ffffff;\n            line-height: 1.6;\n            margin: 0;\n            padding: 20px;\n        }<\/p>\n<p>        .container {\n            max-width: 800px;\n            margin: 0 auto;\n        }<\/p>\n<p>        \/* --- \u5361\u7247\u6837\u5f0f --- *\/\n        .app-card {\n            border-bottom: 1px solid var(--border-color);\n            padding-bottom: 40px;\n            margin-bottom: 40px;\n        }<\/p>\n<p>        \/* --- 1. \u5934\u90e8\u533a\u57df --- *\/\n        .app-header {\n            display: flex;\n            align-items: flex-start;\n            gap: 16px;\n            margin-bottom: 20px;\n        }<\/p>\n<p>        .rank {\n            font-size: 24px;\n            font-weight: 300;\n            color: #999;\n            min-width: 30px;\n            padding-top: 4px;\n        }<\/p>\n<p>        .title-group {\n            flex: 1;\n        }<\/p>\n<p>        .app-title {\n            font-size: 24px;\n            font-weight: 800;\n            margin: 0 0 4px 0;\n            color: var(--text-main);\n            text-decoration: none;\n            display: inline-block;\n        }<\/p>\n<p>        .app-title:hover {\n            color: var(--ph-orange);\n            text-decoration: underline;\n        }<\/p>\n<p>        .vote-btn {\n            display: flex;\n            flex-direction: column;\n            align-items: center;\n            justify-content: center;\n            border: 1px solid var(--border-color);\n            border-radius: 8px;\n            padding: 8px 12px;\n            background: #fff;\n            min-width: 60px;\n            box-shadow: 0 1px 2px rgba(0,0,0,0.05);\n        }<\/p>\n<p>        .vote-arrow {\n            color: var(--ph-orange);\n            font-size: 14px;\n            margin-bottom: -2px;\n        }<\/p>\n<p>        .vote-count {\n            font-weight: 600;\n            font-size: 14px;\n        }<\/p>\n<p>        \/* --- 2. \u5347\u7ea7\u7248\u5a92\u4f53\u753b\u5eca (\u5173\u952e\u4fee\u6539) --- *\/\n        .media-gallery {\n            display: flex;\n            gap: 16px;\n            overflow-x: auto; \/* \u5141\u8bb8\u6a2a\u5411\u6eda\u52a8 *\/\n            padding-bottom: 16px; \/* \u7559\u51fa\u6eda\u52a8\u7a7a\u95f4 *\/\n            scroll-snap-type: x mandatory; \/* \u6eda\u52a8\u5438\u9644\u6548\u679c *\/\n            -webkit-overflow-scrolling: touch; \/* iOS \u5e73\u6ed1\u6eda\u52a8 *\/\n            margin-bottom: 20px;<\/p>\n<p>            \/* \u9690\u85cf\u9ed8\u8ba4\u6eda\u52a8\u6761\u4f46\u4fdd\u7559\u529f\u80fd (Firefox) *\/\n            scrollbar-width: thin;\n            scrollbar-color: #ddd transparent;\n        }<\/p>\n<p>        \/* Webkit \u6eda\u52a8\u6761\u6837\u5f0f\u4f18\u5316 *\/\n        .media-gallery::-webkit-scrollbar {\n            height: 6px;\n        }\n        .media-gallery::-webkit-scrollbar-track {\n            background: transparent;\n        }\n        .media-gallery::-webkit-scrollbar-thumb {\n            background-color: #eee;\n            border-radius: 10px;\n        }<\/p>\n<p>        .media-item-wrapper {\n            flex: 0 0 auto; \/* \u9632\u6b62\u88ab\u538b\u7f29 *\/\n            width: 80%;     \/* \u79fb\u52a8\u7aef\u9ed8\u8ba4\u9732\u51fa\u4e00\u70b9\u4e0b\u4e00\u5f20\uff0c\u63d0\u793a\u53ef\u6ed1\u52a8 *\/\n            max-width: 500px; \/* \u684c\u9762\u7aef\u6700\u5927\u5bbd\u5ea6 *\/\n            aspect-ratio: 16\/9; \/* \u7edf\u4e00\u6bd4\u4f8b *\/<\/p>\n<p>            position: relative;\n            border-radius: 12px;\n            overflow: hidden;\n            border: 1px solid rgba(0,0,0,0.08);\n            background-color: #f5f5f5;\n            scroll-snap-align: center; \/* \u6eda\u52a8\u505c\u6b62\u65f6\u5c45\u4e2d *\/\n        }<\/p>\n<p>        .media-content {\n            width: 100%;\n            height: 100%;\n            object-fit: cover; \/* \u586b\u5145\u5bb9\u5668 *\/\n            display: block;\n            cursor: pointer;\n        }<\/p>\n<p>        \/* \u89c6\u9891\u6807\u7b7e\u7279\u6b8a\u5904\u7406 *\/\n        video.media-content {\n            background-color: #000;\n            cursor: pointer;\n        }<\/p>\n<p>        \/* \u5982\u679c\u53ea\u67091\u4e2a\u5a92\u4f53\uff0c\u4e0d\u8981\u6eda\u52a8\uff0c\u4e14\u5bbd\u5ea6\u81ea\u9002\u5e94 *\/\n        .media-gallery.single-item .media-item-wrapper {\n            width: 100%;\n            max-width: 100%;\n        }<\/p>\n<p>        \/* --- 3. \u63cf\u8ff0\u4e0e\u6807\u7b7e --- *\/\n        .one-liner {\n            font-size: 18px;\n            color: var(--text-secondary);\n            margin-bottom: 12px;\n            font-weight: 500;\n        }<\/p>\n<p>        .tags-container {\n            display: flex;\n            flex-wrap: wrap;\n            gap: 8px;\n            margin-bottom: 24px;\n        }<\/p>\n<p>        .tag {\n            font-size: 12px;\n            color: var(--text-secondary);\n            background-color: #F2F2F2;\n            padding: 4px 10px;\n            border-radius: 20px;\n            font-weight: 600;\n            text-transform: uppercase;\n        }<\/p>\n<p>        \/* --- 4. AI \u6458\u8981\u533a --- *\/\n        .ai-section {\n            background-color: var(--bg-ai);\n            border-radius: 12px;\n            padding: 20px;\n            margin-bottom: 20px;\n            border-left: 4px solid var(--ph-orange);\n        }<\/p>\n<p>        .ai-title {\n            font-size: 14px;\n            font-weight: 700;\n            color: var(--text-main);\n            margin: 0 0 12px 0;\n            display: flex;\n            align-items: center;\n            gap: 6px;\n        }<\/p>\n<p>        .ai-content {\n            font-size: 15px;\n            color: #333;\n            margin-bottom: 0;\n            line-height: 1.7;\n        }<\/p>\n<p>        \/* --- 5. \u8bc4\u8bba\u533a --- *\/\n        .reviews-section {\n            margin-top: 10px;\n        }<\/p>\n<p>        .review-item {\n            display: flex;\n            gap: 10px;\n            margin-bottom: 12px;\n            font-size: 14px;\n        }<\/p>\n<p>        .review-avatar {\n            font-size: 18px;\n            margin-top: 2px;\n            min-width: 24px;\n        }<\/p>\n<p>        .review-bubble {\n            background: #fff;\n            border: 1px solid var(--border-color);\n            padding: 8px 12px;\n            border-radius: 0 12px 12px 12px;\n            color: var(--text-secondary);\n            line-height: 1.5;\n        }<\/p>\n<p>        .review-author {\n            font-weight: 700;\n            color: var(--text-main);\n            margin-right: 4px;\n            font-style: normal;\n        }<\/p>\n<p>        .comments-section {\n            margin-top: 30px;\n            border-top: 1px solid var(--border-color);\n            padding-top: 20px;\n        }<\/p>\n<p>        .comments-toggle {\n            background-color: #f8f9fa;\n            border: 1px solid var(--border-color);\n            border-radius: 8px;\n            padding: 12px 20px;\n            cursor: pointer;\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            width: 100%;\n            font-size: 14px;\n            font-weight: 600;\n            color: var(--text-main);\n            transition: all 0.3s ease;\n        }<\/p>\n<p>        .comments-toggle:hover {\n            background-color: #e9ecef;\n        }<\/p>\n<p>        .comments-toggle .toggle-arrow {\n            font-size: 18px;\n            transition: transform 0.3s ease;\n        }<\/p>\n<p>        .comments-toggle.open .toggle-arrow {\n            transform: rotate(180deg);\n        }<\/p>\n<p>        .comments-container {\n            max-height: 0;\n            overflow: hidden;\n            transition: max-height 0.5s ease;\n            margin-top: 15px;\n        }<\/p>\n<p>        .comments-container.open {\n            max-height: 800px;\n            overflow: auto;\n        }<\/p>\n<p>        .comment-item {\n            background-color: #fff;\n            border: 1px solid var(--border-color);\n            border-radius: 8px;\n            padding: 16px;\n            margin-bottom: 12px;\n            font-size: 14px;\n        }<\/p>\n<p>        .comment-header {\n            display: flex;\n            justify-content: space-between;\n            align-items: flex-start;\n            margin-bottom: 8px;\n        }<\/p>\n<p>        .comment-author {\n            font-weight: 600;\n            color: var(--text-main);\n            margin-right: 8px;\n        }<\/p>\n<p>        .comment-content {\n            color: var(--text-secondary);\n            line-height: 1.5;\n            margin-bottom: 10px;\n            word-break: break-word;\n            word-wrap: break-word;\n            overflow-wrap: anywhere;\n            white-space: normal;\n        }<\/p>\n<p>        .comment-content p {\n            margin: 0;\n            word-break: break-word;\n            word-wrap: break-word;\n            overflow-wrap: anywhere;\n            white-space: normal;\n        }<\/p>\n<p>        \/* \u4f18\u5316\u8868\u60c5\u7b26\u53f7\u663e\u793a *\/\n       .emoji {\n            display: inline;\n            max-width: 15px;\n            overflow-wrap: normal;\n        }<\/p>\n<p>        .comment-actions {\n            display: flex;\n            align-items: center;\n            gap: 16px;\n            font-size: 12px;\n            color: var(--text-secondary);\n        }<\/p>\n<p>        .comment-vote {\n            display: flex;\n            align-items: center;\n            gap: 4px;\n            cursor: pointer;\n        }<\/p>\n<p>        .comment-replies {\n            margin-top: 12px;\n            margin-left: 20px;\n            padding-left: 12px;\n            border-left: 2px solid var(--border-color);\n        }<\/p>\n<p>        .reply-item {\n            background-color: #f8f9fa;\n            border: 1px solid var(--border-color);\n            border-radius: 6px;\n            padding: 12px;\n            margin-bottom: 8px;\n            font-size: 13px;\n        }<\/p>\n<p>        .reply-content {\n            color: var(--text-secondary);\n            line-height: 1.4;\n            margin-bottom: 6px;\n        }<\/p>\n<p>        \/* --- \u54cd\u5e94\u5f0f\u5fae\u8c03 --- *\/\n        @media (min-width: 600px) {\n            .media-item-wrapper {\n                width: 60%; \/* \u684c\u9762\u7aef\u7a0d\u5fae\u7a84\u4e00\u70b9\uff0c\u5c55\u793a\u66f4\u591a\u5f20 *\/\n                scroll-snap-align: start; \/* \u684c\u9762\u7aef\u9760\u5de6\u5bf9\u9f50 *\/\n            }\n        }<\/p>\n<p>        \/* \u79fb\u52a8\u8bbe\u5907\u54cd\u5e94\u5f0f\u4f18\u5316 *\/\n        @media (max-width: 599px) {\n            \/* \u6a21\u6001\u6846\u4f18\u5316 *\/\n            .modal-content {\n                max-width: 95%;\n                max-height: 85vh;\n                margin: 10vh auto;\n            }<\/p>\n<p>            .close {\n                top: 10px;\n                right: 20px;\n                font-size: 30px;\n                \/* \u589e\u5927\u70b9\u51fb\u533a\u57df *\/\n                padding: 15px;\n            }<\/p>\n<p>            \/* \u89c6\u9891\u64ad\u653e\u56fe\u6807\u4f18\u5316 *\/\n            .play-icon {\n                width: 60px;\n                height: 60px;\n                font-size: 18px;\n            }<\/p>\n<p>            \/* \u786e\u4fdd\u5a92\u4f53\u5185\u5bb9\u5728\u5c0f\u5c4f\u5e55\u4e0a\u6b63\u786e\u663e\u793a *\/\n            .media-content {\n                object-fit: cover;\n            }\n        }<\/p>\n<p>        \/* --- \u56fe\u7247\u653e\u5927\u6a21\u6001\u6846\u6837\u5f0f --- *\/\n        .modal {\n            display: none;\n            position: fixed;\n            z-index: 1000;\n            left: 0;\n            top: 0;\n            width: 100%;\n            height: 100%;\n            background-color: rgba(0, 0, 0, 0.9);\n            overflow: auto;\n            transition: opacity 0.3s ease;\n        }<\/p>\n<p>        .modal-content {\n            display: block;\n            max-width: 90%;\n            max-height: 90vh;\n            margin: 5vh auto;\n            object-fit: contain;\n            animation: zoom 0.3s;\n        }<\/p>\n<p>        @keyframes zoom {\n            from {transform: scale(0.8); opacity: 0;}\n            to {transform: scale(1); opacity: 1;}\n        }<\/p>\n<p>        .close {\n            position: absolute;\n            top: 20px;\n            right: 35px;\n            color: #fff;\n            font-size: 40px;\n            font-weight: bold;\n            transition: 0.3s;\n            cursor: pointer;\n            \/* \u6dfb\u52a0\u89e6\u63a7\u4f18\u5316 *\/\n            padding: 10px;\n            line-height: 1;\n            user-select: none;\n            -webkit-user-select: none;\n        }<\/p>\n<p>        .close:hover,\n        .close:focus {\n            color: #bbb;\n            text-decoration: none;\n        }<\/p>\n<p>        \/* \u89c6\u9891\u70b9\u51fb\u63d0\u793a\u6837\u5f0f *\/\n        .video-overlay {\n            position: absolute;\n            top: 0;\n            left: 0;\n            width: 100%;\n            height: 100%;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            background-color: rgba(0, 0, 0, 0.2);\n            opacity: 0;\n            transition: opacity 0.3s ease;\n            \/* \u89e6\u63a7\u4f18\u5316 *\/\n            touch-action: manipulation;\n            cursor: pointer;\n        }<\/p>\n<p>        .media-item-wrapper:hover .video-overlay {\n            opacity: 1;\n        }<\/p>\n<p>        \/* \u4e3a\u89e6\u6478\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u6548\u679c *\/\n        .media-item-wrapper:active .video-overlay {\n            opacity: 0.8;\n        }<\/p>\n<p>        .play-icon {\n            width: 80px;\n            height: 80px;\n            background-color: rgba(255, 255, 255, 0.9);\n            border-radius: 50%;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            color: var(--ph-orange);\n            font-size: 24px;\n            font-weight: bold;\n            \/* \u89e6\u63a7\u4f18\u5316 *\/\n            user-select: none;\n            -webkit-user-select: none;\n        }<\/p>\n<p>        \/* --- \u54cd\u5e94\u5f0f\u5fae\u8c03 --- *\/\n        @media (min-width: 600px) {\n            .media-item-wrapper {\n                width: 60%; \/* \u684c\u9762\u7aef\u7a0d\u5fae\u7a84\u4e00\u70b9\uff0c\u5c55\u793a\u66f4\u591a\u5f20 *\/\n                scroll-snap-align: start; \/* \u684c\u9762\u7aef\u9760\u5de6\u5bf9\u9f50 *\/\n            }\n        }<\/p>\n<p>        \/* \u79fb\u52a8\u8bbe\u5907\u54cd\u5e94\u5f0f\u4f18\u5316 *\/\n        @media (max-width: 599px) {\n            \/* \u6a21\u6001\u6846\u4f18\u5316 *\/\n            .modal-content {\n                max-width: 95%;\n                max-height: 85vh;\n                margin: 10vh auto;\n            }<\/p>\n<p>            .close {\n                top: 10px;\n                right: 20px;\n                font-size: 30px;\n                \/* \u589e\u5927\u70b9\u51fb\u533a\u57df *\/\n                padding: 15px;\n            }<\/p>\n<p>            \/* \u89c6\u9891\u64ad\u653e\u56fe\u6807\u4f18\u5316 *\/\n            .play-icon {\n                width: 60px;\n                height: 60px;\n                font-size: 18px;\n            }<\/p>\n<p>            \/* \u786e\u4fdd\u5a92\u4f53\u5185\u5bb9\u5728\u5c0f\u5c4f\u5e55\u4e0a\u6b63\u786e\u663e\u793a *\/\n            .media-content {\n                object-fit: cover;\n            }\n        }\n    <\/style>\n<p><\/head><br \/>\n<body><\/p>\n<div class=\"container\">\n<h1 style=\"text-align:center; margin-bottom:40px; font-weight:900;\">PH\u70ed\u699c | 2026-07-26<\/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\/OFM4DSHZYBEP2A\" class=\"app-title\">TouchGrass<\/a><\/p>\n<div class=\"one-liner\">Context-aware break reminders without invasive permissions<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">327<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>TouchGrass \u662f\u4e00\u6b3e\u4e3a macOS \u8bbe\u8ba1\u7684\u514d\u6743\u9650\u3001\u60c5\u5883\u611f\u77e5\u7684\u4f11\u606f\u63d0\u9192\u5de5\u5177\uff0c\u80fd\u5728\u4f1a\u8bae\u3001\u901a\u8bdd\u3001\u5f55\u5c4f\u7b49\u5173\u952e\u65f6\u523b\u667a\u80fd\u9759\u9ed8\uff0c\u907f\u514d\u5728\u7528\u6237\u6df1\u5ea6\u5de5\u4f5c\u4e2d\u5f3a\u884c\u6253\u65ad\uff0c\u89e3\u51b3\u4f20\u7edf\u5b9a\u65f6\u63d0\u9192\u603b\u662f\u6311\u9519\u65f6\u95f4\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\/7d5090e6-ad2d-46ea-88a7-a0377ddc5a02.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/c9a330b6-9c78-4911-ad33-6b53167d9655.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/20a2a539-6213-48fc-ad1e-aac88427aebe.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\/f12316e5-1ba7-4f32-b3c7-e6ecd6185a51.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/vhGAXFGhDU0\"><source src=\"https:\/\/youtu.be\/vhGAXFGhDU0\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Health &#038; Fitness<\/span><br \/>\n            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">Menu Bar Apps<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">macOS<\/span><br \/>\n            <span class=\"tag\">\u5065\u5eb7<\/span><br \/>\n            <span class=\"tag\">\u63d0\u9192\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u4f11\u606f\u63d0\u9192<\/span><br \/>\n            <span class=\"tag\">\u60c5\u5883\u611f\u77e5<\/span><br \/>\n            <span class=\"tag\">\u9690\u79c1\u4fdd\u62a4<\/span><br \/>\n            <span class=\"tag\">\u65e0\u6743\u9650<\/span><br \/>\n            <span class=\"tag\">\u6548\u7387\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u62a4\u773c\u63d0\u9192<\/span><br \/>\n            <span class=\"tag\">\u4e45\u5750\u63d0\u9192<\/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\u667a\u80fd\u7b49\u5f85\u201d\u7406\u5ff5\uff0c\u91cd\u70b9\u5173\u6ce8\u4ea7\u54c1\u5982\u4f55\u5728\u4e0d\u7533\u8bf7\u65e0\u969c\u788d\u6743\u9650\u4e0b\u68c0\u6d4b\u4e0a\u4e0b\u6587\uff08\u5982\u901a\u8bdd\u3001\u5f55\u5c4f\uff09\u3002\u90e8\u5206\u7528\u6237\u8bf7\u6c42Windows\u7248\u3001iOS\u7248\u3001\u7279\u5b9a\u5e94\u7528\u767d\u540d\u5355\u53ca\u4f11\u606f\u65f6\u64ad\u653e\u8f7b\u97f3\u4e50\u529f\u80fd\u3002\u5f00\u53d1\u8005\u56de\u5e94\u4f1a\u8865\u5145API\u8bf4\u660e\u9875\u9762\u4ee5\u901a\u8fc7\u4f01\u4e1aIT\u5ba1\u6838\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                TouchGrass\u7684\u806a\u660e\u4e4b\u5904\uff0c\u4e0d\u5728\u4e8e\u591a\u4e86\u4e00\u4e2a\u63d0\u9192\u529f\u80fd\uff0c\u800c\u5728\u4e8e\u91cd\u65b0\u5b9a\u4e49\u4e86\u201c\u4ec0\u4e48\u65f6\u5019\u4e0d\u8be5\u63d0\u9192\u201d\u3002\u5b83\u7cbe\u51c6\u5730\u5207\u4e2d\u4e86\u4f20\u7edf\u6548\u7387\u5de5\u5177\u7684\u201c\u66b4\u529b\u7f8e\u5b66\u201d\u4e4b\u5f0a\u2014\u2014\u4f60\u660e\u660e\u5728\u5f00\u4f1a\uff0c\u5b83\u5f39\u7a97\u8ba9\u4f60\u7ad9\u8d77\u6765\uff1b\u4f60\u6b63\u6df1\u5ea6\u7f16\u7801\uff0c\u5b83\u50ac\u4fc3\u4f60\u7728\u773c\u3002\u8fd9\u79cd\u53cd\u4eba\u6027\u7684\u8bbe\u8ba1\uff0c\u4e0e\u5176\u8bf4\u662f\u63d0\u9192\uff0c\u4e0d\u5982\u8bf4\u662f\u566a\u97f3\uff0c\u6700\u7ec8\u5bfc\u81f4\u7528\u6237\u8981\u4e48\u5173\u6389\u901a\u77e5\uff0c\u8981\u4e48\u5378\u8f7d\u5e94\u7528\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u57fa\u4e8eApple\u7cfb\u7edfAPI\uff08\u5982CoreAudio\u3001\u9ea6\u514b\u98ce\u6307\u793a\u5668\uff09\u5b9e\u73b0\u4e0a\u4e0b\u6587\u611f\u77e5\uff0c\u5e76\u575a\u6301\u4e0d\u7533\u8bf7Accessibility\u6743\u9650\uff0c\u662f\u8fd9\u6b3e\u4ea7\u54c1\u6700\u9ad8\u660e\u7684\u6280\u672f\u51b3\u7b56\u548c\u5546\u4e1a\u7b56\u7565\u3002\u8fd9\u4e0d\u4ec5\u5316\u89e3\u4e86\u666e\u901a\u7528\u6237\u5bf9\u9690\u79c1\u7684\u62b5\u89e6\uff0c\u66f4\u91cd\u8981\u5730\uff0c\u5b83\u6253\u6d88\u4e86IT\u7ba1\u7406\u5458\u548c\u4f01\u4e1a\u91c7\u8d2d\u6700\u540e\u7684\u5408\u89c4\u987e\u8651\u3002\u5bf9\u4e8e\u4e00\u4e2a4\u7f8e\u5143\u7684\u7ec8\u8eab\u4e70\u65ad\u5de5\u5177\uff0c\u65e0\u6cd5\u901a\u8fc7\u4f01\u4e1a\u5b89\u5168\u5ba1\u67e5\u5c31\u7b49\u4e8e\u5ba3\u5224\u6b7b\u5211\u3002\u5f00\u53d1\u8005\u4ece\u7528\u6237\u8bc4\u8bba\u4e2d\u610f\u8bc6\u5230\u4e86\u8fd9\u4e00\u70b9\uff0c\u5e76\u5c06\u5176\u8f6c\u5316\u4e3a\u4e00\u4e2a\u660e\u786e\u7684\u5356\u70b9\uff0c\u8fd9\u8fdc\u6bd4\u5806\u780c\u53e6\u4e00\u4e2a\u201c\u756a\u8304\u949f\u201d\u6709\u610f\u4e49\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u9700\u8981\u6cfc\u4e00\u76c6\u51b7\u6c34\u7684\u662f\uff0c\u5b83\u7684\u4ef7\u503c\u5929\u82b1\u677f\u4e5f\u5f88\u660e\u663e\uff1a\u5b83\u5728\u201c\u4e0d\u6253\u6270\u201d\u4e0a\u505a\u5230\u4e86\u6781\u81f4\uff0c\u4f46\u5728\u201c\u5982\u4f55\u8ba9\u7528\u6237\u771f\u6b63\u53bb\u4f11\u606f\u201d\u4e0a\uff0c\u5e76\u6ca1\u6709\u7ed9\u51fa\u9769\u547d\u6027\u7684\u89e3\u6cd5\u3002\u5b83\u80fd\u5e2e\u4f60\u9009\u5bf9\u65f6\u673a\uff0c\u5374\u65e0\u6cd5\u89e3\u51b3\u4f60\u201c\u660e\u77e5\u5e94\u8be5\u4f11\u606f\u5374\u4f9d\u7136\u60f3\u62d6\u5ef6\u201d\u7684\u4eba\u6027\u5f31\u70b9\u3002\u540c\u6837\uff0c\u76ee\u524d\u4ec5\u9650macOS\uff0c\u4e14\u5bf9\u591a\u8bbe\u5907\u3001\u8de8\u751f\u6001\u7684\u76d1\u6d4b\u65e0\u80fd\u4e3a\u529b\uff0c\u8fd9\u9650\u5236\u4e86\u5176\u66f4\u5e7f\u6cdb\u7684\u5e94\u7528\u573a\u666f\u3002\n            <\/p>\n<p class=\"ai-content\">\n                4\u7f8e\u5143\u7684\u4ef7\u683c\u7cbe\u51c6\u5361\u4f4d\uff0c\u50cf\u4e00\u628a\u7cbe\u5de7\u7684\u745e\u58eb\u519b\u5200\uff0c\u4e13\u6cbb\u88ab\u82f9\u679c\u751f\u6001\u7ed1\u5b9a\u7684\u4eba\u7fa4\u3002\u5b83\u5bf9\u201c\u60c5\u5883\u201d\u7684\u7cbe\u51c6\u5224\u65ad\uff0c\u8ba9\u5b83\u6210\u4e3a\u4e00\u4e2a\u4e0d\u90a3\u4e48\u4ee4\u4eba\u8ba8\u538c\u7684\u5b58\u5728\uff0c\u8fd9\u672c\u8eab\u5c31\u8d62\u4e86\u7edd\u5927\u591a\u6570\u540c\u7c7b\u8f6f\u4ef6\u3002\u4f46\u8981\u8bf4\u5b83\u80fd\u626d\u8f6c\u4f60\u7684\u5065\u5eb7\u4e60\u60ef\uff1f\u522b\u60f3\u592a\u591a\uff0c\u5b83\u53ea\u662f\u4e2a\u61c2\u5f97\u95ed\u5634\u7684\u3001\u79f0\u804c\u7684\u201c\u62a4\u6797\u5458\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\">TouchGrass<\/span>\n                <\/div>\n<div class=\"comment-content\">TouchGrass is a context-aware break reminder built for macOS. Most break reminders only know one thing: time. TouchGrass waits through meetings, calls, media playback and screen recordings, counts time away from your Mac as a completed break, and reminds you to blink, improve your posture and rest after long typing sessions. Everything runs locally, never asks for Accessibility permission, and respects your workflow. 7 day free trial, then a one time purchase of $3.99 with lifetime updates.<\/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! I&#8217;m Saran, the solo developer behind <a href=\"https:\/\/touchgrass.land\" target=\"_blank\" rel=\"nofollow noopener noreferrer\"><strong>TouchGrass<\/strong><\/a>.<\/p>\n<p>Like a lot of people, I had installed a break reminder before&#8230; and eventually trained myself to ignore it. Not because I didn&#8217;t need breaks. Because reminders always seemed to appear at the worst possible time:<\/p>\n<ul>\n<li>\n<p>In the middle of a meeting.<\/p>\n<\/li>\n<li>\n<p>While watching a tutorial.<\/p>\n<\/li>\n<li>\n<p>During a screen recording.<\/p>\n<\/li>\n<li>\n<p>Right when I was deep in flow.<\/p>\n<\/li>\n<\/ul>\n<p>So I built <strong>TouchGrass<\/strong> to do the opposite.<\/p>\n<p>Instead of interrupting you on a timer, it waits for the right moment. It automatically pauses during meetings, media playback and screen recordings, counts time away from your Mac as a completed break, and includes blink, posture and typing reminders.<\/p>\n<p>One thing I cared about from day one was privacy. TouchGrass <strong>never asks for Accessibility permission<\/strong>, and everything runs locally on your Mac.<\/p>\n<p>It&#8217;s my first commercial macOS app, built over months of evenings and weekends. It&#8217;s currently available with a <strong>7 day free trial<\/strong>, then a <strong>one time purchase of $3.99 with lifetime updates<\/strong>.<\/p>\n<p>I&#8217;d genuinely love your feedback. I&#8217;ll be here all day answering questions and taking notes for future updates.<\/p>\n<p>Website: <a href=\"https:\/\/touchgrass.land\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/touchgrass.land<\/a><br \/> Download: <a href=\"https:\/\/touchgrass.land\/download\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/touchgrass.land\/download<\/a><\/p>\n<p>Thank you for checking it out, 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>11<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@touchgrassland\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@touchgrassland<\/a>&nbsp;Quick question: what\u2019s one simple, low-friction way you\u2019d recommend new users try TouchGrass for a week so they actually form the habit? For example, which settings do you set first, how long do you let \u201ctime away\u201d count as a break, and any tips to avoid re-disabling it when deep in flow?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@touchgrassland\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@touchgrassland<\/a>&nbsp;Congrats on the launch today! I really love the concept but sadly, I&#8217;m not a cool Mac user &#8211; any plans for us PCers?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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>There should be longer breaks to make us go outside for longer time \ud83d\ude42<\/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\/@busmark_w_nika\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@busmark_w_nika<\/a>&nbsp;Yes, TouchGrass handles that. After every 3 short breaks, it tells to take a long break (10 mins by default). All these options are configurable.<\/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\">Hi, congrats launch,<\/p>\n<p>What\u2019s the biggest product decision you\u2019ve had to reverse so far \u2014 and what did it teach you about how people actually take breaks versus how they say they want to take breaks?<\/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\/@mrbrjan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mrbrjan<\/a>&nbsp;Great question! The biggest change was realising people do not need more reminders. They need reminders at the right time. I started with a traditional timer, but it felt just as interruptive as every other app. That is when making TouchGrass context aware became the core 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\">\n<p>IOS App?<\/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\/@pratikkinage\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@pratikkinage<\/a>&nbsp;This is available only for macOS for now.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hi)<br \/>How exactly does the app detect that a call or screen recording is happening, given that it deliberately never requests the Accessibility permission?<\/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\/@av777a\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@av777a<\/a>&nbsp;TouchGrass queries CoreAudio&#8217;s running state and process ownership metadata. All these information are provided by Apple. Along with that we have some logic which helps in detecting better.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>3<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>congrats on shipping, the &#8220;waits for the right moment instead of a hard timer&#8221; framing is the right instinct, most break apps get uninstalled exactly because they interrupt a call. curious about the other direction though &#8211; if I&#8217;m sitting at my desk not touching the Mac for a while (reading something on paper, on a phone call with earbuds, just thinking) does that idle time count toward a completed break the same as actually walking away, or does it only credit a break once you&#8217;ve been away long enough that it&#8217;s confident you left the desk?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@galdayan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@galdayan<\/a>&nbsp;Great question! It&#8217;s configurable. If you&#8217;re idle, TouchGrass doesn&#8217;t immediately assume you&#8217;ve taken a break. It uses a few privacy friendly signals to build confidence before deciding. For short breaks it usually pauses and resumes where you left off, while longer idle periods can count as a completed break and reset the timer. The goal is to avoid reminding you to take a break you&#8217;ve already naturally taken.<\/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 tagline mentions context-aware break reminders without invasive permissions, which raises a practical question: what kinds of context can TouchGrass safely use without asking for broad access? Is it more about local activity signals, calendar\/focus state, or something else? That boundary would be helpful to understand for teams that are cautious about productivity tools watching too much.<\/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\/@ivory_xuxuxu\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ivory_xuxuxu<\/a>&nbsp;Great question! TouchGrass only uses Apple provided system APIs to observe privacy friendly system signals such as idle time, media playback, sleep\/wake events, screen recording status, and whether the system microphone is currently in use (the same status shown by the macOS microphone indicator). <\/p>\n<p>It <strong>does not<\/strong> access your calendar events, meeting details, call details, screen contents, browser tabs, browser history, browser content, keystrokes, typed text, microphone audio, camera, or Accessibility APIs. Everything runs locally on your Mac because privacy was one of the core design goals from day 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<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Love that it respects meetings and screen recordings instead of just nagging. One thing I&#8217;d love is a custom activity category for apps like writing tools where I want a break but my keystrokes keep triggering the &#8220;you&#8217;re typing a lot&#8221; reminder, maybe a whitelist of apps where it stays quiet.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@cemaldeiciczmg\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@cemaldeiciczmg<\/a>&nbsp;Thanks! TouchGrass already does this. You can enable a reminder based on continuous typing activity, so if you&#8217;ve been typing for a long time it&#8217;ll gently remind you to relax your wrists. Right now it&#8217;s a global setting rather than app specific, but I really like your suggestion and I&#8217;ll see if I can add per app behaviour in a future update.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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>Saran, the answer you gave ivory (idle time, media playback, sleep\/wake, the mic indicator, and nothing else) is more useful than the tagline, and right now it lives only in a comment thread.<\/p>\n<\/p>\n<p>I sell software that runs on the machines where patient notes get typed, so every app a clinician installs becomes a security review item. What passes that review is never the privacy policy, it is the claim someone can verify without trusting you: no Accessibility permission is checkable at the OS prompt, a sentence in a doc is not.<\/p>\n<\/p>\n<p>Is that API list anywhere on the site? The person who approves a $3.99 install on a work Mac is usually not the person who wants it.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@clemente_lopez1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@clemente_lopez1<\/a>&nbsp;That&#8217;s a really good point. You&#8217;re right, and I hadn&#8217;t thought about it from an IT approval perspective. Right now it&#8217;s only mentioned in a few places, but I&#8217;m going to add a dedicated page explaining exactly which Apple APIs TouchGrass uses, what it doesn&#8217;t access, and why no Accessibility permission is required. I&#8217;ll also be publishing it on the Mac AppStore soon, which should give people additional confidence since it goes through Apple&#8217;s review process. Thanks for the suggestion!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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>&#8220;Without invasive permissions&#8221; doing a lot of work in this tagline, and honestly it&#8217;s the right lead &#8211; half these tools die at the permissions screen. Did you find people actually take the breaks, or does it become another dismissed notification after week one?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@sakshitbhan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sakshitbhan<\/a>&nbsp;Thanks! That was exactly the problem I wanted to solve. So far the feedback has been that people dismiss it far less because it waits for a better moment instead of interrupting deep work. That&#8217;s what I was aiming for.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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>Looks pretty good, but I&#8217;d like some light music when I&#8217;m resting \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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@maxwell_trent\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@maxwell_trent<\/a>&nbsp;Thanks! I like that idea. TouchGrass with birds chirping might be even more relaxing. I&#8217;ll add optional ambient sounds in a future update!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Curious about one edge case: if I step away from my Mac but just switch to Slack on my phone, it\u2019s not really a break. Do you try to account for that, or is being away from the device the main signal?<\/p>\n<p>Congrats on the launch!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@jared_salois\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jared_salois<\/a>&nbsp;Thanks! That&#8217;s a conscious privacy tradeoff. Right now it only understands what&#8217;s happening on your Mac. I deliberately avoided tracking activity on other devices.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Really like the idea of waiting for the right moment instead of interrupting people with another rigid timer. It feels like a simple, lightweight product, but honestly something almost everyone who spends hours at a computer could benefit from.<\/p>\n<p>I\u2019m currently working on Windows, so unfortunately I can\u2019t try it myself yet \u2014 but I\u2019d definitely be interested if a Windows version comes in the future. 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\/@andrey_ivanchenko\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@andrey_ivanchenko<\/a>&nbsp;Thanks! Really glad you like the idea. Hopefully I can bring it to Windows someday!<\/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>I need this so badly, with coding agent I can stay locked in for hours without even realizing! <\/p>\n<p>Let me try it out and provide feedback, but the only issue I can see without trying right now is that timing needs to match when I am done giving the prompts in all pending sessions and they are all firing up, that would be a great time for me to &#8220;TouchGrass&#8221; <\/p>\n<p>Will provide more feedback after my actual usage, but this is awesome, I am excited to try this out. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>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\/@nitish_garg4\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@nitish_garg4<\/a>&nbsp;Thanks! That&#8217;s exactly the kind of workflow I built it for. Looking forward to hearing what you think after trying it!<\/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>I think this app is definitely something I would not use because I have this habit already and I am pretty healthy BUT easily good for highly productive people that have 10+ years of experience in tech or working for corporate. Another pool of people that would love this is students like medical or PhD people.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@saderod\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@saderod<\/a>&nbsp;Thanks! I actually agree with you. If someone already has healthy habits and naturally takes breaks, TouchGrass probably isn&#8217;t something they&#8217;ll think about much, and that&#8217;s a good thing.<\/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\">Funny name \ud83d\ude05 I usually get annoyed by break reminders, ignore them and end up focusing even harder. So checking whether I\u2019m actually deep in something, or whether I wasn\u2019t even at the computer, already sounds much better. Congrats on the launch!<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@etiennegarcia\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@etiennegarcia<\/a>&nbsp;Thanks! \ud83d\ude04 That&#8217;s exactly what I was aiming for. I wanted break reminders to feel helpful instead of something we instantly dismiss.<\/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 &#8220;trained myself to ignore it&#8221; line is the real problem here, and waiting for a good moment is the right fix. The thing I keep turning over: the sessions you most need to be pulled out of are the 2am flow states and the late-night scroll you don&#8217;t want interrupted, and those are exactly the moments a polite reminder stays quiet. Does it ever break in when you&#8217;ve clearly been going too long, or is staying out of the way always the priority? Congrats on the #1.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#2<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/BFVWD7733PP65I\" class=\"app-title\">Athena by Shoplazza<\/a><\/p>\n<div class=\"one-liner\">An orchestrator agent for your entire commerce stack<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">314<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Athena\u662f\u4e00\u4e2aAI\u7535\u5546\u667a\u80fd\u4f53\uff0c\u80fd\u4e00\u7ad9\u5f0f\u5b8c\u6210\u4ece\u642d\u5efa\u7cbe\u54c1\u5e97\u94fa\u3001\u6279\u91cf\u4e0a\u67b6\u5546\u54c1\u5230\u914d\u7f6e\u8425\u9500\u6d3b\u52a8\u4e0e\u7269\u6d41\u7684\u5168\u6d41\u7a0b\u8fd0\u8425\uff0c\u89e3\u51b3\u4e2d\u5c0f\u5546\u5bb6\u201c\u5f00\u5e97\u5bb9\u6613\uff0c\u6301\u7eed\u8fd0\u8425\u96be\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\/614a9e6e-e262-4934-b558-9d1a44a84e45.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\/f3394d6e-7d0e-481a-9bd0-1dfba2e1c3f2.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/ed8c1af7-7504-4bea-98e4-77cb682dea83.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\/633e084b-bbaa-415c-8967-2b4a1e705638.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/96ec1d41-c4f7-4d88-b49c-b942eb01ead5.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/178f83d8-79d2-45ec-84fb-e0cc7ea3f7f9.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\/ca223af3-9a6e-4876-b0b5-085e8618a6ff.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\/1c1ade07-9a43-458f-965a-414dc8bfdfa6.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/-EYV7-ntles\"><source src=\"https:\/\/youtu.be\/-EYV7-ntles\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">E-Commerce<\/span><br \/>\n            <span class=\"tag\">Shopping<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u7535\u5546\u4ee3\u7406<\/span><br \/>\n            <span class=\"tag\">\u7535\u5546\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">\u5e97\u94fa\u642d\u5efa<\/span><br \/>\n            <span class=\"tag\">\u5546\u54c1\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u5e7f\u544a\u6295\u653e<\/span><br \/>\n            <span class=\"tag\">\u8fd0\u8425\u95ed\u73af<\/span><br \/>\n            <span class=\"tag\">\u667a\u80fd\u4f53<\/span><br \/>\n            <span class=\"tag\">Shopify\u7ade\u54c1<\/span><br \/>\n            <span class=\"tag\">\u5168\u6808\u7535\u5546<\/span><br \/>\n            <span class=\"tag\">SaaS<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u5173\u6ce8\u5176\u81ea\u4e3b\u6027\u4e0e\u5b89\u5168\u6027\uff0c\u6709\u63d0\u95ee\u80fd\u5426\u534f\u8c03\u8de8\u7cfb\u7edf\u5ba2\u6237\u6570\u636e\u3001\u662f\u5426\u652f\u6301\u8fc1\u79fb\u73b0\u6709\u5e97\u94fa\u3001\u4ee5\u53ca\u4e0e\u7b2c\u4e09\u65b9CRM\/\u90ae\u4ef6\u5de5\u5177\u7684\u96c6\u6210\u6df1\u5ea6\u3002\u6838\u5fc3\u5efa\u8bae\u662f\u5e94\u5c06\u5ba2\u670d\u53cd\u9988\uff08\u5982DM\uff09\u7eb3\u5165\u51b3\u7b56\u95ed\u73af\uff0c\u5b9e\u73b0\u201c\u9519\u8bef\u5373\u611f\u77e5\u201d\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                Athena\u7684\u771f\u6b63\u4ef7\u503c\u4e0d\u5728\u4e8e\u201c\u751f\u6210\u5e97\u94fa\u201d\u8fd9\u4e2a\u5671\u5934\uff0c\u800c\u5728\u4e8e\u5b83\u8bd5\u56fe\u6210\u4e3a\u7535\u5546\u8fd0\u8425\u7684\u201c\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838\u201d\u3002\u76ee\u524d\u5e02\u9762\u4e0a\u7edd\u5927\u591a\u6570\u7684AI\u7535\u5546\u5de5\u5177\u662f\u201c\u70b9\u72b6\u201d\u7684\uff0c\u6bd4\u5982\u751f\u6210\u6587\u6848\u3001\u751f\u6210\u56fe\u7247\uff0c\u5b83\u4eec\u89e3\u51b3\u7684\u662f\u5355\u4e2a\u4efb\u52a1\uff0c\u4f46\u8fd0\u8425\u7684\u6838\u5fc3\u662f\u201c\u6d41\u7a0b\u201d\u4e0e\u201c\u8026\u5408\u201d\u2014\u2014\u5f53\u4f60\u5728\u51cc\u66682\u70b9\u4fee\u6539\u4e86\u8fd0\u8d39\u89c4\u5219\uff0c\u8fd9\u5e94\u8be5\u81ea\u52a8\u89e6\u53d1\u5e7f\u544a\u6587\u6848\u7684\u66f4\u65b0\uff0c\u5e76\u53cd\u5411\u63a8\u9001\u7ed9\u5ba2\u670d\u4f5c\u4e3aFAQ\u7d20\u6750\u3002Athena\u7684\u91ce\u5fc3\u5728\u4e8e\u7528\u540c\u4e00\u4e2a\u667a\u80fd\u4f53\u5c06\u5efa\u7ad9\u3001\u5546\u54c1\u3001\u8425\u9500\u3001\u7269\u6d41\u3001\u652f\u4ed8\u8fd9\u4e9b\u677e\u6563\u6a21\u5757\u7f1d\u5408\u8d77\u6765\uff0c\u8ba9\u51b3\u7b56\u5728\u5185\u90e8\u5f62\u6210\u95ed\u73af\uff0c\u800c\u975e\u4f9d\u8d56\u4eba\u5de5\u5728\u4e0d\u540c\u540e\u53f0\u6765\u56de\u642c\u8fd0\u4fe1\u606f\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u4ece\u8bc4\u8bba\u4e2d\u66b4\u9732\u51fa\u7684\u8f6f\u808b\u4e5f\u6781\u5176\u81f4\u547d\u3002\u9996\u5148\uff0c\u5b83\u7684\u201c\u95ed\u73af\u201d\u53ea\u9650\u4e8eShoplazza\u751f\u6001\u5185\u90e8\uff0c\u5bf9\u5916\u90e8CRM\u3001\u90ae\u4ef6\u8425\u9500\u3001\u4f1a\u8ba1\u8f6f\u4ef6\u548c\u5ba2\u670d\u7cfb\u7edf\u7684\u8fde\u63a5\u8fd1\u4e4e\u7a7a\u767d\uff0c\u8fd9\u610f\u5473\u7740\u76ee\u524d\u5b83\u66f4\u50cf\u4e00\u4e2a\u201c\u5f3a\u5927\u7684\u5185\u5faa\u73af\u201d\uff0c\u65e0\u6cd5\u6210\u4e3a\u771f\u6b63\u4e2d\u5fc3\u5316\u7684\u201c\u7f16\u6392\u5c42\u201d\u3002\u5176\u6b21\uff0c\u867d\u7136\u521b\u59cb\u4ebaJeff\u5f3a\u8c03\u4eba\u7c7b\u4fdd\u7559\u201c\u54c1\u724c\u3001\u9884\u7b97\u3001\u98ce\u9669\u201d\u7684\u63a7\u5236\u6743\uff0c\u4f46\u6700\u7280\u5229\u7684\u8bc4\u8bba\u6307\u51fa\u4e86\u76f2\u533a\uff1a\u5ba2\u6237\u53cd\u9988\uff08\u5c24\u5176\u662f\u591a\u8bed\u8a00\u5ba2\u670d\u6d88\u606f\uff09\u662f\u76ee\u524d\u6700\u5927\u7684\u9ed1\u76d2\u3002\u4e00\u4e2aAI\u6539\u9519\u7684\u504f\u8fdc\u5730\u533a\u8fd0\u8d39\u89c4\u5219\uff0c\u901a\u8fc7\u90ae\u4ef6\u53cd\u9988\u53ef\u80fd\u5728\u4e09\u5929\u540e\u624d\u88ab\u6ce8\u610f\u5230\uff0c\u4f46\u901a\u8fc7Instagram DM\uff0c\u5ba2\u6237\u5728\u51e0\u5c0f\u65f6\u5185\u5c31\u4f1a\u7ed9\u4f60\u4e09\u4e2a\u5dee\u8bc4\u3002\u5982\u679cAthena\u4e0d\u80fd\u628a\u6536\u4ef6\u7bb1\u4f5c\u4e3a\u6700\u9ad8\u7684\u9519\u8bef\u68c0\u6d4b\u4f20\u611f\u5668\u5e76\u89e6\u53d1\u81ea\u52a8\u56de\u6eda\uff0c\u5b83\u7684\u201c\u6301\u7eed\u8fd0\u8425\u201d\u5c31\u4ecd\u7136\u662f\u76f2\u4eba\u6478\u8c61\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u603b\u800c\u8a00\u4e4b\uff0cAthena\u5728\u201c\u6267\u884c\u201d\u5c42\u9762\u5df2\u7ecf\u505a\u5f97\u4e0d\u9519\u2014\u2014\u6279\u91cf\u6539\u4ef7\u3001\u6295\u5e7f\u544a\u3001\u5efa\u7ad9\u8fd9\u4e9b\u673a\u68b0\u5de5\u4f5c\u786e\u5b9e\u80fd\u5927\u5e45\u63d0\u6548\u3002\u4f46\u4ece\u201c\u4ee3\u8fd0\u8425\u201d\u5230\u201c\u771f\u667a\u80fd\u201d\uff0c\u5b83\u8fd8\u9700\u8981\u8865\u4e0a\u6253\u901a\u5916\u90e8\u751f\u6001\u548c\u63a5\u5165\u7528\u6237\u53cd\u9988\u5c42\u4e24\u5757\u6838\u5fc3\u62fc\u56fe\u3002\u5bf9\u4e8e\u6709\u51e0\u5341\u4e2aSKU\u3001\u4e00\u4eba\u8eab\u517c\u591a\u804c\u7684\u4e2d\u5c0f\u5356\u5bb6\uff0c\u5b83\u5df2\u662f\u5f53\u524d\u6700\u597d\u7684\u201c\u6570\u5b57\u5458\u5de5\u201d\uff1b\u4f46\u5bf9\u8ffd\u6c42\u7cbe\u7ec6\u5316\u3001\u591a\u89e6\u70b9\u8fd0\u8425\u7684\u54c1\u724c\uff0c\u76ee\u524d\u7684Athena\u4ecd\u662f\u201c\u534a\u6210\u54c1\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\">Athena by Shoplazza<\/span>\n                <\/div>\n<div class=\"comment-content\">Athena helps you build a polished, launch-ready store with complete pages, products, and localized copy. From there, it keeps the business moving by creating products in bulk, setting up discounts, configuring shipping, and launching ad campaigns. Payments, logistics, fulfillment, and loyalty are built into the same platform, so the store Athena creates is not just a storefront. It is ready to operate as a real business.<\/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>Part of the team that&#8217;s been building Athena here.<\/p>\n<p>After years of working with e-commerce merchants, we&#8217;ve learned the real challenge isn&#8217;t launching a storefront. It&#8217;s connecting design, payments, shipping, and daily operations into one business that actually runs. Most AI tools hand you half a storefront and stop there. You still have to figure out theme setup and operations yourself. Athena doesn&#8217;t work like that. It builds you a launch-ready store, then keeps it running.<\/p>\n<p>\ud83d\udc49 Here&#8217;s how it works:<\/p>\n<ol>\n<li>\n<p>Tell Athena what you sell. Describe it, upload product photos, or paste an existing store link.<\/p>\n<\/li>\n<li>\n<p>Review the store it builds and go live. Everything is finished: pages, products, policies, localized copy.<\/p>\n<\/li>\n<li>\n<p>Hand over the daily work: bulk product creation, discounts, shipping, ad campaigns.<\/p>\n<\/li>\n<\/ol>\n<p>\ud83d\udca1 Why you want Athena:<\/p>\n<ul>\n<li>\n<p>Launch as-is: a finished store, not a template you spend a week fixing.<\/p>\n<\/li>\n<li>\n<p>One name for everything: the same AI builds, stocks, markets, and operates your store.<\/p>\n<\/li>\n<li>\n<p>Visuals without a studio: model shots, lifestyle images, and ad creatives from plain product photos.<\/p>\n<\/li>\n<li>\n<p>Not just a storefront: payments, logistics, fulfillment, and loyalty are built into the platform.<\/p>\n<\/li>\n<\/ul>\n<p>You stay in control: Athena proposes and executes, you approve.<\/p>\n<p>\ud83c\udf81 To celebrate the launch: build your first store with Athena for free, plus 100 bonus credits and a 7-day free trial when you sign up through <a href=\"https:\/\/www.shoplaza.ai\/?utm_source=producthunt\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Shoplazza AI<\/a><\/p>\n<p>I\u2019ll be here all day. Tell me which store task you\u2019d like Athena to handle first.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>18<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ryancheng\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ryancheng<\/a>&nbsp;The orchestration layer is where these commerce stacks usually break for me. Every tool wants to be the source of truth. When Athena coordinates across, say, your ESP and your ads platform, who ends up owning the customer record? Does it read live state from each tool or try to hold its own copy?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>4<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ryancheng\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ryancheng<\/a>&nbsp;The commerce stack orchestration idea caught my eye. When you say Athena coordinates the entire stack, is it mainly meant for operational workflows like marketing, sales, and productivity tasks, or does it also touch engineering and creative work? The topic mix is pretty broad, so I\u2019d be interested in where teams usually start with it first.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ryancheng\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ryancheng<\/a>&nbsp;For merchants who already have an existing store, what\u2019s the smoothest way to migrate while keeping live orders, customer data, and custom theme tweaks intact? Are there any limitations or best practices you\u2019d recommend for a low-risk transition?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@jeff_pz\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"jeff_pz\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jeff_pz<\/a> mentioned it&#8217;s not fully autonomous end-to-end yet, especially for stuff like seasonal campaigns, what&#8217;s the current split between what Athena runs on its own vs what still needs manual review before going live?<\/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\">\n<p> <a href=\"https:\/\/www.producthunt.com\/@abod_rehman\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@abod_rehman<\/a>&nbsp;Great question, Abdul. For a seasonal campaign like BFCM, Athena can take on execution-heavy tasks such as creating products in bulk, updating product information, and creating or copying discount campaigns. For any important action that creates, edits, or deletes something in the store, Athena first gathers the necessary details and shows a preview. The merchant reviews and confirms it before anything takes effect. Athena handles the repetitive execution, while the merchant keeps final control over every important change.<\/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 Product Hunt, I&#8217;m Jeff, founder and CEO of Shoplazza.<\/p>\n<p>We have spent years building the infrastructure behind online commerce, and one thing has become increasingly clear: the next leap will not come from giving merchants more software to operate.<\/p>\n<p>It will come from software taking on the work.<\/p>\n<p>That is why we built Athena.<\/p>\n<p>To me, the most important thing about Athena is not that it can generate a store, create visuals or launch ads. It is that the same AI agent can stay with the business after launch, understand what is happening across the store and continue moving the work forward.<\/p>\n<p>That only becomes possible when storefront, payments, marketing, logistics and operations are connected. Without that foundation, AI can assist with individual tasks, but it cannot truly run a commerce workflow from end to end.<\/p>\n<p>We believe the way people interact with ecommerce software is shifting: from clicking through tools to expressing an intent, from managing workflows to reviewing results.<\/p>\n<p>Athena is our first real step toward that future. It is not perfect yet, and human judgment still matters, especially around brand, budget and risk. But it is already doing real work inside real stores, and that is the standard we will keep measuring it against.<\/p>\n<p>I am excited to hear what this community thinks, where Athena delivers and where it still needs to improve.<\/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\/@jeff_pz\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jeff_pz<\/a>&nbsp;Thank you for sharing the thinking behind Athena, Jeff. It gives us a clear standard to build toward: Athena should take on real commerce work, keep the business moving after launch, and leave decisions around brand, budget, and risk in the merchant\u2019s hands. We\u2019ll keep learning from real stores and this community as we improve Athena from here.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>congrats! i love that Athena focuses on more than just website creation. i am wondering about integrations though. does it connect with popular accounting software, CRM platforms and email marketing tools, or is everything designed to stay within the Shoplazza ecosystem?<\/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\/@daniel_harris11\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@daniel_harris11<\/a>&nbsp;Good question, Daniel. Athena currently works most deeply within the Shoplazza ecosystem, where she can access native commerce data and supported capabilities across storefronts, products, discounts, shipping, advertising, and analytics.<\/p>\n<p>Merchants can still use third-party apps and integrations available through Shoplazza, but Athena does not yet orchestrate every popular accounting, CRM, or email marketing platform through conversation. Expanding these connected external workflows is an important next step for us.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on the launch, Ryan! The marketing campaign automation looks solid. Can it handle seasonal promos like BFCM end to end?<\/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\/@justin2025\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@justin2025<\/a>&nbsp;Thanks, Justin! Athena can already handle much of a BFCM workflow, including campaign planning, promotional visuals, discount setup, and launching and optimizing Meta ads. The entire seasonal campaign is not yet fully autonomous end to end, and merchants still review key decisions before anything goes live. That connected workflow is exactly where we\u2019re heading.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Nice launch! The product-photo-to-lifestyle-creative workflow sounds especially useful for smaller brands that can\u2019t organize a new photoshoot every week.<\/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\/@sandy_liusy\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sandy_liusy<\/a>&nbsp;Thanks, Sandy! That\u2019s exactly one of the use cases we had in mind. Smaller brands shouldn\u2019t have to organize a new photoshoot for every campaign. With Athena, a single product photo can be turned into model shots, lifestyle scenes, and a complete set of ecommerce visuals, with the flexibility to refine every result further.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Been following Shoplazza for a while, great to see them going all in on AI. Congrats team!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@jennifer_liu5\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jennifer_liu5<\/a>&nbsp;Thank you Jennifer and your support for us!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats! This looks especially useful for small teams where one person is doing merchandising, marketing, and operations at the same time.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@luke_pioneero\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@luke_pioneero<\/a>&nbsp;Thanks for the support! This is exactly one of the challenges we hope to solve\u2014helping small teams or businesses manage daily operations and marketing more efficiently.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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 hits a real pain point. Listing optimization alone eats hours every week. If Athena handles that reliably it&#8217;s already worth it.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@codecoffee\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@codecoffee<\/a>&nbsp;Thanks for sharing this and honestly, this is something we hear from a lot of merchants. We\u2019ve seen many merchants spend a significant amount of time every day on repetitive tasks like listing updates and store management. Time that could be better spent on thinking about growth, improving campaigns, or just stepping back to see the bigger picture. That\u2019s exactly why we built Athena to take those repetitive, time-consuming tasks off merchants\u2019 plates with AI, so they can get back to focusing on what actually moves their business forward.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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 tried the product. The fact that it can set up campaigns and not just suggest them is impressive.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@addisonjocviyl\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@addisonjocviyl<\/a>&nbsp;Thanks for trying Athena and sharing your thoughts! We\u2019re excited that you noticed the execution capability. Athena is built to do more than just suggest ideas. Athena is already helping many merchants with real commerce workflows. We are here connect with more builders, learn from the community, and keep improving based on feedback.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Big congrats! The ecommerce ops space needed something like this. Bookmarking to test with my store 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\/@dunn_bentham\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dunn_bentham<\/a>&nbsp;Thanks so much for the support! We\u2019re excited to have you try Athena.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Nice product <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@madalina_barbu\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@madalina_barbu<\/a>&nbsp;Thanks, Madalina! We\u2019re glad Athena caught your attention and appreciate your interest in what we\u2019re building.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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 build on the support side so treat me as biased, but there is one thing missing from that list and I think it is the interesting one.<\/p>\n<\/p>\n<p>Build, products, localized copy, discounts, shipping, ads, logistics. Every one of those creates customer messages, and Athena cannot see any of them.<\/p>\n<\/p>\n<p>The case I keep hitting: a shipping rule is wrong for one region, or a generated description promises something the product does not do. Conversion is far too noisy to show that for days. But three customers write in within one day. The inbox is the fastest error detection in commerce and it is the one thing nobody wires into anything.<\/p>\n<\/p>\n<p>Localized copy is the sharpest version of it. Athena writes copy in languages the merchant cannot read. The only people who will ever notice it is wrong are the customers reading it, and they will say so in that language, in an Instagram DM, not in a ticket with a subject line.<\/p>\n<\/p>\n<p>So the real question: does anything from those messages get back to Athena? If it changes shipping at 2am and the answer arrives as five DMs across three channels, the merchant is still the integration between the agent and reality.<\/p>\n<\/p>\n<p><a href=\"https:\/\/www.producthunt.com\/@jeff_pz\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"jeff_pz\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jeff_pz<\/a> you said human judgment stays on brand, budget and risk. I would add the customer-facing surface, for a boring reason. It is the only one of those where a mistake reaches a person before it reaches a metric.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@jernej_jan_kocica\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jernej_jan_kocica<\/a>&nbsp;Jernej, this is a sharp point, and the direct answer is: not yet. Today, messages from support inboxes and social DMs do not automatically flow back into Athena as a unified feedback loop, so they won\u2019t trigger operational changes on their own.<\/p>\n<p>Athena can carry out storefront and operational work, but customer-facing feedback still needs to be surfaced and interpreted by the merchant. Any resulting high-impact change also remains subject to human review and confirmation.<\/p>\n<p>Your framing of the inbox as commerce\u2019s fastest error-detection layer is exactly right. Customer messages can reveal a broken shipping rule or misleading localized copy long before aggregate metrics do. Connecting that signal back to Athena is an important direction for us, and we agree that the customer-facing surface belongs alongside brand, budget, and risk as an area where human judgment must remain central. Thanks for articulating it so clearly.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Very interesting! Wondering if Athena&#8217;s spinning up a BFCM campaign with a few hundred bulk edits, is the merchant confirming each one or do you batch approvals by action type? Congratulations 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>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\/@artstavenka1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@artstavenka1<\/a>&nbsp;Thanks, Art! Approvals are handled at the batch level rather than one by one. Athena groups the proposed changes by action type, shows the affected scope and a summary of what will change, and executes only after the merchant confirms the batch. Higher-risk or irreversible actions, such as deletions, are presented separately for confirmation. This keeps BFCM-scale operations efficient without hiding important changes from the merchant.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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! the concept of AI managing both setup and operations is impressive. i was wondering how Athena handles businesses with large product catalogues. if a merchant has thousands of SKUs, can it generate descriptions, categories and collections in bulk while maintaining consistency? how scalable is it for enterprise level stores?<\/p>\n<p><\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congratulations on launching Athena! <\/p>\n<p>This sounds like a huge productivity boost for online sellers. i wanted to ask how localisation works. when Athena creates content for different countries, does it simply translate text or does it also adapt currencies, payment methods, cultural preferences and regional SEO? that could make international expansion much easier.<\/p>\n<p><\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congratulations !  the all in one approach is definitely appealing. i was curious about businesses with unique workflows or niche industries. how adaptable is Athena when merchants need custom shipping rules, specialised product options or industry specific operational requirements?<\/p>\n<p><\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Greek goddess of wisdom and a Persian girls&#8217;s name , that&#8217;s Great =&gt; <br \/>The connected-workflow part is the ambitious piece technically. Storefront, payments, shipping, and ad platforms are separate systems with separate failure conditions, not one database with a rollback. If Athena kicks off a launch sequence and the ad campaign goes live but the shipping configuration fails partway through, what happens to the parts that already executed? Is there a way to unwind a multi-system action, or does it just surface the failure and leave you to reconcile what already went live?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@mohsen_bashirzadeh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mohsen_bashirzadeh<\/a>&nbsp;Thanks, Mohsen. Glad the name resonates.<\/p>\n<p>You\u2019re right that there is no universal transaction or one-click rollback across storefront, payment, shipping, and ad systems. Athena handles these workflows through staged execution. Important actions are previewed and confirmed before execution, and the result of each step remains visible.<\/p>\n<p>If a later step fails, Athena surfaces where the failure occurred and prevents dependent work from continuing blindly. Actions already completed in another system remain in effect unless that platform supports a reversible action. Any rollback or corrective step is then presented to the merchant for confirmation.<\/p>\n<p>So today, the approach is controlled recovery from a partial state, rather than pretending atomic rollback exists across independent platforms.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congratulations on the launch!<\/p>\n<p>This looks like a really interesting step towards making e-commerce much simpler for founders. one question i had is about migrating existing businesses. if someone already has a store on another platform, how much of their products, customer data and SEO settings can Athena bring over automatically? does it also preserve Urls and metadata during the migration?&nbsp;<\/p>\n<p><\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Really interesting approach. How much can users customize the store after Athena generates it? Can we make detailed layout changes through conversation, or would we need to edit the theme manually?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@thea5\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thea5<\/a>&nbsp;Thanks, Thea! Athena starts by understanding your category, target market, audience, and brand preferences, then generates several store directions to choose from. Once the store is created, every part remains fully customizable in the Shoplazza admin.<\/p>\n<p>We\u2019re now taking that experience a step further by bringing store editing into the conversation. Coming soon, you\u2019ll be able to ask Athena to adjust individual page sections and layouts directly. We\u2019d love to have you try Athena and keep the feedback coming!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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 it just copy the layout or actually rebuild everything with its own logic?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@boyuan_deng1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@boyuan_deng1<\/a>&nbsp;Great question \u2014 it&#8217;s the latter, and honestly that&#8217;s the hardest part we built.<\/p>\n<p>Athena doesn&#8217;t screenshot-and-clone. It runs a semantic pass first: it breaks the source down into structured intent \u2014 brand tone, product architecture, section purposes (hero vs. social proof vs. conversion blocks) \u2014 then rebuilds each section from our own component system with design tokens (spacing, type scale, color roles) inferred to match the brand, not the pixels.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\/@boyuan_deng1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@boyuan_deng1<\/a>&nbsp;Kelvin covered the technical side well. From the merchant\u2019s perspective, Athena preserves the brand direction and conversion intent of the reference, then turns it into a complete, editable Shoplazza store. Product pages, collections, cart, and checkout are all part of the result, so you can keep customizing the store and run it as a real business rather than being left with a static visual copy.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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 this launch! Really helpful!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@peng_wood\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@peng_wood<\/a>&nbsp;Thanks so much, Wood! Glad you found Athena helpful. We built it to take repetitive store work off merchants\u2019 plates, so they can spend more time on products and business decisions.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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 product <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@madalina_barbu\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@madalina_barbu<\/a>&nbsp;Thanks, Madalina! We\u2019re glad Athena caught your interest and really appreciate you checking out our 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>Solo founder here. The idea of delegating store ops to an AI and just reviewing results sounds almost too good. Will test and report back.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>Upvoted! How does pricing work for sellers just starting 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\/@phoenixhu\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@phoenixhu<\/a>&nbsp;Hi zhiyuan, for sellers who are just getting started, our Basic plan helps them launch without a heavy investment. It starts at $39\/month. As their business grows, they can explore more advanced capabilities and features.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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\/@ryancheng\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"ryancheng\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ryancheng<\/a> Congratulations. And happy product 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>Really clean execution. The scope here is ambitious, covering everything from listings to ads to analytics in one product.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@charlenechen_123\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@charlenechen_123<\/a>&nbsp;Thanks for the kind words, Charlene! We appreciate you recognizing the scope of what we\u2019re building.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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 to the team <a href=\"https:\/\/www.producthunt.com\/@ryancheng\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"ryancheng\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ryancheng<\/a> <a href=\"https:\/\/www.producthunt.com\/@jeff_pz\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"jeff_pz\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jeff_pz<\/a> . This feels useful for people who know their product well but have no idea how to structure an online store. Curious how much guidance Athena gives along the way.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\u2019m curious how much context Athena needs before it starts producing useful results. Can a new merchant simply describe the brand and products, or is there a longer setup process?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@orman_canida\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@orman_canida<\/a>&nbsp;Just the description is enough to start \u2014 &#8220;I sell handmade ceramic tableware, minimalist Japanese aesthetic, mid-to-premium pricing&#8221; gets you a genuinely usable store, not a placeholder. If you have product photos or an existing catalog, even better, but there&#8217;s no mandatory setup questionnaire.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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, team! Store creation is already getting crowded, but connecting the storefront to the actual work of running the business feels like a much harder and more valuable problem.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@carlvert\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@carlvert<\/a>&nbsp;Thanks for the support! You\u2019re right. The real challenge is helping merchants operate and grow their business after launch. Athena is designed to bridge that gap by connecting storefront creation with real commerce workflows, helping merchants manage daily tasks and scale more efficiently.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\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\/U7DUSA6V3LZT5Q\" class=\"app-title\">Openbase<\/a><\/p>\n<div class=\"one-liner\">Manage your team of AI agents by voice, from anywhere<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">208<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Openbase\u8ba9\u4f60\u901a\u8fc7\u8bed\u97f3\u4ece\u624b\u673a\u7aef\u8fdc\u7a0b\u7ba1\u7406\u548c\u76d1\u7763AI\u7f16\u7a0b\u4ee3\u7406\uff0c\u5728\u8131\u79bb\u7b14\u8bb0\u672c\u7535\u8111\u7684\u573a\u666f\u4e0b\uff08\u5982\u6563\u6b65\u3001\u5f00\u8f66\uff09\u89e3\u51b3\u201c\u4ee3\u7406\u5f02\u6b65\u5de5\u4f5c\u4f46\u76d1\u7763\u4ecd\u9700\u7535\u8111\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\/c6061c78-0cfe-4bd6-924a-23b48e6015de.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/880b1b02-b001-40bf-a246-c07331ffd10d.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/aadeda57-12b7-453c-80d4-056a5d6b94dc.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\/d06eaf1a-fcac-48a1-92a8-1ba8e756c7de.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=SsnUgItdae4\"><source src=\"https:\/\/www.youtube.com\/watch?v=SsnUgItdae4\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">GitHub<\/span><br \/>\n            <span class=\"tag\">Tech<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u7f16\u7a0b\u4ee3\u7406<\/span><br \/>\n            <span class=\"tag\">\u8bed\u97f3\u63a7\u5236<\/span><br \/>\n            <span class=\"tag\">\u8fdc\u7a0b\u5f00\u53d1<\/span><br \/>\n            <span class=\"tag\">\u79fb\u52a8\u7aef\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u4ee3\u7801\u5ba1\u67e5<\/span><br \/>\n            <span class=\"tag\">\u5f02\u6b65\u534f\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90(AGPL-3.0)<\/span><br \/>\n            <span class=\"tag\">\u5de5\u4f5c\u6d41\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">\u56e2\u961f\u534f\u4f5c<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u8ba4\u53ef\u201c\u901a\u8fc7\u8bed\u97f3\u76d1\u7763\u4ee3\u7406\u201d\u89e3\u51b3\u4e86\u73b0\u5b9e\u75db\u70b9\u3002\u6838\u5fc3\u95ee\u9898\u96c6\u4e2d\u4e8e\uff1a\u5b89\u5168\u6027\uff08\u8bed\u97f3\u8bef\u89e6\u53d1\u3001\u6bc1\u574f\u6027\u53d8\u66f4\uff09\u3001\u5ba1\u8ba1\u8ffd\u6eaf\uff08\u8bed\u97f3\u5ba1\u6279\u5408\u6cd5\u6027\uff09\u3001\u65ad\u8fde\u5bb9\u9519\uff08\u4ee3\u7406\u7b49\u5f85\u6216\u56de\u6eda\uff09\u3001\u975e\u6280\u672f\u7528\u6237\u7684\u4fe1\u4efb\u95e8\u69db\u3002\u5efa\u8bae\u5305\u62ec\uff1a\u5bf9\u591a\u6587\u4ef6\u53d8\u66f4\u63d0\u4f9b\u53ef\u89c6\u5316\u56de\u9000\u3001\u5f3a\u8c03\u201c\u786e\u8ba4\u8bed\u97f3\u201d\u800c\u975e\u968f\u610f\u54cd\u5e94\u3001\u53ca\u66f4\u8be6\u7ec6\u7684\u4e0a\u4e0b\u6587\u64ad\u62a5\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                Openbase\u5de7\u5999\u5207\u5165\u4e86\u4e00\u4e2a\u88ab\u5ffd\u89c6\u7684\u521a\u9700\uff1aAI\u4ee3\u7406\u201c\u80fd\u5e72\u6d3b\u4f46\u7f3a\u4eba\u770b\u7ba1\u201d\u7684\u6548\u7387\u65ad\u5c42\u3002\u5176\u6838\u5fc3\u4ef7\u503c\u5e76\u975e\u201c\u8bed\u97f3\u63a7\u5236\u201d\u2014\u2014\u8fd9\u66f4\u50cf\u662f\u4ea4\u4e92\u8f7d\u4f53\u2014\u2014\u800c\u662f\u5c06\u201c\u76d1\u7763\u6d41\u7a0b\u201d\u4ecePC\u7aef\u89e3\u8026\uff0c\u79fb\u81f3\u624b\u673a\u7aef\uff0c\u771f\u6b63\u5b9e\u73b0\u4e86\u201c\u5f02\u6b65\u5de5\u4f5c\u3001\u540c\u6b65\u7ba1\u63a7\u201d\u3002\u5bf9\u4e8e\u91cd\u5ea6\u4f7f\u7528Claude Code\u3001Codex\u7b49\u4ee3\u7406\u5de5\u5177\u7684\u5f00\u53d1\u8005\uff0c\u8fd9\u65e0\u7591\u662f\u751f\u4ea7\u529b\u8dc3\u5347\uff0c\u5c24\u5176\u9002\u5408\u9700\u8981\u9891\u7e41\u79fb\u52a8\u6216\u8de8\u4efb\u52a1\u64cd\u4f5c\u7684\u7fa4\u4f53\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u5fc5\u987b\u6cfc\u4e00\u76c6\u51b7\u6c34\u3002\u4ea7\u54c1\u76ee\u524d\u7684\u201c\u8bed\u97f3\u5ba1\u6279\u201d\u770b\u4f3c\u9177\u70ab\uff0c\u5b9e\u5219\u5c06\u5b89\u5168\u4e0e\u4fe1\u4efb\u7684\u6311\u6218\u63a8\u5411\u4e86\u65b0\u7684\u9ad8\u5ea6\u3002\u8bc4\u8bba\u4e2d\u53cd\u590d\u63d0\u53ca\u7684\u201c\u5982\u4f55\u9632\u6b62\u8bef\u89e6\u53d1\u201d\u201c\u5982\u4f55\u8ffd\u6eaf\u8bed\u97f3\u51b3\u7b56\u201d\u201c\u65ad\u8fde\u540e\u5982\u4f55\u786e\u4fdd\u72b6\u6001\u4e00\u81f4\u201d\uff0c\u6070\u6070\u662f\u8fd9\u7c7b\u4ea7\u54c1\u7684\u751f\u6b7b\u7ebf\u3002Openbase\u76ee\u524d\u91c7\u53d6\u201c\u5ba1\u6279\u961f\u5217+\u786e\u8ba4\u8bed\u97f3\u8bcd\u201d\u7684\u673a\u5236\uff0c\u662f\u53ca\u683c\u7ebf\u7684\u5e94\u5bf9\uff0c\u4f46\u8fdc\u672a\u5230\u4f18\u96c5\u3002\u4f8b\u5982\uff0c\u4e00\u4e2a\u591a\u6587\u4ef6\u91cd\u6784\u7684\u590d\u6742diff\uff0c\u4ec5\u9760\u8bed\u97f3\u64ad\u62a5\u548c\u201cyes proceed\u201d\u662f\u65e0\u6cd5\u505a\u51fa\u660e\u667a\u5224\u65ad\u7684\u2014\u2014\u641e\u9519\u4e86\u5c31\u662f\u707e\u96be\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u6b64\u5916\uff0c\u4ea7\u54c1\u5b9a\u4f4d\u7565\u663e\u5c34\u5c2c\uff1a\u5b83\u7784\u51c6\u7684\u662f\u201c\u9ad8\u7ea7\u4ee3\u7406\u7528\u6237\u201d\uff0c\u4f46\u8fd9\u4e9b\u4eba\u53c8\u5f80\u5f80\u662f\u6280\u672f\u5927\u725b\uff0c\u5bf9\u624b\u673a\u5ba1\u6279\u7684\u4fe1\u4efb\u5ea6\u548c\u5bf9\u5b89\u5168\u98ce\u9669\u7684\u5bb9\u5fcd\u5ea6\u53ef\u80fd\u5f88\u4f4e\u3002\u800c\u666e\u901a\u7528\u6237\uff08\u5982\u8bc4\u8bba\u4e2d\u7684\u9762\u5305\u5e08\uff09\u867d\u7136\u6709\u610f\u613f\uff0c\u5374\u9762\u4e34\u66f4\u9ad8\u7684\u7406\u89e3\u548c\u4fe1\u4efb\u95e8\u69db\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u957f\u671f\u6765\u770b\uff0cOpenbase\u7684\u771f\u6b63\u58c1\u5792\u4e0d\u5728\u4e8e\u8bed\u97f3\u4ea4\u4e92\uff0c\u800c\u662f\u80fd\u5426\u6784\u5efa\u4e00\u5957\u5728\u201c\u8bed\u97f3\u4e0a\u4e0b\u6587\u201d\u4e0b\u4ecd\u80fd\u8ba9\u7528\u6237\u5b89\u5168\u3001\u6e05\u6670\u3001\u53ef\u8ffd\u6eaf\u5730\u505a\u51b3\u7b56\u7684\u4fe1\u4efb\u7cfb\u7edf\u3002\u5982\u679c\u53ea\u662f\u201c\u7ed9\u4ee3\u7406\u52a0\u4e2a\u8bed\u97f3\u9065\u63a7\u5668\u201d\uff0c\u5f88\u5feb\u4f1a\u88ab\u5927\u5382\u6216\u73b0\u6709\u5de5\u5177\u5185\u7f6e\u3002\u5982\u679c\u80fd\u5728\u201c\u79fb\u52a8\u7aef\u7684\u5b89\u5168\u76d1\u7763\u201d\u7ef4\u5ea6\u505a\u51fa\u6df1\u5ea6\u62a4\u57ce\u6cb3\uff0c\u624d\u6709\u673a\u4f1a\u4ece\u201c\u597d\u73a9\u7684\u5de5\u5177\u201d\u53d8\u6210\u201c\u5f00\u53d1\u8005\u7684\u521a\u9700\u6807\u914d\u201d\u3002\u76ee\u524d\uff0c\u6982\u5ff5\u60ca\u8273\uff0c\u843d\u5730\u5c1a\u9700\u6253\u78e8\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\">Openbase<\/span>\n                <\/div>\n<div class=\"comment-content\">Openbase lets you manage a team of AI coding agents by voice, from anywhere; no screen, no desk. AI agents can work async, but supervising them still pulls you back to a laptop. OpenBase fixes that. Dispatch tasks, steer agents mid-work, and approve changes just by talking. The agents write code, control your computer, open PRs, commit and push; you stay in control from your phone. Works across providers and syncs to your machine, so you pick up at your desk right where you left off.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Product Hunt \ud83d\udc4b I&#8217;m Lucas, co-founder of OpenBase.<\/p>\n<p>We built this because we live in Claude Code and Codex all day, and kept hitting the same wall: the agents could keep working while we were away, but supervising them meant going back to a laptop. Every time. So we built the thing we wanted; a way to run our agents by voice, from anywhere.<\/p>\n<p>You talk, the agents build, you approve the important calls out loud. Kick off a feature from a walk, steer it, approve the PR, all without a screen. It works across providers and syncs back to your machine so nothing&#8217;s lost when you sit down.<br \/>It&#8217;s open source (AGPL-3.0) and in private beta\/waitlist today.<\/p>\n<p>Try it out here: <a href=\"https:\/\/openbase.cloud\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/openbase.cloud<\/a><\/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\/@lucaszhao\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@lucaszhao<\/a>&nbsp;Congrats looks awesome , i&#8217;ll check<\/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\">@lucaszhao The pain point of constantly needing to sit back at the laptop just to steer async coding agents is so real. Being able to approve PRs and manage agents via voice on the go is such a smart layer for developer workflows. Rooting for Openbase today!<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\/@lucaszhao\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@lucaszhao<\/a>&nbsp;Quick question: since you\u2019re enabling voice-driven approvals and remote steering of agents, how do you handle auditability, security, and accidental voice commands? Specifically, what safeguards do you recommend or have built in to prevent unintended actions and make approvals legally and operationally traceable?<\/p>\n<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Good to know it fails safe rather than proceeding on a guess &#8211; that queue-and-resume behavior is exactly what I&#8217;d want if I&#8217;m the one walking around unable to babysit the connection. Thanks for the detail.<\/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>good, that&#8217;s the right default. re-asking is a small friction cost that&#8217;s obviously worth it compared to the alternative on something like a merge<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Great idea, it\u2019s the worst when you\u2019re running an agent process and step away, screen goes dark and all work pauses. Best of luck! <\/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\/@kelly_king3\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@kelly_king3<\/a>&nbsp;Thanks Kelly!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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: we&#8217;ve also just uploaded our YouTube demo to our launch, check it out here: <a href=\"https:\/\/www.youtube.com\/watch?v=SsnUgItdae4\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/www.youtube.com\/watch?v=SsnUgItdae4<\/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<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Sign me up, this is actually a dream! Hopefully I can find time to download this to try it. I like it because I used to drive around calling my human assistants to help me do work as I was driving long distances. This is really useful for people who drive long distances and are business people or people with work that requires computers. Maybe even artists can use this like music industry people.<\/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\/@saderod\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@saderod<\/a>&nbsp;Thank you Stefhon!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">I usually have coding agents running while I\u2019m working on something else, and sometimes I only need to approve a command, correct the direction or quickly check what changed. Being able to do that from my phone instead of going back to the desk every time is actually a good idea. Congrats on the launch!!<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@etiennegarcia\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@etiennegarcia<\/a>&nbsp;Thank you Etienne!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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 idea of kicking off a feature while walking and coming back to a ready PR sounds both extremely useful and slightly dangerous :))<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@andrasczeizel\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@andrasczeizel<\/a>&nbsp;Haha we&#8217;ve made sure to have a lot of guardrails with Openbase so hopefully it&#8217;s more so the former<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\">Freya&#8217;s question is the real crux of this, voice works fine for quick single file changes but a diff that spans multiple files is hard to review by ear alone, so I&#8217;d want to know if there&#8217;s a fallback view for those moments rather than forcing everything through audio. <\/p>\n<p>The sync back to your machine so nothing&#8217;s lost is a solid detail too, since a lot of remote agent tools have a rough handoff back to the desk. Given it&#8217;s AGPL-3.0 and open beta, are you expecting most early users to self host or run it against your hosted version at openbase.cloud.<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@thys_beesman\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thys_beesman<\/a>&nbsp;Yeah good question! So we have a view called &#8220;Threads&#8221; and there you can see the agent&#8217;s transcript and code diffs across multiple files.<\/p>\n<p>Currently with our hosted version, it&#8217;s a free trial then $20\/month for the voice\/TTS models, but we also offer a dev pathway where you can clone our git repo and run a script, which will automatically configure to free local models such as Kokoro.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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 smart solution \u2014 finally a way to supervise AI coding agents by voice from your phone without being glued to a laptop.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\">@charlenechen_123 Thanks Charlene!!<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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 the hard part and you&#8217;re putting it front and center: which calls the agent makes alone vs. which ones it asks about out loud.<\/p>\n<p>We ship agents in a very different domain \u2014 they message customers and take payments for small businesses \u2014 and the rule we landed on after getting it wrong is: plan freely, execute visibly, but always ask before anything that touches money, anything that goes out to many people at once, and anything that changes configuration.<\/p>\n<p>The trap we hit: we tried letting the agent tune its own thresholds, with a guard scoring the outcomes. It optimized straight into the failure mode \u2014 a safe, wrong answer scores beautifully, because it generates no escalation and burns fewer tokens. We killed the autonomy and kept the human in the loop.<\/p>\n<p>Curious how you think about that when the approval is by voice, where &#8220;yes&#8221; is a very cheap thing to say.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I&#8217;m non-technical and ship almost everything through coding agents, so the part that would decide it for me isn&#8217;t approval, it&#8217;s verification. My recurring failure isn&#8217;t an agent doing something destructive, it&#8217;s an agent telling me a change shipped when it actually landed on a branch that had already been merged. Does Openbase report back from the actual repo state after the fact, or only from what the agent says it did?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@podcast_ai\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@podcast_ai<\/a>&nbsp;Good question! We&#8217;ve been working on a separate tab purely for git trees etc. to visualize and clearly see diffs and what branch you&#8217;re on. Currently it is still agent reported, but we&#8217;ll definitely implement this 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\">Congrats Lucas! I do almost everything by voice, my dictation is full of half-sentences and \u201cwait, no, actually\u201d corrections, so this launch is personally relevant. My question is about the input side rather than the approval side everyone\u2019s covering: when my spoken instruction is messy or ambiguous, does OpenBase confirm its interpretation back to me before dispatching the agent? A five-second \u201chere\u2019s what I understood, go?\u201d would save a twenty-minute run building the wrong thing. Curious how much you\u2019ve tuned for how people actually talk versus how demos talk.<\/div>\n<div class=\"comment-actions\">\n<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\/@ridhwikvinod\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ridhwikvinod<\/a>&nbsp;Oh yeah I do the same haha. In general, Openbase doesn&#8217;t give an interpretation by default; it&#8217;s pretty good at following along despite corrections or half sentences. But you can always ask at the end of your prompt for Openbase to confirm what it understood from your prompt, and we&#8217;re also adding a system instructions setting as well so that can be something you can put in there.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>this solves a real problem, I live in Claude Code all day too and the &#8220;still tied to a laptop to babysit it&#8221; gap is exactly right. question that&#8217;s more about reliability than the approval-safety angle everyone&#8217;s asking about: what happens if you lose connectivity mid-flow, say you&#8217;re walking and your phone drops signal right as an agent is waiting on a voice approval. does it just pause and wait indefinitely for you to reconnect, timeout and roll back the pending action, or keep going with whatever the last confirmed state was?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@galdayan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@galdayan<\/a>&nbsp;If your phone drops right as an agent is waiting on approval, the agent stays blocked at that approval checkpoint. The pending request is stored in the local approval queue on your Mac, and when the phone reconnects it shows back up in the Approvals tab.<\/p>\n<\/p>\n<p>Already completed work isn\u2019t rolled back, but the gated action also does not run unless an approval actually made it through. If the approval was recorded before the signal dropped, the agent continues from that confirmed state. If not, it waits.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Love the idea! I even hoped for something quite similar about a week and a half ago while at work. The &#8216;no screen, no desk&#8217; part hit me harder than you probably intended, because I&#8217;m not a developer.<\/p>\n<\/p>\n<p>I work in a bakery. Factory rules mean my phone stays in the locker room, and my hands are busy for the whole shift. In the week before I launched my own app, some of my best thinking happened while I was working, ideas, prompts, things I wanted to try, all of it fully formed in my head and completely stranded until I clocked out or took a break.  I kept thinking how good it would be to just talk it into a headset and have the work already moving by the time I got home.<\/p>\n<\/p>\n<p>The honest reason I haven&#8217;t tried agents yet is different from the reason you&#8217;re solving for. It isn&#8217;t that supervising pulls me back to a laptop. It&#8217;s that I don&#8217;t understand them well enough to trust one unsupervised, and I&#8217;m afraid of something getting deleted or overwritten without me noticing until much later. <\/p>\n<\/p>\n<p>So my question is about the approval layer. When an agent is working and I&#8217;m not looking at a screen, what actually stops a destructive change from going through, and how much does it explain out loud before it commits? For someone like me, that answer matters more than the speed.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@satchmo_saunders\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@satchmo_saunders<\/a>&nbsp;Yeah of course! So anytime there is a potentially dangerous change the agent (or super agent) is trying to make, it will pause its work and explain to you what it is trying to do. It will tell you &#8220;if you&#8217;d like to continue, say &#8216;yes proceed'&#8221;. <\/p>\n<\/p>\n<p>If the agent&#8217;s explanation is not clear enough, you can continue probing and asking it questions about the change until you fully understand, then say &#8220;yes proceed&#8221;. Of course, it will not perform the change without those words, so you don&#8217;t have to worry about the agent making highly destructive changes without your knowledge.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@satchmo_saunders\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@satchmo_saunders<\/a>&nbsp;This is such a thoughtful use case, and you\u2019re right: trust matters more than speed here.<\/p>\n<\/p>\n<p>Today, Openbase does NOT let the agent silently approve its own sensitive actions. When it reaches something like a shell command, file change, commit, or push that requires permission, it pauses and asks you before continuing. It tells you what action it wants to take and why, and you can approve verbally with a &#8220;safety word&#8221; or reject it by voice.<\/p>\n<\/p>\n<p>The part we\u2019re still improving is how much context can be safely summarized without a screen, especially for larger changes. We want the spoken approval to be specific enough that you know what may be changed, not just \u201capprove this command.\u201d For someone like you working with your phone in a locker, we may also need a stricter mode that queues risky actions until you can review them later.<\/p>\n<\/p>\n<p>If that queue mode existed, what would you want waiting for you after your shift? A quick spoken recap of everything the agent accomplished, or a written list of anything still waiting on your approval?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congratulations on the launch, Lucas. Voice-based supervision is an interesting answer to the problem of agents working asynchronously while humans remain tied to a screen. How do you handle approval boundaries for sensitive actions such as commits, pushes, and pull requests?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@russlan_ramdowar\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@russlan_ramdowar<\/a>&nbsp;Thank you Russlan! In terms of approvals, our agents never commit, push or open a PR automatically; it always makes the local change first, lets you review, then you can tell it to perform the sensitive action. This is unless of course, you instruct it to automatically commit\/push\/open a PR. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>How you handle approvals for changes that could affect multiple files. Is there a way to quickly review the important parts before saying yes? I&#8217;d also love to see short voice summaries of what each agent finished since the last check-in.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@freya_jensen_d\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@freya_jensen_d<\/a>&nbsp;Both of these are central to how we\u2019re thinking about approvals.<\/p>\n<\/p>\n<p>For multi-file changes, you don\u2019t have to approve blind. The related diffs are grouped together in the Thread, so you can review the affected files and jump into the parts that matter before approving. Sensitive actions like writes, commits, and pushes can still require their own approval rather than being covered by one blanket yes.<\/p>\n<\/p>\n<p>And yes, short voice recaps of what each agent finished since your last check-in are exactly where we\u2019re headed. The goal is to let you catch up hands-free, then ask for more detail (i.e. a step-by-step summary of everything it did) only where you need it.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on the launch. The voice layer feels strongest as a triage\/approval surface, not a replacement for review. One thing I\u2019d want to see in the flow is a review-at-desk escape hatch: before any multi-file change, the agent summarizes files touched, tests run, risky operations, and what still needs a screen. Then approving later should be as easy as approving 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>the safety word answer above covers accidental triggers, but what about a garbled connection mid-approval, like walking through a spot with bad signal while saying yes to a PR merge? if the transcription comes back partial or mangled, does it fail closed and ask you to repeat, or is there any path where a mis-heard word could get treated as an approval for something you didn&#8217;t actually confirm<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@omri_ben_shoham1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@omri_ben_shoham1<\/a>&nbsp;It fails closed. A partial or garbled transcription is not treated as approval, so the action stays paused and Openbase asks you to repeat. We\u2019d rather re-ask than guess on something like a PR merge.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Honestly the voice steering thing is kind of wild, I was telling an agent to fix a bug while walking the dog and it just committed the patch. Felt like cheating honestly.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@dilaraekme8ruh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dilaraekme8ruh<\/a>&nbsp;Haha, that&#8217;s exactly the feeling we were hoping for \ud83d\ude04<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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 beta! Getting to approve a PR out loud on a walk instead of hunting down a laptop is a great use of voice as an interface.<\/p>\n<p>I&#8217;m curious what stops a sensitive approval from firing on someone else&#8217;s voice, a recording, or an accidental phrase match before it reaches a real repo. That&#8217;s the piece of the voice layer I&#8217;d want locked down first.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@vollos\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@vollos<\/a>&nbsp;Great question. Today, you can set a private safety word that must be spoken before a sensitive action is approved, which helps prevent accidental phrase matches or someone nearby triggering it. That said, it isn\u2019t the same as verifying your actual voice, so speaker verification and replay protection are still areas we want to strengthen.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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>Any plans to let teams create reusable voice workflows for common development tasks? That could save a lot of repeated instructions.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@aiden_pearce7\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aiden_pearce7<\/a>&nbsp;Yes! That&#8217;s exactly what we&#8217;re building with <strong>Skills<\/strong>. A Skill captures a reusable workflow, so instead of re-explaining the same process every time, you can just invoke it by name. Think &#8220;run my pre-PR checklist,&#8221; &#8220;set up a feature branch the way our team does it,&#8221; or &#8220;prepare this release.&#8221; Teams will also be able to share Skills, so everyone can reuse the same workflows.<\/p>\n<\/p>\n<p>Out of curiosity, what&#8217;s the first workflow you&#8217;d turn into a Skill? We&#8217;re genuinely using feedback like this to decide what to build next.<\/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<\/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\/O3D2UFH7U4P7SI\" class=\"app-title\">SF Apartment Finder<\/a><\/p>\n<div class=\"one-liner\">Tinder for live SF rentals from across the web<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">195<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>SF Apartment Finder \u5c06\u65e7\u91d1\u5c71\u79df\u623f\u641c\u7d22\u53d8\u6210\u7c7b\u4f3c\u201cTinder\u201d\u7684\u6ed1\u52a8\u5361\u7247\u4f53\u9a8c\uff0c\u6574\u5408\u591a\u4e2a\u6765\u6e90\u7684\u5b9e\u65f6\u623f\u6e90\uff0c\u89e3\u51b3\u7528\u6237\u8de8\u7f51\u7ad9\u53cd\u590d\u67e5\u627e\u3001\u4fe1\u606f\u91cd\u590d\u4e14\u65e0\u6cd5\u9ad8\u6548\u7b5b\u9009\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\/cd1b8159-8f0c-47a6-9c3f-c0ecd24c1db2.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/91513d3a-4d5b-4a8c-94d7-293032f2c91e.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/6c601ef0-c64f-4298-927b-07cd31981058.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/0d4334a0-4ea4-4429-9d28-11cdd7b74b39.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/a23880ee-137e-4352-9dee-ac1c6b2b1fd1.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Design Tools<\/span><br \/>\n            <span class=\"tag\">API<\/span><br \/>\n            <span class=\"tag\">GitHub<\/span><br \/>\n            <span class=\"tag\">Community<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u65e7\u91d1\u5c71\u79df\u623f<\/span><br \/>\n            <span class=\"tag\">\u6ed1\u52a8\u7b5b\u9009<\/span><br \/>\n            <span class=\"tag\">\u623f\u6e90\u805a\u5408<\/span><br \/>\n            <span class=\"tag\">Craigslist<\/span><br \/>\n            <span class=\"tag\">\u623f\u5730\u4ea7\u79d1\u6280<\/span><br \/>\n            <span class=\"tag\">\u6570\u636e\u62bd\u53d6<\/span><br \/>\n            <span class=\"tag\">\u65e0\u767b\u5f55<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90<\/span><br \/>\n            <span class=\"tag\">\u4ea7\u54c1\u730e\u4eba<\/span><br \/>\n            <span class=\"tag\">\u4e2a\u6027\u5316\u641c\u7d22<\/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\u5efa\u8bae\u589e\u52a0\u793e\u533a\u5b89\u5168\/\u72af\u7f6a\u7387\u7b49\u5468\u8fb9\u7edf\u8ba1\u3001\u5730\u56fe\u89c6\u56fe\u5207\u6362\u3001\u901a\u52e4\u65f6\u95f4\u8fc7\u6ee4\uff08\u652f\u6301BART\/Muni\uff09\uff1b\u8d28\u7591\u623f\u6e90\u5b9e\u65f6\u6027\uff08\u662f\u5426\u5df2\u51fa\u79df\uff09\u3001Craigslist\u6570\u636e\u4e00\u81f4\u6027\u53ca\u91cd\u590d\u623f\u6e90\u95ee\u9898\uff1b\u80af\u5b9a\u6ed1\u52a8\u5339\u914d\u7684\u5f62\u5f0f\u5951\u5408\u79df\u623f\u573a\u666f\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                SF Apartment Finder\uff08Criblist\uff09\u89e3\u51b3\u4e86\u65e7\u91d1\u5c71\u79df\u623f\u5e02\u573a\u4e00\u4e2a\u771f\u5b9e\u4f46\u6781\u5176\u5782\u76f4\u7684\u75db\u70b9\uff1a\u591a\u6e90\u6570\u636e\u805a\u5408\u4e0e\u6781\u901f\u7b5b\u9009\u3002\u5176\u201cTinder\u5f0f\u201d\u6ed1\u52a8\u4ea4\u4e92\uff0c\u672c\u8d28\u4e0a\u662f\u5c06\u4f20\u7edf\u8868\u683c\u4e2d\u7684\u201c\u51b3\u5b9a\u56e0\u5b50\u201d\u5361\u7247\u5316\uff0c\u7528\u4f4e\u51b3\u7b56\u6210\u672c\u6362\u53d6\u9ad8\u6d4f\u89c8\u6548\u7387\uff0c\u8fd9\u79cd\u8bbe\u8ba1\u5728\u4fe1\u606f\u8fc7\u8f7d\u7684\u79df\u623f\u573a\u666f\u4e2d\u9887\u5177\u5de7\u601d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u4ea7\u54c1\u7684\u6838\u5fc3\u4ef7\u503c\u5e76\u975e\u4ea4\u4e92\u8bbe\u8ba1\uff0c\u800c\u662f\u80cc\u540e\u7684\u6570\u636e\u5904\u7406\u80fd\u529b\u3002\u4f9d\u6258Context.dev\u4eceCraigslist\u548c\u591a\u4e2a\u672c\u5730\u7269\u4e1a\u7f51\u7ad9\u5b9e\u65f6\u62bd\u53d6\u7ed3\u6784\u5316\u6570\u636e\uff0c\u8fd9\u624d\u662f\u771f\u6b63\u7684\u62a4\u57ce\u6cb3\u3002\u7136\u800c\uff0c\u8fd9\u6b63\u662f\u6700\u5927\u7684\u98ce\u9669\u70b9\uff1aCraigslist\u5bf9\u722c\u866b\u7684\u9632\u5fa1\u5386\u53f2\u7531\u6765\u5df2\u4e45\uff0c\u4e14\u672c\u5730\u7269\u4e1a\u7f51\u7ad9\u7684\u6570\u636e\u683c\u5f0f\u5404\u5f02\uff0c\u4e00\u65e6\u6570\u636e\u6e90\u88ab\u5c01\u9501\u6216\u51fa\u73b0\u5927\u91cf\u810f\u6570\u636e\uff0c\u4ea7\u54c1\u4f53\u9a8c\u5c06\u77ac\u95f4\u5d29\u584c\u3002\u7528\u6237\u8d28\u7591\u7684\u201c\u623f\u6e90\u5df2\u51fa\u79df\u4f46\u4ecd\u663e\u793a\u201d\u548c\u201c\u8de8\u7ad9\u91cd\u590d\u201d\u95ee\u9898\uff0c\u76f4\u63a5\u5173\u7cfb\u5230\u5176\u5ba3\u79f0\u201c\u4e0d\u586b\u5145\u7ed3\u679c\u201d\u7684\u4fe1\u4efb\u57fa\u7840\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ea7\u54c1\u76ee\u524d\u7684\u95ee\u9898\u5728\u4e8e\u201c\u91cd\u529f\u80fd\uff0c\u8f7b\u670d\u52a1\u201d\u3002\u7528\u6237\u547c\u5401\u7684\u901a\u52e4\u65f6\u95f4\u3001\u793e\u533a\u5b89\u5168\u3001\u5730\u56fe\u53ef\u89c6\u5316\u7b49\u9700\u6c42\uff0c\u5176\u5b9e\u662f\u79df\u623f\u51b3\u7b56\u4e2d\u6bd4\u201c\u6237\u578b\u201d\u548c\u201c\u4ef7\u683c\u201d\u66f4\u5173\u952e\u7684\u9690\u6027\u53d8\u91cf\u3002\u53ea\u505a\u4fe1\u606f\u805a\u5408\u800c\u4e0d\u505a\u589e\u503c\u51b3\u7b56\u652f\u6301\uff0c\u4ea7\u54c1\u6781\u6613\u6ca6\u4e3a\u53e6\u4e00\u4e2a\u201c\u641c\u7d22\u5de5\u5177\u201d\uff0c\u65e0\u6cd5\u5f62\u6210\u7528\u6237\u7c98\u6027\u3002\u6b64\u5916\uff0c\u5b9a\u4f4d\u6781\u5ea6\u805a\u7126\u65e7\u91d1\u5c71\uff0c\u610f\u5473\u7740\u5e02\u573a\u5929\u82b1\u677f\u4f4e\u4e14\u7528\u6237\u6362\u624b\u7387\u4f4e\uff08\u79df\u5230\u623f\u5373\u6d41\u5931\uff09\uff0c\u9664\u975e\u672a\u6765\u6a2a\u5411\u6269\u5c55\u81f3\u5176\u4ed6\u57ce\u5e02\uff0c\u5426\u5219\u5176\u5546\u4e1a\u6a21\u5f0f\uff08\u76ee\u524d\u514d\u8d39\u3001\u65e0\u767b\u5f55\uff09\u663e\u5f97\u683c\u5916\u5355\u8584\uff0c\u66f4\u50cf\u662fContext.dev\u7684\u4e00\u4e2a\u6280\u672f\u6f14\u793a\u6848\u4f8b\u3002\u7280\u5229\u5730\u8bf4\uff0c\u8fd9\u662f\u4e00\u4e2a\u6f02\u4eae\u7684\u201cMVP\u201d\uff0c\u4f46\u8fdc\u4e0d\u662f\u4e00\u4e2a\u53ef\u6301\u7eed\u7684\u201c\u4ea7\u54c1\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\">SF Apartment Finder<\/span>\n                <\/div>\n<div class=\"comment-content\">Criblist turns SF apartment hunting into a swipeable deck. Set your budget, neighborhoods, and must-haves, then browse live rentals from Craigslist and local property managers. Context.dev powers the extraction and source data. Keep the good ones.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey Product Hunt \ud83d\udc4b<\/p>\n<p>Apartment hunting in San Francisco has a painfully specific loop:<\/p>\n<p>Open Craigslist<br \/>\nOpen five property manager websites<br \/>\nSee the same listing twice<br \/>\nLose the good one<br \/>\nStart another spreadsheet<br \/>\nRepeat<\/p>\n<p>So we built Criblist.<\/p>\n<p>Tell it your budget, bedroom count, preferred neighborhoods, and the things you refuse to compromise on. Criblist searches live inventory across Craigslist, Brick + Timber, RentSFNow, Mosser, and J. Wavro, then gives you one clean, personalized deck.<\/p>\n<p>Pass. Keep. Open the original listing. Move on.<\/p>\n<p>We built Criblist on top of Context.dev:<\/p>\n<p>The HTML API fetches live listing pages<br \/>\nThe Extract API turns messy rental websites into structured inventory<br \/>\nThe Brand API keeps every source recognizable<\/p>\n<p>We also made a deliberate choice not to pad the results. If nothing genuinely matches what you asked for, Criblist tells you instead of showing you a bunch of irrelevant apartments.<\/p>\n<p>It\u2019s completely free, requires no login, and is fully open source.<\/p>\n<p>If you\u2019re looking for an apartment in SF right now, reply with:<\/p>\n<p>Budget \/ bedrooms \/ two neighborhoods \/ one dealbreaker<\/p>\n<p>We\u2019ll run your search and share the best match Criblist finds \ud83d\udc40<\/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\/@yahia_bakour3\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@yahia_bakour3<\/a>&nbsp;For folks actively hunting in SF: what&#8217;s one small detail that made or broke a place for you; something you wish search tools would surface or filter 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\">Great one.. hope it show how the neighborhood stats as well, let say safety, crime rate, family oriented etc.. good wishes with this..<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>It would be super helpful to see a map view alongside the swipe deck so I can visualize where each listing sits relative to my target neighborhoods and commute. Maybe a small toggle in the corner to switch between card stack and map mode. Would make narrowing down the geography way easier without losing the quick-browse feel.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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>A commute-time filter would be huge. Plug in where you work and it shows you listings under your max door-to-door time on Muni or BART, not just the rent number. Right now I still have to mentally cross-check every place against how long it&#8217;ll actually take me to get to the office.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@rzgarxblz\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rzgarxblz<\/a>&nbsp;I agree with this! That would be so helpful!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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 swipe-and-keep format is a great fit for this, apartment hunting really is just a matching problem dressed up as a spreadsheet. one thing I&#8217;d want to know before trusting it: does Criblist re-check that a listing is still live before showing it to me, or is there a chance I keep something that already got rented out an hour earlier? SF listings move fast<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>How do you plan to handle sourcing and data consistency from Craigslist, given their historical issues with scraper bots and varying listing quality?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Nice work Yahia. I will try to integrate <a href=\"https:\/\/Context.dev\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Context.dev<\/a> for Commercial Real Estate again. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>As a student, the struggle is real. How often do you find listings that aren&#8217;t duplicated across multiple sites?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\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\/B2AAONAFWVZST6\" class=\"app-title\">Aymo AI<\/a><\/p>\n<div class=\"one-liner\">All-in-one AI Platform for Teams<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">150<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Aymo AI\u662f\u4e00\u4e2a\u96c6\u6210GPT\u3001Claude\u3001Gemini\u7b4945+\u9876\u7ea7\u6a21\u578b\u7684\u56e2\u961fAI\u534f\u4f5c\u5e73\u53f0\uff0c\u901a\u8fc7\u7edf\u4e00\u5de5\u4f5c\u533a\u548c\u5171\u4eab\u4fe1\u7528\u989d\uff0c\u89e3\u51b3\u56e2\u961f\u591a\u8ba2\u9605\u3001\u591a\u7a97\u53e3\u3001\u6309\u4eba\u5934\u8ba1\u8d39\u7684\u9ad8\u6210\u672c\u548c\u6df7\u4e71\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\/79a95f00-f54f-40f0-a440-678932db4ad3.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/92ff7928-7aca-46a8-a272-a7eabba97e6c.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/a7ea51da-0b1a-461c-b6cf-97c31b606b65.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/bfb2594c-769c-41e8-a163-d7d52aaaadc0.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\/39edd6b6-5fa4-4aa0-81f0-81a488007a3d.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=WYXkCiZKNbA\"><source src=\"https:\/\/www.youtube.com\/watch?v=WYXkCiZKNbA\" 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\">Business Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u805a\u5408\u5e73\u53f0<\/span><br \/>\n            <span class=\"tag\">\u56e2\u961f\u534f\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u591a\u6a21\u578b\u5bf9\u6bd4<\/span><br \/>\n            <span class=\"tag\">\u5171\u4eab\u4fe1\u7528\u989d<\/span><br \/>\n            <span class=\"tag\">AI\u5de5\u4f5c\u533a<\/span><br \/>\n            <span class=\"tag\">Chrome\u6269\u5c55<\/span><br \/>\n            <span class=\"tag\">\u6587\u4ef6\u5206\u6790<\/span><br \/>\n            <span class=\"tag\">\u56fe\u50cf\u751f\u6210<\/span><br \/>\n            <span class=\"tag\">\u9690\u79c1\u52a0\u5bc6<\/span><br \/>\n            <span class=\"tag\">AI\u5de5\u5177\u96c6<\/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\u6574\u5408\u591a\u6a21\u578b\u548c\u5171\u4eab\u4fe1\u7528\u989d\u7684\u4ef7\u503c\uff0c\u4f46\u8d28\u7591\u201c\u7edf\u4e00\u8d39\u7387\u201d\u4e0b\u91cd\u6a21\u578b\u4f7f\u7528\u4f1a\u5bfc\u81f4\u6210\u672c\u5931\u63a7\uff1b\u6709\u7528\u6237\u62c5\u5fc3\u56e2\u961f\u5b9e\u9645\u53ea\u805a\u7126\u5c11\u6570\u529f\u80fd\uff1b\u5efa\u8bae\u4e0e\u73b0\u6709\u6587\u6863\u90ae\u4ef6\u7b49\u4e0a\u4e0b\u6587\u96c6\u6210\u4ee5\u589e\u5f3a\u5b9e\u7528\u6027\uff1b\u4e5f\u6709\u7528\u6237\u8be2\u95ee\u662f\u5426\u6709\u6210\u5458\u8f6f\u4e0a\u9650\u6765\u9632\u6b62\u4fe1\u7528\u989d\u88ab\u5355\u7528\u6237\u8017\u5c3d\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                Aymo AI\u7684\u53d9\u4e8b\u5f88\u806a\u660e\uff1a\u7528\u201c\u5171\u4eab\u4fe1\u7528\u989d\u201d\u6253\u6389\u4f20\u7edfSaaS\u6309\u4eba\u5934\u8ba1\u8d39\u7684\u9ad8\u6602\u6210\u672c\uff0c\u7528\u201c\u591a\u6a21\u578b\u805a\u5408\u201d\u89e3\u51b3\u4fe1\u606f\u5b64\u5c9b\u548c\u9009\u62e9\u7126\u8651\u3002\u4f46\u4ece\u8bc4\u8bba\u533a\u6700\u5c16\u9510\u7684\u53cd\u9988\u6765\u770b\uff0c\u5176\u6838\u5fc3\u673a\u5236\u5b58\u5728\u660e\u663e\u88c2\u75d5\u2014\u2014\u201c1000 tokens = 1 credit\u201d\u7684\u6241\u5e73\u5316\u5b9a\u4ef7\u5bf9\u4f9b\u5e94\u5546\u800c\u8a00\u662f\u4e2a\u8d22\u52a1\u9677\u9631\uff1a\u8f7b\u91cf\u6a21\u578b\u4e0e\u9876\u5c16\u63a8\u7406\u6a21\u578b\u6210\u672c\u5929\u5dee\u5730\u522b\uff0c\u7406\u6027\u56e2\u961f\u5fc5\u7136\u5728\u5171\u4eab\u6c60\u4e2d\u4f18\u5148\u8c03\u7528\u6700\u8d35\u6a21\u578b\uff0c\u6700\u7ec8\u5bfc\u81f4\u5e73\u53f0\u8fb9\u9645\u5229\u6da6\u88ab\u5feb\u901f\u4fb5\u8680\u3002\u8fd9\u5e76\u975e\u7b80\u5355\u7684\u201c\u7ba1\u7406\u95ee\u9898\u201d\uff0c\u800c\u662f\u5546\u4e1a\u6a21\u5f0f\u4e0a\u7684\u7ed3\u6784\u77db\u76fe\u3002\u521b\u59cb\u4eba\u56de\u5e94\u201c\u6709\u7ba1\u7406\u9762\u677f\u201d\u53ea\u662f\u63a8\u8d23\u7ed9\u7528\u6237\uff0c\u800c\u975e\u89e3\u51b3\u6839\u672c\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u6b64\u5916\uff0c\u4ea7\u54c1\u843d\u5730\u9762\u4e34\u201c\u529f\u80fd\u81a8\u80c0\u9677\u9631\u201d\uff1a\u5ba3\u79f045+\u6a21\u578b\u3001AI\u6587\u6863\u3001\u56fe\u50cf\u751f\u6210\u3001\u7f51\u9875\u641c\u7d22\u7b49\uff0c\u4f46\u7528\u6237\u771f\u5b9e\u884c\u4e3a\u5f80\u5f80\u662f\u53ea\u4f7f\u7528\u4e00\u4e24\u4e2a\u6838\u5fc3\u529f\u80fd\u3002\u65e9\u671f\u7528\u6237\u805a\u7126\u7684\u7a76\u7adf\u662f\u201c\u6bd4\u4ef7\u201d\u8fd8\u662f\u201c\u5171\u4eab\u534f\u4f5c\u201d\uff0c\u8fd9\u51b3\u5b9a\u4e86\u4ea7\u54c1\u5230\u5e95\u662f\u9ad8\u9891\u5bf9\u6bd4\u5de5\u5177\u8fd8\u662f\u56e2\u961f\u5de5\u4f5c\u53f0\u2014\u2014\u4e24\u8005\u5728\u7559\u5b58\u3001\u4ed8\u8d39\u6a21\u578b\u4e0a\u622a\u7136\u4e0d\u540c\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u771f\u6b63\u6709\u6f5c\u529b\u7684\u70b9\u4e0d\u5728\u4e8e\u201c\u591a\u6a21\u578b\u201d\uff0c\u800c\u5728\u4e8e\u201c\u4e0a\u4e0b\u6587\u6574\u5408\u201d\uff1a\u5982\u679cAymo\u80fd\u6210\u4e3a\u56e2\u961f\u77e5\u8bc6\u3001\u6587\u6863\u3001\u90ae\u4ef6\u3001\u804a\u5929\u8bb0\u5f55\u7684\u7edf\u4e00\u4e2d\u67a2\uff0c\u5e76\u7528AI\u5b9e\u65f6\u8c03\u7528\uff0c\u5b83\u5c31\u8df3\u51fa\u4e86\u70e7\u94b1\u6bd4\u4ef7\u7684\u7ea2\u6d77\uff0c\u5207\u5165\u4f01\u4e1a\u7ea7Copilot\u8d5b\u9053\u3002\u4f46\u76ee\u524d\u5b83\u66f4\u50cf\u4e00\u4e2a\u201c\u806a\u660e\u4f46\u6602\u8d35\u7684\u4e07\u82b1\u7b52\u201d\uff0c\u9700\u8981\u5148\u8bc1\u660e\u81ea\u5df1\u80fd\u8dd1\u901a\u5355\u4f4d\u7ecf\u6d4e\u6a21\u578b\uff0c\u800c\u975e\u9760\u514d\u8d39\u548c\u5671\u5934\u6536\u5272\u5c1d\u9c9c\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\">Aymo AI<\/span>\n                <\/div>\n<div class=\"comment-content\">Get access to latest models of GPT, Claude, Gemini, DeepSeek, Grok, Kimi, GLM and 45+ top AI models in one secure workspace with powerful team features. Compare outputs AI model response side by side, upload and chat with files, search the web, generate images, and collaborate with your team on every plan. Free and decent plans that can replace a dozen AI tools: Bundled with a Chrome extension, apps, useful AI tools, and AI Docs on the way.<\/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 Musharof, founder of Pimjo, and today we&#8217;re launching Aymo AI.<\/p>\n<p>Like a lot of you, my team and I were paying for ChatGPT, Claude, Gemini, and Perplexity separately. Multiple subscriptions, multiple tabs, and no way to share anything, since every tool charges full seat price even for members who barely use it. It felt broken, so we built the tool we wanted to use ourselves.<\/p>\n<p>Aymo AI is an all-in-one AI platform that puts every leading model in a single workspace, a solid AI aggregator built for teams. Team members run on shared credits instead of per-seat fees, so you&#8217;re not paying full price for someone who logs in twice a month. There&#8217;s a generous free plan to start, plus affordable paid tiers as you grow.<\/p>\n<p><strong>\u2728 KEY FEATURES<\/strong><\/p>\n<p><strong>Multi-model access:<\/strong> use all the top AI models, including GPT, Claude, Gemini, DeepSeek, Grok, and 40+ more, in one place. Switch between them mid-conversation without changing tabs or juggling logins.<\/p>\n<p><strong>Compare mode:<\/strong> run a single prompt across multiple models side by side, see how each one answers, and pick the best result for the job.<\/p>\n<p><strong>Team collaboration on every plan:<\/strong> share chats, assign roles, and use shared team prompts, project context, and reusable workflows together, all at no extra cost.<\/p>\n<p><strong>File analysis:<\/strong> upload PDFs, docs, sheets, or code and get accurate, context-aware answers in seconds, no copy-pasting required.<\/p>\n<p><strong>Chrome extension:<\/strong> bring Aymo AI with you anywhere on the web, so you can ask, summarize, or generate right where you&#8217;re working.<\/p>\n<p><strong>Free AI tools:<\/strong> a growing set of extras like a PDF summarizer, email writer, and marketing helpers, free to use and built right in.<\/p>\n<p><strong>AI image generation:<\/strong> turn a text prompt into visuals right inside your workspace, no separate design tool needed.<\/p>\n<p><strong>Live web search:<\/strong> pull real-time answers from the web with sources cited, so you get current information you can actually verify.<\/p>\n<p><strong>Bring your own API key: <\/strong>on the Business plan, connect your own provider keys and unlock unlimited usage at cost, with no message caps.<\/p>\n<p><strong>Privacy first:<\/strong> All chats and uploads are encrypted and never used for training.<\/p>\n<p><strong>\ud83c\udf81 Exclusive Discount for Product Hunters:<\/strong><br \/>We are offering a special discount for the Product Hunt community (limited time). <strong>No coupon code required!<\/strong><\/p>\n<p><strong>\u2705 Useful Links and Resources<\/strong><\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/aymo.ai\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Aymo AI Website<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/aymo.ai\/tools\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">AI Tools<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/aymo.ai\/compare-ai-models\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Compare and Chat with Multiple AI Models<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/aymo.ai\/prompt-library\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Prompt Library<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/aymo.ai\/ai-models\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">AI Models<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/aymo.ai\/roadmap\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Roadmap<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/aymo.ai\/docs\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Documentation<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/aymo.ai\/pricing\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Pricing<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/aymo.ai\/downloads\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Downloads<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/links.pimjo.com\/aymo-chrome\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Discord Community<\/a><\/p>\n<p>There&#8217;s a lot more in the pipeline. Your feedback and support are appreciated! \ud83d\udc9c<\/p>\n<\/li>\n<\/ul>\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\/@musharofchy\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@musharofchy<\/a>&nbsp;This is seriously impressive. Having all these models in one workspace makes comparing and choosing the right AI so much easier. 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=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@musharofchy\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@musharofchy<\/a>&nbsp;hey Musharof, All-in-one is a hard promise to keep. In my experience teams end up using one or two features hard and ignoring the rest of the suite. Which use case are your early teams actually adopting first? That usually tells you the real wedge, versus what the landing page is trying to cover.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">I think this becomes especially useful for teams once everyone starts using different models and tools. Having it all in one place is not bad at all. Congrats!<\/div>\n<div class=\"comment-actions\">\n<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\/@etiennegarcia\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@etiennegarcia<\/a> Exactly. Different models + different tools = chaos. One workspace keeps it simple. <br \/>Appreciate the support!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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>shared credits instead of per-seat pricing is the right instinct for teams where usage is lopsided. curious how you handle the flip side though: with a shared pool, what stops one heavy user from burning through the whole team&#8217;s monthly credits by day 10, is there a per-member soft cap or just visibility into who&#8217;s spending what<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>Musharof, the flat rate you gave Dilip (1,000 tokens equals 1 credit regardless of model) is the most interesting decision on this page, and I am not sure it survives contact with a real team.<\/p>\n<\/p>\n<p>If a light model and a reasoning model cost the user the same credit, the rational move is to always pick the most expensive one, which works against your own margin. Shared credits then turn one heavy user into everyone else&#8217;s problem, and the admin into the person policing it.<\/p>\n<\/p>\n<p>I sell against subscription sprawl in my own market, and what the buyer wants is not the lowest bill, it is a predictable one. Are there per-member caps and visibility into who is burning the pool?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\/@musharofchy\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"musharofchy\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@musharofchy<\/a> you know i&#8217;m a fan and an early user. i like this app!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>So this is a Q&amp;A, not an agent system<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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 big upsell for many teams would be to not just replace AI subscriptions but integrate with all their context &#8211; existing docs, emails, etc. Basically integrate with their full context<\/p>\n<\/p>\n<p>Microsoft are doing that with Copilot in enterprise and if you can do that for smaller teams, you could win 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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@martin_zokov\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@martin_zokov<\/a>&nbsp;You&#8217;re right, and it&#8217;s where we want to go.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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 the design of Aymo but I am still exploring and I am still not sure about credits, particularly how it is distributed between the light and advanced reasoning models.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@aagaman\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aagaman<\/a>&nbsp;Thanks, glad you like the design.<\/p>\n<p>Credits are simpler than you might expect. It&#8217;s a flat rate: 1,000 tokens equals 1 credit. That&#8217;s the same whether you&#8217;re using a light model or an advanced reasoning one.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@aagaman\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aagaman<\/a>&nbsp;Thanks, glad you like the design.<\/p>\n<p>Credits are simpler than you might expect. It&#8217;s a flat rate: 1,000 tokens equals 1 credit. That&#8217;s the same whether you&#8217;re using a light model or an advanced reasoning one.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@aagaman\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aagaman<\/a>&nbsp;Thanks, glad you like the design.<\/p>\n<p>Credits are simpler than you might expect. It&#8217;s a flat rate: 1,000 tokens equals 1 credit. That&#8217;s the same whether you&#8217;re using a light model or an advanced reasoning one.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Been using Aymo for a bit and the pitch is real: Having GPT-5, Claude, and Gemini in one place and being able to compare answers side by side instead of tab-hopping is the part I didn&#8217;t know I needed.<\/p>\n<p>Confetti from me. Nice launch.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@mushfq\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mushfq<\/a>&nbsp;Thank you so much Mushfiqur. Really glad it&#8217;s been useful, and thanks for the support! \ud83d\ude80<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Very cool! How many different models do you have? Do you also have the different GPT \/ Claude \/ Gemini models within?<\/div>\n<div class=\"comment-actions\">\n<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\/@anisha_agarwalla\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@anisha_agarwalla<\/a>&nbsp;Hey Anisha, Yep! We have GPT, Claude, Gemini, Grok, DeepSeek, Qwen, Mistral, Llama, Kimi, GLM, MiniMax, and more (all major Chinese models). <\/p>\n<p>You can switch between different variants like GPT, Claude Opus\/Sonnet, and Gemini Pro\/Flash, all in one place.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Replacing 5 separate AI tabs with 1 workspace sounds like a dream. Congrats on the PH launch <a href=\"https:\/\/www.producthunt.com\/@musharofchy\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"musharofchy\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@musharofchy<\/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\/@priya_kushwaha1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@priya_kushwaha1<\/a>&nbsp;Thanks Priya, glad you like the concept of Aymo.ai<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Definitely a great interface to communicate with all these LLM&#8217;s. Try it yourself!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@zoltanszogyenyi\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@zoltanszogyenyi<\/a>&nbsp;Thanks my friend!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#6<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/6EOMSBCWVQ62HH\" class=\"app-title\">PureBox.ai<\/a><\/p>\n<div class=\"one-liner\">Review-first AI cleanup for your real Gmail inbox.<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">143<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>PureBox.ai \u662f\u4e00\u6b3e\u57fa\u4e8eAI\u548c\u4e2a\u4eba\u90ae\u4ef6\u5386\u53f2\u7684\u9996\u5ba1\u5f0fGmail\u6e05\u7406\u5de5\u5177\uff0c\u901a\u8fc7\u5c06\u90ae\u4ef6\u667a\u80fd\u5206\u7c7b\u4e3a\u201c\u5173\u6ce8\u201d\u3001\u201c\u5f52\u6863\u201d\u548c\u201c\u5783\u573e\u201d\uff0c\u5e76\u7ed9\u51fa\u53ef\u7406\u89e3\u7684\u5206\u7c7b\u7406\u7531\uff0c\u89e3\u51b3\u7528\u6237\u56e0\u6d77\u91cf\u90ae\u4ef6\u5806\u79ef\u4ea7\u751f\u7684\u7126\u8651\u548c\u5bf9\u81ea\u52a8\u5316\u5220\u9664\u7684\u4e0d\u4fe1\u4efb\u611f\uff0c\u8ba9\u7528\u6237\u5b89\u5168\u3001\u53ef\u63a7\u5730\u91cd\u62fe\u6536\u4ef6\u7bb1\u4e3b\u5bfc\u6743\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\/fa819b2a-12d0-423b-81f1-eb01af9e68a4.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=lxydVlI11T8\"><source src=\"https:\/\/www.youtube.com\/watch?v=lxydVlI11T8\" 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\/f5576484-0831-42ef-b6e3-7af69e15f216.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/3966de19-12d8-4d74-9147-e284fec3f5f0.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/d33873de-ad19-4d75-9ade-c50589a00749.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/fa781d57-9ea2-4309-b635-55ce09c9ae5c.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/121976e7-0516-42b5-8e30-9008bfb0cb90.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/26bd1b0b-c4e4-4fae-b447-897cc4ae612f.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/a4ee6839-77c5-42fa-9966-d65caed56fb4.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/cc0b1acb-99f0-49fb-9c73-2439aea9fa0d.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Android<\/span><br \/>\n            <span class=\"tag\">Email<\/span><br \/>\n            <span class=\"tag\">Productivity<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u90ae\u4ef6\u6e05\u7406<\/span><br \/>\n            <span class=\"tag\">Gmail\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u6536\u4ef6\u7bb1\u96f6<\/span><br \/>\n            <span class=\"tag\">\u90ae\u4ef6\u5206\u7c7b<\/span><br \/>\n            <span class=\"tag\">\u9690\u79c1\u4fdd\u62a4<\/span><br \/>\n            <span class=\"tag\">\u4eba\u5de5\u5ba1\u6838<\/span><br \/>\n            <span class=\"tag\">\u90ae\u7bb1\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u667a\u80fd\u5f52\u6863<\/span><br \/>\n            <span class=\"tag\">\u751f\u4ea7\u529b\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">Product Hunt<\/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\u201c\u9996\u5ba1\u201d\u7406\u5ff5\u548c30\u5929\u56de\u6536\u7ad9\u5b89\u5168\u611f\uff0c\u4f46\u5173\u6ce8\u51e0\u4e2a\u6838\u5fc3\u95ee\u9898\uff1aAI\u5982\u4f55\u533a\u5206\u91cd\u8981\u81ea\u52a8\u90ae\u4ef6\u4e0e\u4fc3\u9500\uff1f\u5728\u90ae\u4ef6\u7ebf\u7a0b\u4e2d\u80fd\u5426\u8bc6\u522b\u964c\u751f\u53d1\u4ef6\u4eba\u7684\u56de\u590d\uff1f\u6570\u636e\u5220\u9664\u540e\u662f\u5426\u5f7b\u5e95\u6e05\u9664\uff1f\u80fd\u5426\u652f\u6301\u591a\u8d26\u6237\uff1fAI\u662f\u5426\u4ece\u7528\u6237\u7684\u62d2\u7edd\u64cd\u4f5c\u4e2d\u5b66\u4e60\uff1f\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                PureBox.ai \u7684\u4ef7\u503c\u4e0d\u5728\u4e8e\u6240\u8c13\u201cAI\u6e05\u7406\u201d\u7684\u5671\u5934\uff0c\u800c\u5728\u4e8e\u5b83\u7cbe\u51c6\u5730\u6293\u4f4f\u4e86\u7528\u6237\u5bf9\u6536\u4ef6\u7bb1\u7684\u201c\u60c5\u611f\u969c\u788d\u201d\u800c\u975e\u201c\u6280\u672f\u5931\u6548\u201d\u2014\u2014\u8fd9\u624d\u662f\u771f\u6b63\u7684\u75db\u70b9\u3002\u5b83\u4e0d\u627f\u8bfa\u4e00\u952e\u6e05\u7a7a\uff0c\u800c\u662f\u7528\u201c\u5148\u5206\u7c7b\u3001\u540e\u89e3\u91ca\u3001\u518d\u51b3\u7b56\u201d\u7684\u6d41\u7a0b\uff0c\u628a\u63a7\u5236\u6743\u585e\u56de\u7528\u6237\u624b\u91cc\uff0c\u6253\u6d88\u201c\u4e0d\u77e5\u9053\u5220\u4e86\u4ec0\u4e48\u201d\u7684\u6050\u60e7\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u5766\u8bda\u5730\u8bf4\uff0c\u8fd9\u672c\u8d28\u4e0a\u662f\u4e2a\u201c\u806a\u660e\u7684\u6807\u7b7e\u5668\u201d\uff0c\u9769\u547d\u6027\u6709\u9650\u3002\u5176AI\u6838\u5fc3\u4f9d\u8d56Gmail\u5386\u53f2\u884c\u4e3a\uff08\u6253\u5f00\u3001\u56de\u590d\u3001\u5806\u79ef\uff09\u548cLLM\u8fdb\u884c\u4e0a\u4e0b\u6587\u5206\u7c7b\u3002\u8bc4\u8bba\u533a\u66b4\u9732\u4e86\u51e0\u4e2a\u81f4\u547d\u95ee\u9898\uff1a\u4e00\u662f\u65e0\u6cd5\u5e94\u5bf9\u201c\u51b7\u542f\u52a8\u201d\u2014\u2014\u4e00\u4e2a\u4ece\u6765\u4e0d\u6253\u5f00\u4f46\u7a81\u7136\u6709\u91cd\u8981\u56de\u5e94\u7684\u964c\u751f\u90ae\u4ef6\uff0c\u4f60\u7684AI\u53ea\u4f1a\u57fa\u4e8e\u7528\u6237\u60f0\u6027\u5386\u53f2\u5c06\u5176\u8bef\u5224\u3002\u4e8c\u662f\u8fb9\u7f18\u573a\u666f\uff08\u5982\u8bca\u6240\u7684\u53d7\u4fdd\u62a4\u5065\u5eb7\u4fe1\u606f\uff09\u7684\u5408\u89c4\u6027\u6839\u672c\u672a\u89e3\u51b3\uff0c\u6d89\u53caGDPR\u6216HIPAA\u7684\u90ae\u7bb1\uff0c\u4f60\u6240\u8c13\u7684\u201c\u4e0d\u5356\u6570\u636e\u201d\u548cOAuth\u6388\u6743\u5728\u6cd5\u52a1\u5c42\u9762\u6beb\u65e0\u610f\u4e49\u3002\u4e09\u662f\u8bc4\u8bba\u533a\u53cd\u590d\u8d28\u7591\u201cAI\u662f\u5426\u5b66\u4e60\u7528\u6237\u4fee\u6b63\u201d\uff0c\u5982\u679c\u53ea\u662f\u9759\u6001\u5206\u7c7b\u6a21\u578b\uff0c\u90a3\u957f\u671f\u4f7f\u7528\u4e0b\u6765\uff0c\u5bf9\u590d\u6742\u5de5\u4f5c\u6d41\u7684\u63d0\u5347\u6781\u5176\u6709\u9650\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u66f4\u5173\u952e\u7684\u662f\u5546\u4e1a\u6a21\u5f0f\uff1a\u9760Pro\u8ba2\u9605\u800c\u975e\u5356\u6570\u636e\u662f\u6b63\u786e\u65b9\u5411\uff0c\u4f46\u82e5\u7528\u6237\u57fa\u6570\u5c0f\uff0c\u6a21\u578b\u8fed\u4ee3\u548c\u9690\u79c1\u5408\u89c4\u6210\u672c\u5f88\u5feb\u5c31\u4f1a\u538b\u57ae\u8fd9\u4e2a\u201c\u5c0f\u800c\u7f8e\u201d\u7684\u6545\u4e8b\u3002PureBox.ai \u66f4\u50cf\u4e00\u4e2a\u7cbe\u5fc3\u8bbe\u8ba1\u7684\u201c\u5fc3\u7406\u5b89\u6170\u5242\u201d\u2014\u2014\u5b83\u5e2e\u7528\u6237\u6e05\u7406\u7684\u4e0d\u662f\u90ae\u4ef6\uff0c\u800c\u662f\u6253\u5f00\u6536\u4ef6\u7bb1\u7684\u7126\u8651\u3002\u8fd9\u4e2a\u5dee\u5f02\u5316\u5f88\u806a\u660e\uff0c\u4f46\u82e5\u60f3\u4ece\u5c0f\u4f17\u8d70\u5411\u5927\u4f17\uff0c\u5b83\u5fc5\u987b\u56de\u7b54\u6e05\u695a\uff1a\u5f53\u7528\u6237\u5efa\u7acb\u4fe1\u5fc3\u540e\uff0c\u4f60\u7684AI\u80fd\u5426\u771f\u6b63\u52a8\u6001\u8fdb\u5316\u4ee5\u9002\u5e94\u65b0\u7684\u3001\u66f4\u590d\u6742\u7684\u90ae\u4ef6\u4e60\u60ef\uff1f\u5426\u5219\uff0c\u5b83\u6700\u7ec8\u53ea\u4f1a\u6ca6\u4e3a\u4e00\u4e2a\u66f4\u590d\u6742\u7684\u201c\u8fc7\u6ee4\u89c4\u5219\u751f\u6210\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\">PureBox.ai<\/span>\n                <\/div>\n<div class=\"comment-content\">Most inbox tools make you build rules first. PureBox skips that &#8211; it&#8217;s personalized from your first scan using AI and your own Gmail history (which senders you open, reply to, or let pile up), so suggestions fit your routine on day one. Every suggestion shows why, and nothing moves until you approve &#8211; no black box, no silent deletions. It surfaces what needs your attention, not just what to trash. Your data is never sold; Pro subscriptions fund it.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">For about two years, opening Gmail made my chest tighten.<\/p>\n<p>It wasn&#8217;t really the volume &#8211; it was the fear that somewhere under thousands of unread newsletters, promos, and receipts there was a bill I&#8217;d missed, or a message from an actual person I&#8217;d left on read for three weeks. So I did what a lot of us do: I stopped looking. Which, obviously, made it worse.<\/p>\n<p>I tried the usual stuff. &#8220;Inbox zero&#8221; lasted a weekend. Filters I set up once and never touched again. A couple of those &#8220;auto-clean&#8221; apps that delete things in the background &#8211; which somehow made the anxiety worse, because now I didn&#8217;t even know what was gone.<\/p>\n<p>What I actually wanted was almost embarrassingly simple: something to sort the pile, tell me what mattered, and let me be the one to hit delete.<\/p>\n<p>So I built it. It&#8217;s called PureBox.ai. You connect Gmail through Google&#8217;s OAuth (you grant access, it never sees your password), and it uses an LLM to read each email and sort everything into three piles: Attention (probably needs you), Archive (safe to file), and Trash (safe to bin). Every suggestion comes with a plain-English reason &#8211; like &#8220;newsletter, unopened for 8 months&#8221; &#8211; so it&#8217;s not a black box. Nothing moves until you approve it, and because it all happens in your real Gmail, anything trashed just sits in the bin for 30 days. I built the review-first part first, honestly, because I didn&#8217;t fully trust my own tool.<\/p>\n<p>The thing that surprised me: the relief didn&#8217;t come from the inbox being empty. It came from not being afraid to open it.<\/p>\n<p>It&#8217;s free to run on a sample of your inbox, so you can see whether it&#8217;s actually useful before paying for anything. And happy to answer anything about how it handles your data &#8211; that&#8217;s a fair question for anything you&#8217;d hook up to your inbox.<\/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\">@shaked_i Love the review-first concept; keeping users in control without silent deletions is a great approach. I help tech founders with organic launch strategy and reach. Would love to connect here on LinkedIn and keep in touch!<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\/@shaked_i\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@shaked_i<\/a>&nbsp;Quick question: how does <a href=\"http:\/\/PureBox.ai\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">PureBox.ai<\/a> handle edge cases like important automated emails that look similar to promos or newsletters? I\u2019d love to hear what protections you\u2019ve added so those never get mistakenly archived or trashed.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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 30 day trash grace period is a smart touch, most people won&#8217;t trust an AI email tool until there&#8217;s a real undo. one thing I&#8217;m curious about &#8211; once something gets filed to Archive, does it stay just as searchable as normal gmail archive, or does the LLM sorting change how findable stuff like old invoices\/contracts is later?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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 would never want an AI cleaning my inbox without showing me what it is doing first. The review-first approach feels like the right way to build this. Congrats!<\/div>\n<div class=\"comment-actions\">\n<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>Sender history is a strong signal but it breaks in one spot that&#8217;s bitten me: a reply to a thread I started, from an address I&#8217;ve never opened before, looks statistically identical to a cold email. I run a lot of outbound and the messages I most need to see are exactly those first replies from strangers. Does PureBox weight &#8220;this is in a thread I sent&#8221; above sender history, or is the classification mostly per-message?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>Shaked, the origin story is the strongest part of this page, and review-first reads like a decision you made for yourself rather than for the launch.<\/p>\n<\/p>\n<p>One case nobody raised: a small clinic inbox is full of patients writing about symptoms and lab results, so your first scan is processing regulated data. The question there is not retention (Chalermpon and Gal already covered that one), it is who counts as the processor. That inbox owner needs a signed agreement covering you and whichever model provider you call, otherwise they cannot connect at all.<\/p>\n<\/p>\n<p>Is the provider behind the sorting one you could sign that with? Solo therapists have the worst inboxes I have seen and almost no tool they are allowed to touch.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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;nothing moves until you approve&#8221; framing plus the 30 day undo window is the right way to earn trust with something touching a real inbox. one thing I didn&#8217;t see covered &#8211; if someone connects, tries it out, then revokes Gmail access later, is there anything left behind on your end from the scan (cached content, summaries, sender history), or does disconnecting clear it out completely?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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 very timely and useful solution.<\/p>\n<p>I used to create new accounts so I wouldn&#8217;t lose anything important, and I had to unsubscribe from unnecessary newsletters.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\/@shaked_i\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"shaked_i\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@shaked_i<\/a> Congrats on the launch! Since this is scoped to Gmail right now, is multiple account support on the roadmap, like handling a personal and a work inbox in one place?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on the launch! The three-bucket plus reasoning approach is a smart way to keep trust intact, most inbox cleanup tools break it the moment they act silently on something that mattered.<\/p>\n<p>Before I&#8217;d trust it with my own Gmail, I&#8217;m curious what happens to an email&#8217;s content after it goes through the model to generate the category and explanation, whether it&#8217;s discarded right after the suggestion is shown or logged somewhere on your end. That distinction would decide whether I connect a real inbox to it.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I honestly have around 5k of unread emails, but I like the fact that nothing gets deleted automatically. How long did it take before you were comfortable relying on your own product?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This is clever. Does the AI learn from rejections too, or just from what you approve?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey I really want to use this! My email box is sooooooooo full! I am afraid I will delete something important.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>Review-first is the right call. Most inbox AI I&#8217;ve tried loses my trust the first time it quietly archives something that actually mattered. How do you handle the gray-zone stuff, like a cold pitch that&#8217;s genuinely relevant versus noise? Is the review queue learning per-user, or are the rules more global at the start?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/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\/IUAEPHIZ7VT24D\" class=\"app-title\">BrainFeed<\/a><\/p>\n<div class=\"one-liner\">A personalized learning feed that redirects your scroll<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">125<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>BrainFeed\u5c06\u7528\u6237\u62d6\u5ef6\u9605\u8bfb\u7684\u957f\u6587\u6216\u89c6\u9891\u8f6c\u5316\u4e3a\u5e26\u95f4\u9694\u8bb0\u5fc6\u7684\u788e\u7247\u5316\u5361\u7247\u4fe1\u606f\u6d41\uff0c\u628a\u5237\u624b\u673a\u7684\u65f6\u95f4\u53d8\u4e3a\u4e2a\u6027\u5316\u5b66\u4e60\u573a\u666f\uff0c\u89e3\u51b3\u201c\u60f3\u5b66\u6ca1\u65f6\u95f4\u201d\u4e0e\u201c\u4e00\u5237\u5c31\u505c\u4e0d\u4e0b\u6765\u201d\u7684\u77db\u76fe\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\/5452d557-703f-48b3-9861-c9e4a705f6e6.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/738e575e-fad9-43ef-a84a-a533b0d7be63.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/2d45a723-6be1-4652-be72-8f7e517ea4dd.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/6606c3fc-7a48-4811-aa80-3fd5e7a465ea.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/8e929fac-68f5-4414-b42b-d76928390b8b.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/76b17b21-a4bc-4c69-a8b6-b9a9a9fc0f33.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\/56178641-0cbd-41de-bfdd-cb24292ea0fb.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=FaPhhZwgzbI\"><source src=\"https:\/\/www.youtube.com\/watch?v=FaPhhZwgzbI\" 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\">\u4e2a\u6027\u5316\u5b66\u4e60<\/span><br \/>\n            <span class=\"tag\">\u788e\u7247\u5316\u77e5\u8bc6<\/span><br \/>\n            <span class=\"tag\">\u95f4\u9694\u91cd\u590d<\/span><br \/>\n            <span class=\"tag\">\u5361\u7247\u5f0f\u5b66\u4e60<\/span><br \/>\n            <span class=\"tag\">\u77e5\u8bc6\u4fdd\u7559<\/span><br \/>\n            <span class=\"tag\">AI\u5185\u5bb9\u6458\u8981<\/span><br \/>\n            <span class=\"tag\">\u6eda\u52a8\u66ff\u4ee3<\/span><br \/>\n            <span class=\"tag\">\u77e5\u8bc6\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u4e60\u60ef\u91cd\u5851<\/span><br \/>\n            <span class=\"tag\">iOS\u5e94\u7528<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u8ba4\u53ef\u201c\u6eda\u52a8\u4e0d\u662f\u95ee\u9898\uff0c\u6eda\u52a8\u5185\u5bb9\u624d\u662f\u201d\u7684\u7406\u5ff5\u91cd\u5851\u3002\u6709\u6548\u53cd\u9988\u5305\u62ec\uff1a\u514d\u8d39\u7248\u540c\u65f6\u8ddf\u8e2a\u76ee\u6807\/\u94fe\u63a5\u6570\u91cf\u7684\u9650\u5236\u672a\u660e\u786e\uff1b\u8be2\u95ee\u662f\u5426\u4f1a\u8986\u76d6\u91d1\u878d\u3001\u6295\u8d44\u7b49\u4e3b\u9898\uff1b\u5173\u6ce8\u95f4\u9694\u91cd\u590d\u673a\u5236\u662f\u5426\u9002\u7528\u4e8e\u5355\u7bc7\u6587\u7ae0\u6216\u4ec5\u9650\u957f\u671f\u76ee\u6807\uff1b\u591a\u540d\u7528\u6237\u547c\u5401\u63a8\u51fa\u5b89\u5353\u7248\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                BrainFeed\u7684\u806a\u660e\u4e4b\u5904\u5728\u4e8e\u6ca1\u6709\u8ddf\u7528\u6237\u201c\u5237\u624b\u673a\u201d\u7684\u4e60\u60ef\u6b63\u9762\u786c\u521a\uff0c\u800c\u662f\u987a\u52bf\u800c\u4e3a\u2014\u2014\u628a\u201c\u5237\u201d\u4ece\u4f4e\u6548\u6d88\u9063\u91cd\u5851\u4e3a\u9ad8\u6548\u5b66\u4e60\u3002\u4ea7\u54c1\u6838\u5fc3\u4ef7\u503c\u4e0d\u5728\u4e8e\u521b\u9020\u65b0\u7684\u5b66\u4e60\u8f7d\u4f53\uff08\u5361\u7247\u65e9\u5df2\u6709\u4e4b\uff09\uff0c\u800c\u5728\u4e8e\u540c\u65f6\u89e3\u51b3\u4e86\u4e24\u4e2a\u7ecf\u5178\u75db\u70b9\uff1a\u4e00\u662f\u5bf9\u5df2\u4fdd\u5b58\u4f46\u672a\u8bfb\u5185\u5bb9\u7684\u56de\u907f\u5fc3\u7406\uff08\u901a\u8fc7AI\u5206\u62c6\u964d\u4f4e\u542f\u52a8\u95e8\u69db\uff09\uff0c\u4e8c\u662f\u770b\u5b8c\u5c31\u5fd8\u7684\u8bb0\u5fc6\u6f0f\u6597\uff08\u901a\u8fc7\u95f4\u9694\u91cd\u590d\u9501\u5b9a\u9ad8\u9891\u89c2\u70b9\uff09\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u98ce\u9669\u540c\u6837\u660e\u663e\u3002\u9996\u5148\uff0c\u7528\u6237\u771f\u6b63\u9700\u8981\u7684\u662f\u201c\u5b66\u4f1a\u201d\u800c\u975e\u201c\u5237\u5b8c\u201d\uff0c\u95f4\u9694\u91cd\u590d\u7684\u6267\u884c\u8d28\u91cf\u53d6\u51b3\u4e8e\u4ea7\u54c1\u80fd\u5426\u7cbe\u51c6\u5224\u65ad\u7528\u6237\u771f\u6b63\u9700\u8981\u8bb0\u5fc6\u7684\u5173\u952e\u8282\u70b9\uff0c\u800c\u4e0d\u662f\u673a\u68b0\u5730\u5c06\u539f\u6587\u62c6\u6210\u7b49\u957f\u5361\u7247\u3002\u5176\u6b21\uff0cBrainFeed\u672c\u8d28\u4e0a\u662f\u4e00\u4e2a\u5185\u5bb9\u4e2d\u8f6c\u7ad9\u800c\u975e\u539f\u521b\u5185\u5bb9\u6c60\uff0c\u4e00\u65e6\u7528\u6237\u5174\u8da3\u76ee\u6807\u66f4\u65b0\u3001\u539f\u94fe\u63a5\u5931\u6548\u6216\u5185\u5bb9\u8d28\u91cf\u53c2\u5dee\uff0c\u4ea7\u54c1\u4ef7\u503c\u5c06\u8fc5\u901f\u7a00\u91ca\u3002\u66f4\u68d8\u624b\u7684\u662f\uff0c\u5982\u679c\u7528\u6237\u8fde\u201c\u4fdd\u5b58\u201d\u52a8\u4f5c\u90fd\u4e0d\u613f\u505a\u2014\u2014\u8fd9\u79cd\u7528\u6237\u6bd4\u4f8b\u53ef\u80fd\u66f4\u9ad8\u2014\u2014\u4ea7\u54c1\u5c31\u5f7b\u5e95\u5931\u6548\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5546\u4e1a\u6a21\u5f0f\u4e0a\uff0c\u514d\u8d39\u7248\u5bf9\u76ee\u6807\u6570\u91cf\u7684\u9650\u5236\u662f\u5408\u7406\u95e8\u69db\uff0c\u4f46\u4e00\u65e6\u6536\u8d39\uff0c\u7528\u6237\u4f1a\u7acb\u5373\u6bd4\u8f83\u201c\u7528\u788e\u7247\u65f6\u95f4\u5237\u5361\u7247\u201d\u548c\u201c\u76f4\u63a5\u770b\u539f\u6587\u7ae0+\u88ab\u52a8\u590d\u4e60\u7b14\u8bb0\u201d\u4e4b\u95f4\u7684ROI\u3002\u4ece\u8bc4\u8bba\u53cd\u9988\u770b\uff0c\u5b89\u5353\u7248\u547c\u58f0\u9ad8\u4e14\u5df2\u5f00\u542f\u5185\u6d4b\uff0c\u8fd9\u662f\u5feb\u901f\u6269\u5927\u7528\u6237\u57fa\u6570\u7684\u5173\u952e\u4e00\u6b65\u3002\u5efa\u8bae\u56e2\u961f\u8b66\u60d5\u201cAI\u5b66\u4e60\u201d\u8d5b\u9053\u8fc7\u5ea6\u62e5\u6324\u540e\u7684\u540c\u8d28\u5316\uff0c\u8fdb\u4e00\u6b65\u5f3a\u5316\u201c\u900f\u660e\u6765\u6e90\u201d\u548c\u201c\u7528\u6237\u81ea\u5b9a\u4e49\u590d\u4e60\u8282\u594f\u201d\u4e24\u4e2a\u5dee\u5f02\u5316\u70b9\uff0c\u5426\u5219\u5f88\u53ef\u80fd\u6ca6\u4e3a\u4e00\u6b3e\u6f02\u4eae\u7684\u201c\u6536\u85cf\u5939\u6e05\u7406\u5de5\u5177\u201d\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">BrainFeed<\/span>\n                <\/div>\n<div class=\"comment-content\">BrainFeed is a personalized learning feed designed to redirect your scrolling habit and build compounding knowledge. Set a custom goal like &#8220;how to get my first 100 users,&#8221; or drop in a link to that long article or YouTube video you\u2019ve been avoiding. BrainFeed transforms them into a bite-sized, scrollable feed of cards that you can easily get through while waiting in a line. Unlike traditional feeds, BrainFeed uses spaced repetition to ensure you actually retain what you read.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hi Product Hunt! Arnav here, building BrainFeed with my co-founder Aasrith.<\/p>\n<\/p>\n<p>I try pretty hard not to lose time to feeds, but they usually win anyway. When I have a few free minutes, I inevitably end up on YouTube Shorts, and it feels terrible when those minutes turn into hours. Meanwhile, the things I actually <em>want<\/em> to learn just sit in a &#8220;saved&#8221; folder, never to be opened.<\/p>\n<\/p>\n<p>Quitting these apps sounds simple, but it doesn&#8217;t kill the time and urge to scroll. Aasrith left Instagram and just ended up on TikTok. We realized scrolling isn\u2019t the problem; what you scroll is. So, we built something worth scrolling instead.<\/p>\n<\/p>\n<p>You tell BrainFeed what you want to learn, or drop in an article or video you\u2019ve been avoiding, and it converts them into short cards you can finish while standing in a queue. You can also see what other users are learning and join their goals. Instead of scrolling and forgetting, it uses spaced repetition to help you actually retain the insights.<\/p>\n<\/p>\n<p>We are officially live on the App Store! The best way to try it right now: create\/join 3 goals, paste in one link you\u2019ve been meaning to read but haven&#8217;t got to, and see what it turns into.<\/p>\n<\/p>\n<p>We\u2019d love to hear your thoughts, feedback, and whether BrainFeed earns a spot on your home screen.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>7<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@alohiya95\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alohiya95<\/a>&nbsp;Huge congrats on launching\ud83d\ude4cqq what\u2019s the maximum number of links or goals a user can track at one time on the free tier?<\/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 just keep doomscrolling on Instagram. Does BrainFeed have topics such as finance, investing, and psychology ? Could it build my feed around those ?<\/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\/@reda_roqai_chaoui\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@reda_roqai_chaoui<\/a>&nbsp;It does! All three are in there as categories, you just select them as your interests and the feed will be around it. The 2 other ways to have more control over your feed is by<\/p>\n<ol>\n<li>\n<p>Creating goals: like \u201cI want to understand futures and options&#8221;<\/p>\n<\/li>\n<li>\n<p>Sharing content from YouTube, articles, etc into BrainFeed<\/p>\n<\/li>\n<\/ol>\n<p>You can do one or all of these.<br \/>Let me know if it helps with the doomscrolling!<\/p>\n<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the reframe here is smart, scrolling isn&#8217;t really the addiction, it&#8217;s just the easiest habit to fall into when you&#8217;re bored. question on the spaced repetition part &#8211; if I drop in a one-off article I&#8217;ve been avoiding, does it actually resurface cards from that specific piece a few days later, or is spaced repetition only tied to the ongoing goals? curious how it decides what&#8217;s worth bringing back<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@omri_ben_shoham1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@omri_ben_shoham1<\/a>&nbsp;You decide whats worth bringing back. You simply double on the card to enroll it for spaced repetition and brainfeed takes care of it through a gamified experience (we call it the star field). The article you drop would be split into topics, so you would get to choose which topics are worth it.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Love the concept! Any plans to launch the android version 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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@haveyoumetsam_ Hi Swayam! We&#8217;re running the closed testing for Android right now, you can install it using this:<br \/>\n<a href=\"https:\/\/groups.google.com\/g\/brainfeed-android\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/groups.google.com\/g\/brai&#8230;<\/a><br \/>\nIt&#8217;ll be available on the playstore in 2 weeks<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Been using BrainFeed for a few weeks now and it helps expand my knowledge in areas I have genuine interest in. It&#8217;s always a better alternative than doom scrolling!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\">@jk_jensen Thank you! happy to hear that you find it useful! Have you tried sharing brainfeed an article you&#8217;ve been meaning to get to?<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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, 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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@madzadev\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@madzadev<\/a>&nbsp;Thank you so much!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Dropped in a 30-minute YouTube video I&#8217;d been putting off and it actually broke it into manageable cards I could get through on my coffee break. The spaced repetition part is what sold me, I remember more after one session than I do from skimming a dozen articles.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@emirhan26363\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@emirhan26363<\/a>&nbsp;Thats amazing! The star field will take care of the spaced repetition. You could also browse through the goals we have and see if you find something interesting or create one yourself<\/p>\n<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hi Product Hunt! I&#8217;m Aasrith.<\/p>\n<\/p>\n<p>One of the things we cared a lot about while building BrainFeed was making AI generated learning feel transparent.<\/p>\n<\/p>\n<p>Our cards include source links, so you can see where the information comes from and explore the original material whenever you want.<\/p>\n<\/p>\n<p>We want to push AI as far as it goes in personalising learning, but it shouldn&#8217;t be a black box.<\/p>\n<\/p>\n<p>Would love to hear what you think!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@aasrith_mareddy\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aasrith_mareddy<\/a>&nbsp;Hey Aasrith, congrats on the launch of your app\u2026 been using Brainfeed for couple days now and been learning something new eveytime, like the idea behind it and it is being able to get me out some long scrolling hours.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#8<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/24P2KUY4V3E55O\" class=\"app-title\">Yoggi<\/a><\/p>\n<div class=\"one-liner\">Safe AI chat for kids<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">117<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Yoggi \u662f\u4e00\u6b3e\u4e13\u4e3a3-15\u5c81\u513f\u7ae5\u8bbe\u8ba1\u7684AI\u804a\u5929\u52a9\u624b\uff0c\u901a\u8fc7\u5e74\u9f84\u81ea\u9002\u5e94\u56de\u7b54\u3001\u4e25\u683c\u5185\u5bb9\u8fc7\u6ee4\u3001\u5bb6\u957f\u63a7\u5236\u9762\u677f\u548c\u5b9e\u65f6\u8bed\u97f3\u5bf9\u8bdd\uff0c\u89e3\u51b3\u5b69\u5b50\u63a5\u89e6AI\u65f6\u7684\u5b89\u5168\u65e0\u76d1\u7ba1\u3001\u5185\u5bb9\u4e0d\u9002\u5b9c\u548c\u60c5\u611f\u4f9d\u8d56\u98ce\u9669\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\/cecf25dd-dc22-43d7-bdad-90d1baac07e1.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/cbf326c5-5019-41bf-9ec0-aff000b4b386.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/e2ae64ed-ac7e-42c9-b172-bb20580fb37e.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b7c2adbb-b590-41f2-8616-eca6646e868a.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/deea5639-8279-4e25-9a0d-41df0905c26e.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Android<\/span><br \/>\n            <span class=\"tag\">Parenting<\/span><br \/>\n            <span class=\"tag\">Kids<\/span><br \/>\n            <span class=\"tag\">Education<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u513f\u7ae5AI<\/span><br \/>\n            <span class=\"tag\">\u5bb6\u957f\u63a7\u5236<\/span><br \/>\n            <span class=\"tag\">\u5b89\u5168\u804a\u5929<\/span><br \/>\n            <span class=\"tag\">\u5e74\u9f84\u81ea\u9002\u5e94<\/span><br \/>\n            <span class=\"tag\">\u5185\u5bb9\u8fc7\u6ee4<\/span><br \/>\n            <span class=\"tag\">\u8bed\u97f3\u4e92\u52a8<\/span><br \/>\n            <span class=\"tag\">\u56fe\u50cf\u751f\u6210<\/span><br \/>\n            <span class=\"tag\">\u6559\u80b2\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u9752\u5c11\u5e74\u4fdd\u62a4<\/span><br \/>\n            <span class=\"tag\">\u80b2\u513f\u79d1\u6280<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u6838\u5fc3\u5173\u5207\uff1a3-15\u5c81\u5e74\u9f84\u8de8\u5ea6\u5982\u4f55\u52a8\u6001\u9002\u914d\u8bed\u8a00\u4e0e\u5fc3\u667a\uff1b\u56fe\u50cf\u751f\u6210\u7684\u5b89\u5168\u98ce\u9669\uff08\u63d0\u793a\u8bcd\u7ed5\u8fc7\uff09\uff1b\u9752\u5c11\u5e74\u9690\u79c1\u4e0e\u5bb6\u957f\u901a\u77e5\u7684\u51b2\u7a81\uff08\u5c24\u5176\u7236\u6bcd\u53ef\u80fd\u662f\u95ee\u9898\u6e90\u5934\uff09\uff1b3-5\u5c81\u4f4e\u9f84\u513f\u7ae5\u5bf9AI\u201c\u62df\u4eba\u5316\u201d\u7684\u8ba4\u77e5\u6df7\u6dc6\uff1b\u60c5\u611f\u4f9d\u8d56\u8fb9\u754c\u95ee\u9898\uff1b\u5bf9\u8bdd\u8bb0\u5f55\u4fdd\u7559\u65f6\u957f\u4e0e\u7b2c\u4e09\u65b9\u8bbf\u95ee\u6743\u9650\u3002\u591a\u6570\u8bc4\u8bba\u8ba4\u53ef\u5b89\u5168\u5b9a\u4f4d\uff0c\u4f46\u8981\u6c42\u66f4\u900f\u660e\u7684\u6570\u636e\u7b56\u7565\u548c\u66f4\u7ec6\u7c92\u5ea6\u7684\u9632\u62a4\u6a21\u578b\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                Yoggi\u8e29\u51c6\u4e86\u4e00\u4e2a\u6b63\u5728\u81a8\u80c0\u7684\u521a\u9700\u201cAI\u539f\u751f\u4ee3\u201d\u7684\u5b89\u5168\u5165\u53e3\u3002117\u7968\u7684\u65e9\u671f\u70ed\u5ea6\u4e0d\u7b97\u60ca\u8273\uff0c\u4f46\u8bc4\u8bba\u533a\u7684\u8d28\u91cf\u8fdc\u8d85\u5e73\u5747\u6c34\u5e73\uff0c\u8bf4\u660e\u5b83\u5438\u5f15\u7684\u662f\u771f\u6b63\u5173\u5fc3\u513f\u7ae5AI\u4f26\u7406\u7684\u4e25\u8083\u7528\u6237\uff0c\u800c\u975e\u6cdb\u6cdb\u7684\u730e\u5947\u6d41\u91cf\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ea7\u54c1\u6700\u806a\u660e\u7684\u8bbe\u8ba1\u5e76\u975e\u201c\u8fc7\u6ee4\u201d\uff0c\u800c\u662f\u201c\u91cd\u6784\u201d\u3002\u4e0d\u662f\u7b80\u5355\u7c97\u66b4\u5730\u5c4f\u853d\u4e0d\u826f\u5185\u5bb9\uff0c\u800c\u662f\u901a\u8fc7\u5e74\u9f84\u6863\u6848\u52a8\u6001\u8c03\u6574\u56de\u7b54\u7684\u590d\u6742\u5ea6\u3001\u8bed\u6c14\u751a\u81f3\u60c5\u611f\u6df1\u5ea6\uff0c\u8fd9\u79cd\u201c\u5bf9\u8bdd\u5c42\u201d\u7684\u9002\u914d\u6bd4\u4f20\u7edf\u5173\u952e\u8bcd\u8fc7\u6ee4\u5148\u8fdb\u4e00\u4e2a\u6570\u91cf\u7ea7\u3002\u540c\u65f6\uff0c\u56fe\u50cf\u751f\u6210\u73af\u8282\u7528\u201c\u6a21\u677f\u5c01\u88c5\u201d\u66ff\u4ee3\u201c\u81ea\u7531\u63d0\u793a\u8bcd\u201d\uff0c\u4ece\u67b6\u6784\u5c42\u9762\u5207\u65ad\u4e86\u89c6\u89c9\u98ce\u9669\u7684\u8f93\u5165\u8def\u5f84\uff0c\u4f53\u73b0\u4e86\u6210\u719f\u7684\u5de5\u7a0b\u601d\u7ef4\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u4ea7\u54c1\u5728\u4f26\u7406\u9884\u5224\u4e0a\u66b4\u9732\u4e86\u77ed\u677f\u3002\u6700\u5c16\u9510\u7684\u6279\u8bc4\u6765\u81ea\u201c\u9752\u5c11\u5e74\u4e0e\u5bb6\u957f\u9690\u79c1\u51b2\u7a81\u201d\uff1a\u5f53\u5b69\u5b50\u5411AI\u900f\u9732\u7684\u521b\u4f24\u6070\u6070\u4e0e\u7236\u6bcd\u76f8\u5173\u65f6\uff0c\u9ed8\u8ba4\u628a\u8b66\u62a5\u53d1\u7ed9\u5bb6\u957f\u5c31\u6210\u4e86\u4e8c\u6b21\u4f24\u5bb3\u3002\u521b\u59cb\u4eba\u7684\u516c\u5f00\u56de\u5e94\u201c\u5c1a\u672a\u627e\u5230\u5b8c\u7f8e\u65b9\u6848\u201d\u5f88\u5766\u8bda\uff0c\u4f46\u5728\u4ea7\u54c1\u903b\u8f91\u4e2d\uff0c\u8fd9\u4e0d\u5e94\u662f\u4e8b\u540e\u8865\u4e01\uff0c\u800c\u5e94\u662f\u8bbe\u8ba1\u8d77\u70b9\u3002\u7c7b\u4f3c\u5730\uff0c3-5\u5c81\u513f\u7ae5\u5bf9AI\u201c\u751f\u547d\u6027\u201d\u7684\u6df7\u6dc6\u88ab\u8bc4\u8bba\u533a\u70b9\u7834\u540e\uff0c\u521b\u59cb\u4eba\u624d\u677e\u53e3\u8003\u8651\u201c\u9650\u5236\u8bed\u97f3\u529f\u80fd\u201d\uff0c\u8fd9\u8bf4\u660e\u521d\u59cb\u4ea7\u54c1\u5bf9\u6700\u4f4e\u9f84\u7528\u6237\u7684\u5fc3\u667a\u6a21\u578b\u9884\u5224\u4e0d\u8db3\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u771f\u6b63\u7684\u4ef7\u503c\u4e0d\u53ea\u662f\u201c\u5b89\u5168\u201d\uff0c\u800c\u662f\u201c\u6e10\u8fdb\u5f0f\u8131\u654f\u201d\u3002Yoggi\u63d0\u4f9b\u4e86\u4e00\u4e2a\u53d7\u63a7\u7684\u8bad\u7ec3\u573a\uff0c\u8ba9\u513f\u7ae5\u5728\u73b0\u5b9e\u4e0e\u865a\u62df\u7684\u8fb9\u754c\u4e0d\u786e\u5b9a\u6027\u4e2d\uff0c\u5b66\u4f1a\u5982\u4f55\u4e0eAI\u4e92\u52a8\u3001\u4f55\u65f6\u8be5\u8f6c\u5411\u771f\u4eba\u3001\u4ee5\u53ca\u8b66\u60d5\u7b97\u6cd5\u8fce\u5408\u3002\u4f46\u5bb6\u957f\u63a7\u5236\u9762\u677f\u4e0d\u5e94\u6ca6\u4e3a\u76d1\u63a7\u5de5\u5177\uff0c\u800c\u5e94\u6210\u4e3a\u4ee3\u9645\u5bf9\u8bdd\u7684\u201c\u89e6\u53d1\u70b9\u201d\uff0c\u6bd4\u5982\u901a\u8fc7\u6bcf\u5468\u8bdd\u9898\u6458\u8981\u5f15\u5bfc\u5bb6\u5ead\u8ba8\u8bba\uff0c\u800c\u975e\u8ba9\u7236\u6bcd\u5145\u5f53\u6570\u636e\u76d1\u89c6\u8005\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4e00\u53e5\u8bdd\uff1aYoggi\u662f\u76ee\u524d\u6700\u4e25\u8083\u7684\u513f\u7ae5AI\u5b89\u5168\u65b9\u6848\uff0c\u4f46\u5b83\u9700\u8981\u4ece\u201c\u4fdd\u62a4\u5b69\u5b50\u8fdc\u79bb\u5371\u9669\u201d\u8fdb\u5316\u4e3a\u201c\u8d4b\u80fd\u5b69\u5b50\u5b89\u5168\u5730\u5904\u7406\u5371\u9669\u201d\u2014\u2014\u5305\u62ec\u6765\u81ea\u81ea\u8eab\u5bb6\u5ead\u7684\u5371\u9669\u3002\u5426\u5219\uff0c\u518d\u5f3a\u7684\u8fc7\u6ee4\u5668\u4e5f\u53ea\u662f\u6570\u5b57\u6805\u680f\uff0c\u800c\u975e\u6210\u957f\u811a\u624b\u67b6\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\">Yoggi<\/span>\n                <\/div>\n<div class=\"comment-content\">Yoggi is the AI assistant built for children aged 3\u201315. Age-adapted answers, live voice chat, image generation, strict content filtering, and parental controls. Free on iOS and Android.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hi Product Hunt! \ud83d\udc4b<\/p>\n<p>I built Yoggi because children will inevitably encounter AI, but most existing tools aren\u2019t designed for their age or for parental supervision.<\/p>\n<p>My goal was to create a safer first experience with AI: age-adapted conversations, voice and image creation for children, combined with parental controls, usage limits, activity insights and safety alerts.<\/p>\n<p>I\u2019d love to hear your feedback, especially from parents and educators!<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@lucas_cyber_waffle Creating a safe sandbox for kids to interact with AI is highly critical right now. Jared raises such a fascinating point about boundary-setting and friendship questions.<br \/>\nKeeping kids safe while letting them explore AI is a tough balance to strike, but your parental control suite looks incredibly robust.<br \/>\nI\u2019d love to connect on LinkedIn to stay updated on how Yoggi evolves and discuss future launch strategies with you!<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Congrats on the launch! Love the focus on safety and parental oversight. Since 3 to 15 is a huge age gap, how does the AI dynamically adapt its language and explanation style between a young child and a teen?<\/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\/@hannesh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@hannesh<\/a>&nbsp;Thanks! Great question. The AI receives the child&#8217;s age (stored in their profile) and adjusts on three levels:<\/p>\n<ul>\n<li>\n<p>Response length<\/p>\n<\/li>\n<li>\n<p>Vocabulary complexity: short, very simple sentences for younger kids vs. longer, richer ones for older kids)<\/p>\n<\/li>\n<li>\n<p>Tone: for teens specifically, we explicitly tell the model to drop the childish\/playful register and speak in a more mature, natural way, closer to how you&#8217;d talk to a young adult<\/p>\n<\/li>\n<\/ul>\n<p>It&#8217;s re-evaluated on every message, so the experience actually shifts as the child grows.<\/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\">@lucas_cyber_waffle Thanks for the detailed explanation, that\u2019s super clever! I&#8217;ll definitely give it a try.<\/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 chat safety thread here is thorough, but the image generation feature seems like a separate risk surface nobody&#8217;s asked about yet. text filtering and image filtering are pretty different problems, what stops a kid from prompting for something inappropriate through a drawing request that would never make it past the text filter as a sentence<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@omri_ben_shoham1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@omri_ben_shoham1<\/a>&nbsp;You&#8217;re right to flag it, image and text moderation are genuinely different problems and deserve different answers.<\/p>\n<p>Here&#8217;s how it works: kids never type a free-form prompt straight into the image generator. When a child asks for a drawing, our chat model first turns that request into a short, factual scene description (just subject, action, setting). That description then gets wrapped server-side in a fixed template we control, not the model, not the child, which enforces a &#8220;children&#8217;s book illustration&#8221; style, explicitly excludes anything scary, violent, sad or ambiguous, and blocks realistic or copyrighted people\/characters. On top of that, we rely on the image providers&#8217; own built-in safety filters (OpenAI and Google both reject unsafe generations before they&#8217;re returned to us).<\/p>\n<p>So the image path is actually more constrained than the chat path in one sense: there&#8217;s no direct line from &#8220;kid&#8217;s words&#8221; to &#8220;image prompt,&#8221; there&#8217;s always a moderation-shaped layer in between.<\/p>\n<p>The honest gap: we don&#8217;t currently run a post-generation visual check on the produced image itself, our safety relies on constraining the input rather than auditing the output. That&#8217;s a fair thing to want, and it&#8217;s on our radar.<\/p>\n<p>Appreciate you pushing on this, it&#8217;s exactly the kind of scrutiny we want on a kids&#8217; 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>Lucas, the safety alert layer is the part I would stress test hardest, and it is the one thing in this thread nobody has pushed on.<\/p>\n<\/p>\n<p>Routing a concerning message to the parent is right for most families and wrong for exactly the families the alert exists for. In the 13 to 15 profiles, the adult being notified is sometimes the reason the child said it. That is why adolescent confidentiality is a separate rule in clinical settings rather than a parental setting, and a detector with one destination has no answer for that case.<\/p>\n<\/p>\n<p>Is there a second path for the older profiles, where a serious signal can point the child toward an outside resource alongside the parent? Whoever set the threshold that fires an alert made a clinical call, so it is worth treating it as one.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@clemente_lopez1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@clemente_lopez1<\/a>&nbsp;Thank you so much for raising this. It\u2019s an extremely important point, and I genuinely appreciate you taking the time to challenge the safety model so thoughtfully.<\/p>\n<p>It\u2019s something I\u2019ve questioned myself: the current alert system assumes that notifying the parent is the safest action in most cases, but there are situations where the parent may be part of the problem. In those cases, a detector with a single email destination is clearly not sufficient, and I have to admit that I haven\u2019t found a perfect solution yet.<\/p>\n<p>I also realise that I failed to address this specific scenario during the launch, even though it deserves an enormous amount of care and seriousness. I\u2019m actively working on it.<\/p>\n<p>For older children and teenagers, I\u2019m exploring a second path where Yoggi could direct the child toward another trusted adult outside the home or an appropriate external support resource alongside, or potentially instead of, the usual parental guidance, depending on the situation.<\/p>\n<p>The alert system in its current scope has been very effective and accurately targeted in testing, but this is an important limitation that still needs to be addressed. The challenge is balancing several risks at once: not leaving a child alone with a serious issue, not presenting Yoggi as a substitute for professional help, and not automatically sharing information with someone who could make the situation worse.<\/p>\n<p>You\u2019re also absolutely right that setting the alert threshold carries a responsibility similar to making a clinical judgement. I don\u2019t want to treat it as a simple product setting. It requires careful testing, clear limits and input from people with genuine child-safeguarding expertise.<\/p>\n<p>Thank you again for bringing attention to this. It is exactly the kind of serious feedback that helps me identify where Yoggi\u2019s safety model still needs to become more nuanced.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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 thoughtful way to take the feedback &#8211; a separate interaction model for the youngest kids rather than just dialing down the same one. Limiting live voice for that age group specifically makes sense to me, since voice is probably what makes it feel most alive. Good luck with the launch.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on the launch!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I&#8217;m intrigued by the age-adapted answers, how do you handle situations where kids might ask sensitive or complex questions that require nuanced responses?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@aymnart\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aymnart<\/a>&nbsp;Great question, this is actually one of the trickier design areas.<\/p>\n<p>The age adaptation isn&#8217;t just about vocabulary and sentence length (though that&#8217;s part of it, younger kids get shorter, simpler answers, older kids get treated more like young adults). The bigger piece is how Yoggi handles topics that are sensitive rather than just complex. Parents can flag certain family-specific topics (grief, divorce, a recent hard event at school, etc.) so Yoggi treats them with extra care if the child brings them up on its own, and it never introduces them ofc.<\/p>\n<p>For genuinely difficult or concerning things a child says, unspoken worries, distress, anything that sounds like it needs a trusted adult, Yoggi&#8217;s rule is to first acknowledge the feeling warmly, never brush past it, and then gently encourage the child to talk to a parent or teacher about it. It&#8217;s not built to be the one handling that moment alone.<\/p>\n<p>On top of that, there&#8217;s a safety layer running quietly in the background: if something a child says looks like it might need a parent&#8217;s attention, the app can notify them directly, so the response to the child and the loop back to the parent work together rather than one replacing the other.<\/p>\n<p>The honest answer is this space keeps evolving as we learn from feedback and our own testing when talking to Yoggi, but the principle stays fixed: validate first, never dismiss, and know when the right answer is to point toward a real human rather than try to handle it all itself.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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 your UI design. I think my children will love it; adding a bit more animation would make it even better.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@maxwell_trent\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@maxwell_trent<\/a>&nbsp;Thanks so much, really appreciate it!<\/p>\n<p>Our first phase was almost entirely focused on getting the core experience right and making sure the AI itself was safe and trustworthy for kids, animation and polish took a back seat to that.<\/p>\n<p>Now that the foundation feels solid, we&#8217;re shifting more energy toward a more polished, dynamic UI, and we&#8217;ve already started adding reward and collection mechanics, built around app features and activities rather than the relationship with the AI itself, to keep things engaging for kids the right way. Definitely more of that coming.<\/p>\n<p>If you do try it out with your kids, we&#8217;d genuinely love to hear how it goes, we&#8217;re very open to feedback at this  stage.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>For a young child using voice chat, one question will eventually come: &#8220;Yoggi, are you my friend?&#8221;. How do you handle that kind of question, especially in terms of boundaries? <\/p>\n<p>Congrats on the launch!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@jared_salois\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jared_salois<\/a>&nbsp;Thank you, and great question, it&#8217;s actually one we thought hard about.<\/p>\n<\/p>\n<p>Our approach is simple: Yoggi can be warm and fun, but it&#8217;s never designed to feel like a replacement for real relationships. So when a child asks &#8220;are you my friend?&#8221;, it won&#8217;t brush it off, but it will also gently steer the moment back toward the people who actually matter in that child&#8217;s life: parents, siblings, friends at school&#8230; rather than positioning itself as one of them.<\/p>\n<\/p>\n<p>Practically, that means two things. It never pretends to remember things long-term or claims feelings it doesn&#8217;t have (no false sense of continuity or intimacy). And if a child asks what it really is, it always says clearly that it&#8217;s an AI, in a way that fits their age.<\/p>\n<p>This isn&#8217;t a scripted answer for that one question, it&#8217;s a boundary that shapes how it talks in general, every day. For us, keeping kids engaged and having fun with Yoggi is great, but never at the cost of blurring that line with the real people around them.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the emotional-dependency safeguards you described for teens make sense, but I think the 3-5 end of the range is a different problem, not the same one scaled down. a kid that age doesn&#8217;t reliably distinguish &#8220;talking to a program&#8221; from &#8220;talking to something alive,&#8221; especially with voice chat making it feel like a real back-and-forth. is there anything specifically aimed at that youngest bracket to keep reinforcing &#8220;this isn&#8217;t a person,&#8221; or is the current design tuned more toward the dependency risk that shows up with older kids?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@galdayan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@galdayan<\/a>&nbsp;That\u2019s a very fair distinction, and I agree that the 3\u20135 age group shouldn\u2019t simply be treated as a smaller version of older children.<\/p>\n<p>Yoggi already avoids presenting itself as human and can explicitly remind children that it is a program, but your point goes further: at that age, a child may understand the words without fully understanding the distinction, especially when voice makes the interaction feel very natural.<\/p>\n<p>I\u2019m now considering whether some features that make the interaction feel more human, particularly live voice conversations, should be limited, redesigned or disabled for the youngest age profiles. Another possibility would be a more parent-led mode, with stronger and more frequent visual and verbal reminders that Yoggi is not a person and does not have feelings.<\/p>\n<p>The current safeguards were initially designed largely around emotional dependency in older children, so this is a genuinely useful challenge to the product. The youngest age group may need a fundamentally different interaction model, not just simpler language.<\/p>\n<p>Thank you for raising it.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I&#8217;ve had conversations with parents and they told me that they want for their kids to learn AI without becoming dependent on it. How did you test whether the conversations actually felt natural for children?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@reda_roqai_chaoui\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@reda_roqai_chaoui<\/a>&nbsp;That\u2019s a really important question, and honestly, testing this is still an ongoing process.<\/p>\n<p>I\u2019ve built an experimental evaluation system that regularly runs Yoggi through predefined conversations using different age profiles. It checks whether the tone, vocabulary and level of explanation are appropriate, and whether Yoggi behaves as intended in specific situations. <br \/>For example, it verifies whether a concerning topic correctly triggers an alert, whether Yoggi makes it clear that it doesn\u2019t have human emotions, avoids encouraging emotional dependency, and recommends speaking to a parent or another trusted adult when appropriate. <br \/>It also looks at whether the conversation feels natural and encourages the child to think, rather than simply providing an immediate answer.<\/p>\n<p>I\u2019m also exploring a \u201creport this message\u201d feature, so families could flag a response that felt inappropriate, unhelpful or simply wrong. That would provide valuable real-world feedback when the AI misses the mark, without requiring conversations to be routinely reviewed.<\/p>\n<p>This is very much a daily process of experimentation and improvement. One of the hardest parts is finding responsible ways to learn from parents without being intrusive, I don\u2019t want to rely on constant emails, surveys or disruptive notifications just to collect feedback.<\/p>\n<p>Automated testing will never replace feedback from real families, so the goal is to gradually build thoughtful, privacy-conscious ways for parents to help shape how Yoggi speaks and behaves.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>One thing I&#8217;d love to see is a shared family dashboard where parents can review conversation topics their kids explored with Yoggi that week. It would make the parental controls feel less like a black box and help families start real conversations offline based on what their children are curious about.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@erturultaaz8ux\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@erturultaaz8ux<\/a>&nbsp;Thanks so much for this suggestion, I completely agree that parental controls should help create real conversations, not just monitor activity.<\/p>\n<p>Yoggi actually already includes a weekly email summary of the topics a child explored, as well as a daily recap directly inside the app. The goal is exactly what you described: helping parents understand their child\u2019s interests, questions and concerns, so they can continue those conversations offline.<\/p>\n<p>I\u2019m really glad you mentioned it, as it confirms that this is an important part of the experience. I\u2019d love to hear what information you would personally find most useful in such a dashboard.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>hmmmm i am struggling to see the use case of this for kids. Unless its meant to teach kids how to use AI tech so it prepares them for the future.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@saderod\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@saderod<\/a>&nbsp;That\u2019s a fair question. Preparing children to use AI responsibly is definitely part of the idea, but it\u2019s not the only use case.<\/p>\n<p>Yoggi is designed as a safer, age-appropriate tool for everyday curiosity: asking questions, getting help understanding something, creating stories or images, practising a language, or simply exploring a topic they are interested in. For younger children, it can also be used entirely through voice.<\/p>\n<p>The main difference is that it adapts its language and guidance to the child\u2019s age, encourages them to think rather than simply giving answers, and keeps parents informed through recaps and safety alerts.<\/p>\n<p>My goal is not to convince every child to use AI, but to offer a more suitable first experience for families who know their children will eventually encounter it anyway.<\/p>\n<p>I\u2019d also be genuinely interested to hear more about your perspective on AI and children. A different point of view could highlight a concern I haven\u2019t considered yet, or even inspire a new feature or a better way for Yoggi to respond and behave.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Big brother here, and I think this is a genuinely important idea. ChatGPT and Claude can sometimes be too eager to give children the answer they want to hear, and without the right context or boundaries, that can have a negative effect instead of helping them.<\/p>\n<p>My 11-year-old sister has just started using AI tools, and I was recently given the task of figuring out how we could limit and supervise that safely. Right now, it can be almost impossible to understand what a child is doing, asking, or being told. Knowledge is a privilege, but access without age-appropriate guidance is not always harmless. I&#8217;m really glad I found Yoggi, we&#8217;ll definitely try it. Rooting for you! \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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@andrasczeizel\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@andrasczeizel<\/a>&nbsp;Thank you so much, your comment genuinely means a lot to me.<\/p>\n<p>I\u2019ve put a great deal of care into Yoggi because I truly believe children need a safer, age-appropriate way to discover AI, with clear boundaries and parents or trusted adults still involved.<\/p>\n<p>I really hope Yoggi can be useful for you and your little sister. I\u2019d also be very grateful for any honest feedback or suggestions after you\u2019ve tried it, hearing from families helps me understand what still needs to be improved.<\/p>\n<p>Thank you again for your support and for giving Yoggi a chance!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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! Age-adapting the AI&#8217;s tone from a 3-year-old to a 15-year-old is a genuinely hard problem, most tools I&#8217;ve seen just pick one register and hope it works for everyone.<\/p>\n<p>I&#8217;m curious how long a child&#8217;s conversation transcripts get kept around for the weekly summaries and safety alerts, and who besides the parent can pull up that history once it&#8217;s stored. That retention detail is the part I&#8217;d want spelled out for something built around kids.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@vollos\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@vollos<\/a>&nbsp;Thank you, and I completely agree that retention should be clearly explained for a product built for children.<\/p>\n<p>At the moment, conversation history is kept for three months. This allows parents to review previous conversations and gives Yoggi enough context to generate daily and weekly recaps. Through the product itself, that history is only available in the PIN-protected parent area; no other user can access it.<\/p>\n<p>I\u2019m also considering giving parents a very simple retention setting. They could keep the current three-month history, choose a shorter period, or opt out of long-term storage entirely. In that last case, conversations would be deleted after the current day, with the clear trade-off that there would be no history or weekly recap available.<\/p>\n<p>I think parents should be able to choose the balance between visibility and data minimisation that feels right for their family, rather than having that decision imposed on them.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/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\/AFVYUCU2FMSEPA\" class=\"app-title\">Forgeon<\/a><\/p>\n<div class=\"one-liner\">Create, publish, and experience interactive stories<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">116<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Forgeon\u662f\u4e00\u4e2a\u8ba9\u4f5c\u8005\u65e0\u9700\u7f16\u7a0b\u5373\u53ef\u521b\u4f5c\u5e76\u53d1\u5e03\u5305\u542b\u5206\u652f\u9009\u62e9\u3001RPG\u673a\u5236\u3001\u97f3\u4e50\u63d2\u753b\u7b49\u5143\u7d20\u7684\u4ea4\u4e92\u5f0f\u6545\u4e8b\u5e73\u53f0\uff0c\u89e3\u51b3\u4f20\u7edf\u4e92\u52a8\u6545\u4e8b\u521b\u4f5c\u95e8\u69db\u8fc7\u9ad8\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\/a471939f-1d3d-4d48-8bf6-82456b7f02c7.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/ded55f67-36d7-42fd-9d31-aaeb20bcbbeb.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/a6ef7168-5886-4a7e-b2d4-7d1cea9d0769.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/bef1a3c7-3777-42bb-963c-ca19c713bd15.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/388d85e7-bf21-43e9-bc9b-541b9de262a4.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/e56d7860-5290-48aa-9a16-e126c730964d.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/5381c0a1-baa9-4aa2-ba30-974e645273a4.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\/812aad0b-7881-415f-9037-0894604e459c.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/shSQkwwp0OY?si=_afP06xqDn3OYoJo\"><source src=\"https:\/\/youtu.be\/shSQkwwp0OY?si=_afP06xqDn3OYoJo\" 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\">Android<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">Games<\/span><br \/>\n            <span class=\"tag\">Books<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u4e92\u52a8\u6545\u4e8b\u521b\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u975e\u7f16\u7a0b\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u5206\u652f\u5267\u60c5<\/span><br \/>\n            <span class=\"tag\">RPG\u673a\u5236<\/span><br \/>\n            <span class=\"tag\">\u4f5c\u8005\u5e73\u53f0<\/span><br \/>\n            <span class=\"tag\">\u51fa\u7248\u53d1\u884c<\/span><br \/>\n            <span class=\"tag\">AI\u8f85\u52a9\u5199\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u591a\u5a92\u4f53\u53d9\u4e8b<\/span><br \/>\n            <span class=\"tag\">\u521b\u4f5c\u8005\u7ecf\u6d4e<\/span><br \/>\n            <span class=\"tag\">\u9605\u8bfb\u4f53\u9a8c<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u8ba4\u53ef\u201c\u4e0d\u53d6\u4ee3\u4f5c\u8005\uff0c\u53ea\u964d\u4f4e\u6280\u672f\u95e8\u69db\u201d\u7684\u5b9a\u4f4d\u3002\u6838\u5fc3\u5173\u6ce8\u70b9\u5305\u62ec\uff1a\u7f16\u8f91\u5668\u5728\u5927\u89c4\u6a21\u5206\u652f\u4e0b\u7684\u53ef\u89c6\u5316\u5bfc\u822a\uff08\u5f53\u524d\u53ef\u7f29\u653e\uff0c\u4ecd\u9700\u4f18\u5316\uff09\u3001AI\u751f\u6210\u7684\u8d28\u91cf\u4e0e\u4e00\u81f4\u6027\u3001\u63d2\u56fe\u4e0e\u97f3\u4e50\u7684\u6765\u6e90\uff08\u5e73\u53f0\u5185\u7f6e\u6216\u7528\u6237\u5bfc\u5165\uff09\u3001\u521b\u4f5c\u8005\u53d8\u73b0\u6a21\u5f0f\uff08\u5df2\u652f\u6301\u4ed8\u8d39\u51fa\u7248\u4e0e\u5e7f\u544a\u9605\u8bfb\uff09\u3001\u53d1\u73b0\u673a\u5236\uff08\u514d\u8d39\u8bd5\u8bfb\u964d\u4f4e\u51b3\u7b56\u95e8\u69db\uff09\u3001\u4ee5\u53ca\u9996\u9875\u4ea7\u54c1\u4fe1\u606f\u5c55\u793a\u7684\u6e05\u6670\u5ea6\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Forgeon\u7684\u806a\u660e\u4e4b\u5904\u5728\u4e8e\u7cbe\u51c6\u5730\u5207\u5165\u4e86\u201c\u4e92\u52a8\u53d9\u4e8b\u201d\u8fd9\u4e00\u6280\u672f\u95e8\u69db\u9ad8\u3001\u4f46\u9700\u6c42\u660e\u786e\u7684\u5e02\u573a\u7f1d\u9699\u3002\u5b83\u6ca1\u6709\u91cd\u8e48\u8bb8\u591aAI\u5de5\u5177\u7684\u8986\u8f99\u2014\u2014\u5373\u7528\u201c\u53d6\u4ee3\u4eba\u7c7b\u201d\u6765\u6050\u5413\u76ee\u6807\u7528\u6237\uff0c\u800c\u662f\u7528\u201c\u4e3a\u4f5c\u8005\u8d4b\u80fd\u201d\u6765\u62c9\u62e2\u6838\u5fc3\u521b\u4f5c\u8005\u3002\u8fd9\u4e00\u5b9a\u4f4d\u4e0d\u4ec5\u964d\u4f4e\u4e86\u7528\u6237\u7684\u5fc3\u7406\u62b5\u89e6\uff0c\u4e5f\u9053\u51fa\u4e86\u771f\u5b9e\u7684\u75db\u70b9\uff1a\u8ba9\u5929\u9a6c\u884c\u7a7a\u7684\u5267\u60c5\u6784\u60f3\u4e0d\u5fc5\u6b7b\u4e8e\u6280\u672f\u6808\u7684\u532e\u4e4f\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u4ea7\u54c1\u529f\u80fd\u770b\uff0cForgeon\u8bd5\u56fe\u5728\u201c\u7b80\u6613\u7f16\u8f91\u5668\u201d\u4e0e\u201c\u590d\u6742\u53d9\u4e8b\u7ed3\u6784\u201d\u4e4b\u95f4\u627e\u5230\u5e73\u8861\u3002\u901a\u8fc7\u6587\u4ef6\u5939\u5206\u7c7b\u3001\u5206\u652f\u9694\u79bb\u548c\u7f29\u653e\u89c6\u56fe\u6765\u7ba1\u7406\u5927\u89c4\u6a21\u5267\u60c5\u6811\uff0c\u8fd9\u662f\u9488\u5bf9Twine\u3001ink\u7b49\u5de5\u5177\u201c\u811a\u672c\u5c42\u5b66\u4e60\u6210\u672c\u9ad8\u201d\u7684\u76f4\u63a5\u6253\u51fb\u3002\u52a0\u4e0a\u5185\u7f6e\u97f3\u4e50\u3001\u5f00\u653e\u63d2\u56fe\u4e0a\u4f20\u548cAI\u8f85\u52a9\u67b6\u6784\uff08\u975e\u5355\u7eafLLM\u751f\u6210\uff0c\u800c\u662f\u5e26\u4e16\u754c\u89c2\u548c\u89d2\u8272\u4e00\u81f4\u6027\u7ea6\u675f\uff09\uff0c\u5176\u62a4\u57ce\u6cb3\u4f53\u73b0\u5728\u201c\u5de5\u5177\u94fe\u7684\u5b8c\u6574\u6027\u4e0e\u53ef\u6269\u5c55\u6027\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u98ce\u9669\u540c\u6837\u5b58\u5728\u3002\u5176\u4e00\uff0cAI\u751f\u6210\u6545\u4e8b\u7684\u201c\u4e00\u81f4\u6027\u201d\u4ecd\u662f\u516c\u8ba4\u7684\u6280\u672f\u96be\u70b9\uff0c\u5b98\u65b9\u8bb2\u4e86\u4e00\u5806\u67b6\u6784\u6982\u5ff5\uff0c\u4f46\u843d\u5730\u7684\u5b9e\u9645\u4f53\u9a8c\u672a\u77e5\uff1b\u5176\u4e8c\uff0c\u53d8\u73b0\u6a21\u5f0f\u867d\u5df2\u8d70\u901a\uff08\u4ed8\u8d39\/\u5e7f\u544a\uff09\uff0c\u4f46\u9762\u5bf9\u73b0\u6709\u6210\u719f\u7684\u6570\u5b57\u51fa\u7248\u5e73\u53f0\uff08\u5982Amazon KDP\uff09\u548c\u514d\u8d39\u7684\u4e92\u52a8\u53d9\u4e8b\u793e\u533a\uff08\u5982Choice of Games\uff09\uff0cForgeon\u5728\u8bfb\u8005\u7aef\u662f\u5426\u80fd\u5f62\u6210\u8db3\u591f\u7684\u5206\u53d1\u4e0e\u53d1\u73b0\u4f18\u52bf\uff0c\u4ecd\u662f\u5de8\u5927\u6311\u6218\u3002\u9996\u9875\u201c\u5148\u5c55\u793a\u4e66\u800c\u975e\u5e73\u53f0\u201d\u7684\u4ea4\u4e92\u903b\u8f91\u5931\u8bef\uff0c\u6070\u6070\u66b4\u9732\u4e86\u5176\u5728\u6d41\u91cf\u5f15\u5bfc\u4e0a\u7684\u7a1a\u5ae9\uff1a\u521b\u4f5c\u8005\u8981\u7684\u662f\u5de5\u5177\uff0c\u8bfb\u8005\u8981\u7684\u662f\u5185\u5bb9\uff0c\u4e24\u4e2a\u7fa4\u4f53\u7684\u9996\u9875\u52a8\u7ebf\u5fc5\u987b\u6cfe\u6e2d\u5206\u660e\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u603b\u4f53\u800c\u8a00\uff0cForgeon\u7684\u4ef7\u503c\u4e0d\u5728\u4e8e\u9020\u4e00\u4e2a\u5b8c\u7f8e\u7684AI\uff0c\u800c\u5728\u4e8e\u6784\u5efa\u4e86\u4e00\u4e2a\u201c\u4f4e\u6280\u672f\u95e8\u69db+\u5f3a\u53d9\u4e8b\u6846\u67b6+\u539f\u751f\u53d8\u73b0\u201d\u7684\u95ed\u73af\u3002\u5b83\u7684\u95ee\u9898\u5728\u4e8e\uff0c\u65e2\u8981\u8ba8\u597d\u521b\u4f5c\u8005\u53c8\u8981\u5438\u5f15\u8bfb\u8005\uff0c\u8fd9\u5f80\u5f80\u9700\u8981\u6781\u5176\u7cbe\u51c6\u7684\u4ea7\u54c1\u4f53\u9a8c\u548c\u8fd0\u8425\u7b56\u7565\u3002\u5982\u679c\u80fd\u6301\u7eed\u6253\u78e8\u7f16\u8f91\u5668\u5728\u590d\u6742\u5206\u652f\u4e0b\u7684\u5bfc\u822a\u4f53\u9a8c\uff0c\u5e76\u5efa\u7acb\u4e00\u5957\u53ef\u4fe1\u7684\u5185\u5bb9\u8d28\u91cf\u7b5b\u9009\u673a\u5236\uff0c\u5b83\u6709\u53ef\u80fd\u6210\u4e3a\u4e92\u52a8\u6587\u5b66\u9886\u57df\u7684\u201cRoblox\u201d\u2014\u2014\u8ba9\u66f4\u591a\u4eba\u6210\u4e3a\u521b\u9020\u8005\uff0c\u800c\u4e0d\u662f\u88ab\u52a8\u7684\u6d88\u8d39\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\">Forgeon<\/span>\n                <\/div>\n<div class=\"comment-content\">Every generation reinvents the way stories are told. We believe books are next. Forgeon is a platform where authors create interactive stories with choices, RPG mechanics, music, illustrations, and more. We don&#8217;t build AI authors\u2014we build better tools for creators. We believe books can be as engaging as any game, movie, or series.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\ud83d\udc4b Hi Product Hunt!<\/p>\n<p>I&#8217;m Mark, founder of Forgeon.<\/p>\n<p>I&#8217;ve always loved interactive stories. They combine the imagination of books with the excitement of games, and they&#8217;re one of my favorite ways to experience a story.<\/p>\n<p>The problem was simple: there just weren&#8217;t many of them.<\/p>\n<p>As I dug deeper, I kept hearing the same thing from creators: building interactive books was too difficult. You needed programming skills, complex tools, or even an entire team just to bring an idea to life.<\/p>\n<p>So we decided to change that.<\/p>\n<p>We built Forgeon to give authors powerful yet accessible tools to create interactive books with branching choices, RPG mechanics, quests, music, illustrations, and more\u2014all without writing code.<\/p>\n<p>Our goal isn&#8217;t to replace authors. It&#8217;s to remove the technical barriers that stop great stories from being created.<\/p>\n<p>If Forgeon helps even a few creators build the stories they&#8217;ve always dreamed of making, we&#8217;ll know we&#8217;re moving in the right direction.<\/p>\n<p>I&#8217;d love to hear your thoughts and answer any questions. Thank you for checking out Forgeon!<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>11<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@mark_maidanov\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mark_maidanov<\/a>&nbsp;cool<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\">@mark_maidanov hi<\/div>\n<div class=\"comment-actions\">\n<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\">@mark_maidanov Keeping the user in full control instead of running silent auto-deletions is exactly how email cleanup should be handled. Great job,  Let&#8217;s connect on LinkedIn!<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">The &#8220;not replacing authors&#8221; framing is the right positioning, tools that promise to automate creativity tend to get resisted by the exact audience they need. Removing the technical barrier of RPG mechanics and branching logic for someone who thinks in story rather than code is a real gap, most interactive fiction tools like Twine or ink still expect you to learn their scripting layer. <\/p>\n<p>Since Forgeon handles music and illustrations too, how much of that is generated versus imported, and does the branching structure stay easy to follow once a book has more than a handful of paths.<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>8<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@thys_beesman\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thys_beesman<\/a>&nbsp;<br \/>Thanks! Music in Forgeon is built into the platform &#8211; we create and add the tracks ourselves, so authors can use them directly in their stories.<\/p>\n<p>For illustrations, authors have much more freedom. They can upload their own images and use whatever visual style fits their story. We don\u2019t restrict that creative direction, although uploaded content goes through moderation for 18+ material.<\/p>\n<p>As for branching, yes &#8211; the editor is designed to stay manageable as stories become much larger. Authors can organize different parts of a story into separate folders and save sections as individual branches, so you don\u2019t end up with one huge, impossible-to-navigate structure.<\/p>\n<p>Those branches can also be used to build RPG-style experiences, where different storylines, locations, quests, or paths can be organized separately while still being part of the same project.<\/p>\n<p>The goal is to let the story become complex without making the editor complex to use.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>7<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">@thys_beesman hi!!<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey, congrats &#8211; looks exciting! \u263a\ufe0f<\/p>\n<\/p>\n<p>Are your story builders algorithmic or can they be LLM driven? A lot of writers, when they start working on a book, keep a &#8220;fact sheet&#8221; or timeline that contain all of the underlying facts that drive a story that they keep updated as they write actual words. In the same way, in RPGs, the scenarios that some people publish contain the &#8220;storytelling guardrails&#8221; that define a specific adventure, but then the adventure &#8220;plays itself&#8221; in realtime. <\/p>\n<\/p>\n<p>I can imagine how some people would have mind blowing ideas and some instructions on the &#8220;theme&#8221; but they wouldn&#8217;t necessarily want to do the actual writing. Or maybe they would just enjoy it being a bit different for every player (or &#8211; players could pick different PG ratings and a 13 year old readers experience could be more vanilla compared to a 40 year old player\/reader). <\/p>\n<\/p>\n<p>Also &#8211; integrating Eleven Labs or a similar platform to have a voice narrator would be a game changer. <\/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>Hi, <a href=\"https:\/\/www.producthunt.com\/@wojtekszkutnik\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@wojtekszkutnik<\/a>&nbsp;<\/p>\n<p>Thanks! You\u2019re definitely thinking in a direction we\u2019re interested in.<\/p>\n<p>We already use LLMs in our AI Book feature, and it\u2019s more than just a single model generating text. There\u2019s an architecture behind it that handles the world, characters, story structure, consistency, memory, choices, and quality control.<\/p>\n<p>Right now, the book is generated upfront based on the parameters the user provides. But we\u2019re planning to add much more control during the reading experience, so readers will be able to influence and adjust the story as it unfolds, while the AI keeps track of the world, characters, previous events, and overall logic.<\/p>\n<p>We also completely agree with your idea around storytelling guardrails and taking LLM-driven storytelling further. That\u2019s very close to the direction we want to explore in the near future.<\/p>\n<p>The adaptive ratings idea is really interesting too, and we\u2019ll definitely keep it in mind.<\/p>\n<p>And yes, ElevenLabs or similar voice narration is a great idea! Narration is already in our plans, and we\u2019re looking forward to bringing it into the experience soon.<\/p>\n<p>We actually wrote a detailed breakdown of how our current AI Book architecture works here:<\/p>\n<p><a href=\"https:\/\/forgeon.art\/en\/blog\/forgeon-ai-book-architecture\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/forgeon.art\/en\/blog\/forgeon-ai-book-architecture<\/a><\/p>\n<p>Thanks for the thoughtful feedback and ideas!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>5<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The branch editor being separate from the main story structure is smart \u2014 one of the things that kills branching story tools is when navigation gets overwhelming before you have even written much. Wondering how you handle the overview at scale: once a story has dozens of branches across multiple paths, is there a way to see the full tree at a glance, or does the editor stay page by page and rely on you knowing your own structure?<\/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\/@leo404\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@leo404<\/a>&nbsp;Thanks, Leopold! Great question. At the moment, you can zoom out in the editor to get a broader view of the branches and see more of the story structure at once. We also have chapter organization and other editor tools that help creators keep complex stories structured and manageable.<\/p>\n<p>But this is only the beginning. We\u2019re constantly improving the platform based on feedback from our users, and the editor in particular is one of our biggest areas of focus. As stories become larger and more complex, we want to make managing and navigating those structures as intuitive 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>&#8220;Books as engaging as games&#8221; is the right ambition. Most interactive fiction platforms look like 90s text adventures or require game dev skills.<\/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\/@ringo_td5\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ringo_td5<\/a>&nbsp;<\/p>\n<p>You&#8217;re absolutely right! That&#8217;s exactly the problem we&#8217;re trying to solve with Forgeon. Thanks a lot for the support and feedback!<\/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>Nice Mark! Love this kind of idea. Allowing pple to enjoy interactive stories change the game and boost engagement amazingly. Wish you all the best on this launch!<\/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>Hi,<a href=\"https:\/\/www.producthunt.com\/@german_merlo1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@german_merlo1<\/a>&nbsp;<\/p>\n<p>Thank you so much! Really appreciate your support!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the &#8220;we&#8217;re not trying to replace authors, just remove the technical barrier&#8221; framing lands well, especially compared to tools that lead with automation first. haven&#8217;t seen anyone ask about the business side yet though &#8211; once someone&#8217;s put real time into a branching story on here, is there a way for them to actually earn from readers, or is Forgeon more of a free hobbyist\/portfolio platform for now? curious whether that&#8217;s part of the roadmap or intentionally out of scope.<\/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\/@galdayan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@galdayan<\/a>&nbsp;Thanks, Gal! And yes &#8211; monetization is a core part of Forgeon, not something we&#8217;re leaving for later.<\/p>\n<p>Authors can publish their interactive books for free or set a price and earn from readers who purchase them. Our goal is to give creators not only the tools to build interactive stories, but also a platform where they can publish, grow an audience, and turn their work into something they can actually earn from.<\/p>\n<p>We want Forgeon to be a real creator ecosystem, not just a tool for building stories.<\/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>Great app! Tell me, is AI capable of writing a complete book based on my preferences?<\/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\/@new_user___2072026d8f7a1cb1485f8ef\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@new_user___2072026d8f7a1cb1485f8ef<\/a>&nbsp;Thanks, Irina! Yes, absolutely. AI can help create a complete book based on your preferences &#8211; including the genre, setting, characters, tone, plot direction, and other details you provide.<\/p>\n<p>At the same time, Forgeon is built to keep the creator in control. You can use AI to generate and develop the story, then edit, expand, and shape it into exactly what you want.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>3<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>One of the most interesting launches today! I believe the upfront-generation choice is smart for consistency, you can check the whole book as one object before anyone reads it. You mentioned the plan is to let readers bend the story mid-read while the AI keeps track of world and prior events (and that reconciliation is where interactive fiction usually breaks down). Does it re-ground each turn against a fixed world-state doc? <\/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\/@artstavenka1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@artstavenka1<\/a>&nbsp;Exactly! The AI will already understand the world, characters, and context of the story, so changes during reading can influence the upcoming pages while keeping everything consistent. In the future, we may also develop a system that can reshape the entire story when major changes from the author require 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>branch editor being separate from the main story structure is smart \u2014 one of the things that kills branching story tools is when navigation gets overwhelming before you have even written much. Wondering how you handle the overview at scale: once a story has dozens of branches across multiple paths, is there a way to see the full tree at a glance, or does the editor stay page by page and rely on you know<\/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\/@manjeet_kumar_mehta3\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@manjeet_kumar_mehta3<\/a>&nbsp;Thanks, Manjeet! That\u2019s a really important point. Right now, creators can zoom out in the editor to get a broader view of the branching structure and see more paths at once. We also have chapter organization and other tools that help keep larger stories structured and easier to navigate.<\/p>\n<p>That said, we see this as an area with a lot of room to grow. We\u2019re actively improving the editor based on feedback from creators, especially when it comes to navigating and managing large, complex branching stories.<\/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 monetization answer is a good sign, a lot of creator platforms bolt that on way too late. now that authors can actually charge for their books, how does discovery work on the reader side? with branching stories being harder to judge from a thumbnail than a normal book cover, is there anything like sample chapters or a preview of the first few choices before someone pays<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@omri_ben_shoham1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@omri_ben_shoham1<\/a>&nbsp;<\/p>\n<p>Great question! Actually, every book on Forgeon is completely free to read, so readers can experience the story and its choices before spending anything. Monetization works differently: without a subscription or purchasing the book, the reading experience includes ads and some features, such as saving progress, are limited. So discovery isn\u2019t locked behind a paywall \u2014 readers can explore stories freely and decide which ones they want to support or unlock fully.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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! I tested the homepage as a completely new visitor and one thing tripped me up: the page opens with the Hound of Eldram description before clearly explaining that Forgeon is a platform for reading and creating interactive books.<\/p>\n<p>For the first few seconds, I thought I\u2019d landed on one fantasy title rather than the product itself. Moving the short Forgeon explanation and separate \u201cRead\u201d and \u201cCreate\u201d actions above the featured book could make the value much clearer.<\/p>\n<p>Happy to send you the screenshots and test the full reader and author journeys if that would be useful.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@juantino\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@juantino<\/a>&nbsp;<br \/>Thanks a lot for the detailed feedback! You make a great point, and we\u2019ll definitely take this into consideration. We\u2019d also be happy to see the screenshots and hear your thoughts on the reader and author journeys!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#10<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/K4GNWQIHQ3MCGW\" class=\"app-title\">Pulse Island<\/a><\/p>\n<div class=\"one-liner\">A living island for your Mac&#8217;s notch<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">109<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Pulse Island \u5c06 MacBook \u7684\u95f2\u7f6e\u201c\u5218\u6d77\u201d\u533a\u57df\u53d8\u4e3a\u4e00\u4e2a\u53ef\u4ea4\u4e92\u7684\u52a8\u6001\u4fe1\u606f\u5c9b\uff0c\u8ba9\u4f60\u65e0\u9700\u9891\u7e41\u5207\u6362\u5e94\u7528\uff0c\u5c31\u80fd\u4e00\u773c\u67e5\u770b\u97f3\u4e50\u3001\u4f1a\u8bae\u3001\u526a\u8d34\u677f\u3001\u5929\u6c14\u7b49\u5173\u952e\u4fe1\u606f\uff0c\u89e3\u51b3\u4fe1\u606f\u788e\u7247\u5316\u4e0e\u64cd\u4f5c\u7e41\u7410\u7684\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/50ccb84d-9de7-424b-977b-418295bc20b1.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/1bc2cb22-800c-405d-b81f-5fe0fca2f9fa.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b0f45d4a-f627-489a-98cc-570277a373ae.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/aa7d0b82-ae84-4ac0-9d7b-a75f326cea70.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/89a731c6-a04f-48b7-b55f-bbcad7d45788.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/3d5d8614-61ca-47af-b891-416abdf8b69e.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/58fef631-89a1-421a-8d91-7c11fd8b0c5d.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/fdde4db6-db3d-41d6-b7cf-2417eae80240.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/40f483df-c5bd-4811-b295-658e6d9304db.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\/27839c15-4598-4109-ba07-57b6c34b6847.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=zQAm0Fe6FpI\"><source src=\"https:\/\/www.youtube.com\/watch?v=zQAm0Fe6FpI\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Mac<\/span><br \/>\n            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">Apple<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Mac\u5218\u6d77\u5c4f<\/span><br \/>\n            <span class=\"tag\">\u52a8\u6001\u5c9b<\/span><br \/>\n            <span class=\"tag\">\u526a\u8d34\u677f\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u97f3\u4e50\u63a7\u5236<\/span><br \/>\n            <span class=\"tag\">\u7cfb\u7edf\u76d1\u63a7<\/span><br \/>\n            <span class=\"tag\">\u6548\u7387\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u539f\u751fSwift<\/span><br \/>\n            <span class=\"tag\">\u9690\u79c1\u5b89\u5168<\/span><br \/>\n            <span class=\"tag\">\u4f1a\u8bae\u63d0\u9192<\/span><br \/>\n            <span class=\"tag\">\u5929\u6c14<\/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\u526a\u8d34\u677f\u667a\u80fd\u5206\u7c7b\uff08\u989c\u8272\/\u94fe\u63a5\/\u56fe\u7247\uff09\u548c\u539f\u751f\u6027\u80fd\u3002\u6838\u5fc3\u5efa\u8bae\u5305\u62ec\uff1a1. \u589e\u52a0\u5bf9\u591a\u663e\u793a\u5668\uff08\u5916\u63a5\u5c4f\uff09\u7684\u652f\u6301\uff1b2. \u8865\u5145\u756a\u8304\u949f\u529f\u80fd\uff0c\u5e76\u63d0\u51fa\u57fa\u4e8e\u622a\u6b62\u65f6\u95f4\u800c\u975e\u5012\u8ba1\u65f6\u7684\u8bbe\u8ba1\u601d\u8def\uff1b3. \u5e0c\u671b\u589e\u52a0\u6a21\u5757\u81ea\u5b9a\u4e49\u6392\u5e8f\u529f\u80fd\uff1b4. \u9700\u8981\u5b8c\u6210\u82f9\u679c\u516c\u8bc1\u4ee5\u964d\u4f4e\u975e\u6280\u672f\u7528\u6237\u7684\u4f7f\u7528\u95e8\u69db\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                Pulse Island \u5728\u201cMac\u5218\u6d77\u5c4f\u63d2\u4ef6\u201d\u8fd9\u4e2a\u770b\u4f3c\u72ed\u5c0f\u7684\u54c1\u7c7b\u91cc\uff0c\u5c55\u73b0\u51fa\u4e86\u8d85\u8d8a\u5de5\u5177\u672c\u8eab\u7684\u4ea7\u54c1\u54f2\u5b66\u3002\u5176\u6838\u5fc3\u4ef7\u503c\u5e76\u975e\u7b80\u5355\u5730\u201c\u586b\u6ee1\u201d\u5c4f\u5e55\u7a7a\u95f4\uff0c\u800c\u662f\u901a\u8fc7\u201c\u4e0a\u4e0b\u6587\u4f18\u5148\u201d\u7684\u8bbe\u8ba1\uff0c\u91cd\u65b0\u5b9a\u4e49\u4e86\u7cfb\u7edf\u7ea7\u4ea4\u4e92\u7684\u8303\u5f0f\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u6700\u806a\u660e\u4e4b\u5904\u5728\u4e8e\u5bf9\u201c\u526a\u8d34\u677f\u201d\u7684\u6df1\u5ea6\u91cd\u6784\u3002\u5b83\u6ca1\u6709\u50cf\u4f20\u7edf\u5de5\u5177\u90a3\u6837\u63d0\u4f9b\u4e00\u4e2a\u6241\u5e73\u7684\u5386\u53f2\u5217\u8868\uff0c\u800c\u662f\u901a\u8fc7\u201c\u590d\u5236\u65f6\u667a\u80fd\u5206\u7c7b\u201d\uff08\u989c\u8272\u3001\u94fe\u63a5\u3001\u56fe\u7247\uff09\u5c06\u88ab\u52a8\u8bb0\u5f55\u8f6c\u5316\u4e3a\u4e3b\u52a8\u6d1e\u5bdf\u3002\u8fd9\u4ece\u201c\u4f60\u590d\u5236\u4e86\u4ec0\u4e48\u201d\u8dc3\u8fc1\u81f3\u201c\u4f60\u590d\u5236\u7684\u662f\u4ec0\u4e48\u201d\uff0c\u89e3\u51b3\u4e86\u4fe1\u606f\u8fc7\u8f7d\u4e2d\u201c\u67e5\u627e\u201d\u8fd9\u4e2a\u6838\u5fc3\u77db\u76fe\u3002\u8bc4\u8bba\u4e2d\u5f00\u53d1\u8005\u5bf9\u201c\u516d\u4f4d\u8ba2\u5355\u53f7\u4e0e\u8272\u503c\u51b2\u7a81\u201d\u7684\u8fb9\u754c\u5904\u7406\uff0c\u4ee5\u53ca\u201cOTP\u68c0\u6d4b\u201d\u7684\u5766\u8bda\u81ea\u7701\uff0c\u90fd\u5370\u8bc1\u4e86\u8fd9\u6b3e\u4ea7\u54c1\u5bf9\u7ec6\u8282\u7684\u504f\u6267\u2014\u2014\u8fd9\u624d\u662f\u771f\u6b63\u7684\u62a4\u57ce\u6cb3\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u6280\u672f\u9009\u578b\u4e0a\uff0c\u539f\u751fSwift\u548c\u56fa\u5b9a\u9762\u677f+SwiftUI\u5185\u90e8\u52a8\u753b\u7684\u65b9\u6848\uff0c\u7cbe\u51c6\u5730\u6293\u4f4f\u4e86\u7cfb\u7edf\u4ea4\u4e92\u5bf9 120Hz \u5e27\u7387\u7684\u786c\u6027\u8981\u6c42\uff0c\u76f4\u63a5\u6392\u9664\u4e86\u6240\u6709 Electron \u7ade\u54c1\u3002\u8fd9\u79cd\u5bf9\u6027\u80fd\u4e0e\u7cfb\u7edf\u96c6\u6210\u7684\u6781\u81f4\u8ffd\u6c42\uff0c\u662f\u4e00\u79cd\u201c\u6e05\u9ad8\u201d\u7684\u6280\u672f\u5ba3\u8a00\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u4ea7\u54c1\u9762\u4e34\u7684\u6311\u6218\u540c\u6837\u4e25\u5cfb\u3002\u9996\u5148\uff0c\u7cdf\u7cd5\u7684\u201c\u672a\u516c\u8bc1\u201d\u72b6\u6001\u548c\u201c\u5168\u5185\u5b58\u201d\u7b56\u7565\u867d\u7136\u5f70\u663e\u4e86\u786c\u6838\u4e0e\u9690\u79c1\u4f18\u5148\u7684\u8c03\u6027\uff0c\u4f46\u4f1a\u76f4\u63a5\u529d\u9000\u5360\u5e02\u573a\u4e3b\u6d41\u7684\u975e\u6280\u672f\u7528\u6237\u3002\u5176\u6b21\uff0c\u76ee\u524d\u529f\u80fd\uff08\u97f3\u4e50\u3001\u5929\u6c14\u3001\u8bbe\u5907\u7535\u91cf\uff09\u4ecd\u663e\u201c\u5c0f\u800c\u7f8e\u201d\uff0c\u5c1a\u672a\u5f62\u6210\u8db3\u591f\u7c98\u6027\u3002\u6240\u8c13\u7684\u201c\u52a8\u6001\u5c9b\u201d\u4f53\u9a8c\uff0c\u5728\u5218\u6d77\u5c4f\u4e0e\u5916\u63a5\u5c4f\u903b\u8f91\u5c1a\u672a\u5b8c\u7f8e\u7edf\u4e00\u524d\uff0c\u4f9d\u7136\u5b58\u5728\u5272\u88c2\u611f\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5b83\u6700\u6709\u6f5c\u529b\u7684\u65b9\u5411\uff0c\u6216\u8bb8\u662f\u6210\u4e3a\u4e00\u4e2a\u201c\u8f7b\u91cf\u7ea7\u7684\u7cfb\u7edf\u526f\u5c4f\u201d\uff1a\u8ba9\u7cfb\u7edf\u72b6\u6001\u3001\u4e34\u65f6\u4efb\u52a1\uff08\u5982\u4e0b\u8f7d\u3001\u5012\u8ba1\u65f6\uff09\u548c\u5feb\u901f\u64cd\u4f5c\uff08\u4e00\u952e\u53c2\u4f1a\uff09\u5728\u4e00\u4e2a\u7edf\u4e00\u7684\u5fae\u573a\u666f\u4e2d\u6d41\u52a8\u3002\u5982\u679c\u5b83\u80fd\u6301\u7eed\u5c06\u201c\u4ee5 Apple \u539f\u751f\u601d\u7ef4\u505a\u5f00\u53d1\u201d\u7684\u50b2\u6c14\uff0c\u8f6c\u5316\u4e3a\u66f4\u5e7f\u6cdb\u7684\u7528\u6237\u9002\u914d\u548c\u751f\u6001\u62d3\u5c55\uff0c\u6709\u671b\u6210\u4e3a Mac \u5e73\u53f0\u4e0a\u7684\u4e00\u6b3e\u5c0f\u800c\u7f8e\u7684\u6548\u7387\u57fa\u77f3\uff0c\u800c\u975e\u6619\u82b1\u4e00\u73b0\u7684\u9177\u73a9\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\">Pulse Island<\/span>\n                <\/div>\n<div class=\"comment-content\">Pulse turns your MacBook&#8217;s notch into a Dynamic Island: Be it music, meetings, clipboard, weather, focus timers, devices and live system stats, one glance up.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Product Hunt,<\/p>\n<p>Pulse turns the dead space around your MacBook&#8217;s notch into a Dynamic Island. <br \/>Hover it to open, scroll sideways to switch cards.<\/p>\n<p>\ud83d\udccb A clipboard that knows what you copied<br \/>&#8211; Copy #FF5733 \u2192 you get the swatch.<br \/>&#8211; Copy a screenshot \u2192 a thumbnail.<br \/>&#8211; Copy a link \u2192 the host, not 200 characters of UTM.<br \/>&#8211; Filter by Links \/ Colors \/ Images \/ Code.<\/p>\n<p>\ud83c\udfb5 Music from anything<br \/>Spotify, Apple Music, and any browser tab: YouTube, YT Music, SoundCloud with artwork and scrubbing.<\/p>\n<p>\ud83d\udcc5 Meetings<br \/>A countdown in the notch that pulls the Zoom\/Meet\/Teams link, so joining is one click.<\/p>\n<p>\ud83c\udf24\ufe0f Weather, Connected devices, CPU, RAM, network<br \/>Everything you currently Cmd-Tab or open Control Center for.<\/p>\n<p>The detail I care most about is invisible: the window never animates. It&#8217;s a fixed transparent panel and SwiftUI springs the island inside it; animating an NSWindow frame can&#8217;t hold 120fps, animating a view layer can.<\/p>\n<p>It&#8217;s Native Swift, no Electron. No account, no telemetry. Clipboard history stays in RAM and never touches disk.<\/p>\n<p>Free until 28th July 2026.<\/p>\n<p>One heads-up: Pulse isn&#8217;t notarized with Apple yet, so macOS will ask you to approve it once on first launch <\/p>\n<p>What would you want your notch to show? A downloads shelf is next on my list.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Great launch! Do you guys filter on content? Or is the ConcealedType check the only line? Could it be that a fair number of copies that shouldn&#8217;t be in history still slip through the 2Hz poll?<\/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\/@artstavenka1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@artstavenka1<\/a>&nbsp;thanks mate!<\/p>\n<p>And fair question, and no, ConcealedType and TransientType are the only exclusions right now. There&#8217;s no content based filtering, so anything from an app that doesn&#8217;t mark its copies concealed does land in history, an API key pasted out of a terminal being the obvious one.<\/p>\n<p>The poll rate cuts the other way though. Types are read from the pasteboard in the same tick as the content, so 2Hz doesn&#8217;t sneak anything past the check, it just means two copies inside 500ms and I only catch the later one. <\/p>\n<p>Backstop is that it&#8217;s memory only and dies on quit. Next step is per app exclusions by bundle ID plus prefix matching on the usual key formats.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Congrats on the launch, @aayu5hgit! I really like how you handle clipboard categorization. Do you plan to add a Pomodoro timer feature in the near future? Will definitely give it a try!<\/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\/@hannesh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@hannesh<\/a>&nbsp;Thank you, and glad the categorisation landed, that was the part I rewrote the most.<\/p>\n<\/p>\n<p>Pomodoro isn&#8217;t built yet, but it&#8217;s in my plan ( you can check the website for upcoming features)<\/p>\n<\/p>\n<p>One thing I want right first: it has to be deadline based, not tick based. Decrementing on a Timer means closing the lid gives you a 25 minute pomodoro that actually took 90, since timers don&#8217;t fire while the Mac sleeps. So it stores the end date and recomputes on wake.<\/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\">@aayu5hgit Handling the Mac sleep state with end dates instead of live ticks is super clever. Looking forward to seeing Pomodoro drop!<\/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 copy-time classification is the part I keep thinking about. Deciding what a thing is once, at capture, so the row can carry a swatch or a thumbnail or just the host \u2014 that&#8217;s the difference between a clipboard history and a list of strings you have to re-read. And the guard that stops every six-digit order number turning into a color swatch is exactly the kind of detail that only shows up after you&#8217;ve watched it get it wrong a few times.<\/p>\n<\/p>\n<p>The deadline-vs-tick point is the one I&#8217;m stealing. Anything that derives elapsed time from a running counter quietly breaks the moment the lid closes, and it&#8217;s the class of bug that never reproduces on the machine you&#8217;re debugging on. Good that the battery and calendar cards already work that way.<\/p>\n<\/p>\n<p>Native Swift, no account, history that dies with the process. This is put together the way I wish more Mac utilities were.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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_davis23\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ryan_davis23<\/a>&nbsp;Thanks, and you&#8217;re right that the swatch guard came from watching it be wrong. Order numbers and hex colours are the same six characters, so the rule ended up being that a bare token needs a letter in it to count.\ud83d\ude4c\ud83c\udffb<\/p>\n<\/p>\n<p>The heuristic I&#8217;m still least happy with is OTP detection, since any bare four to eight digit number qualifies.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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 memory-only clipboard history with the ConcealedType skip is a genuinely good default, not just a privacy footnote. question that&#8217;s more about my own setup &#8211; I mostly work with an external monitor as primary and the laptop lid open off to the side. does the island only live on the built-in display where the actual notch is, or can it show up on an external screen too for people who rarely look at the MacBook screen itself?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@galdayan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@galdayan<\/a>&nbsp;thanks!<\/p>\n<p>Right now it sticks to the MacBook screen because that&#8217;s where the real notch is, so with the lid open it won&#8217;t move to your external. If you close the lid it does show up on the external as a virtual island at the top.<\/p>\n<\/p>\n<p>Letting you pick the display (or apply to multiple displays) is a small change and you&#8217;re the third person with this setup, so I&#8217;ll add it in my roadmap.\ud83e\udee1<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The clipboard card is the clever bit for me. Showing a color swatch, image thumbnail, or cleaned host instead of raw clipboard text makes the notch feel genuinely useful.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@adriancia\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@adriancia<\/a>&nbsp;Glad you enjoyed it, that was the whole reason for building it. Classification happens<\/p>\n<p>once at copy time, so the row can carry the swatch, the thumbnail or the host instead of you parsing a line of text. My favourite bit is the guard that stops every six digit order number turning into a swatch.\ud83d\ude4c\ud83c\udffb<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the unnotarized heads up is honest of you to call out upfront, but it&#8217;s also exactly the kind of prompt that scares off non-technical users, especially for something polling the clipboard continuously in the background. is notarizing it on the roadmap, or is that waiting until after the free period ends on the 28th?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@omri_ben_shoham1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@omri_ben_shoham1<\/a>&nbsp;Yeah, you&#8217;re right and I&#8217;d rather eat the honesty cost than have someone hit<\/p>\n<p>that dialog with no warning. It&#8217;s already in progress. The release script has the notarize and staple path wired up, it&#8217;s the Developer ID cert I&#8217;m still getting through enrolment, so it lands in the next version update just after<\/p>\n<p>the beta. Not gated on the 28th, just on Apple.<\/p>\n<\/p>\n<p>Fair point that clipboard polling raises the bar on trust, which is also why history stays in memory and never hits disk. Worth noting the ad-hoc build still has a stable code identity, so the Calendar and Bluetooth permissions you grant are remembered rather than re-prompting each 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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Great launch, what&#8217;re advantages so that I have to switch from others? I&#8217;m using boringnotch<\/div>\n<div class=\"comment-actions\">\n<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\/@mrbrjan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mrbrjan<\/a>&nbsp;thanks mate.<\/p>\n<\/p>\n<p>Three things Pulse adds that I don&#8217;t think you get there today. Clipboard history is the big one, and it isn&#8217;t a flat list, everything is typed at copy time so links, colours, images, files and code each get their own filter, and copied links have their utm tracking junk strippable in one click. <\/p>\n<p>Second, device batteries, so AirPods, iPhone and Watch levels live in the notch.<\/p>\n<p>Third, weather with hours ahead and four days, plus a meeting countdown with a one click join button, and a stats panel for CPU, GPU, memory, network and thermals.<\/p>\n<\/p>\n<p>I&#8217;m also building out a roadmap of things none of the notch apps do yet, so if there&#8217;s a module that would actually make your day easier, tell me and we can have a discussion.<\/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>Congratulations on your launch, <a href=\"https:\/\/www.producthunt.com\/@aayu5hgit\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"aayu5hgit\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aayu5hgit<\/a> ! I really like the copy history functionality. On macOS, there&#8217;s usually no built-in way to keep the last <em>n<\/em> copied items, so this is a really useful feature.<\/p>\n<p>The UI looks great, and I like the way everything is categorised as well.<\/p>\n<p>One suggestion: is there a way to customise the view? For example, it would be nice if users could choose which tabs to show or hide, or configure how many tabs are displayed in the notch.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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>Thank youu <a href=\"https:\/\/www.producthunt.com\/@shubham_tiwari43\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"shubham_tiwari43\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@shubham_tiwari43<\/a> , and yes on both counts, the lack of a system clipboard history is exactly the gap I built that card for.<\/p>\n<\/p>\n<p>You can already do most of what you&#8217;re describing: <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/251f74a2-1d7d-46ac-b591-ff188dbbee2c.png?auto=compress,format&amp;codec=mozjpeg&amp;cs=strip\" style=\"max-width: 100%\"><\/p>\n<p>Settings &gt; General, under the Features section, has a toggle per module, so switching one off drops its card out of the carousel entirely. <\/p>\n<p>Appearance &gt; Elements controls what shows in the collapsed notch, and the clipboard&#8217;s own tab lets you set the<\/p>\n<p>history size (10, 30 or 50).<\/p>\n<\/p>\n<p>What you can&#8217;t do yet is reorder them, since cards are ranked by priority rather than a fixed list, so a live download outranks the weather.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\">The clipboard filtering by type is the detail that jumps out, most clipboard managers just give you a flat scrollable list and you end up hunting for the one thing you copied ten items ago. The fixed transparent panel with SwiftUI animating inside it rather than the NSWindow frame is a smart workaround too, that&#8217;s the kind of tradeoff most Electron based tools can&#8217;t even attempt. Since clipboard history stays in RAM only, what happens across a reboot or sleep cycle, does it just start clean or is there any short lived persistence.<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Hey <a href=\"https:\/\/www.producthunt.com\/@thys_beesman\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thys_beesman<\/a> <br \/>Appreciate you reading it that closely, and you nailed why the panel is a fixed frame. Animating NSWindow geometry at 120Hz fights the compositor, so the window never moves and SwiftUI does all the motion inside it.<\/p>\n<\/p>\n<p>On persistence, sleep and reboot differ. Across sleep nothing is lost, the process stays alive so the array is still there. It&#8217;s a 2Hz poll on NSPasteboard.changeCount (just an int compare), and since I diff the change counter and not the content, anything that landed during sleep gets caught on the first tick after wake.<\/p>\n<\/p>\n<p>Across quit or reboot it starts fully clean. No short lived persistence at all: no Core Data, no plist, no cache file. History is an array on the service and it dies with the process. Deliberate, since that blob holds OTPs and tokens, and on disk it also ends up in Time Machine and backups. I also skip org.nspasteboard.ConcealedType, so password manager copies never enter history at all.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#11<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/EXT6T6IL3UJVYZ\" class=\"app-title\">KeyOpera 2.0<\/a><\/p>\n<div class=\"one-liner\">Make every Mac keystroke sound uniquely yours<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">102<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>KeyOpera 2.0 \u662f\u4e00\u6b3e\u4e3a Mac \u952e\u76d8\u548c\u9f20\u6807\u6dfb\u52a0\u4e2a\u6027\u5316\u97f3\u6548\u53cd\u9988\u7684\u83dc\u5355\u680f\u5e94\u7528\uff0c\u901a\u8fc7\u81ea\u5b9a\u4e49\u97f3\u6548\u5305\u6ee1\u8db3\u7528\u6237\u5728\u9759\u97f3\u7b14\u8bb0\u672c\u4e0a\u83b7\u5f97\u673a\u68b0\u952e\u76d8\u822c\u6253\u5b57\u624b\u611f\u7684\u9700\u6c42\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\/57c7003e-7166-4790-9bc1-381dd8dce062.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/bce6a368-75f2-43fd-beb6-6076c21b1fa7.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/386f93fe-bd90-494b-b31e-6919ab55e94e.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/073a2a71-d68a-4a1e-879d-e85cabb8fd29.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\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">GitHub<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">macOS\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u952e\u76d8\u97f3\u6548<\/span><br \/>\n            <span class=\"tag\">\u9f20\u6807\u97f3\u6548<\/span><br \/>\n            <span class=\"tag\">\u81ea\u5b9a\u4e49\u97f3\u6548\u5305<\/span><br \/>\n            <span class=\"tag\">\u83dc\u5355\u680f\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u8f93\u5165\u76d1\u63a7\u6743\u9650<\/span><br \/>\n            <span class=\"tag\">\u8f85\u52a9\u529f\u80fd<\/span><br \/>\n            <span class=\"tag\">Homebrew CLI<\/span><br \/>\n            <span class=\"tag\">\u65e0\u969c\u788d\u652f\u6301<\/span><br \/>\n            <span class=\"tag\">\u751f\u4ea7\u529b\u5de5\u5177<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u559c\u7231\u5176\u8ba9Mac\u6253\u5b57\u66f4\u6709\u201c\u673a\u68b0\u611f\u201d\u3002\u4e3b\u8981\u5efa\u8bae\uff1a1. \u589e\u52a0**\u5355\u952e\u97f3\u91cf\u63a7\u5236**\uff08\u5c24\u5176\u7a7a\u683c\u3001Shift\u7b49\u5927\u952e\uff09\uff1b2. \u652f\u6301**\u6309\u5e94\u7528\u8bbe\u7f6e\u97f3\u6548\u914d\u7f6e\u6587\u4ef6**\uff08\u5982\u9759\u97f3Slack\/Zoom\uff0c\u4fdd\u7559VS Code\u97f3\u6548\uff09\uff1b3. \u5bf9**\u201c\u8f93\u5165\u76d1\u63a7\u201d\u6743\u9650**\u6709\u5b89\u5168\u987e\u8651\uff0c\u90e8\u5206\u7528\u6237\u63d0\u53ca\u5e0c\u671b\u5f00\u6e90\u6838\u5fc3\u4ee3\u7801\u6216\u63d0\u4f9b\u53ef\u9a8c\u8bc1\u7684\u7f51\u7edc\u884c\u4e3a\u65e5\u5fd7\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                KeyOpera 2.0\u672c\u8d28\u4e0a\u662fMac\u751f\u6001\u4e2d\u4e00\u4e2a\u7cbe\u81f4\u4f46\u5145\u6ee1\u77db\u76fe\u7684\u201c\u542c\u4e2a\u54cd\u201d\u4ea7\u54c1\u3002\u5176\u4ef7\u503c\u5728\u4e8e\u7cbe\u51c6\u6293\u4f4f\u4e86Mac\u7528\u6237\u5bf9\u201c\u751f\u7406\u53cd\u9988\u7f3a\u5931\u201d\u7684\u75db\u70b9\u2014\u2014\u82f9\u679c\u7684\u9759\u97f3\u952e\u76d8\u8bbe\u8ba1\u8ba9\u6253\u5b57\u53d8\u5f97\u6c89\u95f7\uff0c\u800c\u5927\u90e8\u5206\u7528\u6237\u53c8\u4e0d\u613f\u5916\u63a5\u673a\u68b0\u952e\u76d8\u3002\u901a\u8fc7\u97f3\u6548\u6a21\u62df\u89e6\u611f\uff0c\u786e\u5b9e\u662f\u4f4e\u6210\u672c\u63d0\u5347\u6253\u5b57\u6109\u60a6\u611f\u7684\u5de7\u601d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                2.0\u7248\u7684\u4eae\u70b9\u5728\u4e8e**\u7834\u5708**\u3002\u5f15\u5165\u81ea\u5b9a\u4e49`.keypak`\u97f3\u6548\u5305\u548cCLI\u5de5\u5177\uff0c\u5c06\u4e00\u6b3e\u5c01\u95ed\u7684\u72ec\u7acb\u5e94\u7528\u53d8\u4e3a\u4e00\u4e2a\u53ef\u521b\u4f5c\u3001\u53ef\u5206\u53d1\u7684\u5185\u5bb9\u5e73\u53f0\u3002\u8fd9\u79cd\u201c\u7528\u6237\u751f\u6210\u5185\u5bb9\u201d\u7684\u601d\u8def\u662f\u806a\u660e\u7684\uff0c\u65e2\u964d\u4f4e\u4e86\u4f5c\u8005\u6301\u7eed\u7ef4\u62a4\u97f3\u6548\u7684\u538b\u529b\uff0c\u53c8\u901a\u8fc7\u793e\u533a\u5171\u521b\u589e\u5f3a\u4e86\u7c98\u6027\uff0c\u751a\u81f3\u53ef\u80fd\u884d\u751f\u51fa\u7c7b\u4f3c\u201c\u6253\u5b57\u97f3\u6548ASMR\u201d\u7684\u4e9a\u6587\u5316\u751f\u6001\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u4ea7\u54c1\u7684\u6839\u672c\u9690\u60a3\u5728\u4e8e**\u6743\u9650\u4e0e\u4fe1\u4efb\u7684\u9e3f\u6c9f**\u3002\u8bc4\u8bba\u4e2d\u53cd\u590d\u51fa\u73b0\u7684\u201c\u8f93\u5165\u76d1\u63a7\u201d\u987e\u8651\uff0c\u662f\u4efb\u4f55\u83b7\u53d6\u7cfb\u7edf\u7ea7\u952e\u76d8\u4e8b\u4ef6\u7684\u5de5\u5177\u90fd\u65e0\u6cd5\u7ed5\u5f00\u7684\u6b7b\u7a74\u3002\u5c3d\u7ba1\u5f00\u53d1\u8005\u5766\u627f\u4e0d\u8bb0\u5f55\u3001\u4e0d\u4e0a\u4f20\u6570\u636e\uff0c\u4f46\u8fd9\u79cd\u201c\u9ed1\u76d2\u201d\u72b6\u6001\u5bf9\u4e8e\u6709\u4fe1\u606f\u5b89\u5168\u610f\u8bc6\u7684\u7528\u6237\uff08\u5c24\u5176\u662f\u4f01\u4e1a\u7528\u6237\uff09\u6765\u8bf4\u662f\u4e0d\u53ef\u63a5\u53d7\u7684\u3002\u82f9\u679c\u5bf9\u6c99\u76d2\u548c\u6743\u9650\u7684\u4e25\u82db\u8981\u6c42\uff0c\u8ba9KeyOpera\u5728\u201c\u529f\u80fd\u201d\u548c\u201c\u5b89\u5168\u201d\u95f4\u5904\u4e8e\u5c34\u5c2c\u5883\u5730\u3002\u5f00\u53d1\u8005\u6240\u8c13\u201c\u53ef\u4ee5\u7528Little Snitch\u76d1\u63a7\u201d\u7684\u5efa\u8bae\u5728\u6280\u672f\u4e0a\u7b54\u975e\u6240\u95ee\uff08\u5982\u6b63\u786e\u8bc4\u8bba\u8005\u6307\u51fa\uff0c\u8fd9\u4e5f\u66b4\u9732\u4e86\u5176\u8ba4\u77e5\u504f\u5dee\uff09\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u771f\u6b63\u7684\u95ee\u9898\u5728\u4e8e\uff1a**\u4e00\u4e2a\u8ffd\u6c42\u201c\u6109\u60a6\u201d\u7684\u8f6f\u4ef6\uff0c\u5374\u8981\u6c42\u7528\u6237\u4ed8\u51fa\u201c\u9690\u79c1\u4fe1\u4efb\u201d\u7684\u9ad8\u6602\u4ee3\u4ef7\uff0c\u8fd9\u4e2a\u7b49\u5f0f\u662f\u5426\u6210\u7acb\uff1f** \u5982\u679c\u5f00\u53d1\u8005\u4e0d\u89e3\u51b3\u6838\u5fc3\u4ee3\u7801\u5f00\u6e90\u6216\u63d0\u4f9b\u7b2c\u4e09\u65b9\u53ef\u5ba1\u8ba1\u7684\u673a\u5236\uff0cKeyOpera\u5c06\u6c38\u8fdc\u56f0\u5728\u201c\u597d\u7528\u4f46\u4e0d\u6562\u7528\u201d\u7684\u7070\u8272\u5730\u5e26\uff0c\u5176\u201c\u81ea\u5b9a\u4e49\u97f3\u6548\u5305\u201d\u7684\u793e\u533a\u6f5c\u529b\u4e5f\u5c06\u88ab\u5b89\u5168\u6050\u60e7\u6240\u627c\u6740\u3002\u5bf9\u4e8e\u4e00\u4e2a\u6807\u699c\u201c\u9690\u79c1\u3001\u672c\u5730\u3001\u539f\u751f\u201d\u7684\u5e94\u7528\uff0c\u5149\u8bf4\u4e0d\u505a\u662f\u8fdc\u8fdc\u4e0d\u591f\u7684\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\">KeyOpera 2.0<\/span>\n                <\/div>\n<div class=\"comment-content\">KeyOpera adds satisfying keyboard and mouse sounds to your Mac. V2 introduces customkeypak sound packs, one-click Finder installs, a Homebrew CLI for creating and controlling packs, spoken key names, improved VoiceOver support, and a redesigned menu.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey Product Hunt! \ud83d\udc4b<\/p>\n<p>I\u2019m the indie developer behind KeyOpera, and I\u2019m excited to relaunch it today with Version 2.0.<\/p>\n<p>I originally built KeyOpera because I missed the satisfying physical feedback of mechanical keyboards while working on a Mac. It is a small native menu-bar app that adds responsive keyboard and mouse sounds without getting in the way of your work.<\/p>\n<p>The first version offered a collection of built-in sounds. With Version 2, I wanted to make KeyOpera much more personal and open-ended.<\/p>\n<p>The biggest addition is custom `.keypak` sound packs.<\/p>\n<p>You can now:<\/p>\n<p>\ud83d\udd0a Import custom sound packs directly into KeyOpera<br \/>\n\ud83d\udcc1 Double-click a `.keypak` file in Finder to install it<br \/>\n\ud83d\uddb1\ufe0f Drag a pack onto the KeyOpera app icon<br \/>\n\ud83c\udf9b\ufe0f Switch effects and control keyboard or mouse volume<br \/>\n\ud83d\udce6 Create and distribute your own sound packs<\/p>\n<p>I also created `keypak`, an official command-line tool for developers and power users.<\/p>\n<p>Install it with Homebrew:<\/p>\n<p>`brew tap birangdev\/keypak`<br \/>\n`brew install keypak`<\/p>\n<p>The CLI can control KeyOpera from the terminal, but it can also generate manifests, validate sound packs, bundle them into `.keypak` files, and install them.<\/p>\n<p>Version 2 also introduces Key Announcement, an accessibility feature that speaks the name of each pressed key aloud. It includes adjustable speech speed and support for keys such as Space, Backspace, and Caps Lock.<\/p>\n<p>VoiceOver navigation has been improved throughout the app, and the menu has been redesigned to make keyboard sounds, mouse sounds, sound packs, and settings easier to manage.<\/p>\n<p>A note for existing users: due to Apple\u2019s permission changes, KeyOpera will ask you to grant Keyboard Access under Input Monitoring on first launch. The previous Accessibility permission is no longer needed.<\/p>\n<p>KeyOpera is native, lightweight, and private. Everything runs locally on your Mac, and the app does not collect your data.<\/p>\n<p>You can download KeyOpera 2.0 here:<\/p>\n<p><a href=\"https:\/\/apps.apple.com\/us\/app\/keyopera\/id6740422141?mt=12\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/apps.apple.com\/us\/app\/ke&#8230;<\/a><\/p>\n<p>Learn more and download sound packs:<\/p>\n<p><a href=\"https:\/\/mbirang.com\/keyopera\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/mbirang.com\/keyopera\/<\/a><\/p>\n<p>Explore the `keypak` CLI:<\/p>\n<p><a href=\"https:\/\/github.com\/birangdev\/homebrew-keypak\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/github.com\/birangdev\/hom&#8230;<\/a><\/p>\n<p>I\u2019d really appreciate your feedback\u2014especially on the custom pack workflow. What keyboard, typewriter, computer, game, or completely unexpected sound pack would you create?<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Love the concept, the click feel on macOS is so sterile by default. One thing I&#8217;d love is per-key volume control so I can turn down the spacebar and shift without muting the letters, makes it much easier to find a nice balance in a quiet office.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@saarpalyiityx1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@saarpalyiityx1<\/a>&nbsp;Thank you! I\u2019m glad the clicky feedback makes typing on macOS feel more satisfying.<\/p>\n<p>Per-key volume control is a great suggestion, especially for louder keys like Space, Shift, and Return. Being able to fine-tune those separately would make it much easier to create a balanced sound profile for quiet offices and shared spaces.<\/p>\n<p>I\u2019ve added it to the list of improvements I will consider it for a future updates. Thanks for the thoughtful feedback!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Finally got that satisfying clicky feel on my silent Mac keyboard. The clack sounds are surprisingly realistic, makes typing feel way more fun without buying new hardware.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@ouzsqnu\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ouzsqnu<\/a>&nbsp;Thank you! That was exactly the goal behind KeyOpera, to bring a satisfying, more tactile feel to typing on a Mac without needing extra hardware.<\/p>\n<p>I\u2019m really glad the sounds feel realistic and make typing more enjoyable. With Version 2, you can also try different sound packs or create your own to find the perfect keyboard feel. Happy typing!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>respect for answering the Input Monitoring question directly instead of brushing it off. but I don&#8217;t think Little Snitch actually resolves it &#8211; that catches network egress, not what happens locally, so it wouldn&#8217;t tell you anything about whether keystroke content is being read or logged on-device, only whether it&#8217;s phoned home. for something with that permission level, an open source core (even just the input-handling piece) seems like the real trust boundary, not a network monitor. not knocking the app itself, the sound pack idea is genuinely fun, just not sure I&#8217;d install this on a work machine as-is.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@galdayan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@galdayan<\/a>&nbsp;You\u2019re absolutely right about the distinction. Little Snitch or LuLu can confirm that KeyOpera does not communicate over the network, but they cannot prove what happens locally with the input events the app receives. I shouldn\u2019t have presented network monitoring as a complete answer to that concern.<\/p>\n<\/p>\n<p>For some additional context, earlier versions of KeyOpera used Accessibility access. During App Review, Apple rejected that approach and instructed me to use Input Monitoring instead, as it is the appropriate macOS permission for observing keyboard events. That is why Version 2 now requests Input Monitoring; it was not a permission I chose to add for broader access.<\/p>\n<\/p>\n<p>KeyOpera only responds to key-down events to trigger sounds. It does not build text from those events, keep a keystroke buffer, write keystrokes to disk, or include any local logging or telemetry mechanism. It is also sandboxed and fully offline.<\/p>\n<\/p>\n<p>Still, you\u2019re correct that without the relevant code being open source, users cannot independently verify the local behavior. An open-source input-handling component would provide a stronger trust boundary, and it\u2019s something I need to seriously evaluate.<\/p>\n<\/p>\n<p>I completely understand not installing an app with this permission on a work machine until that level of verification exists. Thank you for raising the concern thoughtfully\u2014and I\u2019m glad you still like the sound-pack idea.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the Input Monitoring permission is the part that&#8217;d give me pause before installing this on a work machine &#8211; that entitlement can technically see every keystroke system wide, passwords included, even if KeyOpera itself only cares about timing. is there anything like an open source core or a network monitor log people can check to verify nothing&#8217;s actually being read or sent anywhere?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@omri_ben_shoham1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@omri_ben_shoham1<\/a>&nbsp;I\u2019d acknowledge the concern directly rather than dismissing it:<\/p>\n<p>That\u2019s a completely reasonable concern, especially on a work machine.<\/p>\n<p>Input Monitoring is a powerful macOS permission and, technically, any app granted that access could observe system-wide keystrokes. KeyOpera only reacts to key-down events to play the selected sound; it does not record, store, reconstruct, or transmit what you type.<\/p>\n<p>The app is sandboxed, has no network functionality, runs fully offline, and contains no telemetry or keystroke-logging mechanism. Nothing is sent to a server because KeyOpera does not make network connections.<\/p>\n<p>There isn\u2019t an open-source core or public audit log available today, so I understand that this still requires some trust. You can also verify its offline behavior with a network monitor such as Little Snitch or LuLu while using it.<\/p>\n<p>I appreciate you raising this\u2014permission transparency is especially important for an app like this.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Love the clicky feedback on my M1 MacBook, feels way more satisfying than the butterfly keys I came from. One thing that would push it over the top for me: per-app sound profiles, so I could mute the clack in Slack and Zoom while keeping it loud for coding in VS Code. Keep up the great work.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@vedat2091990\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@vedat2091990<\/a>&nbsp;Thank you! I\u2019m really glad KeyOpera is making your MacBook feel more satisfying to type on.<\/p>\n<p>Per-app sound profiles are a great idea, being able to mute KeyOpera automatically in apps like Slack and Zoom while keeping it active for coding would make it much more practical throughout the day.<\/p>\n<p>This feature is already planned, and I\u2019m aiming to add it in an upcoming update. Thanks for the thoughtful suggestion and 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>Finally got that real keyboard feel on my MacBook without buying extra hardware. The sound is oddly satisfying during long writing sessions.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@dtanta24444\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dtanta24444<\/a>&nbsp;Here\u2019s a more natural version that mentions this was exactly the intention behind KeyOpera:<\/p>\n<p>Thank you! That was exactly the intention behind KeyOpera\u2014to bring a more satisfying, tactile keyboard feel to the MacBook without needing extra hardware.<\/p>\n<p>I\u2019m really glad it makes long writing sessions more enjoyable. With Version 2, you can also explore different sound packs, switch between styles depending on your mood, or create and import your own custom .keypak packs.<\/p>\n<p>Thanks for the support, and happy typing!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#12<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/RWF4RUWHMCN5CE\" class=\"app-title\">yatta!<\/a><\/p>\n<div class=\"one-liner\">A cute little to-do list that celebrates with you<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">99<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>yatta! \u662f\u4e00\u6b3e\u901a\u8fc7\u53ef\u7231\u89d2\u8272\u5e86\u795d\u548c\u70df\u706b\u52a8\u753b\u9a71\u6563\u62d6\u5ef6\u8d1f\u7f6a\u611f\u7684\u6781\u7b80\u5f85\u529e\u6e05\u5355App\uff0c\u4e13\u4e3a\u538c\u5026\u590d\u6742\u8bbe\u7f6e\u3001\u6e34\u671b\u5373\u65f6\u60c5\u7eea\u5956\u52b1\u7684\u7528\u6237\u8bbe\u8ba1\uff0c\u5728\u201c\u4eca\u65e5\u00b7\u7a0d\u540e\u00b7\u67d0\u5929\u201d\u4e09\u680f\u8f7b\u91cf\u7ba1\u7406\u573a\u666f\u4e2d\u89e3\u51b3\u201c\u6253\u5f00\u592a\u591a\u5f85\u529eApp\u5374\u56e0\u7ed3\u6784\u5316\u8d1f\u62c5\u800c\u5931\u53bb\u52a8\u529b\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\/a685ca93-9c45-48f7-8496-83957e594541.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/57782d42-c05f-4395-a4fc-c92cd5a49b49.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/478e7732-0ead-424f-b075-df5588471077.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/4df87c7f-d397-40de-98e2-585d5e4f2136.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/80919d49-27ec-420d-ac77-2b0a54c6e217.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/f520abed-237b-49bc-9170-9df03e49cdde.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\">iOS<\/span><br \/>\n            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">Task Management<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u5f85\u529e\u6e05\u5355<\/span><br \/>\n            <span class=\"tag\">\u6781\u7b80\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u60c5\u7eea\u6fc0\u52b1<\/span><br \/>\n            <span class=\"tag\">\u65e5\u8bed\u6587\u5316<\/span><br \/>\n            <span class=\"tag\">\u72ec\u7acb\u5f00\u53d1<\/span><br \/>\n            <span class=\"tag\">AI\u8f85\u52a9\u8bbe\u8ba1<\/span><br \/>\n            <span class=\"tag\">\u79bb\u7ebf\u53ef\u7528<\/span><br \/>\n            <span class=\"tag\">\u9690\u79c1\u4f18\u5148<\/span><br \/>\n            <span class=\"tag\">iOS\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u8f7b\u91cf\u5316\u7ba1\u7406<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u8d5e\u8d4f\u8bbe\u8ba1\u7b80\u6d01\u53ef\u7231\uff0c\u4f46\u5b89\u5353\u7528\u6237\u548c\u684c\u9762\u96c6\u6210\u9700\u6c42\u672a\u88ab\u6ee1\u8db3\uff1b\u5f00\u53d1\u8005\u627f\u8bfa\u672a\u6765\u8003\u8651\u3002\u6709\u7528\u6237\u62c5\u5fe7\u6362\u624b\u673a\u540e\u672c\u5730\u6570\u636e\u65e0\u6cd5\u901a\u8fc7iCloud\u8fc1\u79fb\/\u5907\u4efd\u3002\u5bf9\u4e8e\u201c\u67d0\u5929\u201d\u6e05\u5355\uff0c\u5f00\u53d1\u8005\u660e\u786e\u8868\u793a\u4e0d\u63d0\u4f9b\u4e3b\u52a8\u63d0\u9192\uff0c\u5f3a\u8c03\u5176\u201c\u653e\u4e0b\u5373\u91ca\u6000\u201d\u7684\u8bbe\u8ba1\u54f2\u5b66\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                yatta! \u7cbe\u51c6\u5207\u5272\u4e86\u4e00\u4e2a\u88ab\u5927\u5382\u5ffd\u7565\u7684\u7ec6\u5206\u5e02\u573a\uff1a\u4e0d\u662f\u5e2e\u7528\u6237\u201c\u66f4\u597d\u5730\u7ba1\u7406\u4efb\u52a1\u201d\uff0c\u800c\u662f\u5e2e\u7528\u6237\u201c\u66f4\u6109\u5feb\u5730\u5fd8\u8bb0\u4efb\u52a1\u201d\u3002\u5b83\u7528\u89d2\u8272\u72c2\u6b22\u4e0e\u70df\u82b1\u7279\u6548\u5c06\u5b8c\u6210\u4efb\u52a1\u4ece\u201c\u5f85\u529e\u52fe\u9009\u201d\u91cd\u5851\u4e3a\u201c\u5373\u65f6\u60c5\u7eea\u5151\u73b0\u201d\uff0c\u672c\u8d28\u4e0a\u662f\u4e00\u79cd\u884c\u4e3a\u8bbe\u8ba1\u9a71\u52a8\u7684\u8f7b\u91cf\u6e38\u620f\u5316\u673a\u5236\u2014\u2014\u52a8\u673a\u5956\u52b1\u5927\u4e8e\u529f\u80fd\u5806\u780c\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u5149\u73af\u4e4b\u4e0b\u6697\u85cf\u9677\u9631\u3002\u5b8c\u5168\u79bb\u7ebf\u4e0e\u96f6\u6570\u636e\u53ef\u89c1\u6027\uff0c\u5728\u5ba3\u4f20\u4e2d\u662f\u9690\u79c1\u4f18\u52bf\uff0c\u5728\u5b9e\u9645\u4e2d\u662f\u529f\u80fd\u67b7\u9501\uff1a\u6570\u636e\u65e0\u6cd5\u8de8\u8bbe\u5907\u540c\u6b65\uff0c\u4e5f\u65e0\u6cd5\u5bfc\u51fa\u5907\u4efd\uff0c\u5bfc\u81f4\u7528\u6237\u5fe0\u8bda\u5ea6\u4e0e\u8fc1\u79fb\u6210\u672c\u76f4\u63a5\u6302\u94a9\u3002\u5f00\u53d1\u8005\u4ee5\u201c\u4e0d\u5199\u4e00\u884c\u4ee3\u7801\u201d\u5b8c\u6210App\u7684\u53d9\u4e8b\u9887\u5177\u53cd\u5dee\u611f\uff0c\u4f46\u4e5f\u66b4\u9732\u51fa\u4ea7\u54c1\u6280\u672f\u67b6\u6784\u7684\u8106\u5f31\u6027\u2014\u2014\u96c6\u6210\u3001\u540c\u6b65\u3001\u8de8\u5e73\u53f0\u7b49\u771f\u6b63\u7684\u5de5\u7a0b\u786c\u4ed7\uff0c\u76ee\u524d\u53ea\u662f\u201c\u8003\u8651\u53bb\u505a\u201d\u3002\u5f53\u65b0\u9c9c\u611f\u892a\u53bb\uff0c\u7528\u6237\u662f\u5426\u4f1a\u56e0\u5931\u53bb\u4e00\u5f20\u5b9a\u5236\u7167\u7247\u5c31\u653e\u5f03\u6574\u4e2a\u5217\u8868\uff1f\u8bb0\u4f4f\uff0c\u7528\u6237\u653e\u5f03\u5f85\u529eApp\u7684#1\u539f\u56e0\u901a\u5e38\u4e0d\u662f\u529f\u80fd\u592a\u5c11\uff0c\u800c\u662f\u201c\u5931\u53bb\u5174\u8da3\u201d\u3002\u8fd9\u6b3e\u4ea7\u54c1\u82e5\u8981\u957f\u5b58\uff0c\u9700\u5728\u4fdd\u6301\u8bbe\u8ba1\u7075\u9b42\u7684\u540c\u65f6\uff0c\u8865\u4e0a\u201c\u5b9e\u7528\u4f46\u4e0d\u788d\u773c\u201d\u7684\u57fa\u7840\u8bbe\u65bd\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\">yatta!<\/span>\n                <\/div>\n<div class=\"comment-content\">A cute, tiny to-do list where a character celebrates every task you finish \u2014 with fireworks and a happy &#8220;yatta!&#8221; (&#8220;I did it!&#8221; in Japanese). Just three choices: Today, Later, or Someday. No projects, no priorities, no clutter. Free core features, fully offline.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Looks like a great design! I&#8217;m an Android user though. Is it available for Android as well? \ud83e\udd14 <\/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\/@bpatts\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@bpatts<\/a>&nbsp;Thank you! I put a lot of care into the design, so it means a lot to hear that.<br \/>There&#8217;s no Android version yet, I&#8217;m sorry to say \u2014 but I&#8217;d love to support it down the road!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I like the simplicity, and the design is very clean!<\/p>\n<p>Will people be able to integrate with other productivity apps that are more desktop based?<\/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\/@asambl\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@asambl<\/a>&nbsp;Thank you! There&#8217;s no integration with other apps at the moment, but if you have thoughts on which apps you&#8217;d love to see it integrate with, I&#8217;d really appreciate hearing them.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hi Product Hunt! I&#8217;m Honda, a designer from Japan and the solo maker of yatta! \ud83d\udc30<\/p>\n<p>I&#8217;ve tried so many to-do apps. They&#8217;re powerful \u2014 projects, subtasks, priority flags \u2014 but somewhere in all that setup, my motivation would quietly die. And honestly, none of them ever made me smile.<\/p>\n<p>So I built the one I wanted: a to-do list where the only decision is *when*. Today, Later, or Someday. That&#8217;s the whole system. And when you finish a task, a little character celebrates with fireworks and a happy &#8220;yatta!&#8221; \u2014 that&#8217;s Japanese for &#8220;I did it!&#8221; You can even set a photo of your favorite person (or your cat) as your cheerleader.<\/p>\n<p>A few things I cared about: the core to-do features are completely free, everything works offline, and your tasks never leave your iPhone \u2014 by design, even I can&#8217;t see them.<\/p>\n<p>One more thing \u2014 this app almost happened by accident. I&#8217;m a designer, not a programmer. One day I mocked up this idea with Claude Design and posted it on X, just for fun. It blew up to 140K impressions, and even Claude&#8217;s official account quote-tweeted it. So I directed the entire build with Claude Code \u2014 without writing a single line of code myself \u2014 and shipped v1.0 about a month later.<\/p>\n<p>I&#8217;d love your honest feedback: what&#8217;s the #1 reason you abandon to-do apps? That&#8217;s exactly the problem I&#8217;m obsessed with fixing. \ud83c\udf86<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>genuinely charming idea, the fireworks + yatta moment sounds like it&#8217;d actually make finishing a task feel good instead of just crossing off a box. since everything stays on-device and you can&#8217;t see the tasks yourself, what happens if someone gets a new phone &#8211; is there any local backup\/restore through iCloud, or would switching devices mean starting the list over from zero?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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 three-bucket simplicity is refreshing, most to-do apps let you set up so much structure that maintaining the structure becomes its own task. curious about &#8220;Someday&#8221; specifically though &#8211; is there any gentle nudge to revisit it occasionally, or is it fully on you to remember to check back? that bucket is usually where good intentions go to be forgotten in every app that has one.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@galdayan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@galdayan<\/a>&nbsp;As for a nudge to revisit things occasionally, I think these two features cover that to some extent.<\/p>\n<ol>\n<li>\n<p>You can optionally set morning and evening reminders to review your registered tasks<\/p>\n<\/li>\n<li>\n<p>A widget lets you keep the app somewhere visible at all times<\/p>\n<\/li>\n<\/ol>\n<p>That said, for &#8220;Someday&#8221; specifically, revisiting it later isn&#8217;t really the goal. The moment you jot something down there, you&#8217;re able to let it go from your mind \u2014 that in itself is what &#8220;Someday&#8221; is for. Whether users ever check back on it is entirely up to them.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/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\/IWZXMU2ZWFQXDM\" class=\"app-title\">CodexBar Lite<\/a><\/p>\n<div class=\"one-liner\">Privacy-first Codex tracker for your macOS menu bar<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">93<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>CodexBar Lite \u662f\u4e00\u6b3e\u539f\u751f macOS \u83dc\u5355\u680f\u5e94\u7528\uff0c\u901a\u8fc7\u590d\u7528\u5df2\u6709\u7684 Codex CLI \u767b\u5f55\u4f1a\u8bdd\uff0c\u8ba9\u5f00\u53d1\u8005\u65e0\u9700\u989d\u5916\u6388\u6743\u5373\u53ef\u968f\u65f6\u67e5\u770b OpenAI Codex \u7684\u4f7f\u7528\u91cf\u3001\u91cd\u7f6e\u65f6\u95f4\u548c\u63a5\u6536\u901a\u77e5\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\/5019d2ed-4868-43b7-88b0-27ab030574b5.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/6SZYx8naNG4\"><source src=\"https:\/\/youtu.be\/6SZYx8naNG4\" 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\/d362f8d8-1c87-42f4-9431-50575400921f.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/3c356ba3-80dd-4381-9f71-1b2615aa0f9c.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/d069a546-0cc3-42b7-a768-bb0bb8360b43.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/813b45fd-c14b-42c8-85c2-8fa99dde59e9.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\">Privacy<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">GitHub<\/span><br \/>\n            <span class=\"tag\">Menu Bar Apps<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">macOS\u83dc\u5355\u680f\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">Codex\u4f7f\u7528\u91cf\u8ddf\u8e2a<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90<\/span><br \/>\n            <span class=\"tag\">\u9690\u79c1\u4f18\u5148<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">AI\u7f16\u7801\u8f85\u52a9<\/span><br \/>\n            <span class=\"tag\">\u65e0\u75d5\u76d1\u63a7<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u4f1a\u8bdd\u590d\u7528<\/span><br \/>\n            <span class=\"tag\">\u8f7b\u91cf\u7ea7\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u6295\u7968\u657093<\/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\u65e0\u9700\u6d4f\u89c8\u5668Cookie\u3001\u94a5\u5319\u4e32\u6216API\u5bc6\u94a5\u7684\u9690\u79c1\u8bbe\u8ba1\u3002\u5efa\u8bae\u652f\u6301Claude Code\u7b49\u5176\u4ed6AI\u7f16\u7801\u5de5\u5177\uff1b\u5173\u5fc3\u4f1a\u8bdd\u5931\u6548\u65f6\u7684\u5e94\u5bf9\u673a\u5236\uff1b\u6709\u7528\u6237\u5bf9OTA\u81ea\u52a8\u66f4\u65b0\u673a\u5236\u7684\u5b89\u5168\u6027\u63d0\u51fa\u8d28\u7591\uff0c\u62c5\u5fe7\u5176\u6210\u4e3a\u4f9b\u5e94\u94fe\u653b\u51fb\u76ee\u6807\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                CodexBar Lite \u662f\u4e00\u6b3e\u7cbe\u51c6\u5207\u4e2d\u5f00\u53d1\u8005\u201c\u5c0f\u75db\u70b9\u201d\u7684\u684c\u9762\u5de5\u5177\uff0c\u5176\u6838\u5fc3\u4ef7\u503c\u4e0d\u5728\u4e8e\u529f\u80fd\u5f3a\u5927\uff0c\u800c\u5728\u4e8e\u201c\u514b\u5236\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5728AI\u7f16\u7801\u5de5\u5177\u4e95\u55b7\u7684\u5f53\u4e0b\uff0c\u9488\u5bf9Codex\u7684\u4f7f\u7528\u91cf\u8ffd\u8e2a\u672c\u662f\u4e00\u4e2a\u5fae\u5c0f\u4f46\u9ad8\u9891\u7684\u75db\u70b9\u3002\u5f00\u53d1\u56e2\u961f\u6ca1\u6709\u9009\u62e9\u201c\u5927\u800c\u5168\u201d\u7684\u4eea\u8868\u76d8\u65b9\u6848\uff0c\u800c\u662f\u5de7\u5999\u5730\u5229\u7528\u4e86Mac\u4e0a\u5df2\u6709\u7684CLI\u4f1a\u8bdd\uff0c\u5f7b\u5e95\u7ed5\u5f00\u4e86\u6d4f\u89c8\u5668\u6743\u9650\u3001\u94a5\u5319\u4e32\u8bbf\u95ee\u7b49\u73b0\u4ee3\u8f6f\u4ef6\u4e2d\u5e38\u89c1\u7684\u201c\u6743\u9650\u52d2\u7d22\u201d\u9677\u9631\u3002\u8fd9\u79cd\u201c\u7528\u6700\u5c11\u6743\u9650\u505a\u6700\u5c0f\u4e8b\u201d\u7684\u8bbe\u8ba1\u54f2\u5b66\uff0c\u8ba9\u5b83\u5728\u9690\u79c1\u654f\u611f\u7684\u5f00\u53d1\u8005\u7fa4\u4f53\u4e2d\u83b7\u5f97\u4e86\u5929\u7136\u7684\u4fe1\u4efb\u80cc\u4e66\uff0c93\u4e2a\u6295\u7968\u548c\u9ad8\u8d28\u91cf\u8bc4\u8bba\u5370\u8bc1\u4e86\u8fd9\u4e00\u70b9\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u4ea7\u54c1\u7684\u771f\u6b63\u6f5c\u529b\u4e0e\u6311\u6218\u5e76\u5b58\u3002\u7528\u6237\u5bf9\u652f\u6301Claude Code\u3001Kimi Code\u7684\u547c\u58f0\uff0c\u66b4\u9732\u4e86\u5355\u4e00\u5de5\u5177\u751f\u6001\u7ed1\u5b9a\u7684\u5c40\u9650\u6027\u3002\u5982\u679c\u5f00\u53d1\u8005\u65e0\u6cd5\u4f18\u96c5\u5730\u5904\u7406\u591aCLI\u4f1a\u8bdd\u7684\u5e76\u6392\u76d1\u63a7\uff08\u800c\u975e\u7b80\u5355\u5806\u780c\u4e0d\u540cApp\uff09\uff0c\u4ea7\u54c1\u5c31\u5c06\u6c38\u8fdc\u505c\u7559\u5728\u201cCodex\u4e13\u5c5e\u914d\u4ef6\u201d\u7684\u72ed\u7a84\u5b9a\u4f4d\u4e0a\u3002\u66f4\u503c\u5f97\u8b66\u60d5\u7684\u662f\uff0c\u6709\u7528\u6237\u7cbe\u51c6\u6307\u51fa\u4e86OTA\u81ea\u52a8\u66f4\u65b0\u7684\u5b89\u5168\u98ce\u9669\u2014\u2014\u4e00\u4e2a\u80fd\u8bfb\u53d6\u6d3b\u8dc3\u7f16\u7801\u4f1a\u8bdd\u5e76\u63a8\u9001\u4e8c\u8fdb\u5236\u66f4\u65b0\u7684\u5e94\u7528\uff0c\u4e00\u65e6\u66f4\u65b0\u901a\u9053\u88ab\u653b\u7834\uff0c\u5176\u5371\u5bb3\u8fdc\u5927\u4e8e\u4f20\u7edf\u5de5\u5177\u3002\u5f00\u53d1\u8005\u5728\u201c\u4fbf\u6377\u201d\u4e0e\u201c\u5b89\u5168\u201d\u4e4b\u95f4\u9009\u62e9\u4e86\u524d\u8005\uff0c\u4f46\u8fd9\u5bf9\u4e8e\u4e00\u6b3e\u6807\u699c\u201c\u9690\u79c1\u4f18\u5148\u201d\u7684\u5de5\u5177\u800c\u8a00\uff0c\u662f\u4e00\u4e2a\u9700\u8981\u660e\u786e\u6280\u672f\u7ec6\u8282\uff08\u5982\u4ee3\u7801\u7b7e\u540d\u3001\u6821\u9a8c\u9a8c\u8bc1\uff09\u624d\u80fd\u8ba9\u4eba\u4fe1\u670d\u7684\u77db\u76fe\u70b9\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u603b\u4f53\u6765\u770b\uff0c\u8fd9\u662f\u4e00\u6b3e\u7406\u5ff5\u4f18\u79c0\u3001\u6267\u884c\u5230\u4f4d\u7684\u8f7b\u91cf\u7ea7\u5de5\u5177\uff0c\u4f46\u76ee\u524d\u7684\u67b6\u6784\u66f4\u50cf\u662f\u4e3a\u89e3\u51b3\u201c\u6211\u81ea\u5df1\u7684\u95ee\u9898\u201d\u800c\u751f\u7684\u539f\u578b\u3002\u80fd\u5426\u8fdb\u5316\u6210\u4e00\u4e2a\u53ef\u6269\u5c55\u3001\u9ad8\u5b89\u5168\u7684\u201cAI\u7f16\u7801\u52a9\u624b\u76d1\u63a7\u4e2d\u67a2\u201d\uff0c\u53d6\u51b3\u4e8e\u5f00\u53d1\u8005\u5bf9\u591a\u5de5\u5177\u517c\u5bb9\u6027\u548c\u4f9b\u5e94\u94fe\u5b89\u5168\u4e24\u5927\u81f4\u547d\u95ee\u9898\u7684\u56de\u5e94\u901f\u5ea6\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">CodexBar Lite<\/span>\n                <\/div>\n<div class=\"comment-content\">CodexBar Lite is a native macOS menu bar app that keeps your OpenAI Codex usage visible at a glance. It uses your existing Codex CLI session &#8211; no browser cookies, Keychain permissions, API keys, or third-party accounts required. Monitor usage, reset times, and receive notifications, all from a lightweight, open-source app.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey everyone! \ud83d\udc4b<\/p>\n<p>CodexBar Lite started as a tool I built for myself.<\/p>\n<p>I wanted a simple way to keep an eye on my Codex usage while working, but even getting one tracker set up felt like more effort than it should. Most solutions I tried wanted access to Chrome, browser cookies, Keychain, or other permissions just to show usage.<\/p>\n<p>So I built one around a simple idea: use the existing codex login session that&#8217;s already on my Mac.<\/p>\n<p>I&#8217;ve been using it daily for the past few months, gradually polishing it instead of launching it. Every time I thought it was ready, I&#8217;d find one more thing to improve.<\/p>\n<p>Today I&#8217;m finally sharing it.<\/p>\n<p>A few highlights:<br \/>\n&#8211; Native macOS app<br \/>\n&#8211; Uses your existing Codex CLI login<br \/>\n&#8211; Minimal by design &#8211; no Chrome, browser cookies, or Keychain access<br \/>\n&#8211; No telemetry<br \/>\n&#8211; Lightweight and open source<\/p>\n<p>I&#8217;d love to hear what you think. If you use Codex regularly, what would make a menu bar companion genuinely useful for your workflow?<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@wei_b0 The best utilities are always the ones we build to solve our own daily frustrations. Keeping this native Mac app lightweight, open source, and with zero telemetry is a massive win for privacy conscious devs.<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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\/@wei_b0\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"wei_b0\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@wei_b0<\/a>  &#8211; This looks amazing, any plans to build a similar app for Claude and other AI Platforms?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@codeandsea\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@codeandsea<\/a>&nbsp;Definitely, I&#8217;d love to!<\/p>\n<p>The only thing I&#8217;d be careful about is preserving the philosophy of the app &#8211; keep it minimal, focused, and avoid turning it into another bloated usage dashboard. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\">@wei_b0 yeah I totally understand but for users like myself who don\u2019t use OpenAI and mainly use Claude code and Kimi Code. Maybe you could look at building different apps for different tooling, although that may not work for users who say use both Codex and Claude Code. They may not want to install two apps.<\/div>\n<div class=\"comment-actions\">\n<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>Loving the choice to lean on the existing CLI session instead of asking users to generate yet another API key, lovely detail that makes a tool feel trustworthy:)<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@mohammed_messeguem\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mohammed_messeguem<\/a>&nbsp;appreciated! <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Reusing the existing Codex CLI session instead of asking for Chrome access, browser cookies, or Keychain permissions is exactly the right call for a tool this narrow in scope, most usage trackers overreach on permissions relative to what they actually need to show a number.<br \/>\nMonths of daily personal use before shipping usually shows in the polish, and it reads that way here. Since it only reads the CLI session, does it break or silently go stale if OpenAI changes how that session is stored, or is there some fallback check built in for that.<\/div>\n<div class=\"comment-actions\">\n<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>It would silently stop fail if OpenAI changes the session format. That said, I use it every day myself and have been maintaining it for almost 2 months now, so these issues usually get caught quickly.<\/p>\n<p>I\u2019ve also added OTA updates, which makes it easier to ship fixes whenever something changes on OpenAI\u2019s 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<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the no-Chrome no-Keychain angle is nice but the OTA auto-update piece is the part that&#8217;d actually worry me a little &#8211; an app that&#8217;s already got a live coding session in view and can push its own updates is a decent supply chain target if the update channel or signing ever got compromised. is there any code signing\/checksum verification on the update payload before it installs, or is it more of a basic download-and-replace flow 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>Privacy-first design makes sense for a dev tool \u2014 anything touching an active coding session should be careful about what it asks for. The no-Keychain, no-browser-cookie approach is reassuring. I use a mix of AI coding tools across projects and the comparison question comes up constantly: when you are running both Codex and something like Claude Code in the same workflow, there is no easy way to see which got used for what and track where the actual productivity gain is. Is the session model specific enough to Codex that adding a second provider would need a separate app, or is the architecture flexible enough to slot in another CLI session alongside the Codex one?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the no-Chrome, no-Keychain, no-API-key approach is a genuinely refreshing default for a tool this small in scope, most usage trackers ask for way more than they need. one thing I&#8217;m curious about since it&#8217;s riding on your existing CLI session &#8211; does the polling itself count against anything on OpenAI&#8217;s side, like a second process making periodic calls with your session credentials showing up as unusual activity, or is it reading something more like a local cache rather than actually hitting their API each refresh?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#14<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/TMEMIQ5LCGOSI6\" class=\"app-title\">>=PlayingFild<\/a><\/p>\n<div class=\"one-liner\">Productivity Tool &#038; Tab Manager that Understands Context<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">92<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>PlayingFild \u662f\u4e00\u6b3e\u901a\u8fc7\u8bbe\u5907\u7aef\u673a\u5668\u5b66\u4e60\u7406\u89e3\u9875\u9762\u5185\u5bb9\u3001\u800c\u975e\u4ec5\u9760URL\u6765\u7ba1\u7406\u6d4f\u89c8\u5668\u6807\u7b7e\u9875\u7684\u751f\u4ea7\u529b\u5de5\u5177\uff0c\u65e8\u5728\u89e3\u51b3\u4f20\u7edf\u62e6\u622a\u7c7b\u63d2\u4ef6\u201c\u4e00\u5200\u5207\u201d\u8bef\u4f24\u4e13\u6ce8\u573a\u666f\u3001\u65e0\u6cd5\u533a\u5206\u201c\u5b66\u7f16\u7a0b\u201d\u4e0e\u201c\u5237\u5a31\u4e50\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\/8e8d9511-45ce-45b4-b285-3d7052786afe.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/020afc1c-1211-408e-a610-469b6868a91d.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/f7b8b5da-cf28-458f-9b13-6777eaf61289.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\/7b046ee2-61b3-433d-8e69-9432f31823e9.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/21ece26a-ac15-4751-82a2-0fe6a821d211.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Chrome Extensions<\/span><br \/>\n            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">User Experience<\/span><br \/>\n            <span class=\"tag\">Tech<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u6d4f\u89c8\u5668\u6807\u7b7e\u7ba1\u7406\u5668<\/span><br \/>\n            <span class=\"tag\">\u5185\u5bb9\u611f\u77e5<\/span><br \/>\n            <span class=\"tag\">\u8bbe\u5907\u7aefAI<\/span><br \/>\n            <span class=\"tag\">\u751f\u4ea7\u529b\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u4e13\u6ce8\u5956\u52b1<\/span><br \/>\n            <span class=\"tag\">\u81ea\u52a8\u6807\u7b7e\u6e05\u7406<\/span><br \/>\n            <span class=\"tag\">\u591a\u7a97\u53e3\u89c4\u5219<\/span><br \/>\n            <span class=\"tag\">\u7528\u6237\u5206\u7ea7\u6a21\u578b<\/span><br \/>\n            <span class=\"tag\">\u52a8\u673a\u7406\u89e3<\/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\u201c\u5956\u52b1\u4e13\u6ce8\u800c\u975e\u60e9\u7f5a\u5206\u5fc3\u201d\u7684\u7406\u5ff5\uff0c\u4e3b\u6d41\u7591\u95ee\u96c6\u4e2d\u5728\u591a\u7a97\u53e3\/\u591a\u4efb\u52a1\u573a\u666f\u4e0b\u7684\u89c4\u5219\u9694\u79bb\u3001\u5355\u9875\u5e94\u7528\uff08SPA\uff09\u5185\u5bb9\u52a8\u6001\u6f02\u79fb\u65f6\u7684\u5206\u7c7b\u53ef\u9760\u6027\u300120+\u6807\u7b7e\u9875\u65f6\u7684\u672c\u5730\u6a21\u578bCPU\/\u7535\u6c60\u8d1f\u62c5\uff0c\u4ee5\u53ca\u5168\u7403\u6a21\u578b\u5728\u201c\u4e0d\u4e0a\u4f20\u9875\u9762\u539f\u6587\u201d\u7684\u9690\u79c1\u524d\u63d0\u4e0b\u5982\u4f55\u8bad\u7ec3\u2014\u2014\u5f00\u53d1\u8005\u56de\u5e94\u8bf4\u660e\u4ec5\u4e0a\u4f20\u975e\u654f\u611f\u57df\u540d\u53ca\u201c\u751f\u4ea7\u6027\u8bc4\u5206\u201d\u7684\u9690\u5f0f\u5171\u8bc6\uff0cSPA\u5185\u901a\u8fc7Mutation Observer\u68c0\u6d4b\u5185\u5bb9\u53d8\u5316\u5e76\u91cd\u65b0\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                PlayingFild \u7684\u6700\u5927\u521b\u65b0\u4e0d\u5728\u4e8e\u201c\u673a\u5668\u5b66\u4e60\u201d\u8fd9\u4e09\u4e2a\u5b57\uff0c\u800c\u5728\u4e8e\u5b83\u7ec8\u4e8e\u628a\u201c\u6d4f\u89c8\u5668\u5185\/\u5916\u201d\u7684\u52a8\u673a\u51b2\u7a81\u5199\u8fdb\u4e86\u4ea7\u54c1\u7684\u7b2c\u4e00\u6027\u539f\u7406\u3002\u4f20\u7edf\u63d2\u4ef6\u628a\u4e00\u5207\u7f51\u7ad9\u89c6\u4f5c\u5a01\u80c1\uff0c\u7528\u5c01\u9501\u903c\u7528\u6237\u5bf9\u6297\uff0c\u7ed3\u679c\u50ac\u751f\u51fa\u201c\u76f4\u63a5\u5378\u8f7d\u201d\u8fd9\u79cd\u6700\u7c97\u66b4\u7684\u89c4\u907f\u884c\u4e3a\u3002PlayingFild \u5207\u6362\u89c6\u89d2\uff1a\u8ba9\u673a\u5668\u5206\u8fa8\u4f60\u662f\u60f3\u201c\u7528\u5b8c10\u4e2aStack Overflow\u9875\u9762\u67e5Bug\u201d\u8fd8\u662f\u201c\u5212\u63893\u4e2a\u641e\u7b11\u89c6\u9891\u201d\u2014\u2014\u8fd9\u4e00\u8ba4\u77e5\u98de\u8dc3\u6bd4\u5355\u7eaf\u4ee5URL\u4e00\u5200\u5207\u9ad8\u660e\u5f97\u591a\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u6280\u672f\u4e0a\uff0c\u8bbe\u5907\u7aef\u63a8\u7406\u662f\u5bf9\u7684\uff0c\u4f46\u4ee3\u4ef7\u662f\u6a21\u578b\u4e0d\u591f\u201c\u80d6\u201d\u3002\u8bc4\u8bba\u4e2d\u7528\u6237\u53cd\u590d\u8ffd\u95ee\u7684SPA\u52a8\u6001\u5185\u5bb9\u3001\u591a\u7a97\u53e3\u5e76\u53d1\u3001\u5168\u5c40\u6a21\u578b\u9690\u79c1\u7b49\u95ee\u9898\uff0c\u5f00\u53d1\u8005\u7528\u201cMutation Observer + \u53bb\u654f\u611f\u8def\u5f84\u5171\u8bc6\u201d\u6765\u62c6\u89e3\uff0c\u672c\u8d28\u4e0a\u662f\u5728\u7cbe\u51c6\u5ea6\u4e0e\u9690\u79c1\u5b89\u5168\u4e4b\u95f4\u8d70\u94a2\u4e1d\u3002\u76ee\u524d\u5c1a\u7f3a\u4e4f\u6709\u8bf4\u670d\u529b\u7684\u5bf9\u6807\u6d4b\u8bd5\uff08\u5982\u4e0eTab Wrangler\u3001OneTab\u7684CPU\/\u5185\u5b58\u5bf9\u6bd4\uff09\uff0c\u4e14\u201c\u5956\u52b1\u5f0f\u4e13\u6ce8\u201d\u7684\u5fc3\u7406\u5b66\u6548\u5e94\u80fd\u5426\u7cfb\u7edf\u6027\u8f6c\u5316\u957f\u671f\u884c\u4e3a\uff0c\u81f3\u4eca\u4ecd\u5c5e\u7a7a\u767d\u6570\u636e\u533a\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u771f\u6b63\u7684\u62a4\u57ce\u6cb3\u4e0d\u5728\u5f53\u524d\u529f\u80fd\uff0c\u800c\u5728\u4e8e\u8fd9\u5957\u201c\u5206\u9875=\u610f\u56fe\u201d\u7684\u5fae\u5206\u7c7b\u6a21\u578b\u662f\u5426\u80fd\u968f\u7740\u7528\u6237\u884c\u4e3a\u79ef\u7d2f\u800c\u81ea\u8fdb\u5316\uff0c\u53d8\u5f97\u771f\u6b63\u201c\u8bfb\u61c2\u4f60\u201d\u3002\u5982\u679c\u6b62\u6b65\u4e8e\u201c\u81ea\u52a8\u5173\u638960\u5929\u672a\u7528\u7684\u6807\u7b7e\u201d\uff0c\u90a3\u5b83\u53ea\u662f\u591a\u4e86\u4e00\u4e2a\u82b1\u54e8\u7684\u81ea\u52a8\u6e05\u7406\u5668\u3002\u5982\u679c\u80fd\u505a\u5230\u201c\u6628\u5929\u71ac\u591c\u67e5\u8d44\u6599\uff0c\u4eca\u65e9\u81ea\u52a8\u4e3a\u4f60\u4fdd\u7559\u90a3\u7ec4Research\u6807\u7b7e\u201d\u2014\u2014\u8fd9\u624d\u80fd\u771f\u6b63\u89e3\u9501\u65f6\u95f4\u4e0e\u6ce8\u610f\u529b\u91cd\u6784\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\">>=PlayingFild<\/span>\n                <\/div>\n<div class=\"comment-content\">\u227b=PlayingFild uses on device machine learning to classify tabs by content, not URL. The same website can be productive or distracting based on the page. Classification happens entirely on your device. Raw page content, HTML and personal text don&#8217;t leave your browser. Earn break time by focusing and spend it when you need it. Tabs reorder themselves based on what you actually use, and unused tabs close. Includes per window rules, focus timer modes, recap cards, and productivity analytics.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hello,<\/p>\n<\/p>\n<p>I built PlayingFild because every productivity extension I tried had the same problem they only understood websites, not what I was actually doing.<\/p>\n<\/p>\n<p>If I was watching a programming tutorial on YouTube, I&#8217;d get blocked. If I was procrastinating on Reddit, it looked exactly the same as researching a bug. Eventually I got frustrated enough to build something that understands page content instead of just URLs.<\/p>\n<\/p>\n<p>As a beginner developer with dyslexia (and probably ADHD), I realised punishment wasn&#8217;t helping me focus. Blocking everything just made me uninstall the extensions. So PlayingFild takes a different approach: it rewards focus, earns you break time, automatically organises your tabs, and quietly cleans up the browser instead of constantly blocking everything.<\/p>\n<p>I do wish it could &#8220;read my mind&#8221; sometimes, like if I want to use unproductive tabs for a break when I actually need one but stop me from being unproductive when I don&#8217;t. I know that&#8217;s a very ambitious, probably impossible goal and hard balancing act but that&#8217;s the goal of PlayingFild.<\/p>\n<p>I would love feedback, good or bad. Every feature in PlayingFild exists because I ran into the problem myself, and I&#8217;m still actively improving it. If something feels confusing, missing, or annoying, let me know.<\/p>\n<p>Thanks,<br \/>&gt;=PlayingFild&#8217;s dev<\/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\">@notredfox The shift from &#8216;punishing\/blocking&#8217; to actually understanding page content is such a brilliant concept. You&#8217;re so right\u2014researching a bug on Reddit or watching a tutorial on YouTube looks exactly like procrastination to standard extensions, and getting blocked just makes you want to uninstall them anyway.<br \/>\nAs a developer navigating ADHD\/dyslexia, you&#8217;ve built something incredibly relatable and practical. Huge congrats on the launch!<br \/>\nWould love to connect on LinkedIn to follow your building journey. Are you active there?<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Congrats on the launch! I really like the approach of not just blocking entire pages. How does it handle multi-tasking? Does it only track whichever tab is active? I&#8217;ll definitely give it a try!<\/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\/@hannesh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@hannesh<\/a> Hi, Hannes. Yes, it&#8217;s great, very overwhelming and a bit stressful about all the bugs everyone will find. I&#8217;m glad you like the idea. I think we can do some really cool work in the future based on that idea of understanding user intent and context.<\/p>\n<p>To answer your questions, yes and no, and the distinction matters.<\/p>\n<p>Time only accrues on the tab that you are currently looking at, in the window that has focus. Background tabs neither earn nor burn anything, and if you alt-tab or exit out of Chrome entirely, everything pauses. The exception is media, if a tab is audible or a video is playing, that counts as engagement even with no mouse or keyboard input, so a lecture does not get flagged as idle at minute three.<\/p>\n<p>Classification is the opposite, though. That runs across every open tab continuously, not just the active one, because the tab limit has to rank all of them to decide what closes when you go over.<\/p>\n<p>The part that actually matters for multitasking is that settings are per Chrome window. A work window can run a strict limit with the timer economy on while a separate personal window is left alone, and they don&#8217;t share anything. So &#8220;multitasking&#8221; tends to mean two windows rather than fighting one set of rules.<\/p>\n<p>I use it every day, so most of the edge cases got found the hard way. <\/p>\n<p>Hope you find it useful, and I would genuinely like to hear what breaks.<\/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 looks like a useful productivity tool. The context-aware tab management is an interesting approach. How does it handle tabs from different workspaces or projects? Does it group by domain or by user-defined categories?<\/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\/@shahryar_ahmad\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@shahryar_ahmad<\/a>&nbsp;<\/p>\n<p>Thanks Shahryar, a good productivity tool is hard to find these days.<\/p>\n<p>Great question, so I plan on implementing a more advanced layer that would let you input specific keywords (e.g. &#8220;Tech, Coding&#8221;) and define your own goal for that workspace, along with the time you want to spend on it. This would let different windows act as their own workspace, and not be capped at 10 tabs, since researchers or coders often need 10+.<\/p>\n<p>But to directly answer your question. It currently classifies each page as productive or unproductive using a combination of a global model (weighted by what other users have said) and your own local input. Obviously there are edge cases a site no one&#8217;s classified yet falls back to reading the page content directly with the local model.<\/p>\n<p>But as mentioned, combining the global model, your local model, and (hopefully soon) richer user input context should let the AI build predefined workspaces for specific windows.<\/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 event-driven + per-site caching design makes sense, that&#8217;s the right way to keep it cheap. one edge case &#8211; what about a tab that&#8217;s a single-page app where the URL never changes but the content totally does, like a webmail inbox that goes from empty to a long work thread? does the cached classification just stick until you close the tab, or is there some heuristic for detecting that kind of drift<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@omri_ben_shoham1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@omri_ben_shoham1<\/a>&nbsp;Good catch, that&#8217;s exactly the case that breaks naive caching. There&#8217;s a mutation observer watching for content drift, debounced and run on idle so it&#8217;s cheap. If the extracted text grows meaningfully past what was last classified, it then re-analyses rather than trusting the cache. There is a per-URL extraction budget so a chatty SPA can&#8217;t spin it forever, and once that&#8217;s spent the observer disconnects. Soft navigations that never fire a real page load (pushState, hash routes) are caught separately by comparing against the last URL, which resets the extraction state entirely.<\/p>\n<p>Your specific example never gets there: webmail is on the excluded host list (Gmail, Outlook, Proton), so it&#8217;s not classified at all. The drift handling matters more for things like a docs app or a dashboard that starts empty and fills in.<\/p>\n<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>rewarding focus instead of punishing distraction is the right call, the uninstall-when-blocked pattern is very real. practical question though: you said classification runs continuously across every open tab, not just the active one. on a laptop with 20+ tabs open all day, does that show up as a noticeable battery or CPU hit, or is the on-device model light enough that it&#8217;s a non-issue in practice<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@omri_ben_shoham1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@omri_ben_shoham1<\/a>&nbsp;Thanks, glad that lands. Fair question. It&#8217;s not a constant scan classification fires when a tab loads or its URL changes, and again when you switch to it, and results get cached per site so revisiting do not re-run anything. Most tabs resolve through a as prior mentioned lightweight keyword based model, the heavier on device model only kicks in for pages that are genuinely ambiguous. It&#8217;s also gated on Chrome being in the foreground, so nothing runs while it&#8217;s backgrounded or your laptops idle. In practice 20+ tabs isn&#8217;t meaningfully different from a handful.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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>rewarding focus instead of just blocking is a much better fit for how people actually slip into procrastination, congrats on shipping it. one thing I&#8217;m trying to square &#8211; you mention a global model weighted by what other users have classified, but also that raw page content and personal text never leave the browser. what&#8217;s actually feeding the global model then, is it just a productive\/unproductive vote tied to the domain, or something more granular than 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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@galdayan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@galdayan<\/a>&nbsp;Thanks Gal, appreciate that. Good question, and it&#8217;s more granular than a flat domain vote but still nowhere near raw content.<\/p>\n<p>What actually leaves your browser is just a hostname (for most sites) or hostname + a shallow, non-sensitive path segment for a very short list of allowlisted sites (such as YouTube etc., to allow it to be page specific for certain sites), paired with a small productive\/unproductive score nudge that is weighted by your own contributor reliability as a user, which fluctuates depending on how closely aligned you are with other users votes. That&#8217;s the only signal feeding the global model a number, never the page text itself.<\/p>\n<p>Locally it goes further individual keywords you flag get their own weight, as do their pairings e.g. the model can learn that gaming + development equals productive while gaming + playthrough equals unproductive. This helps solve the cold start problem when no users have classified a site yet.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#15<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/BRUCYWF5RDHNZD\" class=\"app-title\">AppUFO <\/a><\/p>\n<div class=\"one-liner\">Ship localised Apps faster<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">85<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>AppUFO \u901a\u8fc7 AI \u81ea\u52a8\u4ece App Store \u83b7\u53d6\u4e0a\u4e0b\u6587\u5e76\u7ffb\u8bd1\uff0c\u5e2e\u52a9\u5f00\u53d1\u8005\u5728\u51e0\u5206\u949f\u5185\u5b8c\u6210 Xcode \u9879\u76ee\u672c\u5730\u5316\uff0c\u89e3\u51b3\u4f20\u7edf\u672c\u5730\u5316\u8017\u65f6\u3001\u6210\u672c\u9ad8\u4e14\u5bb9\u6613\u8131\u79bb\u8bed\u5883\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\/707de342-89a4-4038-9b75-f993f35fb6fb.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/aa20d0d2-f3f0-45f5-a9d7-c64c616a197a.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/493b489a-7b28-4ded-923e-84dc05d4661d.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/de3145d7-16e4-4445-be89-91c61add9660.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\/39b1e64a-5f30-4f1a-b909-5c0d8063a03d.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=e6iX2eOHOHc\"><source src=\"https:\/\/www.youtube.com\/watch?v=e6iX2eOHOHc\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Mac<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">Development<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">App \u672c\u5730\u5316<\/span><br \/>\n            <span class=\"tag\">iOS \u5f00\u53d1<\/span><br \/>\n            <span class=\"tag\">Xcode \u672c\u5730\u5316<\/span><br \/>\n            <span class=\"tag\">AI \u7ffb\u8bd1<\/span><br \/>\n            <span class=\"tag\">\u5e94\u7528\u51fa\u6d77<\/span><br \/>\n            <span class=\"tag\">\u591a\u8bed\u8a00\u652f\u6301<\/span><br \/>\n            <span class=\"tag\">ASO \u4f18\u5316<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">String Catalog<\/span><br \/>\n            <span class=\"tag\">CI \u96c6\u6210<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u5173\u5fc3\u590d\u6570\u89c4\u5219\uff08\u5982\u963f\u62c9\u4f2f\u8bed\/\u6ce2\u5170\u8bed\uff09\u548c\u81ea\u52a8\u5316\u5de5\u5177\u7684\u8bed\u6cd5\u51c6\u786e\u6027\uff0c\u5f00\u53d1\u8005\u56de\u5e94\u652f\u6301 ICU\/stringsdict \u53ca GPT 5.6\u3002\u53e6\u4e00\u7126\u70b9\u662f App Store \u4e0a\u4e0b\u6587\u62c9\u53d6\u662f\u5426\u652f\u6301 .xcstrings \u683c\u5f0f\uff0c\u5df2\u786e\u8ba4\u652f\u6301\u3002\u5f00\u53d1\u8005\u901a\u8fc7\u89c6\u9891\u5c55\u793a\u4e86 AI \u81ea\u52a8\u6dfb\u52a0\u4e0a\u4e0b\u6587\u3001Xcode \u6ce8\u91ca\u53ca\u5b57\u7b26\u9650\u5236\u529f\u80fd\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                AppUFO \u5207\u4e2d\u4e86\u4e00\u4e2a\u6781\u5176\u7410\u788e\u4f46\u9ad8\u9891\u7684\u75db\u70b9\uff1a\u79fb\u52a8\u7aef\u672c\u5730\u5316\u3002\u5b83\u6ca1\u6709\u6389\u5165\u201c\u7eaf\u673a\u5668\u7ffb\u8bd1\u201d\u7684\u9677\u9631\uff0c\u800c\u662f\u806a\u660e\u5730\u5229\u7528\u4e86 App Store \u7684\u5143\u6570\u636e\uff08\u6807\u9898\u3001\u63cf\u8ff0\u3001\u622a\u56fe\u6587\u6848\uff09\u4f5c\u4e3a\u7ffb\u8bd1\u7684\u4e0a\u4e0b\u6587\u951a\u70b9\uff0c\u8fd9\u6bd4\u5927\u591a\u6570\u4ec5\u4f9d\u8d56\u5b57\u7b26\u4e32\u952e\u540d\u7684\u5de5\u5177\u9ad8\u51fa\u4e0d\u6b62\u4e00\u4e2a\u6bb5\u4f4d\u3002\u914d\u5408\u5bf9 Xcode 15 \u65b0\u683c\u5f0f .xcstrings \u7684\u5feb\u901f\u8ddf\u8fdb\uff0c\u4ee5\u53ca\u58f0\u79f0\u652f\u6301 GPT 5.6 \u5904\u7406\u590d\u6570\/\u53d8\u91cf\uff0c\u4ea7\u54c1\u5728\u6280\u672f\u9009\u578b\u4e0a\u7d27\u8ddf\u8d8b\u52bf\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u5fc5\u987b\u6cfc\u4e00\u76c6\u51b7\u6c34\uff1a\u8bc4\u8bba\u4e2d\u5bf9\u4e8e\u201cSave\u201d\u4e00\u8bcd\u5728\u6309\u94ae\uff08\u52a8\u8bcd\uff09\u4e0e\u6807\u7b7e\uff08\u540d\u8bcd\uff09\u8bed\u5883\u4e0b\u7684\u533a\u5206\uff0c\u5f00\u53d1\u8005\u4ec5\u4ee5\u201cAI \u81ea\u52a8\u6dfb\u52a0\u4e86 App Store \u4e0a\u4e0b\u6587\u201d\u6765\u89e3\u91ca\uff0c\u8fd9\u5e76\u4e0d\u5145\u5206\u3002App Store \u5217\u8868\u5e76\u4e0d\u5305\u542b\u6bcf\u4e2a\u5b57\u7b26\u4e32\u7684\u7cbe\u786e UI \u4f4d\u7f6e\u5173\u7cfb\uff0c\u4e0a\u4e0b\u6587\u7406\u89e3\u5728\u590d\u6742\u7684\u8fde\u9501\u6309\u94ae\u7ec4\u6216 alert \u5f39\u7a97\u4e2d\u6781\u6613\u7ffb\u8f66\u3002\u66f4\u81f4\u547d\u7684\u662f\uff0cAI \u7ffb\u8bd1\u5728\u91d1\u878d\u3001\u533b\u7597\u7b49\u654f\u611f\u9886\u57df\u7684\u5408\u89c4\u98ce\u9669\u6781\u9ad8\uff0c\u4ea7\u54c1\u76ee\u524d\u5e76\u672a\u63d0\u4f9b\u4efb\u4f55\u4eba\u5de5\u5ba1\u6821\u95ed\u73af\uff0c\u8fd9\u5c06\u662f\u4f01\u4e1a\u7ea7\u7528\u6237\u7684\u786c\u4f24\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u53e6\u4e00\u4e2a\u73b0\u5b9e\u95ee\u9898\u662f\uff1a\u4f9d\u8d56 GPT \u8fdb\u884c\u672c\u5730\u5316\uff0c\u5bf9\u4e8e\u5c0f\u8bed\u79cd\u6216\u957f\u5c3e\u8bed\u8a00\uff0c\u5176\u8d28\u91cf\u4e0e\u6210\u672c\u80fd\u5426\u5e73\u8861\uff1f5.6 \u7248\u672c\u6a21\u578b\u63a8\u7406\u6210\u672c\u4e0d\u4f4e\uff0c\u4e00\u65e6\u89c4\u6a21\u5316\uff0c\u5b9a\u4ef7\u7b56\u7565\u82e5\u4e0d\u80fd\u4f4e\u4e8e\u4f20\u7edf\u4eba\u5de5+\u673a\u5668\u540e\u7f16\u8f91\u7684\u7ec4\u5408\uff0c\u5176\u6838\u5fc3\u4ef7\u503c\u5c06\u5927\u6253\u6298\u6263\u3002AppUFO \u4f5c\u4e3a\u4e00\u4e2a\u201c\u63d0\u901f\u5de5\u5177\u201d\u5f88\u68d2\uff0c\u4f46\u82e5\u60f3\u6210\u4e3a\u201c\u54c1\u8d28\u4fdd\u969c\u201d\uff0c\u4ecd\u6709\u5f88\u957f\u4e00\u6bb5\u8def\u8981\u8d70\u3002\u5bf9\u4e8e\u72ec\u7acb\u5f00\u53d1\u8005\u6216\u65e9\u671f\u4ea7\u54c1\u6765\u8bf4\u662f\u5229\u5668\uff0c\u800c\u5bf9\u8ffd\u6c42\u7ec6\u8282\u7684\u6210\u719f\u56e2\u961f\uff0c\u5b83\u66f4\u5e94\u4f5c\u4e3a\u521d\u7a3f\u751f\u6210\u548c ASO \u4f18\u5316\u7684\u8f85\u52a9\uff0c\u800c\u975e\u76f4\u63a5\u66ff\u4ee3\u4eba\u5de5\u5ba1\u6838\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\">AppUFO <\/span>\n                <\/div>\n<div class=\"comment-content\">Reach more users worldwide without spending days or hundreds on app localisation. Localise your Xcode projects in minutes, reduce translation costs, and spend less time managing strings so you can focus on building great apps.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>localisation is one of those things that always takes way longer than it should, so this is a welcome idea. curious how it handles plural rules and gendered strings though &#8211; languages like Arabic or Polish have way more plural forms than English, and that&#8217;s usually where automated localisation tools fall apart and produce grammatically broken UI text. does AppUFO handle that at the ICU\/stringsdict level or is it more of a straight string-for-string translation?<\/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\">@omri_ben_shoham1 it does handle plurals, variables.. and it produces an accurate translation using the GPT5.6<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I&#8217;m wondering if you&#8217;ve seen an increase in users from new markets after localizing with your tool.<\/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\">@reda_roqai_chaoui i haven\u2019t yet. But I only just started using it. Looking forward to get some results. Results i saw from other devs are impressive in terms of app store aso<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hi,<br \/>\nI&#8217;m Melvin, the developer of App UFO.<\/p>\n<p>I have been developing apps since 2012 &amp; I know how important but frustrating App localisation is.<\/p>\n<p>I am trying to solve this with AppUFO<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The App Store context pull is a smart move \u2014 working off bare string keys is where most localisation tools produce plausible-but-wrong translations. One thing I would want to check before wiring this into a CI pipeline: does AppUFO support the .xcstrings (String Catalog) format that Xcode 15 introduced, or is it still expecting the older .strings and .stringsdict files? That migration path is usually where these tools either save or cost extra time on existing projects.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@hi_i_am_mimo it does support the new xcstrings file. You just drop it in<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Pulling context straight from the App Store listing instead of asking translators to work off bare keys is a smart shortcut &#8211; didn&#8217;t realize it went that route. That should cut down a lot of the ambiguous cases without needing a whole review workflow.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@galdayan yes. It was required. Without app context the ai was going out of context<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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, localisation is exactly the kind of chore that eats a weekend right before you want to ship. one thing I&#8217;m curious about beyond the plural rules question already asked &#8211; the same source string sometimes needs different translations depending on context, like &#8220;Save&#8221; as a button vs &#8220;Save&#8221; as a noun in a settings label. does AppUFO give translators any way to see or add context for a string (comments, screenshot, surrounding key names), or is it working off the raw string key alone?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@galdayan it does have Ai context. It adds app context automatically from the appstore listing and auto comments per phrase generated by Xcode. You can also add character limit to respect ui. More detail in my vlog:<br \/>\n<a href=\"https:\/\/youtu.be\/e6iX2eOHOHc\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/youtu.be\/e6iX2eOHOHc<\/a><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\">@galdayan feel free to take a look at my video for more details:<br \/>\n<a href=\"https:\/\/youtu.be\/e6iX2eOHOHc\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/youtu.be\/e6iX2eOHOHc<\/a><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\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\/WESJBZCMS6H6KO\" class=\"app-title\">Pawesome<\/a><\/p>\n<div class=\"one-liner\">Your AI Native Inbound Marketing Engine<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">37<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Pawesome\u662f\u4e00\u4e2aAI\u539f\u751f\u7684B2B\u5f15\u6d41\u5f15\u64ce\uff0c\u901a\u8fc7\u201c\u516c\u53f8\u5927\u8111\u201d\u7edf\u4e00\u5b58\u50a8\u4ea7\u54c1\u5b9a\u4f4d\u3001\u7528\u6237\u753b\u50cf\u548c\u6848\u4f8b\u5e93\uff0c\u89e3\u51b3\u5185\u5bb9\u751f\u6210\u4e0e\u771f\u5b9e\u54c1\u724c\u8c03\u6027\u8131\u8282\u3001\u4ee5\u53ca\u591a\u5de5\u5177\u6570\u636e\u5b64\u5c9b\u5bfc\u81f4\u7684\u7ebf\u7d22\u5f52\u56e0\u6df7\u4e71\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\/90792ede-6c31-4a26-9559-6e5b4934ba7d.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/94ed7200-8a80-4b7d-b8f2-be78e18c1e52.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/57e55d4f-3798-4c82-b2d4-ac331c08adb8.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/a4313c77-c29f-4fd0-8fd3-d77032f089ee.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/73f64057-0d66-4091-8cb5-0b10914cc32b.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\/be687573-f9b1-4146-b213-243e48fbcada.gif?auto=format\" data-video-url=\"https:\/\/www.loom.com\/share\/5437407bec3c4b93955b35492ca836d8\"><source src=\"https:\/\/www.loom.com\/share\/5437407bec3c4b93955b35492ca836d8\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Marketing<\/span><br \/>\n            <span class=\"tag\">SaaS<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u8425\u9500\u5f15\u64ce<\/span><br \/>\n            <span class=\"tag\">B2B\u5185\u5bb9\u751f\u6210<\/span><br \/>\n            <span class=\"tag\">\u6f5c\u5728\u5ba2\u6237\u6536\u96c6<\/span><br \/>\n            <span class=\"tag\">\u5185\u5bb9\u5f52\u56e0<\/span><br \/>\n            <span class=\"tag\">SEO\/AEO\u4f18\u5316<\/span><br \/>\n            <span class=\"tag\">AI\u53ef\u89c1\u6027\u5ba1\u8ba1<\/span><br \/>\n            <span class=\"tag\">\u516c\u53f8\u77e5\u8bc6\u5e93<\/span><br \/>\n            <span class=\"tag\">\u8425\u9500\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">SaaS\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u54c1\u724c\u4e00\u81f4\u6027<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u8ba4\u53ef\u201c\u5927\u8111\u76f8\u5173\u6027\u8bc4\u5206\u201d\u548cAI\u53ef\u89c1\u6027\u5ba1\u8ba1\u7684\u771f\u5b9e\u4ef7\u503c\uff0c\u4f46\u53cd\u9988\uff1a\u9700\u8981Slack\u96c6\u6210\u4ee5\u5b9e\u65f6\u83b7\u53d6\u9ad8\u610f\u5411\u7ebf\u7d22\uff1bSEO\u5206\u6790\u5e94\u52a0\u5165\u9875\u9762\u6027\u80fd\u6307\u6807\uff1bUI\u5e94\u5c06\u6700\u4f18\u4fee\u590d\u9879\u7f6e\u9876\u4ee5\u964d\u4f4e\u4f7f\u7528\u95e8\u69db\uff1b\u516c\u53f8\u5927\u8111\u66f4\u65b0\u9700\u66f4\u81ea\u52a8\u5316\uff1b\u5185\u5bb9\u53d1\u5e03\u4ecd\u4f9d\u8d56\u590d\u5236\u7c98\u8d34\uff0c\u4f53\u9a8c\u7c97\u7cd9\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                Pawesome\u7684\u7acb\u9879\u5207\u53e3\u5f88\u806a\u660e\u2014\u2014\u5b83\u6ca1\u6709\u6389\u8fdb\u201cAI\u5199\u7a3f\u901f\u5ea6\u66f4\u5feb\u201d\u8fd9\u4e2a\u4f2a\u547d\u9898\u9677\u9631\uff0c\u800c\u662f\u7cbe\u51c6\u6253\u51fb\u4e86B2B SaaS\u8425\u9500\u4e2d\u6700\u75db\u7684\u201c\u4e94\u628a\u5200\u201d\u95ee\u9898\uff1a\u5185\u5bb9\u5de5\u5177\u3001SEO\u63d2\u4ef6\u3001\u8868\u5355\u7cfb\u7edf\u3001UTM\u8ffd\u8e2a\u548c\u5206\u6790\u5e73\u53f0\u5404\u81ea\u4e3a\u6218\uff0c\u800c\u8425\u9500\u4eba\u6ca6\u4e3a\u6570\u636e\u642c\u8fd0\u5de5\u3002\u5176\u201c\u516c\u53f8\u5927\u8111\u201d\u7684\u5185\u5b58\u5f0f\u8bbe\u8ba1\uff0c\u8bd5\u56fe\u7528\u4e00\u6b21\u914d\u7f6e\u6362\u53d6\u5168\u6d41\u7a0b\u7684\u54c1\u724c\u4e00\u81f4\u6027\uff0c\u65b9\u5411\u6b63\u786e\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u5766\u767d\u8bf4\uff0c\u76ee\u524d\u4ea7\u54c1\u4ecd\u5904\u4e8e\u201c\u534a\u6210\u54c1\u201d\u72b6\u6001\u3002\u7528\u6237\u53cd\u9988\u4e2d\u53cd\u590d\u63d0\u53caSlack\u96c6\u6210\u7f3a\u5931\u3001\u53d1\u5e03\u4ecd\u9700\u590d\u5236\u7c98\u8d34\u3001SEO\u5206\u6790\u7ef4\u5ea6\u5355\u4e00\u3001\u516c\u53f8\u5927\u8111\u65e0\u6cd5\u81ea\u52a8\u540c\u6b65\u4ea7\u54c1\u66f4\u65b0\u2014\u2014\u8fd9\u4e9b\u5e76\u975e\u9526\u4e0a\u6dfb\u82b1\uff0c\u800c\u662f\u51b3\u5b9a\u7528\u6237\u80fd\u5426\u572824\u5c0f\u65f6\u5185\u5b8c\u6210\u4e00\u6b21\u5b8c\u6574\u8425\u9500\u95ed\u73af\u7684\u57fa\u7840\u8bbe\u65bd\u3002\u4e00\u4e2a\u4f9d\u8d56\u624b\u52a8\u66f4\u65b0\u77e5\u8bc6\u5e93\u3001\u624b\u52a8\u53d1\u5e03\u5185\u5bb9\u7684\u201c\u5168\u94fe\u8def\u5f15\u64ce\u201d\uff0c\u5f88\u96be\u8bf4\u670d\u56e2\u961f\u82b1\u65f6\u95f4\u8fc1\u79fb\u73b0\u6709\u5de5\u5177\u94fe\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u6700\u5927\u4eae\u70b9\u53cd\u800c\u662f\u6700\u5c0f\u4f17\u7684\u529f\u80fd\uff1aAI\u53ef\u89c1\u6027\u5ba1\u8ba1\u3002\u5b83\u80fd\u89e3\u6790\u7f51\u7ad9\u5bf9GPTBot\u3001ClaudeBot\u7b4913\u79cdAI\u722c\u866b\u7684\u53ef\u8bfb\u6027\uff0c\u5e76\u63d0\u4f9bJSON-LD\u3001\u552f\u4e00H1\u7b49\u5177\u4f53\u4fee\u590d\u5efa\u8bae\u3002\u5728AI\u641c\u7d22\u6b63\u5728\u91cd\u5851\u6d41\u91cf\u5165\u53e3\u7684\u5f53\u4e0b\uff0c\u8fd9\u4e00\u529f\u80fd\u5177\u5907\u5dee\u5f02\u5316\u4ef7\u503c\uff0c\u4f46\u56e2\u961f\u663e\u7136\u6ca1\u6709\u5c06\u5176\u4f5c\u4e3a\u6838\u5fc3\u5356\u70b9\u6765\u5305\u88c5\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5efa\u8bae\u56e2\u961f\u5c3d\u5feb\u805a\u7126\u201c\u53ef\u95ed\u73af\u7684\u6700\u5c0f\u6d41\u7a0b\u201d\uff0c\u800c\u4e0d\u662f\u94fa\u529f\u80fd\u3002\u5728\u201c\u516c\u53f8\u5927\u8111\u201d\u81ea\u52a8\u66f4\u65b0\u4e0e\u5168\u6e20\u9053\u53d1\u5e03\u6253\u901a\u4e4b\u524d\uff0cPawesome\u66f4\u50cf\u4e00\u4e2a\u5e26\u6709\u8bb0\u5fc6\u529f\u80fd\u7684\u5199\u4f5c\u52a9\u624b+\u8f7b\u91cf\u7ea7\u5ba1\u8ba1\u5de5\u5177\uff0c\u800c\u975e\u5b83\u6240\u58f0\u79f0\u7684\u201c\u5b8c\u6574\u5f15\u64ce\u201d\u3002\u65e9\u671f\u7528\u6237\u613f\u610f\u5bbd\u5bb9\uff0c\u4f46\u4f60\u7684\u514d\u8d39\u989d\u5ea6\u7528\u5b8c\u540e\uff0c\u4ed6\u4eec\u9700\u8981\u7684\u662f\u4e00\u4e2a\u80fd\u66ff\u4ee3\u4e94\u6b3e\u5de5\u5177\u7684\u4ea7\u54c1\uff0c\u800c\u4e0d\u662f\u7b2c\u516d\u6b3e\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\">Pawesome<\/span>\n                <\/div>\n<div class=\"comment-content\">Pawesome is a full AI-native inbound engine for B2B SaaS: Content Engine, Lead Collection, and Analytics, built on a brain that knows your company.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Product Hunt!<\/p>\n<\/p>\n<p>I&#8217;m Charan. <a href=\"https:\/\/www.producthunt.com\/@vidushee_geetam\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@vidushee_geetam<\/a> and I built Pawesome because AI made writing cheap but didn&#8217;t make inbound any cheaper.<\/p>\n<\/p>\n<p>You can generate a blog post in twenty seconds. Then you spend the rest of the week on everything else &#8211; making it sound like your company instead of the internet&#8217;s average opinion, structuring it so search and LLMs can read it, sticking a form on it, tagging the click, and guessing which post earned the demo. That&#8217;s five tools, and none of them know what the other four know. We got tired of being the glue.<\/p>\n<\/p>\n<p>So Pawesome starts with memory instead. You feed it your site and a handful of docs once, and that becomes your Company Brain: product, ICP, voice, proof, objections. Everything else runs off it.<\/p>\n<\/p>\n<p>Content Engine writes blogs, landing pages and social from that Brain, with SEO and AEO built into generation and a brand and fact check before a draft reaches you. Lead Collection gets you a form in minutes and auto-UTMs every submission back to the post that earned it. Visibility audits what GPTBot, ClaudeBot, Google and the rest can actually read on your site. Whatever performs feeds the next brief.<\/p>\n<\/p>\n<p>Honest bit: We&#8217;re early. Free to start, no card, and a waitlist instead of an upsell when you hit the limit. We&#8217;d rather onboard slowly than badly.<\/p>\n<\/p>\n<p>If you try one thing, run the visibility check on your own site and tell me whether the score matched what you expected. Those disagreements have taught us more than anything else so far.<\/p>\n<\/p>\n<p>Thank you. I&#8217;m around all day. Looking forward to interesting questions and comments.<\/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=\"comment-item\">\n<div class=\"comment-content\">Hey hunters! Vidushee here, one of the makers of Pawesome.<\/p>\n<p>Every AI writing tool I tried had the same failure mode: it produces confident, fluent copy about a company it knows nothing about. You get a draft that could belong to any competitor, and you spend longer fixing the positioning than you would have spent just writing the thing yourself.<\/p>\n<p>So we built the unglamorous part first: the Company Brain. Upload your positioning docs, decks, and case studies, then fill in whatever you feel like about ICP, tone, proof points, and objections. None of it is required. The more you put in, the sharper everything downstream gets.<\/p>\n<p>After that it&#8217;s a loop. Add a topic, get a brief grounded in your Brain, then a long-form draft, then LinkedIn \/ X \/ Reddit \/ web variants, then a lead form with UTM attribution already wired in &#8211; so you can actually see which post produced the fill.<\/p>\n<p>The piece I&#8217;m proudest of is the least flashy. Every generation shows a Brain relevance score and the exact chunks it pulled. If nothing in your Brain matched the topic, it tells you so, says the content is grounded mainly in your company profile, and writes it anyway. We used to hard-fail those. Turned out people would much rather have the draft plus an honest score than a red error box.<\/p>\n<p>There&#8217;s also an AI Visibility audit, which came from a question we couldn&#8217;t answer about our own site: can AI assistants even reach it? It probes your domain with 13 AI crawler user agents, checks robots.txt and llms.txt, and grades individual pages on how likely they are to get cited.<\/p>\n<p>Where it&#8217;s still rough: publishing is copy-paste for now, and topic auto-generation from the Brain is next up. The free tier is real but capped &#8211; when you hit the wall, Pip the possum holds your spot for the next batch.<\/p>\n<p>Would love to hear what breaks.<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>6<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@vidushee_geetam\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@vidushee_geetam<\/a>&nbsp;Congrats on the launch! The brain relevance score showing which chunks were actually pulled is such a smart touch. Most AI writing tools just give you a draft and you have no idea if it&#8217;s grounded in your real positioning or just sounds like it could be. Being honest about low relevance matches instead of hiding them behind a confident output is exactly the kind of thing that builds trust with early users.<\/p>\n<p>Ran the visibility check too and the crawler by crawler breakdown was genuinely more useful than I expected. A single score would&#8217;ve hidden the fact that different AI assistants index your site very differently. Curious how the UTM attribution handles content that gets shared multiple times before someone fills the form, do you track the original source or the last touch?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>A Slack integration would be huge, getting pinged the moment a high-intent lead lands instead of having to check the dashboard all day. Otherwise loving how the company brain keeps the content on-brand.<\/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\">@batuhana92994 &#8211; thank you so much for that insight! Yes agreed, having a slack integration will further reduce the cognitive overload of keeping track of all things marketing. stay tuned for the next launch!<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Lead collection + Content creation in the same platform is such a great combination. I just tried out the AI visibility and SEO scores for my website and I did get useful feedback that I can implement on my website right away. However, I can see that SEO is only tracking the content part of the page. Any plans in tracking page speed and performance metrics?<\/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\/@zoya_aziz\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@zoya_aziz<\/a>&nbsp;&#8211; thank you for the thoughtful comment. Yes, we started out with static content analysis for SEO. But you&#8217;re right &#8211; performance metrics also contributes a good share of SEO score. We are working on adding more dimensions of SEO as well as AEO to the product. Stay tuned.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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, Charan and Vidushee. I ran the AI Visibility check on my own site and it caught real things \u2014 it knew my homepage isn&#8217;t long-form content and shouldn&#8217;t be graded like an article, and the technical fixes were specific (JSON-LD, single h1, canonical). Most tools just throw a vague score at you, so this actually felt useful.<\/p>\n<p>One small, friendly note as someone building in the same space: the Page SEO tab has a lot of good stuff, but in the first 10 seconds it&#8217;s a little hard to know where to start. If the top showed just the 1\u20132 highest-impact fixes first, and let me open the rest below, I think new users would feel the value faster and stick around. Honestly just a polish thing \u2014 the depth underneath is already strong.<\/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\/@saied_alimoradi\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@saied_alimoradi<\/a>&nbsp;&#8211; Thank you for the thoughtful feedback. Very insightful. Giving everything the user needs to prioritise the fixes is the best way of presenting this. Point taken and we are excited to incorporate this into the product. Glad to hear that you are also building in the same space. As a marketer, I know we need all the innovation that we can get. Appreciate your thoughts. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@vidushee_geetam\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"vidushee_geetam\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@vidushee_geetam<\/a> Congrats on the launch! The visibility check stood out to me, especially being able to see what Google, GPTBot and ClaudeBot can actually read on a site. Does it show the exact pages or sections each crawler is missing?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@josh_bennett1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@josh_bennett1<\/a>&nbsp;&#8211; Charan here. I am one of the makers of Pawesome. Currently, the analysis is run on only the single page that the user submits for analysis. But analysing the health of the overall website is a valuable addition to this. Noted. 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\">@charan_tej_kammara Congrats Charan and team!<br \/>\nThe part about being the glue between five different tools is very relatable. I like that Pawesome doesn\u2019t stop at creating content, but also tracks which content actually brings in leads.<br \/>\nHow do you keep the Company Brain updated when a company changes its product or positioning?<\/div>\n<div class=\"comment-actions\">\n<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\/@moh_codokiai\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@moh_codokiai<\/a>&nbsp;&#8211; thanks you. Good question. For now, the company brain and positioning and their alignment are user managed. But I see the importance of your question. We have been working towards deriving the positioning and company brain data directly from the website and also from the competition because positioning is always relative. This will help the teams to keep up with the dynamic nature of positioning. Thanks for highlighting this. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/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\/MDAQC6VQYR2V3J\" class=\"app-title\">Via 1.0<\/a><\/p>\n<div class=\"one-liner\">Find the optimal path through your work<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">26<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Via\u901a\u8fc7AI\u5c06\u7528\u6237\u5934\u8111\u4e2d\u7684\u6742\u4e71\u601d\u7eea\u81ea\u52a8\u8f6c\u5316\u4e3a\u5b9e\u65f6\u66f4\u65b0\u7684\u4f18\u5148\u7ea7\u65e5\u7a0b\uff0c\u89e3\u51b3\u81ea\u7531\u804c\u4e1a\u8005\u7b49\u7fa4\u4f53\u5728\u52a8\u6001\u5de5\u4f5c\u4e2d\u201c\u4e0d\u77e5\u9053\u4e0b\u4e00\u6b65\u8be5\u505a\u4ec0\u4e48\u201d\u7684\u6548\u7387\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/5d575cbd-f123-4888-b965-b392c73fd3c6.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/18f58563-022e-4fb4-8dc4-27427bbe5491.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/5af0cf07-8685-4ce6-ba78-bf05200c2054.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/ba5ca7b9-e9d4-4831-a1c9-350759562eba.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/d898e7f5-70e7-42be-97ab-60065cad199a.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/bf2db988-a1c5-42da-8786-841254722604.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/81fd352e-63e6-4c54-972f-5a23399b8dc3.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/7e45e5bf-0fd9-4415-be0e-79c3851be3b1.gif?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/b856ef2a-da91-487b-a0ea-e8cdd733ed63.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=mTPqaLVP5U0\"><source src=\"https:\/\/www.youtube.com\/watch?v=mTPqaLVP5U0\" 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\">Tech<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u65e5\u7a0b\u89c4\u5212<\/span><br \/>\n            <span class=\"tag\">\u667a\u80fd\u4efb\u52a1\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u4f18\u5148\u7ea7\u6392\u5e8f<\/span><br \/>\n            <span class=\"tag\">\u65f6\u95f4\u5757<\/span><br \/>\n            <span class=\"tag\">ADHD\u8f85\u52a9<\/span><br \/>\n            <span class=\"tag\">\u5927\u8111\u503e\u6cfb<\/span><br \/>\n            <span class=\"tag\">\u81ea\u9002\u5e94\u65e5\u5386<\/span><br \/>\n            <span class=\"tag\">Google\u65e5\u5386\u96c6\u6210<\/span><br \/>\n            <span class=\"tag\">\u5de5\u4f5c\u6548\u7387\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u52a8\u6001\u8ba1\u5212<\/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\u5927\u8111\u503e\u6cfb\u201d\u548c\u81ea\u9002\u5e94\u5b89\u6392\u529f\u80fd\uff0c\u7279\u522b\u662f\u5bf9ADHD\u7fa4\u4f53\u5e2e\u52a9\u663e\u8457\u3002\u90e8\u5206\u7528\u6237\u5efa\u8baeAI\u89e3\u6790\u80fd\u529b\u53ef\u4f18\u5316\uff0c\u5e76\u5e0c\u671b\u8bad\u7ec3\u6a21\u578b\u4ee5\u5b66\u4e60\u4e2a\u4eba\u4f18\u5148\u7ea7\uff1b\u5f53\u524d\u79fb\u52a8\u7aef\u4f53\u9a8c\u5f31\u4e8e\u7f51\u9875\u7248\uff0c\u521b\u59cb\u4eba\u5df2\u627f\u8bfa\u6539\u8fdb\u3002\u529f\u80fd\u4e0a\uff0c\u6709\u4eba\u8be2\u95ee\u662f\u5426\u652f\u6301\u90ae\u4ef6\u5bfc\u5165\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Via\u7684\u6838\u5fc3\u7406\u5ff5\u5e76\u975e\u53c8\u4e00\u4e2a\u7cbe\u81f4\u7684\u5f85\u529e\u6e05\u5355\uff0c\u800c\u662f\u8bd5\u56fe\u6210\u4e3a\u201c\u52a8\u6001\u4e16\u754c\u91cc\u7684\u8ba1\u5212\u4e2d\u67a2\u201d\u3002\u5176\u771f\u6b63\u7684\u4ef7\u503c\u5728\u4e8e\u5c06\u201c\u89c4\u5212\u51b3\u7b56\u201d\u672c\u8eabAI\u5316\u2014\u2014\u5f53\u666e\u901a\u4eba\u9762\u5bf9\u88ab\u4e2d\u65ad\u7684\u4e00\u5929\uff0c\u91cd\u65b0\u8ba1\u7b97\u65f6\u95f4\u5206\u914d\u7684\u5fc3\u7406\u6210\u672c\u6781\u9ad8\uff0c\u800cVia\u7528\u5b9e\u65f6\u91cd\u5efa\u66ff\u4ee3\u4e86\u7528\u6237\u7684\u53cd\u590d\u7126\u707c\u3002\u8fd9\u79cd\u5bf9\u201c\u6ce8\u610f\u529b\u5b89\u6392\u6ce8\u610f\u529b\u201d\u7684\u66ff\u4ee3\uff0c\u5bf9ADHD\u4eba\u7fa4\u3001\u591a\u5ba2\u6237\u54a8\u8be2\u5e08\u3001\u9891\u7e41\u5f00\u4f1a\u7684\u5c0f\u521b\u59cb\u4eba\u5c24\u5176\u81f4\u547d\u75db\u70b9\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ea7\u54c1\u5f53\u524d\u5904\u4e8e\u65e9\u671f\uff0c\u8bc4\u8bba\u533a\u91cc\u201c\u521b\u59cb\u4eba\u79ef\u6781\u91c7\u7eb3\u53cd\u9988\u201d\u7684\u8d5e\u8a89\u65e2\u662f\u4f18\u52bf\u4e5f\u662f\u98ce\u9669\uff1a\u8bf4\u660e\u5f88\u591a\u4eba\u662f\u51b2\u7740\u6f5c\u5728\u6539\u8fdb\u4e0b\u5355\uff0c\u800c\u975e\u5b8c\u7f8e\u4f53\u9a8c\u3002\u6700\u5173\u952e\u7684\u8003\u9a8c\u5728\u4e8e\u4e24\u70b9\uff1a\u4e00\u662fAI\u505a\u4f18\u5148\u7ea7\u6392\u5e8f\u7684\u201c\u5224\u65ad\u529b\u201d\u80fd\u5426\u6301\u7eed\u8fdb\u5316\uff0c\u5426\u5219\u5f53\u4efb\u52a1\u91cf\u81a8\u80c0\uff0c\u7b97\u6cd5\u53ea\u4f1a\u628a\u7528\u6237\u53d8\u6210AI\u7684\u63d0\u7ebf\u6728\u5076\uff1b\u4e8c\u662f\u5165\u53e3\u7eb5\u6df1\u2014\u2014\u4ec5\u4f9d\u9760Google Calendar\u548c\u73b0\u72b6\u7684\u201c\u4efb\u52a1\u503e\u5012\u201d\uff0c\u7f3a\u4e4f\u4e0e\u90ae\u4ef6\u3001\u5373\u65f6\u6d88\u606f\u3001\u9879\u76ee\u7ba1\u7406\u7684\u4e92\u8054\u65f6\uff0c\u4fe1\u606f\u5b64\u5c9b\u4f1a\u9650\u5236\u81ea\u9002\u5e94\u7b97\u6cd5\u7684\u8f93\u5165\u8d28\u91cf\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u793e\u533a\u56de\u5e94\u770b\uff0c\u56e2\u961f\u5bf9B\u7aef\u611f\u77e5\u8f83\u5f3a\uff08\u201c\u8ba9\u4e13\u4e1a\u73a9\u5bb6\u83b7\u5f97\u53ef\u63a7\u6027\u201d\uff09\uff0c\u4f46\u82e5\u60f3\u903c\u8fd1\u771f\u6b63\u7684\u201c\u6700\u4f73\u5de5\u4f5c\u8def\u5f84\u201d\uff0c\u672a\u6765\u9700\u8981\u4ece\u65e5\u7a0b\u5de5\u5177\u8fdb\u5316\u4e3a\u5de5\u4f5cOS\u7684\u8c03\u5ea6\u5c42\u2014\u2014\u8fd9\u8fdc\u975e\u5f53\u524dMVP\u6240\u80fd\u627f\u8f7d\u3002\u597d\u6d88\u606f\u662f\uff0c\u8fd9\u7c7b\u201c\u52a8\u6001\u8ba1\u5212\u201d\u8d5b\u9053\u5c1a\u65e0\u7edd\u5bf9\u7edf\u6cbb\u8005\uff0c\u574f\u6d88\u606f\u662f\uff0c\u7528\u6237\u7684\u8010\u5fc3\u548c\u514d\u8d39\u671f\u90fd\u5f88\u77ed\u6682\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\">Via 1.0<\/span>\n                <\/div>\n<div class=\"comment-content\">Days rarely go according to plan. Meetings move, priorities shift, and workload keeps growing. Your attention is precious, and Via shows you where to invest it. Simply brain dump your thoughts and Via&#8217;s AI turns this into a realistic schedule, slotting highest-priority work into every available pocket of time. When your day changes, your schedule updates instantly. Via finds the optimal path through your work, so you always know what to do next, and make the most of the time you have.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hi Product Hunt! \ud83d\udc4b I&#8217;m Alex, founder of Via.<\/p>\n<p>Thanks so much for checking us out.<\/p>\n<p>Like a lot of people here, I didn&#8217;t need another to-do list. I needed a plan that could survive real life.<\/p>\n<p>As someone with ADHD, planning has always been hard for me. Not because I couldn&#8217;t focus, but because the hard part was knowing what deserved my focus next.<\/p>\n<p>Whenever a free block of time opened up, I&#8217;d ask myself: &#8220;What&#8217;s the best use of this time?&#8221; I&#8217;d scan my task list and by the time I&#8217;d decided, half the time was lost. Then a meeting would run over or an urgent request would land, and by lunchtime the schedule I&#8217;d carefully built that morning was already obsolete. <\/p>\n<p><strong><br \/>That problem is why Via exists.<\/strong><\/p>\n<p>Instead of asking you to manually organise your day, Via starts with a simple brain dump. Capture everything on your mind, and our AI builds a realistic schedule around your priorities, deadlines, available time, and energy. <\/p>\n<p>When your calendar changes, Via rebuilds your schedule instantly, so you always know what to work on next without rethinking your entire day.<\/p>\n<p>We designed Via for people whose calendars don&#8217;t belong entirely to them: freelancers, consultants, coaches, agency owners, founders, and small teams whose days are shaped by meetings, interruptions, and changing priorities.<\/p>\n<p>A few highlights:<\/p>\n<p>\ud83e\udde0 AI scheduling that automatically adapts when your day changes<br \/>\ud83d\udcc5 Works alongside Google Calendar and your existing bookings<br \/>\u23f1\ufe0f Turns those 30 to 60 minute gaps between meetings into genuinely productive time<br \/>\u270b Keeps you in control. Move, edit, or manually change the schedule whenever and as much as you want<\/p>\n<p>We&#8217;re only at the beginning, and launching on Product Hunt is a huge milestone for us.<\/p>\n<p>I&#8217;d genuinely love your feedback: Does this solve a problem you experience? <\/p>\n<p>I&#8217;ll be in the comments all day answering questions. Thanks for helping us make Via better. \ud83d\ude4f<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>9<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@alex_hamilton7 this is a really solid product and I\u2019m lucky to have found it. Thanks for<br \/>\ninvolving your early users and for building openly with us!<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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>This is one of the most useful Apps to keep a track of your schedules I\u2019ve ever come across<\/strong>! <\/p>\n<\/p>\n<p>Just drag and drop content into the AI and the AI builds the tasks and notes for you &#8211; having ADHD and accessing a bunch of random information, VIA is an absolute blessing to organise my workflow. The AI is efficient &#8211; but can be better while parsing! <\/p>\n<\/p>\n<p>I\u2019ve connected with the Founder <a href=\"https:\/\/www.producthunt.com\/@alex_hamilton7\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"alex_hamilton7\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alex_hamilton7<\/a> and he was absolutely stellar in walking me through the App, the progress and he was absolutely taking copious notes on feedback &#8211; the great thing is that I\u2019m seeing some of the feedback being implemented too!<\/p>\n<\/p>\n<p>I feel the task manager can have some features around learning from priorities &#8211; they do have a label system and the AI tracks to e priorities &#8211; but we should be able to train the model!<\/p>\n<\/p>\n<p>Just one gripe &#8211; the browser is better than the App currently, and the team is working on upgrades &#8211; so I\u2019m eagerly waiting for that!<\/p>\n<\/p>\n<p>All in all &#8211; I see myself using this all the time &#8211; to just organise my thoughts and get task reminders!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@shouri\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@shouri<\/a>&nbsp;Thanks for the kind words and the great feedback Shouri, The new mobile experience we are working on will be a game changer for you!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Via is pretty new, but I\u2019ve been using it for a week or two and enjoy the whole concept of it. It\u2019s still actively being improved upon right now. <\/p>\n<\/p>\n<p>My favorite part is how it helps schedule out all of my tasks in my brain dumps!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@jehnnaye\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jehnnaye<\/a>&nbsp;Thanks for the feedback! Looking forward to sharing more with you as we develop further \ud83d\ude42 <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>VIA is supporting me to prioritise multiple projects and clients into one central Action Plan.  This helps minimise overwhelm &amp; fear that I have forgotton something important.  The voice activation, on the move is brilliant. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@maeve_dunne\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@maeve_dunne<\/a>&nbsp;Thanks for the kind words Maeve!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Can I also dumb in emails? <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Finally gave this a spin and the brain dump to schedule thing actually works. Threw a messy list at it and it slotted everything into realistic time blocks without me babysitting it.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I have only been using this for a short time, but can already sense this will be an invaluable tool for me. I would like to see a desktop version in the future and i realize this is new and has only just begun its journey. I am looking forward to seeing what Alex and the team have up their sleeves.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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 highly recommend Via. Constantly improving, MCP integration is amazing. Alex is very accessible, they agreed to push the development of the IOS + Apple Watch version on my suggestion and it really starts to be amazing and changing my life!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I love the brain dump feature and the points you get when a task is completed. Two very useful things for my ADHD. The brain dump has been very useful in preventing distractions that suck you into procrastinating and the points are a good to keep dopamine kicking on very long tasks that take days to complete. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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 product. Already tried it. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#18<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/IZUQGDPWMDILRU\" class=\"app-title\">Maptoolkit.org &#8211; free vector map server<\/a><\/p>\n<div class=\"one-liner\">Stunning vector maps. Zero cost. No sign-up, no API key.<\/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>Maptoolkit.org \u662f\u4e00\u4e2a\u65e0\u9700\u6ce8\u518c\u3001\u65e0API\u5bc6\u94a5\u7684\u514d\u8d39\u77e2\u91cf\u5730\u56fe\u670d\u52a1\u5668\uff0c\u4e3a\u5f00\u6e90\u53ca\u5c0f\u4f01\u4e1a\u9879\u76ee\u63d0\u4f9b\u5ab2\u7f8e\u4f01\u4e1a\u7ea7\u7684\u5730\u56fe\u6e32\u67d3\u80fd\u529b\uff0c\u5f7b\u5e95\u89e3\u51b3\u4e86\u4f20\u7edf\u9ad8\u8d28\u91cf\u5730\u56fe\u670d\u52a1\u6210\u672c\u9ad8\u6602\u3001\u63a5\u5165\u7e41\u7410\u7684\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/fd8e1164-ac80-4b95-b7ca-43c0dd3750ae.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\/431fddbb-3546-461c-a9a3-d3f6e3bfd74b.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\/360fdb8d-6d81-403d-af86-170dba460a5c.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\/246c1a44-89ac-4be3-9600-0d82578e6ece.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\/dc3701ac-be7c-4b33-9116-bb3405a8d482.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\/a50fe27b-0362-4dd2-95c8-c6123040daa5.webp?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\/a21b7cef-c00f-4301-a95e-34361fdac865.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=SqowhgltJpI\"><source src=\"https:\/\/www.youtube.com\/watch?v=SqowhgltJpI\" 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\">Maps<\/span><br \/>\n            <span class=\"tag\">Outdoors<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u77e2\u91cf\u5730\u56fe\u670d\u52a1\u5668<\/span><br \/>\n            <span class=\"tag\">\u514d\u8d39\u5f00\u6e90<\/span><br \/>\n            <span class=\"tag\">MapLibre<\/span><br \/>\n            <span class=\"tag\">OpenStreetMap<\/span><br \/>\n            <span class=\"tag\">\u65e0API\u5bc6\u94a5<\/span><br \/>\n            <span class=\"tag\">\u5ba4\u5185\u5916\u5730\u56fe<\/span><br \/>\n            <span class=\"tag\">3D\u5730\u5f62<\/span><br \/>\n            <span class=\"tag\">\u5730\u56fe\u7f16\u8f91<\/span><br \/>\n            <span class=\"tag\">\u4e91\u539f\u751f<\/span><br \/>\n            <span class=\"tag\">\u5730\u56fe\u670d\u52a1<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u8d5e\u8d4f\u5176\u65e0\u9700API\u5bc6\u94a5\u7684\u96f6\u6469\u64e6\u4f53\u9a8c\u3002\u6838\u5fc3\u5efa\u8bae\u662f\uff1a\u4e3a\u72ec\u7acb\u9879\u76ee\u63d0\u4f9b\u201c\u672c\u5730\u90e8\u7f72\u201d\u6216\u201c\u7279\u5b9a\u533a\u57df\u5feb\u7167\u5bfc\u51fa\u201d\u529f\u80fd\uff0c\u4ee5\u4fbf\u5728\u6f14\u793a\u573a\u666f\u4e2d\u5b9e\u73b0\u79bb\u7ebf\u4f7f\u7528\uff0c\u65e0\u9700\u81ea\u5efa\u670d\u52a1\u5668\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                Maptoolkit.org \u7684\u91ce\u5fc3\u6e05\u6670\u53ef\u89c1\uff1a\u7528\u4e00\u4e2a\u201c\u793e\u533a\u8bb8\u53ef\u8bc1\u201d\u6495\u5f00\u88abMapbox\u548cGoogle Maps\u5784\u65ad\u7684\u9ad8\u7aef\u5730\u56fe\u5e02\u573a\u3002\u5b83\u7684\u771f\u6b63\u4ef7\u503c\u5e76\u975e\u201c\u514d\u8d39\u201d\uff0c\u800c\u662f\u5c06\u4f01\u4e1a\u7ea7\u5730\u56fe\u670d\u52a1\uff081\u4ebf\u6708\u8bf7\u6c42\u3001350+CDN\u8282\u70b9\uff09\u7684\u63a5\u5165\u95e8\u69db\u964d\u7ef4\u5230\u96f6\u2014\u2014\u6ca1\u6709API\u5bc6\u94a5\uff0c\u6ca1\u6709\u8bf7\u6c42\u9650\u5236\uff0c\u53ea\u6709\u4e00\u6761\u6837\u5f0fURL\u3002\u5bf9\u4e8e\u72ec\u7acb\u5f00\u53d1\u8005\u548c\u5c0f\u56e2\u961f\u800c\u8a00\uff0c\u8fd9\u76f4\u63a5\u7701\u53bb\u4e86\u4ece\u96f6\u642d\u5efa\u5730\u56fe\u6808\uff08OSM+MapLibre+\u5730\u5f62\u6570\u636e\uff09\u7684\u5de8\u5927\u6210\u672c\uff0c\u4f7f\u5176\u80fd\u50cf\u8c03\u7528\u201c\u4e91\u57fa\u7840\u8bbe\u65bd\u201d\u4e00\u6837\u8c03\u7528\u4e13\u4e1a\u5730\u56fe\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u5149\u73af\u4e4b\u4e0b\u9700\u8b66\u60d5\u3002\u514d\u8d39\u7248\u7ed1\u5b9a\u4e86\u201c\u5e74\u6536\u5165\u4f4e\u4e8e100\u4e07\u6b27\u5143\u201d\u7684\u95e8\u69db\uff0c\u8fd9\u610f\u5473\u7740\u9879\u76ee\u4e00\u65e6\u8d85\u51fa\u6b64\u9650\u5236\u5c06\u9762\u4e34\u5546\u4e1a\u5207\u6362\u7684\u98ce\u9669\uff0c\u672c\u8d28\u4e0a\u662f\u65e9\u671f\u5e02\u573a\u57f9\u80b2\u7684\u201c\u8bf1\u9975\u201d\u3002\u8bc4\u8bba\u4e2d\u5173\u4e8e\u201c\u79bb\u7ebf\u5feb\u7167\u201d\u7684\u9700\u6c42\u76f4\u6307\u5176\u8f6f\u808b\u2014\u2014\u5f53\u524d\u5b8c\u5168\u4f9d\u8d56\u4e91\u7aef\uff0c\u5bf9\u4e8e\u9700\u8981\u5f3a\u79bb\u7ebf\u573a\u666f\u6216\u6570\u636e\u9690\u79c1\u654f\u611f\u7684\u5e94\u7528\u6765\u8bf4\uff0c\u8fd9\u5c42\u201c\u514d\u8d39\u201d\u80cc\u540e\u662f\u6570\u636e\u4e3b\u6743\u548c\u7f51\u7edc\u4f9d\u8d56\u7684\u4ee3\u4ef7\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u6218\u7565\u4e0a\u770b\uff0c\u56e2\u961f\u5229\u7528B\u7aef\u4f01\u4e1a\u5ba2\u6237\u7684\u57fa\u7840\u8bbe\u65bd\uff08\u5df2\u670d\u52a1\u4e8eRed Bull\u3001Deutsche Bahn\uff09\u6765\u644a\u8584\u793e\u533a\u7248\u7684\u8fb9\u9645\u6210\u672c\uff0c\u903b\u8f91\u6210\u7acb\uff0c\u4f46\u957f\u671f\u6301\u7eed\u6027\u5b58\u7591\u3002\u5b83\u66f4\u50cf\u4e00\u4e2a\u9ad8\u660e\u7684\u6d41\u91cf\u5165\u53e3\uff0c\u901a\u8fc7\u4f4e\u95e8\u69db\u5438\u5f15\u5f00\u53d1\u8005\uff0c\u8ba9\u7528\u6237\u4e60\u60ef\u4e86\u5176\u6e32\u67d3\u98ce\u683c\u548c\u5de5\u5177\u94fe\u540e\uff0c\u5728\u672a\u6765\u89c4\u6a21\u58ee\u5927\u65f6\u63a8\u52a8\u4ed8\u8d39\u5347\u7ea7\u3002\u56e0\u6b64\uff0c\u5b83\u6700\u9002\u5408\u4f5c\u4e3a\u539f\u578b\u5f00\u53d1\u6216\u5c0f\u578b\u751f\u4ea7\u73af\u5883\u7684\u201c\u514d\u8d39\u5348\u9910\u201d\uff0c\u4f46\u4e25\u8083\u7684\u5546\u4e1a\u9879\u76ee\u6700\u597d\u9884\u7559\u6570\u636e\u8fc1\u79fb\u548c\u672c\u5730\u5316\u90e8\u7f72\u7684\u540e\u5907\u65b9\u6848\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Maptoolkit.org &#8211; free vector map server<\/span>\n                <\/div>\n<div class=\"comment-content\">Maptoolkit.org is a free, production-grade vector tile server built on OpenStreetMap and MapLibre. It delivers fast, customizable vector basemaps with 3D terrain, hillshading, and outdoor styles &#8211; privacy-aware with no sign-up, no API keys, no cookies, and no request limits for open-source, indie, and small-business projects.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hi Product Hunt \ud83d\udc4b<\/p>\n<p>I&#8217;m Helge, one of the creators behind Maptoolkit.org.<\/p>\n<p>Until now, getting beautiful, professionally styled maps for web or mobile apps meant paying expensive enterprise providers like Mapbox or Google (we&#8217;ve actually been operating as one of those premium providers in Europe for years). Free options, on the other hand, usually offered very basic cartography.<\/p>\n<p>We want to change that. Starting today, our worldwide, enterprise-grade cartography is available for free under the Maptoolkit Community License.<\/p>\n<p>WHAT MAKES IT DIFFERENT<\/p>\n<p>\u2022 Zero Friction: No API keys, no credit cards, no request limits. Just drop in our style URL and ship.<br \/>\u2022 Outdoor &amp; Travel Focus: Built-in styles for Hiking, Cycling, and Winter, alongside global hillshading, contour lines, bathymetry (water depths), and 3D terrain.<br \/>\u2022 MapMaker Editor: Customize styles easily or generate a matching map color palette straight from your brand logo or image &#8211; <a href=\"https:\/\/mapmaker.maptoolkit.org\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/mapmaker.maptoolkit.org<\/a><br \/>\u2022 Fair Terms: Completely free for open-source, non-commercial, and indie\/commercial projects under \u20ac1M annual revenue.<\/p>\n<p>INFRASTRUCTURE &amp; PERFORMANCE<\/p>\n<p>Weekly automated OpenStreetMap updates build global PMTiles files for map, contour, and elevation data. Hosted on our Kubernetes cluster in Germany and Finland, and cached across 350+ Cloudflare edge locations worldwide with a 90\u201395% cache hit rate.<\/p>\n<p>This exact infrastructure already serves over 1 billion requests per month to enterprise customers like Red Bull or Deutsche Bahn. Now it powers our free community tier.<\/p>\n<p>TRY IT IN 2 MINUTES<\/p>\n<p>Use our AI prompt guide to generate a working map app instantly:<br \/><a href=\"https:\/\/docs.maptoolkit.org\/how-to-use-with-ai\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/docs.maptoolkit.org\/how-&#8230;<\/a><\/p>\n<p>I\u2019d love to hear your thoughts, feedback, and questions!<\/p>\n<p>PS: Why is it free? Honestly, two reasons: Visibility for us beyond Central European countries, and: We build upon MapLibre and OpenStreetMap, and it is time to give something back.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>9<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>love that you skipped the api key dance. one thing that would be a huge win for indie projects: a simple way to self-host or export a snapshot of a specific region so i can ship an offline-friendly demo without spinning up my own server.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\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\/HIDPGYGCVPP77V\" class=\"app-title\">AlsonAI Studio for Animated Shorts<\/a><\/p>\n<div class=\"one-liner\">From bedtime story to animated short film.<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">19<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>AlsonAI Studio\u901a\u8fc7AI\u5c06\u539f\u521b\u6545\u4e8b\u8f6c\u5316\u4e3a\u63d2\u56fe\u7ed8\u672c\u548c\u52a8\u753b\u77ed\u7247\uff0c\u89e3\u51b3\u521b\u4f5c\u8005\u5728\u6545\u4e8b\u53ef\u89c6\u5316\u3001\u751f\u6210\u8fde\u8d2f\u52a8\u753b\u53ca\u8de8\u5e73\u53f0\u5185\u5bb9\u5206\u53d1\u4e0a\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\/dd926f40-7a68-4c88-9c25-036cdb32cae1.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/6125a6c2-c513-4430-aa27-b5de066bf53b.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/54fb19c2-4cd2-446c-842f-9084e3ce790e.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/abcf6a3a-007f-4215-8617-b8224d564b89.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\/c29ee291-2263-4040-8c2d-5821167c86af.jpeg?auto=format\" data-video-url=\"https:\/\/youtube.com\/shorts\/S8C19lYx6Jk\"><source src=\"https:\/\/youtube.com\/shorts\/S8C19lYx6Jk\" 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\">Kids<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">Animation<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u52a8\u753b\u751f\u6210<\/span><br \/>\n            <span class=\"tag\">\u6545\u4e8b\u7ed8\u672c\u521b\u4f5c<\/span><br \/>\n            <span class=\"tag\">Gemini Omni\u89c6\u9891\u7ba1\u7ebf<\/span><br \/>\n            <span class=\"tag\">\u513f\u7ae5\u6559\u80b2\u5185\u5bb9<\/span><br \/>\n            <span class=\"tag\">\u77ed\u89c6\u9891\u5236\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u81ea\u5a92\u4f53\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u591a\u5e73\u53f0\u5206\u53d1<\/span><br \/>\n            <span class=\"tag\">\u5f71\u89c6\u7ea7\u98ce\u683c\u4e00\u81f4\u6027<\/span><br \/>\n            <span class=\"tag\">\u521b\u610f\u5de5\u4f5c\u5ba4<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u5bf9\u63d2\u56fe\u8d28\u91cf\uff08\u7279\u522b\u662f\u6c34\u5f69\u98ce\u683c\uff09\u548c\u4ea4\u4e92\u4f53\u9a8c\u6ee1\u610f\uff08\u9010\u9875\u7f16\u8f91\u6d41\u7545\uff09\u3002\u4f46\u4ea7\u54c1\u5c1a\u5904\u65e9\u671f\uff0c\u7528\u6237\u672a\u660e\u786e\u53cd\u9988\u91cd\u5927\u7f3a\u9677\uff0c\u5efa\u8bae\u4f18\u5148\u5173\u6ce8\u52a8\u753b\u7528\u4f8b\u7684\u4f18\u5148\u7ea7\u6392\u5e8f\uff08\u5982\u4e66\u9884\u544avs.\u8bfe\u5802\u5c55\u793a\uff09\u548c\u957f\u7bc7\u6545\u4e8b\u8fde\u8d2f\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                AlsonAI\u7684\u771f\u6b63\u4ef7\u503c\u4e0d\u5728\u4e8e\u201c\u628a\u7ed8\u672c\u505a\u6210\u52a8\u753b\u201d\u8fd9\u4e2a\u529f\u80fd\u5806\u780c\uff0c\u800c\u5728\u4e8e\u5b83\u7528Gemini Omni\u7ba1\u7ebf\u8bd5\u56fe\u89e3\u51b3AI\u89c6\u89c9\u521b\u4f5c\u7684\u75fc\u75be\u2014\u2014\u98ce\u683c\u6f02\u79fb\u4e0e\u89d2\u8272\u4e0d\u4e00\u81f4\u3002\u8fc7\u53bb\u5927\u591a\u6570AI\u89c6\u9891\u5de5\u5177\u66f4\u9002\u5408\u5355\u5e27\u70ab\u6280\uff0c\u96be\u7528\u4e8e\u53d9\u4e8b\u8fde\u8d2f\u7684\u201c\u6545\u4e8b\u7247\u201d\uff0c\u800cAlsonAI\u5c06\u7ed8\u672c\u4f5c\u4e3a\u201c\u951a\u70b9\u201d\uff0c\u672c\u8d28\u4e0a\u662f\u4e3a\u52a8\u753b\u5316\u5efa\u7acb\u4e00\u4e2a\u89c6\u89c9\u53c2\u7167\u7cfb\uff0c\u8fd9\u6bd4\u5355\u7eaf\u62c9\u89c6\u9891\u751f\u6210\u65f6\u957f\u66f4\u63a5\u8fd1\u5b9e\u7528\u3002\u7136\u800c19\u7968\u7684\u51b7\u542f\u52a8\u6570\u636e\u66b4\u9732\u4e86\u73b0\u5b9e\uff1a\u4ea7\u54c1\u76ee\u524d\u66f4\u50cf\u662f\u201c\u535a\u5ba2\u5f0fDemo\u201d\u2014\u2014\u652f\u6301\u77ed\u7bc7\u548c\u7247\u6bb5\uff0c\u4f46\u201c\u8fde\u7eed\u5267\u201d\u548c\u201c\u957f\u65f6\u95f4\u52a8\u753b\u201d\u7eaf\u5c5e\u753b\u997c\u3002\u5176\u6838\u5fc3\u7ade\u4e89\u58c1\u5792\u5c1a\u672a\u5efa\u7acb\uff1a\u5f53Midjourney\u548cRunway\u4e5f\u5728\u89e3\u51b3\u4e00\u81f4\u6027\u65f6\uff0cAlsonAI\u82e5\u4e0d\u80fd\u7387\u5148\u4e0a\u7ebf\u53ef\u4ea4\u4e92\u7684\u201c\u6545\u4e8b\u677f\u7f16\u8f91\u5668\u201d\u6216\u201c\u89d2\u8272\u8d44\u4ea7\u5e93\u201d\u529f\u80fd\uff0c\u5f88\u5feb\u5c31\u4f1a\u6ca6\u4e3a\u597d\u770b\u7684PPT\u8f6c\u573a\u5de5\u5177\u3002\u6b64\u5916\uff0c\u7528\u6237\u53cd\u9988\u4e2d\u7684\u9ad8\u9891\u8bcd\u662f\u201c\u60ca\u559c\u201d\u800c\u975e\u201c\u521a\u9700\u201d\uff0c\u8fd9\u6697\u793a\u4ea7\u54c1\u5bf9\u975e\u4e13\u4e1a\u521b\u4f5c\u8005\u4ecd\u505c\u7559\u5728\u5c1d\u9c9c\u9636\u6bb5\u3002\u771f\u6b63\u7684\u7206\u53d1\u70b9\u5728\u4e8e\u80fd\u5426\u5207\u5165\u6559\u80b2\u573a\u666f\u2014\u2014\u8bfe\u5802\u9879\u76ee\u7684\u201c\u591a\u5a92\u4f53\u5316\u201d\u662f\u91cf\u4ef7\u9f50\u5347\u7684\u521a\u9700\uff0c\u800c\u975eToC\u7684\u793e\u4ea4\u77ed\u7247\u7ea2\u6d77\u3002\u5efa\u8bae\u56e2\u961f\u7acb\u523b\u5c06\u201c\u6559\u5ba4\u5c55\u793a\u201d\u548c\u201c\u4eb2\u5b50\u7ed8\u672c\u89c6\u9891\u201d\u5217\u4e3a\u7b2c\u4e00\u4f18\u5148\u7ea7\uff0c\u5e76\u653e\u5f03\u5bf9\u201c\u7cfb\u5217\u5267\u201d\u7684\u8fc7\u65e9\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\">AlsonAI Studio for Animated Shorts<\/span>\n                <\/div>\n<div class=\"comment-content\">AlsonAI turns original stories into illustrated books\u2014and now animated shorts. With our new Gemini Omni-powered video pipeline, creators can bring characters to life as cinematic scenes, book trailers, read-aloud videos, YouTube Shorts, Reels, and classroom showcases. Create the book, then watch the story move.<\/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>We\u2019re excited to share the next evolution of AlsonAI: animated stories.<\/p>\n<p>AlsonAI started with a simple idea: anyone should be able to turn a meaningful story into a beautiful illustrated book. Families, students, educators, healthcare teams, and youth programs have used it to create personal books, classroom projects, therapeutic stories, and keepsakes.<\/p>\n<p>But we always wanted the stories to move.<\/p>\n<p>For a long time, we had to deprioritize animation because the technology was not ready for the kind of storytelling we cared about. Characters changed too much. Visual style drifted. A scene could look impressive, but it did not feel consistent enough to turn someone\u2019s story into a real animated experience.<\/p>\n<p>That has changed.<\/p>\n<p>With our new video pipeline powered by Gemini Omni, AlsonAI stories can now become animated scenes, book trailers, read-aloud videos, short-form clips, and eventually serialized story worlds.<\/p>\n<p>This opens up a much bigger creative canvas:<\/p>\n<p>A child\u2019s story can become a mini animated movie.<br \/>A classroom writing project can become a multimedia showcase.<br \/>A family memory can become a book and a keepsake video.<br \/>A character can come back across sequels, shorts, and new adventures.<br \/>A story can now live on the page, on YouTube, in Reels, in Shorts, and in classrooms.<\/p>\n<p>We see this as a major step toward AlsonAI becoming a story studio: one place to create the book, bring the characters to life, and turn original stories into media people can read, watch, share, and build on.<\/p>\n<p>We\u2019d love your feedback, especially on which animated use cases you\u2019d want us to prioritize first: book trailers, read-aloud videos, classroom showcases, social shorts, or serialized story episodes.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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>Played around with it for a bit and was actually surprised how solid the illustrations came out, especially in the watercolor style. Editing text page by page felt really natural too, didn&#8217;t have to fight with the interface.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@kardelen415764\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@kardelen415764<\/a>&nbsp;Love to hear this feedback. I&#8217;d love to hear what your book was about!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\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\/EMXOFGJHYITMRL\" class=\"app-title\">Prompt Anything: No more AI slop<\/a><\/p>\n<div class=\"one-liner\">Become an expert prompt engineer in minutes, for anything AI<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">18<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>\u7528\u6237\u53ea\u9700\u7528\u901a\u4fd7\u8bed\u8a00\u63cf\u8ff0\u9700\u6c42\uff0c\u5373\u53ef\u81ea\u52a8\u751f\u6210\u9488\u5bf9AI\u4ee3\u7406\u3001Web\u5e94\u7528\u3001\u56fe\u50cf\u3001\u89c6\u9891\u3001\u4ee3\u7801\u7b49\u591a\u79cd\u573a\u666f\u7684\u4e13\u5bb6\u7ea7\u63d0\u793a\u8bcd\uff0c\u89e3\u51b3AI\u8f93\u51fa\u8d28\u91cf\u4f4e\u4e0b\u3001\u63d0\u793a\u5de5\u7a0b\u95e8\u69db\u9ad8\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\/9f6930b9-9ca8-4a06-8030-9017c90479d8.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/bfbfc4a8-3d55-42e4-bf77-b9e033db865c.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/29bae5b5-9ed7-4670-8048-9b2541470532.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/f6f9e23e-fbcb-4030-a79a-683965859473.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/4382282b-f24d-4c7e-b7a0-a9deee08bbd2.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/f4da4db7-07d6-47ff-b1cd-e949f5be1c9a.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/8de8a679-072f-4248-bda3-31f5cf5f4233.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/574454be-4585-4103-9f57-acf79d051f05.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/98b9a220-60c5-433d-b869-bd8f571a5519.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/1ff8104f-55d9-4800-a68e-66f87f6e2364.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\/053229f4-522f-4471-90d8-6cfbec8c402e.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/shorts\/ng-Xo9ErPQ0\"><source src=\"https:\/\/www.youtube.com\/shorts\/ng-Xo9ErPQ0\" 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\">Tech<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u63d0\u793a\u5de5\u7a0b<\/span><br \/>\n            <span class=\"tag\">AI\u63d0\u793a\u4f18\u5316<\/span><br \/>\n            <span class=\"tag\">\u591a\u6a21\u6001\u751f\u6210<\/span><br \/>\n            <span class=\"tag\">\u6210\u672c\u63a7\u5236<\/span><br \/>\n            <span class=\"tag\">\u6a21\u578b\u8def\u7531<\/span><br \/>\n            <span class=\"tag\">\u81ea\u52a8\u5316\u5de5\u4f5c\u6d41<\/span><br \/>\n            <span class=\"tag\">\u667a\u80fd\u4f53\u5f00\u53d1<\/span><br \/>\n            <span class=\"tag\">\u63d0\u793a\u8bcd\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">AI\u6548\u7387\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u65e0\u4ee3\u7801<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u65e9\u671f\u7528\u6237\u53cd\u9988\u5de5\u5177\u80fd\u6709\u6548\u4f18\u5316\u63d0\u793a\u3001\u51cf\u5c11\u4ee4\u724c\u6d88\u8017\u548c\u51b7\u5374\u7528\u6c34\u3002\u6709\u8bc4\u8bba\u8be2\u95ee\u5982\u4f55\u5b9e\u73b0\u4e2a\u6027\u5316\u5b9a\u5236\u548c\u4e0d\u540c\u6a21\u578b\u7684\u4f18\u5316\u7b56\u7565\uff0c\u5f00\u53d1\u56e2\u961f\u56de\u5e94\u79f0\u901a\u8fc7arena.ai\u6293\u53d6\u7528\u6237\u610f\u56fe\uff0c\u5229\u7528Openrouter\u6216Kimchi\u81ea\u52a8\u9009\u62e9\u6700\u4f73\u6a21\u578b\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                Prompt Anything\u5207\u4e2d\u4e86\u5f53\u4e0bAI\u5e94\u7528\u6700\u666e\u904d\u7684\u75db\u70b9\u2014\u2014\u201c\u63d0\u793a\u80a5\u80d6\u75c7\u201d\u3002\u5927\u591a\u6570\u7528\u6237\u5e76\u975e\u4e0d\u4f1a\u7528AI\uff0c\u800c\u662f\u5199\u4e0d\u51fa\u80fd\u69a8\u5e72\u6a21\u578b\u6f5c\u529b\u7684\u63d0\u793a\u8bcd\u3002\u8be5\u5de5\u5177\u7684\u4ef7\u503c\u5728\u4e8e\u5c06\u201c\u63d0\u793a\u5de5\u7a0b\u5e08\u201d\u8fd9\u4e2a\u7384\u5b66\u804c\u4e1a\u8f6c\u5316\u4e3a\u4e00\u5957\u53ef\u590d\u7528\u7684\u81ea\u52a8\u5316\u7cfb\u7edf\uff1a13\u79cd\u6a21\u5f0f\u8986\u76d6\u4e86\u4ece\u4ee3\u7801\u5230\u89c6\u9891\u7684\u4e3b\u6d41\u573a\u666f\uff0c\u6210\u672c\u4f18\u5316\u7684\u8def\u7531\u673a\u5236\u5219\u76f4\u51fb\u4f01\u4e1a\u7528\u6237\u6700\u654f\u611f\u7684Token\u6d6a\u8d39\u95ee\u9898\u3002\u5176\u201c80%-100%\u4e00\u7a3f\u8fc7\u201d\u7684\u5ba3\u4f20\u867d\u7136\u5938\u5f20\uff0c\u4f46\u786e\u5b9e\u53cd\u6620\u51fa\u5728\u6807\u51c6\u5316\u4efb\u52a1\uff08\u5982\u6587\u6848\u751f\u6210\u3001\u7b80\u5355\u4ee3\u7801\u7247\u6bb5\uff09\u4e0a\uff0c\u5de5\u5177\u5316\u63d0\u793a\u5df2\u7ecf\u6bd4\u4eba\u5de5\u8bd5\u9519\u66f4\u9ad8\u6548\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u4ea7\u54c1\u771f\u6b63\u7684\u62a4\u57ce\u6cb3\u4e0d\u5728\u63d0\u793a\u751f\u6210\u672c\u8eab\uff0c\u800c\u5728\u5bf9arena.ai\u7b49\u6a21\u578b\u8bc4\u4f30\u6570\u636e\u7684\u5b9e\u65f6\u8c03\u7528\u3002\u8fd9\u79cd\u52a8\u6001\u6a21\u578b\u9009\u62e9\u80fd\u529b\u8ba9\u63d0\u793a\u4e0d\u518d\u662f\u4e00\u6210\u4e0d\u53d8\u7684\u6a21\u677f\uff0c\u800c\u662f\u6839\u636e\u4efb\u52a1\u7c7b\u578b\u548c\u6700\u65b0\u6a21\u578b\u6392\u884c\u81ea\u52a8\u8c03\u4f18\u3002\u6f5c\u5728\u9690\u60a3\u5728\u4e8e\u8fc7\u5ea6\u4f9d\u8d56\u5916\u90e8API\u7684\u53ef\u9760\u6027\uff0c\u4ee5\u53ca\u9762\u5bf9\u9ad8\u5ea6\u521b\u65b0\u7684\u521b\u610f\u4efb\u52a1\u65f6\u2014\u2014\u6bd4\u5982\u9700\u8981\u7279\u5b9a\u8c03\u6027\u7684\u827a\u672f\u98ce\u683c\u6216\u60c5\u611f\u7ec6\u817b\u7684\u53d9\u4e8b\u2014\u2014\u81ea\u52a8\u5316\u63d0\u793a\u4ecd\u663e\u751f\u786c\u3002\u6b64\u5916\uff0c18\u4e2a\u6295\u7968\u6570\u53cd\u6620\u5176\u4ecd\u5728\u65e9\u671f\u9a8c\u8bc1\u9636\u6bb5\uff0c\u540e\u7eed\u7684\u4e2a\u6027\u5316\u4e0a\u4e0b\u6587\u79ef\u7d2f\u548c\u6a21\u578b\u9002\u914d\u6df1\u5ea6\u5c06\u662f\u51b3\u5b9a\u7528\u6237\u9ecf\u6027\u7684\u5173\u952e\u3002\u603b\u4f53\u800c\u8a00\uff0c\u8fd9\u662f\u4e00\u4e2a\u65b9\u5411\u6b63\u786e\u4f46\u5c1a\u9700\u6253\u78e8\u7684\u201cAI\u534a\u6210\u54c1\u52a0\u901f\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\">Prompt Anything: No more AI slop<\/span>\n                <\/div>\n<div class=\"comment-content\">Most AI output is weak because the prompt underneath is weak. Prompt Anything fixes that. Describe what you want in plain English and it builds the expert prompt: 13 modes for agents, web apps, images, video, code, and copy. Smart questions capture your context, then cost-optimized routing picks the right model. You get 80 to 100 percent of the build in one shot, saving weeks and a pile of tokens. Quill, our mascot, guides you the whole way. Free to start, no credit card.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">We built this to get AI automation, webapps, agents, employees, and remove slop from our AI projects. We did such a good job for our clients, we made it into an app so anyone can&#8230; prompt anything. <\/p>\n<p>Enjoy mastering AI.<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I&#8217;ve tried Prompt Anything since a much earlier release and was impressed each time! Very useful if you&#8217;re wrestling with prompts or struggle to get the exact context across.<\/p>\n<p>This tools helps you to optimize, reduce prompts and token use (as well as save some water that would be used to cool your unoptimized prompts!<\/p>\n<p>Great work Richard<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Nice idea, good prompts are still one of the biggest productivity multipliers with AI. Congrats on the launch!<\/p>\n<\/p>\n<p>One question: how do you personalize generated prompts for different users or domains, and do you optimize them differently for models like GPT, Claude, and Gemini?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@davitausberlin\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@davitausberlin<\/a>&nbsp;we let the tool look at arena.ai. It grabs the users intent and picks the best model for the task using Openrouter or Kimchi!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<\/div>\n<p><!-- \u56fe\u7247\u653e\u5927\u6a21\u6001\u6846 --><\/p>\n<div id=\"imageModal\" class=\"modal\">\n    <span class=\"close\">&times;<\/span><br \/>\n    <img class=\"modal-content\" id=\"modalImage\">\n<\/div>\n<p><script>\n    \/\/ \u83b7\u53d6\u6a21\u6001\u6846\u5143\u7d20\n    const modal = document.getElementById(\"imageModal\");\n    const modalImg = document.getElementById(\"modalImage\");\n    const closeBtn = document.getElementsByClassName(\"close\")[0];<\/p>\n<p>    \/\/ \u68c0\u6d4b\u662f\u5426\u4e3a\u79fb\u52a8\u8bbe\u5907\n    const isMobile = \/iPhone|iPad|iPod|Android\/i.test(navigator.userAgent);<\/p>\n<p>    \/\/ \u4e3a\u79fb\u52a8\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u4f18\u5316\n    function addTouchOptimization() {\n        if (isMobile) {\n            \/\/ \u4e3a\u6240\u6709\u53ef\u70b9\u51fb\u5143\u7d20\u6dfb\u52a0\u89e6\u6478\u53cd\u9988\n            const clickableElements = document.querySelectorAll(\n                '.media-content, .close, .video-overlay, .play-icon'\n            );<\/p>\n<p>            clickableElements.forEach(el => {\n                el.style.touchAction = 'manipulation'; \/\/ \u9632\u6b62\u53cc\u51fb\u7f29\u653e\n            });\n        }\n    }<\/p>\n<p>    \/\/ \u4e3a\u6240\u6709\u56fe\u7247\u6dfb\u52a0\u70b9\u51fb\u4e8b\u4ef6\n    const images = document.querySelectorAll(\"img.media-content\");\n    images.forEach(img => {\n        img.onclick = function() {\n            modal.style.display = \"block\";\n            modalImg.src = this.src;\n            \/\/ \u963b\u6b62\u80cc\u666f\u6eda\u52a8\n            document.body.style.overflow = \"hidden\";\n        }<\/p>\n<p>        \/\/ \u4e3a\u79fb\u52a8\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u4e8b\u4ef6\u652f\u6301\n        if (isMobile) {\n            img.addEventListener('touchstart', function(e) {\n                \/\/ \u9632\u6b62\u89e6\u6478\u4e8b\u4ef6\u89e6\u53d1\u4e0d\u5fc5\u8981\u7684\u884c\u4e3a\n                e.preventDefault();\n                this.click();\n            }, { passive: false });\n        }\n    });<\/p>\n<p>    \/\/ \u4e3a\u89c6\u9891\u6dfb\u52a0\u70b9\u51fb\u4e8b\u4ef6 - \u8df3\u8f6c\u5230\u89c6\u9891URL\n    const videos = document.querySelectorAll(\"video.media-content\");\n    videos.forEach(video => {\n        \/\/ \u70b9\u51fb\u89c6\u9891\u672c\u8eab\u65f6\u8df3\u8f6c\u5230\u89c6\u9891URL\n        video.onclick = function(e) {\n            \/\/ \u68c0\u67e5\u70b9\u51fb\u76ee\u6807\u662f\u5426\u662f\u89c6\u9891\u63a7\u4ef6\u6216\u5176\u5b50\u5143\u7d20\n            let isControlClick = false;\n            let target = e.target;<\/p>\n<p>            \/\/ \u5411\u4e0a\u904d\u5386DOM\uff0c\u68c0\u67e5\u662f\u5426\u70b9\u51fb\u4e86\u63a7\u4ef6\u5143\u7d20\n            while (target && target !== this) {\n                \/\/ \u68c0\u67e5\u662f\u5426\u6709\u63a7\u4ef6\u76f8\u5173\u7684\u7c7b\u540d\u6216\u5c5e\u6027\n                if (target.classList.contains('video-js') || \n                    target.tagName.toLowerCase() === 'button' || \n                    target.tagName.toLowerCase() === 'input' || \n                    target.tagName.toLowerCase() === 'select' ||\n                    target.className.includes('control')) {\n                    isControlClick = true;\n                    break;\n                }\n                target = target.parentElement;\n            }<\/p>\n<p>            \/\/ \u53ea\u6709\u5f53\u70b9\u51fb\u7684\u662f\u89c6\u9891\u672c\u8eab\u800c\u975e\u63a7\u4ef6\u65f6\u624d\u8df3\u8f6c\n            if (!isControlClick && e.target.tagName.toLowerCase() === 'video') {\n                const videoUrl = this.getAttribute('data-video-url') || this.querySelector('source').src;\n                window.open(videoUrl, '_blank');\n            }\n        }<\/p>\n<p>        \/\/ \u4e3a\u79fb\u52a8\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u4e8b\u4ef6\u652f\u6301\n        if (isMobile) {\n            video.addEventListener('touchstart', function(e) {\n                \/\/ \u68c0\u67e5\u662f\u5426\u70b9\u51fb\u4e86\u63a7\u4ef6\n                let isControlClick = false;\n                let target = e.target;<\/p>\n<p>                while (target && target !== this) {\n                    if (target.tagName.toLowerCase() === 'button' || \n                        target.tagName.toLowerCase() === 'input' || \n                        target.className.includes('control')) {\n                        isControlClick = true;\n                        break;\n                    }\n                    target = target.parentElement;\n                }<\/p>\n<p>                if (!isControlClick) {\n                    e.preventDefault();\n                    const videoUrl = this.getAttribute('data-video-url') || this.querySelector('source').src;\n                    window.open(videoUrl, '_blank');\n                }\n            }, { passive: false });\n        }\n    });<\/p>\n<p>    \/\/ \u4e3a\u89c6\u9891\u906e\u7f69\u6dfb\u52a0\u70b9\u51fb\u4e8b\u4ef6\uff0c\u786e\u4fdd\u70b9\u51fb\u906e\u7f69\u4e5f\u80fd\u8df3\u8f6c\n    const videoOverlays = document.querySelectorAll('.video-overlay');\n    videoOverlays.forEach(overlay => {\n        overlay.onclick = function(e) {\n            \/\/ \u963b\u6b62\u4e8b\u4ef6\u5192\u6ce1\u5230\u89c6\u9891\u5143\u7d20\n            e.stopPropagation();\n            const video = this.parentElement.querySelector('video.media-content');\n            if (video) {\n                const videoUrl = video.getAttribute('data-video-url') || video.querySelector('source').src;\n                window.open(videoUrl, '_blank');\n            }\n        }<\/p>\n<p>        \/\/ \u4e3a\u79fb\u52a8\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u4e8b\u4ef6\u652f\u6301\n        if (isMobile) {\n            overlay.addEventListener('touchstart', function(e) {\n                e.preventDefault();\n                e.stopPropagation();\n                const video = this.parentElement.querySelector('video.media-content');\n                if (video) {\n                    const videoUrl = video.getAttribute('data-video-url') || video.querySelector('source').src;\n                    window.open(videoUrl, '_blank');\n                }\n            }, { passive: false });\n        }\n    });<\/p>\n<p>    \/\/ \u5173\u95ed\u6a21\u6001\u6846\n    closeBtn.onclick = function() {\n        modal.style.display = \"none\";\n        \/\/ \u6062\u590d\u80cc\u666f\u6eda\u52a8\n        document.body.style.overflow = \"auto\";\n    }<\/p>\n<p>    \/\/ \u4e3a\u79fb\u52a8\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u4e8b\u4ef6\u652f\u6301\n    if (isMobile) {\n        closeBtn.addEventListener('touchstart', function(e) {\n            e.preventDefault();\n            modal.style.display = \"none\";\n            document.body.style.overflow = \"auto\";\n        }, { passive: false });\n    }<\/p>\n<p>    \/\/ \u70b9\u51fb\u6a21\u6001\u6846\u5916\u90e8\u5173\u95ed\n    window.onclick = function(event) {\n        if (event.target === modal) {\n            modal.style.display = \"none\";\n            document.body.style.overflow = \"auto\";\n        }\n    }<\/p>\n<p>    \/\/ \u4e3a\u79fb\u52a8\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u4e8b\u4ef6\u652f\u6301\n    if (isMobile) {\n        modal.addEventListener('touchstart', function(e) {\n            if (e.target === modal) {\n                modal.style.display = \"none\";\n                document.body.style.overflow = \"auto\";\n            }\n        }, { passive: true });\n    }<\/p>\n<p>    \/\/ \u6309ESC\u952e\u5173\u95ed\u6a21\u6001\u6846\n    document.addEventListener('keydown', function(event) {\n        if (event.key === 'Escape' && modal.style.display === 'block') {\n            modal.style.display = 'none';\n            document.body.style.overflow = \"auto\";\n        }\n    });<\/p>\n<p>    \/\/ \u68c0\u67e5\u6bcf\u4e2a\u5a92\u4f53\u753b\u5eca\u4e2d\u662f\u5426\u53ea\u6709\u4e00\u4e2a\u9879\u76ee\uff0c\u5982\u679c\u662f\uff0c\u6dfb\u52a0single-item\u7c7b\n    document.querySelectorAll('.media-gallery').forEach(gallery => {\n        if (gallery.querySelectorAll('.media-item-wrapper').length === 1) {\n            gallery.classList.add('single-item');\n        }\n    });<\/p>\n<p>    \/\/ \u521d\u59cb\u5316\u89e6\u6478\u4f18\u5316\n    addTouchOptimization();<\/p>\n<p>    \/\/ \u7a97\u53e3\u5927\u5c0f\u53d8\u5316\u65f6\u91cd\u65b0\u68c0\u67e5\u753b\u5eca\u72b6\u6001\n    window.addEventListener('resize', function() {\n        document.querySelectorAll('.media-gallery').forEach(gallery => {\n            if (gallery.querySelectorAll('.media-item-wrapper').length === 1) {\n                gallery.classList.add('single-item');\n            } else {\n                gallery.classList.remove('single-item');\n            }\n        });\n    });<\/p>\n<p>    \/\/ --- \u8bc4\u8bba\u533a\u57df\u6298\u53e0\/\u5c55\u5f00\u529f\u80fd ---\n    const commentToggles = document.querySelectorAll('.comments-toggle');<\/p>\n<p>    commentToggles.forEach(toggle => {\n        toggle.addEventListener('click', function() {\n            \/\/ \u5207\u6362\u5f53\u524dtoggle\u7684open\u72b6\u6001\n            this.classList.toggle('open');<\/p>\n<p>            \/\/ \u83b7\u53d6\u5bf9\u5e94\u7684\u8bc4\u8bba\u5bb9\u5668\n            const commentsContainer = this.nextElementSibling;\n            if (commentsContainer && commentsContainer.classList.contains('comments-container')) {\n                commentsContainer.classList.toggle('open');\n            }\n        });\n    });\n<\/script><\/p>\n<p><\/body><br \/>\n<\/html><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Product Hunt \u6bcf\u65e5\u70ed\u699c 2026-07-26 PH\u70ed\u699c | 2026-07-26 #1 Touch [&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-294","post","type-post","status-publish","format-standard","hentry","category-producthunt"],"_links":{"self":[{"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/posts\/294","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=294"}],"version-history":[{"count":0,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/posts\/294\/revisions"}],"wp:attachment":[{"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/media?parent=294"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/categories?post=294"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/tags?post=294"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}