{"id":232,"date":"2026-05-25T12:54:45","date_gmt":"2026-05-25T04:54:45","guid":{"rendered":"https:\/\/ph.listeningo.cn\/index.php\/2026\/05\/25\/2026-05-24\/"},"modified":"2026-05-25T12:54:45","modified_gmt":"2026-05-25T04:54:45","slug":"2026-05-24","status":"publish","type":"post","link":"https:\/\/ph.listeningo.cn\/index.php\/2026\/05\/25\/2026-05-24\/","title":{"rendered":"PH\u70ed\u699c | 2026-05-24"},"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-05-24<\/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-05-24<\/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\/2WIQLRJ4DNSJF5\" class=\"app-title\">Stitch 3.0 by Google<\/a><\/p>\n<div class=\"one-liner\">Generate and iterate UI screens with AI on a live canvas<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">406<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Stitch 3.0 \u662f\u4e00\u6b3e\u901a\u8fc7\u6587\u672c\u63d0\u793a\u5728\u5b9e\u65f6\u753b\u5e03\u4e0a\u751f\u6210\u5e76\u8fed\u4ee3\u79fb\u52a8\u7aef\u548c Web UI \u754c\u9762\u7684 AI \u5de5\u5177\uff0c\u89e3\u51b3\u4e86\u4ea7\u54c1\u8bbe\u8ba1\u5e08\u548c\u5f00\u53d1\u8005\u5feb\u901f\u539f\u578b\u8bbe\u8ba1\u65f6\u7f3a\u4e4f\u4e0a\u4e0b\u6587\u611f\u77e5\u3001\u65e0\u6cd5\u4e0e\u73b0\u6709\u4ee3\u7801\u5e93\u6216\u8bbe\u8ba1\u7cfb\u7edf\u8854\u63a5\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\/d6a442ee-346a-47a2-8b88-ae597db9c773.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b47efd33-d635-4c68-ab9b-c817052483aa.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\/6fd44ca6-85a0-4f4f-986d-2cce088f6b13.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\/592d432e-1eaf-4280-9543-bdbdd78ea233.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\/39a5d415-1d08-439f-a9a9-e20039f2041a.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/kov6yVmohjQ\"><source src=\"https:\/\/youtu.be\/kov6yVmohjQ\" 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\">Design Tools<\/span><br \/>\n            <span class=\"tag\">User Experience<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u8bbe\u8ba1\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">UI\u751f\u6210<\/span><br \/>\n            <span class=\"tag\">Figma\u5bfc\u51fa<\/span><br \/>\n            <span class=\"tag\">\u539f\u578b\u8bbe\u8ba1<\/span><br \/>\n            <span class=\"tag\">Google<\/span><br \/>\n            <span class=\"tag\">\u4ee3\u7801\u540c\u6b65<\/span><br \/>\n            <span class=\"tag\">MCP<\/span><br \/>\n            <span class=\"tag\">DESIGN.md<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u65f6\u7f16\u8f91<\/span><br \/>\n            <span class=\"tag\">\u4ea7\u54c1\u5f00\u53d1<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u9ad8\u5ea6\u8ba4\u53ef DESIGN.md \u4e0a\u4e0b\u6587\u5bfc\u5165\u529f\u80fd\uff0c\u8ba4\u4e3a\u5176\u89e3\u51b3\u4e86\u751f\u6210\u5de5\u5177\u201c\u80cc\u666f\u5931\u5fc6\u201d\u7684\u987d\u75be\uff1b\u4e3b\u8981\u7591\u95ee\u662f\u8be5\u6587\u4ef6\u80fd\u5426\u4ece\u73b0\u6709\u4ee3\u7801\u5e93\u81ea\u52a8\u751f\u6210\u3002\u6709\u7528\u6237\u62b1\u6028\u5207\u6362\u5230 Gemini 3.1 \u540e\u51fa\u73b0\u4e0d\u4e00\u81f4\u95ee\u9898\uff0c\u5e76\u6bd4\u8f83 Claude Design \u4e0e\u5f00\u6e90\u66ff\u4ee3\u65b9\u6848\uff1b\u53e6\u6709\u4eba\u53cd\u9988\u52a8\u753b\u529f\u80fd\u7591\u4f3c\u88ab\u79fb\u9664\uff0c\u4e14\u7ec4\u4ef6\u4e00\u81f4\u6027\u4e0e\u8bbe\u8ba1\u7cfb\u7edf\u63a8\u7406\u80fd\u529b\u5b58\u7591\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Google \u8fd9\u6b21\u62ff\u51fa\u7684 Stitch 3.0\uff0c\u6700\u806a\u660e\u7684\u6539\u52a8\u4e0d\u662f\u751f\u6210\u901f\u5ea6\uff0c\u800c\u662f\u201c\u6709\u8bb0\u5fc6\u201d\u3002\u5927\u591a\u6570 AI \u751f\u6210\u5de5\u5177\u5728\u8bbe\u8ba1\u5e08\u773c\u91cc\u50cf\u5931\u5fc6\u75c7\u60a3\u8005\u2014\u2014\u6bcf\u6b21\u7ed9\u51fa\u7684\u4e1c\u897f\u90fd\u8ddf\u73b0\u6709\u4ea7\u54c1\u6beb\u65e0\u5173\u7cfb\uff0c\u6ca6\u4e3a\u6602\u8d35\u7684\u8349\u56fe\u673a\u3002Stitch \u5f15\u5165\u7684 DESIGN.md \u6807\u51c6\uff0c\u76f8\u5f53\u4e8e\u7ed9 AI \u7684\u521b\u9020\u529b\u5957\u4e0a\u4e86\u54c1\u724c\u951a\u70b9\uff1a\u4f60\u4e0d\u9700\u8981\u5728\u751f\u6210\u51e0\u5341\u4e2a\u7248\u672c\u540e\u624b\u52a8\u6311\u9009\u4e0e\u89c6\u89c9\u8bed\u8a00\u5339\u914d\u7684\u90a3\u4e2a\uff0cAI \u4e00\u5f00\u59cb\u5c31\u77e5\u9053\u4f60\u7684\u989c\u8272\u3001\u7ec4\u4ef6\u548c\u95f4\u8ddd\u903b\u8f91\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u4ea7\u54c1\u7b56\u7565\u770b\uff0c\u8fd9\u663e\u7136\u662f\u4ece\u201cAI \u66ff\u4ee3\u8bbe\u8ba1\u5e08\u201d\u5411\u201cAI \u8fde\u63a5\u8bbe\u8ba1\u6d41\u7a0b\u201d\u7684\u5173\u952e\u8f6c\u8eab\u3002\u4e0e\u5176\u548c Figma\u3001Lovable\u3001Netlify \u7b49\u5de5\u5177\u62a2\u996d\u7897\uff0c\u4e0d\u5982\u505a\u4e00\u4e2a\u806a\u660e\u7684\u4e2d\u95f4\u5c42\u3002\u4e00\u4e2a MCP \u534f\u8bae\u6253\u901a\u4e86\u89c6\u89c9\u5230\u4ee3\u7801\u7684\u95ed\u73af\uff0c\u8ba9\u8bbe\u8ba1\u4fee\u6539\u4e0d\u4ec5\u80fd\u770b\uff0c\u8fd8\u80fd\u76f4\u63a5\u540c\u6b65\u56de\u4ee3\u7801\u4ed3\u5e93\u3002\u8fd9\u5bf9\u90a3\u4e9b\u5728 AI Coding Agent \u548c\u4f20\u7edf\u8bbe\u8ba1\u5de5\u5177\u95f4\u53cd\u590d\u6a2a\u8df3\u7684\u5f00\u53d1\u8005\u6765\u8bf4\uff0c\u662f\u4e00\u79cd\u75db\u82e6\u7684\u7ec8\u7ed3\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u522b\u6025\u7740\u5c01\u795e\u3002\u8bc4\u8bba\u533a\u7684\u9690\u5fe7\u5341\u5206\u5c16\u9510\uff1a\u5f53 Stitch \u91c7\u7528\u4e0d\u540c\u7684\u5e95\u5c42\u6a21\u578b\uff08\u4ece Gemini Pro 3.0 \u5230 3.1\uff09\uff0c\u8d28\u91cf\u7adf\u7136\u51fa\u73b0\u4e86\u660e\u663e\u6ed1\u5761\uff0c\u8fd9\u66b4\u9732\u4e86\u4f5c\u4e3a\u201c\u5de5\u5177\u201d\u5bf9 AI \u6a21\u578b\u72b6\u6001\u7684\u9ad8\u5ea6\u4f9d\u8d56\u3002\u4e00\u65e6 Google \u81ea\u5bb6\u6a21\u578b\u8fed\u4ee3\u7ffb\u8f66\uff0c\u6574\u4e2a\u8bbe\u8ba1\u4ea7\u51fa\u7684\u7a33\u5b9a\u6027\u5c31\u968f\u4e4b\u5d29\u574f\u3002\u53e6\u5916\uff0cDESIGN.md \u7a76\u7adf\u662f\u81ea\u52a8\u63d0\u53d6\u8fd8\u662f\u4eba\u5de5\u7ef4\u62a4\uff1f\u6ca1\u6709\u4e00\u4e2a\u6e05\u6670\u7684\u65b9\u6848\uff0c\u8fd9\u53c8\u6210\u4e86\u9ad8\u95e8\u69db\u7684\u201c\u5143\u8bbe\u8ba1\u201d\u4efb\u52a1\uff0c\u5bf9\u975e\u6280\u672f\u8bbe\u8ba1\u5e08\u5e76\u4e0d\u53cb\u597d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                Stitch 3.0 \u63d0\u4f9b\u4e86\u4e00\u4e2a\u96be\u5f97\u7684\u6b63\u786e\u65b9\u5411\u2014\u2014\u7528\u6807\u51c6\u7ea6\u675f AI \u7684\u75af\u72c2\u60f3\u8c61\uff0c\u4f46\u5b83\u76ee\u524d\u7684\u5730\u4f4d\u66f4\u50cf\u662f\u201c\u9ad8\u7ea7\u7684\u7cca\u5f04\u6a21\u677f\u201d\uff0c\u800c\u975e\u53ef\u843d\u5730\u7684\u8bbe\u8ba1\u7cfb\u7edf\u3002\u4e00\u4e2a\u5de5\u5177\u7684\u4ef7\u503c\uff0c\u53d6\u51b3\u4e8e\u5b83\u79bb\u771f\u6b63\u7684\u751f\u4ea7\u73af\u5883\u6709\u591a\u8fd1\u3002\u4ece\u8fd9\u4e2a\u89d2\u5ea6\u770b\uff0c3.0 \u8fc8\u51fa\u4e86\u4e00\u5927\u6b65\uff0c\u4f46\u4ecd\u6709\u51e0\u6b65\u8981\u8d70\u3002\u5bf9\u4e8e\u666e\u901a\u5feb\u901f\u539f\u578b\uff0c\u5b83\u591f\u7528\uff1b\u5bf9\u4e8e\u4e25\u8083\u8bbe\u8ba1\u56e2\u961f\uff0c\u5b83\u53ea\u80fd\u7b97\u4e2a\u806a\u660e\u7684\u8d77\u70b9\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Stitch 3.0 by Google<\/span>\n                <\/div>\n<div class=\"comment-content\">Stitch generates UI screens for mobile and web from text prompts, with streaming edits, in-place AI changes, and one-click export to Figma, Netlify, Lovable, and Bolt. For product designers and developers prototyping fast.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The part of this Stitch update that changes the workflow is the <a href=\"http:\/\/DESIGN.md\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">DESIGN.md<\/a> import, and it doesn&#8217;t get enough attention in the headline features.<\/p>\n<\/p>\n<p>Generative design tools have a consistent blind spot: they ignore everything you&#8217;ve already built. You prompt them, get a screen that looks nothing like your product, and spend the next hour reconciling tokens and components. Stitch now reads your existing codebase, Figma file, or live website before it generates anything, extracting your design language via an open standard called <a href=\"http:\/\/DESIGN.md\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">DESIGN.md<\/a>. The output starts from your context, not from scratch.<\/p>\n<\/p>\n<p>Paired with the rest of the I\/O update:<\/p>\n<ul>\n<li>\n<p>Streaming generation with live steering before the screen is finished<\/p>\n<\/li>\n<li>\n<p>In-place edits for element-level changes without full regeneration<\/p>\n<\/li>\n<li>\n<p>HTML-native canvas with real animation and interactive state previews<\/p>\n<\/li>\n<li>\n<p>MCP-based codebase sync to push visual edits back to your code via an agent<\/p>\n<\/li>\n<li>\n<p>Export to Figma, Netlify, Lovable, and Bolt in one click<\/p>\n<\/li>\n<\/ul>\n<p>Built for developers and product builders using AI coding agents who need a design layer that connects to their codebase rather than creating a parallel one.<\/p>\n<\/p>\n<p>Free in Google Labs with generation limits. Give it a go at <a href=\"http:\/\/stitch.withgoogle.com\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">stitch.withgoogle.com<\/a>. <\/p>\n<\/p>\n<p>P.S. I hunt the latest and greatest launches in tech, SaaS and AI, follow to be notified <strong>\u2192<\/strong> <a href=\"https:\/\/www.producthunt.com\/@rohanrecommends\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rohanrecommends<\/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\/@rohanrecommends\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rohanrecommends<\/a>&nbsp;<\/p>\n<p>The <a href=\"http:\/\/DESIGN.md\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">DESIGN.md<\/a> approach is interesting \u2014 it solves the &#8220;context blindness&#8221; problem most generative design tools have.<\/p>\n<p>Out of curiosity: does Stitch generate the <a href=\"http:\/\/DESIGN.md\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">DESIGN.md<\/a> file automatically from an existing codebase, or does the developer need to write\/maintain it manually?<\/p>\n<p>Either way, this + the MCP export finally makes AI-generated design usable in real projects. Smart update.<\/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\">Is 3.0 as good as Claude Design?<\/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\/@lakshminath_dondeti\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@lakshminath_dondeti<\/a>&nbsp;not even close<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@lakshminath_dondeti\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@lakshminath_dondeti<\/a>&nbsp;Claude design uses so much credits, I recommend using open design, it is locally run and unlimited<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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 how Stitch MCP works with Antigravity &#8211; I can finally get consistent design done. <\/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\">hello<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Did you remove the ability to make animations?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\">hello<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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 how Hatter handles component consistency when the sketch input is ambiguous \u2014 does it infer a design system automatically, or does the user need to define tokens upfront?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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 cancelled hiring a web designer and a front-end developer- but I do have my visual identity and brand assets carefully and intentionally designed<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\">hello<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>It&#8217;s great to see stitch becoming better. I started my career from design and started using stitch time after time, since it launched. <br \/>I really liked the tool until it was on Gemini Pro 3.0 and when it started using 3.1, there were issues and inconsistencies and that&#8217;s when i moved to claude design.<\/p>\n<p>I&#8217;ll give it a go again and hope for the best, congrats to the whole 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\">hello<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>tried a few generations and the speed is impressive. I can see this being genuinely useful for rough ideation, especially when you want to explore layouts quickly even for zero UI\/UX experience user.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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>Already used Stitch for one of my websites and honestly had zero UI UX experience going in. The results were good enough that people actually complimented the design without knowing it was AI generated. Version 3.0 with live canvas and in-place edits sounds even better. This is the kind of tool that makes you look like you know what you are doing even when you don\u2019t.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#2<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/VKVZCCO3WNW46P\" class=\"app-title\">ModelHub<\/a><\/p>\n<div class=\"one-liner\">The missing menu bar app for local LLMs on Mac.<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">263<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>ModelHub \u662f\u4e00\u6b3e macOS \u83dc\u5355\u680f\u5e94\u7528\uff0c\u4e13\u4e3a\u5f00\u53d1\u8005\u8bbe\u8ba1\uff0c\u7528\u4e8e\u5728\u672c\u5730\u7ba1\u7406 Hugging Face \u4e0a\u7684\u5927\u8bed\u8a00\u6a21\u578b\uff0c\u89e3\u51b3\u6a21\u578b\u53d1\u73b0\u3001\u4e0b\u8f7d\u3001\u683c\u5f0f\u7ba1\u7406\u4ee5\u53ca\u4e0e Ollama\u3001MLX\u3001LM Studio \u7b49\u5de5\u5177\u95f4\u6d41\u7a0b\u788e\u7247\u5316\u3001\u9700\u8981\u9891\u7e41\u5728\u6d4f\u89c8\u5668\u548c\u7ec8\u7aef\u95f4\u5207\u6362\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\/b25678cd-2051-4c3b-9354-42dc1ba7c955.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/c99df430-5856-4a4f-9080-22768bba6ec0.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/3aa31f07-0fc2-468a-a0ac-e92137d3dbf9.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\/15de7681-5c75-47b8-93c1-e288f5f0b60b.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/2ArGl1ojCpA\"><source src=\"https:\/\/youtu.be\/2ArGl1ojCpA\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Open Source<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">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\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730LLM\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">Hugging Face\u96c6\u6210<\/span><br \/>\n            <span class=\"tag\">\u6a21\u578b\u53d1\u73b0\u4e0e\u4e0b\u8f7d<\/span><br \/>\n            <span class=\"tag\">\u6a21\u578b\u5e93\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">Ollama<\/span><br \/>\n            <span class=\"tag\">MLX<\/span><br \/>\n            <span class=\"tag\">LM Studio<\/span><br \/>\n            <span class=\"tag\">llama.cpp<\/span><br \/>\n            <span class=\"tag\">AI\u5f00\u53d1\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\u80af\u5b9a\u201cRuns on this Mac\u201d\u786c\u4ef6\u517c\u5bb9\u6027\u68c0\u67e5\u7684\u5b9e\u7528\u6027\u3002\u6838\u5fc3\u9700\u6c42\u5305\u62ec\uff1a\u4e0b\u8f7d\u524d\u663e\u793a\u8bb8\u53ef\u8bc1\u3001\u4e0a\u4e0b\u6587\u957f\u5ea6\u3001VRAM\u5360\u7528\u7b49\u5143\u6570\u636e\uff1b\u6a21\u578b\u53bb\u91cd\uff1b\u8ddf\u8e2a\u4f7f\u7528\u9891\u7387\u4ee5\u6e05\u7406\u65e7\u6a21\u578b\uff1b\u8bb0\u5f55\u6a21\u578b\u7684\u4f7f\u7528\u53c2\u6570\u548c\u8868\u73b0\uff1b\u6309\u91cf\u5316\u683c\u5f0f\/\u5546\u4e1a\u8bb8\u53ef\u8fc7\u6ee4\uff1b\u5e0c\u671b\u589e\u52a0\u9488\u5bf9Mac\u786c\u4ef6\u7684\u6a21\u578b\u63a8\u8350\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                ModelHub \u5207\u4e2d\u4e86\u4e00\u4e2a\u5fae\u5999\u4f46\u771f\u5b9e\u7684\u75db\u70b9\uff1a\u672c\u5730\u5927\u6a21\u578b\u751f\u6001\u7684\u201c\u5de5\u5177\u94fe\u867d\u597d\uff0c\u4f46\u65e0\u4e2d\u67a2\u201d\u3002Ollama\u3001MLX\u3001LM Studio \u5404\u81ea\u4e3a\u653f\uff0c\u6a21\u578b\u6587\u4ef6\u6563\u843d\u5728 Hugging Face Cache \u548c\u672c\u5730\u6587\u4ef6\u5939\u4e2d\uff0c\u5f00\u53d1\u8005\u5f80\u5f80\u6ca6\u4e3a\u201c\u6a21\u578b\u642c\u8fd0\u5de5\u201d\u3002ModelHub \u7684\u806a\u660e\u4e4b\u5904\u5728\u4e8e\uff0c\u5b83\u6ca1\u6709\u8bd5\u56fe\u518d\u9020\u4e00\u4e2a\u201c\u5f15\u64ce\u201d\uff0c\u800c\u662f\u626e\u6f14\u4e00\u4e2a\u8c03\u5ea6\u4e0e\u7ba1\u5bb6\u7684\u89d2\u8272\uff0c\u8fd9\u5728\u5de5\u5177\u7206\u70b8\u7684 AI \u65f6\u4ee3\u662f\u6781\u5177\u5546\u4e1a\u903b\u8f91\u7684\u5207\u5165\u2014\u2014\u63a7\u5236\u201c\u5c42\u201d\u6bd4\u63a7\u5236\u201c\u70b9\u201d\u66f4\u6709\u4ef7\u503c\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ea7\u54c1\u76ee\u524d\u7684\u6838\u5fc3\u4ef7\u503c\u5728\u4e8e\u201c\u805a\u5408\u4e0e\u7b5b\u9009\u201d\uff0c\u5c24\u5176\u662f\u201cRuns on this Mac\u201d\u8fd9\u6837\u7684\u529f\u80fd\uff0c\u7cbe\u51c6\u51fb\u4e2d\u4e86 Mac \u7528\u6237\u53d7\u9650\u4e8e\u663e\u5b58\u548c\u82af\u7247\u5dee\u5f02\u7684\u7126\u8651\u3002\u7136\u800c\uff0c\u5b83\u7684\u4ef7\u503c\u5929\u82b1\u677f\u53d6\u51b3\u4e8e\u6267\u884c\u529b\u3002\u8bc4\u8bba\u4e2d\u63d0\u5230\u7684\u201c\u8bb8\u53ef\u8bc1\u8fc7\u6ee4\u201d\u3001\u201c\u6a21\u578b\u53bb\u91cd\u201d\u3001\u201c\u91cf\u5316\u683c\u5f0f\u667a\u80fd\u63a8\u8350\u201d\u5e76\u975e\u7b80\u5355\u529f\u80fd\uff0c\u800c\u662f\u5bf9\u5e95\u5c42\u6a21\u578b\u5143\u6570\u636e\u7684\u7ed3\u6784\u5316\u89e3\u6790\u80fd\u529b\u3002\u5982\u679c ModelHub \u53ea\u505c\u7559\u5728\u201c\u6a21\u578b\u6587\u4ef6\u5939\u9884\u89c8\u5668\u201d\u7684\u5c42\u9762\uff0c\u90a3\u4e48\u5b83\u5f88\u5feb\u5c31\u4f1a\u88ab Ollama \u6216 LM Studio \u81ea\u8eab\u7684\u589e\u5f3a\u529f\u80fd\u6240\u8986\u76d6\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5176\u771f\u6b63\u7684\u62a4\u57ce\u6cb3\u5728\u4e8e\u4e24\u70b9\uff1a\u4e00\u662f\u6210\u4e3a\u201c\u672c\u5730\u6a21\u578b\u7684\u884c\u4e3a\u6570\u636e\u5165\u53e3\u201d\uff0c\u80fd\u8ffd\u8e2a\u7528\u6237\u8fd0\u884c\u4e86\u54ea\u4e2a\u6a21\u578b\u3001\u7528\u4e86\u4ec0\u4e48\u53c2\u6570\u3001\u8868\u73b0\u5982\u4f55\uff08\u5982\u8bc4\u8bba\u4e2d\u7528\u6237\u8981\u6c42\u7684\u201c\u505a\u7b14\u8bb0\u201d\uff09\uff0c\u8fdb\u800c\u6f14\u53d8\u4e3a\u4e00\u4e2a\u57fa\u4e8e\u672c\u5730\u56de\u8def\u7684\u201c\u6a21\u578b\u63a8\u8350\u5f15\u64ce\u201d\uff1b\u4e8c\u662f\u5efa\u7acb\u8d77\u8de8\u5de5\u5177\u7684\u8fd0\u884c\u8c03\u7528\u534f\u8bae\uff0c\u8ba9\u7528\u6237\u65e0\u9700\u5173\u5fc3\u6a21\u578b\u5728 Ollama \u8fd8\u662f MLX \u4e0b\u8fd0\u884c\uff0c\u5b9e\u73b0\u771f\u6b63\u900f\u660e\u7684\u201c\u4e00\u6b21\u4e0b\u8f7d\uff0c\u591a\u5904\u8fd0\u884c\u201d\u3002\u76ee\u524d\u7684\u4ea7\u54c1\u4ecd\u5904\u4e8e\u201c\u5de5\u5177\u201d\u9636\u6bb5\uff0c\u8ddd\u79bb\u201c\u5e73\u53f0\u201d\u8fd8\u6709\u8ddd\u79bb\u3002\u5efa\u8bae\u56e2\u961f\u4f18\u5148\u89e3\u51b3\u6700\u5c16\u9510\u7684\u201c\u7a7a\u95f4\u7ba1\u7406\u201d\uff08\u53bb\u91cd\u3001\u6e05\u7406\uff09\u548c\u201c\u4fe1\u606f\u9884\u5224\u201d\uff08\u8bb8\u53ef\u8bc1\u3001\u89c4\u683c\uff09\u95ee\u9898\uff0c\u8fd9\u662f\u8ba9\u7528\u6237\u613f\u610f\u6bcf\u6b21\u90fd\u4ece\u83dc\u5355\u680f\u70b9\u5f00\u5b83\u7684\u5173\u952e\u3002\u5426\u5219\uff0c\u5b83\u53ef\u80fd\u53ea\u662f\u4e00\u4e2a\u597d\u770b\u7684\u4e66\u7b7e\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\">ModelHub<\/span>\n                <\/div>\n<div class=\"comment-content\">ModelHub is a native macOS menu bar app for developers working with local LLMs. It helps you discover models from Hugging Face, download the right local build, manage your model library, and use Hugging Face models with Ollama, MLX, LM Studio, llama.cpp, and the tools you already have without bouncing between browser tabs, terminal commands, model cards, and local folders. Ollama, MLX, and LM Studio are great tools. ModelHub is the missing discovery and management layer around them.<\/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>We built ModelHub because local AI on Mac is getting good fast but the<br \/>\nworkflow around models still feels scattered.<\/p>\n<p>Ollama makes running local models simple. MLX makes Apple Silicon a stronger platform for inference. LM Studio gives people a great local model workspace. Hugging Face has the model ecosystem.<\/p>\n<p>But as developers, we kept running into the same problem:<\/p>\n<p>Finding the right model, checking the right format, downloading it, remembering what was installed, switching between Ollama, MLX, LM Studio, Hugging Face, and local folders, and keeping everything organized still involved too many tabs, terminal commands, and disconnected tools.<\/p>\n<p>So we built ModelHub: a native macOS menu bar app for discovering, downloading, and managing local LLMs from Hugging Face, then using them with Ollama, MLX, LM Studio, llama.cpp, and the tools you already use.<\/p>\n<p>It is not trying to replace Ollama, MLX, LM Studio, or llama.cpp.<\/p>\n<p>It is meant to sit beside them.<\/p>\n<p>Think of it as the missing model manager for your local AI setup.<\/p>\n<p>We\u2019d love feedback from:<\/p>\n<p>&#8211; Developers running models locally on Mac<br \/>\n&#8211; Ollama users<br \/>\n&#8211; LM Studio users<br \/>\n&#8211; MLX \/ Apple Silicon builders<br \/>\n&#8211; People testing coding models locally<br \/>\n&#8211; Anyone who has too many model files sitting in random folders<\/p>\n<p>Specific feedback we\u2019re looking for:<\/p>\n<p>1. What model metadata matters most before downloading?<br \/>\n2. Should we prioritize Ollama, MLX, LM Studio, or all workflows equally?<br \/>\n3. What would make this useful enough to keep in your menu bar app every day?<\/p>\n<p>Thanks for checking it out. We\u2019ll be in the comments all day.<\/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<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on the launch! Having one place to manage across Ollama, MLX, and llama.cpp is something I&#8217;ve been doing by hand for too long. Gonna give this a try.<\/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\/@fberrez1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@fberrez1<\/a>&nbsp;Awesome &#8211; do try us and let us know how you like it! Happy to hear 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>The &#8216;Runs on this Mac&#8217; feature for checking if a model can run on the hardware that I have is my favourite part! That&#8217;s usually the first thing I want to know before downloading some huge model. <\/p>\n<p>Two things I&#8217;d love to see: more pre-download details like license, context length, and RAM estimate, and a quick way to open the original Hugging Face model card from inside the app.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@mdsahilak\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mdsahilak<\/a>&nbsp;Oh you can click the model on explore tab to get to HF right away! We are thinking about adding stats like # of downloads \/ RAM estimate etc here. Thanks for your feedback!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@mdsahilak\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mdsahilak<\/a>&nbsp;+1 to the license point especially &#8211; we&#8217;ve seen a lot of users get bitten by downloading a model and then realising it&#8217;s non-commercial only. planning to flag that upfront on the card itself, probably alongside context length and quantization. open question for you: would you want a hard filter for it (&#8220;only show models I can use commercially&#8221;) or just info displayed?<\/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\">@deepanshi_mamgain yes, i think a similar filter next to the \u2018runs on this mac\u2019 would be good. So i can filter by both criteria.<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">I have lmstudio already and Unsloth and would like to share models across. <\/p>\n<p>What does this do then? Does this solve for what I am looking for?<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@lakshminath_dondeti\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@lakshminath_dondeti<\/a>&nbsp; If you already use LM Studio and Unsloth, ModelHub is not meant to replace them.<\/p>\n<p>The idea is to make the model layer easier to manage across tools.<\/p>\n<p>So instead of models being scattered across LM Studio, Hugging Face cache, manual folders, and different runtime formats, ModelHub helps you discover, download, and manage models in one place while keeping them usable with tools like LM Studio, Ollama, MLX, llama.cpp, etc.<\/p>\n<p>Curious: what are you trying to solve right now?<\/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\">@tushaarmehtaa A few things.<br \/>\n1) I would like to make notes on which model did well for a particular use case.<br \/>\n2) would like to store the context window, system prompt, and other parameters that worked well.<br \/>\n3) want to delete old models that I haven\u2019t used or because a better version maybe available to manage space better<br \/>\nThose are some notes off the top of my head. \ud83d\ude4f<\/div>\n<div class=\"comment-actions\">\n<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\">Now that I\u2019ve said, I might try to build this sometime soon. \ud83d\ude05<\/div>\n<div class=\"comment-actions\">\n<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>Quick one on storage &#8211; if I&#8217;ve already pulled Qwen 32B via Ollama and then discover it again in ModelHub, do you dedupe against the existing local file? Or do I end up with two copies eating 20GB? Well done guys overall<\/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;hey thanks for using! these are some problems we are actively trying to tackle. ideally &#8211; ModelHub should SURFACE issues like these for you to take actions! Thanks for feedback!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on the launch! \ud83d\ude80 Having one unified menu bar app to manage models across Ollama, LM Studio, and MLX makes organizing and discovering Hugging Face models way cleaner.<\/p>\n<p>The &#8220;Runs on this Mac&#8221; hardware checker sounds incredibly useful before committing to a massive download. Can&#8217;t wait to give this a spin!<\/p>\n<h3><\/h3>\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\/@kevin\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@kevin<\/a>&nbsp;Excited for you to try it out! Let me know if you there\u2019s some specific feature you want added!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@kevin\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@kevin<\/a> Really appreciate the support! Also glad the &#8216;managing the model layer&#8217; framing landed &#8211; that&#8217;s exactly the gap we wanted to fill. Would love your honest take once you try it 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<\/p><\/div>\n<\/p><\/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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@akhilbvs\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@akhilbvs<\/a>&nbsp;Thanks! Do try it out and let us know how you like it &#8211; happy to hear feedback!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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>Local LLMs via menu bar is the right UX switching between models shouldn&#8217;t require a browser tab. Does it handle model downloads itself or do you bring your own? Curious about the memory footprint running models in the background.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>Cool! Congrats on the launch<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I usually encounter more issues with how to quickly validate whether a model is suitable for your scenario after obtaining it, and whether there is corresponding code that can quickly verify and reduce the time spent trying one by one. I would like to know if your tool has such a function or scenario.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>Does ModelHub also track which models are actually being used so you can archive the ones you never run?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>Does ModelHub handle quantization format filtering during discovery \u2014 like surfacing only Q4_K_M builds based on available VRAM, or is model selection still manual?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I like that this isn\u2019t trying to become another LM Studio or Ollama replacement. Simpler UI to just manage my local LLMs.<\/p>\n<p>Was that an intentional product call from day one? Also, do you see this becoming more recommendation-driven, like \u201cbest models for your Mac\u201d based on chip\/memory?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@mayank_thakur8\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mayank_thakur8<\/a>&nbsp;yes, it was intentional \ud83d\ude42<\/p>\n<\/p>\n<p>and i think in the next version we\u2019ll probably add things like best models for your mac, models to try, and trending models.<\/p>\n<\/p>\n<p>really liked that approach and the feature suggestions you shared.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey folks! We built modelhub to manage your cluttered local models! Do check it out and give us valuable feedback! \ud83d\ude00<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/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\/OOZSQ3C37HINID\" class=\"app-title\">Freu AI<\/a><\/p>\n<div class=\"one-liner\">Automate any Mac app with $0 recurring run cost<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">247<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Freu AI \u662f\u4e00\u6b3e Mac \u4e0a\u7684 AI \u81ea\u52a8\u5316\u52a9\u624b\uff0c\u901a\u8fc7\u201c\u4e00\u6b21\u5f55\u5236\u3001\u96f6\u6210\u672c\u91cd\u590d\u6267\u884c\u201d\u7684\u65b9\u5f0f\uff0c\u8ba9\u7528\u6237\u7528\u81ea\u7136\u8bed\u8a00\u8de8\u5e94\u7528\u64cd\u63a7\u684c\u9762\u8f6f\u4ef6\uff0c\u5f7b\u5e95\u89e3\u51b3\u4f20\u7edf RPA \u8106\u5f31\u548c\u4e91\u7aef AI token \u6210\u672c\u9ad8\u6602\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\/f6a65cbf-f1bb-4f8f-a1a6-f58cf0cf3680.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/24c43d3c-54ff-481b-9678-f5c9d3031ab6.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/68964a60-0f0c-446a-87dd-ac92d82c78ae.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\/a23e6352-1ed2-4d2d-9516-b97581c8ebc4.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/UbeIAYQfIyk\"><source src=\"https:\/\/youtu.be\/UbeIAYQfIyk\" 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\">GitHub<\/span><br \/>\n            <span class=\"tag\">Business Intelligence<\/span><br \/>\n            <span class=\"tag\">Marketing automation<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">Mac\u684c\u9762\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u96f6\u6210\u672c\u6267\u884c<\/span><br \/>\n            <span class=\"tag\">RPA\u66ff\u4ee3<\/span><br \/>\n            <span class=\"tag\">\u8bed\u4e49UI<\/span><br \/>\n            <span class=\"tag\">\u89c6\u89c9Agent<\/span><br \/>\n            <span class=\"tag\">\u5de5\u4f5c\u6d41\u7f16\u8bd1<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90CLI<\/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\u6838\u5fc3\u5173\u6ce8\u7a33\u5b9a\u6027\u548c\u5f02\u5e38\u5904\u7406\uff1a\u8be2\u95ee\u5de5\u4f5c\u6d41\u4e2d\u9014\u9047\u5230\u5f39\u7a97\u3001UI\u5e03\u5c40\u53d8\u5316\u80fd\u5426\u81ea\u52a8\u6062\u590d\u3002\u521b\u4e16\u4eba\u56de\u5e94\u627f\u8ba4\u5076\u53d1\u5f02\u5e38\u4f1a\u8c03\u4e91\u6a21\u578b\u4ea7\u751f\u5c0f\u6210\u672c\uff0c\u4f46\u5f3a\u8c03\u672c\u5730\u5f15\u64ce\u5373\u5c06\u89e3\u51b3\u3002\u591a\u6570\u7528\u6237\u8ba4\u53ef\u201c\u4e00\u6b21\u7f16\u8bd1\u3001\u672c\u5730\u8fd0\u884c\u201d\u7684\u9ad8\u6027\u4ef7\u6bd4\u8def\u7ebf\uff0c\u5bf9\u96f6\u6267\u884c\u6210\u672c\u548c\u4f4e\u5ef6\u8fdf\u8868\u793a\u671f\u5f85\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Freu AI \u7684\u201cAOT\u7f16\u8bd1+\u8bed\u4e49UI\u201d\u7406\u8bba\u4e0a\u662f\u4e2a\u6f02\u4eae\u7684\u67b6\u6784\u6298\u4e2d\u2014\u2014\u5e76\u4e0d\u8bd5\u56fe\u8ba9AI\u6bcf\u6b21\u90fd\u201c\u770b\u201d\u5c4f\u5e55\uff0c\u800c\u662f\u8ba9\u6a21\u578b\u5f53\u4e00\u6b21\u7ffb\u8bd1\u5b98\uff0c\u628a\u89c6\u89c9\u7406\u89e3\u56fa\u5316\u6210\u672c\u5730\u53ef\u6267\u884c\u7684DSL\u3002\u8fd9\u4e2a\u8bbe\u8ba1\u7cbe\u51c6\u5730\u5207\u4e2d\u4e86\u5f53\u524d\u89c6\u89c9Agent\u4e24\u5927\u6b7b\u7a74\uff1a\u5929\u6587\u6570\u5b57\u7684token\u6d88\u8017\u548c\u65e0\u6cd5\u5fcd\u53d7\u7684\u5ef6\u8fdf\u3002\u4e00\u5200\u780d\u6389\u91cd\u590d\u6027\u4efb\u52a1\u7684\u8fd0\u884c\u6210\u672c\uff0c\u5bf9\u4e8e\u91cd\u5ea6\u8de8\u5e94\u7528\u6570\u636e\u642c\u8fd0\u8005\u800c\u8a00\uff0c\u786e\u5b9e\u662f\u201c\u6e38\u620f\u89c4\u5219\u6539\u53d8\u8005\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u5fc5\u987b\u6307\u51fa\uff0c\u4ea7\u54c1\u7684\u771f\u5b9e\u58c1\u5792\u4e0d\u5728\u4e8e\u201c\u806a\u660e\u7684\u67b6\u6784\u201d\uff0c\u800c\u5728\u4e8e\u201c\u6267\u884c\u5f15\u64ce\u5bf9UI\u8bed\u4e49\u7684\u7406\u89e3\u6709\u591a\u7a33\u5b9a\u201d\u3002\u8bc4\u8bba\u533a\u5df2\u7ecf\u66b4\u9732\u51fa\u4e24\u5927\u81f4\u547d\u95ee\u9898\uff1a\u4e00\u662f\u5f02\u5e38\u5f39\u7a97\u5904\u7406\u4ecd\u9700\u56de\u73af\u5230\u4e91\u7aef\uff0c\u8fd9\u5728\u516c\u5171\u6f14\u793a\u4e2d\u6781\u6613\u201c\u9732\u602f\u201d\uff1b\u4e8c\u662f\u201c\u8bed\u4e49UI\u201d\u80fd\u5426\u771f\u6b63\u5e94\u5bf9\u91cd\u5ea6\u3001\u9ad8\u9891\u7387\u7684\u8f6f\u4ef6\u66f4\u65b0\uff1f\u521b\u59cb\u56e2\u961f\u5ba3\u79f0\u201c\u6309\u94ae\u6362\u4e2a\u989c\u8272\u4e5f\u80fd\u8bc6\u522b\u201d\uff0c\u4f46\u5b9e\u9645\u4e0a\u56fe\u6807\u53d8\u5316\u3001\u5e03\u5c40\u91cd\u6784\u3001\u751a\u81f3App\u4ece\u539f\u751f\u53d8Electron\u90fd\u4f1a\u5bfc\u81f4\u8bed\u4e49\u951a\u70b9\u5931\u6548\u3002\u66f4\u73b0\u5b9e\u7684\u60c5\u51b5\u662f\uff0c\u7ef4\u62a4DSL\u7684\u7a33\u5b9a\u6027\u53ef\u80fd\u6bd4\u66ff\u6362X\/Y\u5750\u6807\u66f4\u590d\u6742\u2014\u2014\u4f60\u53ea\u662f\u628a\u8106\u5f31\u6027\u4ece\u201c\u5750\u6807\u201d\u8f6c\u79fb\u5230\u4e86\u201c\u8bed\u4e49\u8fb9\u754c\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u6b64\u5916\uff0c\u8fd9\u5957\u903b\u8f91\u672c\u8d28\u4e0a\u4ecd\u662f\u201c\u5f55\u5236-\u56de\u653e\u201d\u7684\u589e\u5f3a\u7248\uff0c\u800c\u975e\u771f\u6b63\u7684\u81ea\u4e3b\u667a\u80fd\u3002\u5b83\u64c5\u957f\u89c4\u6574\u7684\u3001\u53ef\u9884\u6d4b\u7684\u91cd\u590d\u52b3\u52a8\uff0c\u4f46\u9762\u5bf9\u975e\u7ed3\u6784\u5316\u3001\u591a\u53d8\u7684\u8de8\u8f6f\u4ef6\u6d41\u7a0b\uff08\u5982\u5904\u7406PDF\u4e2d\u975e\u56fa\u5b9a\u683c\u5f0f\u7684\u5b57\u6bb5\u518d\u586b\u5165\u4e0d\u540c\u8868\u5355\uff09\uff0c\u6050\u6015\u529b\u4e0d\u4ece\u5fc3\u3002Freu AI \u76ee\u524d\u6700\u5927\u7684\u4ef7\u503c\u5728\u4e8e\u7ed9\u201c\u54d1\u5df4\u201dRPA\u88c5\u4e0a\u4e00\u4e2a\u806a\u660e\u7684\u201c\u89c6\u89c9\u773c\u201d\u800c\u4e0d\u662f\u4e00\u4e2a\u4e07\u80fd\u5927\u8111\u3002\u5982\u679c\u5b83\u80fd\u5982\u671f\u4ea4\u4ed8\u672c\u5730\u8f7b\u91cf\u6a21\u578b\u5904\u7406\u5f02\u5e38\uff0c\u5e76\u5bf9UI\u8bed\u4e49\u5efa\u7acb\u4e00\u5957\u516c\u5f00\u7684\u3001\u5f00\u53d1\u8005\u53cb\u597d\u7684\u7ef4\u62a4\u673a\u5236\uff0c\u5b83\u5c31\u6709\u53ef\u80fd\u6210\u4e3a\u4f01\u4e1a\u7ea7\u81ea\u52a8\u5316\u94fe\u6761\u4e0a\u7684\u5173\u952e\u57fa\u7840\u8bbe\u65bd\u3002\u5426\u5219\uff0c\u5b83\u53ef\u80fd\u53ea\u662f\u53c8\u4e00\u4e2a\u6f14\u793a\u60ca\u8273\u4f46\u843d\u5730\u78d5\u7eca\u7684\u201c\u806a\u660e\u73a9\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\">Freu AI<\/span>\n                <\/div>\n<div class=\"comment-content\">Freu AI is an AI agent for Mac that automates any desktop app with natural language. It \u201csees\u201d your UI to compile a cross\u2011app workflow once, then runs it locally via a deterministic DSL\u2014no brittle coordinates\/selectors and no recurring token bills. Bonus: we\u2019re open\u2011sourcing freu-cli (our browser automation engine) today.<\/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 Charles, founder of Freu AI.<\/p>\n<p>A while back, we teased that we were working on extending our browser automation tech to the entire operating system. Today, we are officially launching Freu AI for Mac\u2014an AI agent that automates any desktop software across your OS using natural language.<\/p>\n<p>The Problem: Vision Agents are Too Expensive &amp; RPA is Too Brittle<br \/>We hit a massive wall with current GUI automation. Traditional RPA (AppleScript, rigid X\/Y coordinate clickers) breaks the moment you resize a window or an app updates its UI. On the flip side, modern multimodal agents (sending screenshots to cloud LLMs) scale terribly for repetitive tasks.<\/p>\n<p>Right now, most desktop agents operate like interpreters. Every time you ask it to &#8220;Extract data from this local PDF and enter it into Excel,&#8221; it takes a screenshot, sends it to the cloud, reasons about the visual layout, and clicks.<\/p>\n<p>The Traditional Cost: ~10k tokens (Image context) \u00d7 5 steps \u00d7 10 runs a day = ~500k tokens\/day just to navigate the exact same desktop UI, not to mention the unbearable latency.<\/p>\n<p>The Solution: AOT Compilation + Semantic UI (SUI)<br \/>Freu AI changes this by introducing Ahead-of-Time (AOT) compilation for OS-level tasks. Instead of the agent analyzing the screen from scratch every single time, you show it the cross-app workflow once.<\/p>\n<p>Freu AI uses a cloud vision-based model to &#8220;compile&#8221; that session into a deterministic, reusable DSL.<\/p>\n<p>The Freu Cost: You pay the cloud &#8220;AI reasoning&#8221; token cost once when the agent watches and learns your workflow. But for future runs? The agent simply invokes the pre-compiled DSL command locally. This drops your recurring execution costs to zero and reduces latency from minutes to seconds.<\/p>\n<p>How it works under the hood:<br \/>When you record a desktop workflow, our engine doesn&#8217;t just save a dumb macro. It uses Semantic UI (SUI) to understand the screen:<\/p>\n<p>Perceive: It recognizes buttons, text fields, and icons across any app.<\/p>\n<p>Resolve: It anchors to the semantic meaning of the UI, not rigid coordinates. If Spotify moves their &#8220;Play&#8221; button, Freu AI still finds it.<\/p>\n<p>Execute: It binds these visual anchor points into our DSL and executes them deterministically.<\/p>\n<p>\ud83c\udf81 The Open-Source Bonus:<br \/>While the Mac desktop app is our core product, we are open-sourcing freu-cli today\u2014our underlying DOM-based browser automation engine. You can drop it into your own agents to give them instant &#8220;muscle memory&#8221; for web tasks. Repo here: <a href=\"https:\/\/github.com\/freu-ai\/freu-cli\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/github.com\/freu-ai\/freu-cli<\/a><\/p>\n<p>\ud83d\udd2e What\u2019s Next: The Local Vision Execution Engine<br \/>We are relentlessly upgrading our stack. Very soon, we will launch a capability to run the execution phase using a lightweight, SUI-optimized vision model running entirely locally on your hardware. While we will always rely on powerful cloud LLMs to understand your complex intent during the initial &#8220;learning&#8221; phase, this upcoming local engine means your day-to-day repetitive executions will cost exactly zero API tokens and keep your real-time screen data 100% private.<\/p>\n<p>We\u2019d love for you to try Freu AI for Mac. I\u2019d love to hear your feedback on our AOT approach or how you&#8217;re currently handling repetitive cross-app tasks. My co-founders and I will be hanging out in the comments all day to answer your questions! \ud83d\ude80<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>5<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Quick question, can it handle when things go wrong mid-workflow? Like if a dialog pops up unexpectedly, does it know how to recover or does it just brick?<br \/>All the best team <\/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\/@boyuan_deng1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@boyuan_deng1<\/a>&nbsp;Great question! This is the exact edge case that separates real engineering from demo-ware.<\/p>\n<\/p>\n<p>Here is the honest current state: If a random dialog pops up, our engine fails gracefully\u2014it pauses safely instead of blindly clicking X\/Y coordinates like traditional RPA. To automatically recover from this right now, it has to temporarily route that unexpected frame to a cloud model to understand the dialog (e.g., clicking &#8220;Dismiss&#8221;). So yes, handling sudden anomalies <em>does<\/em> incur a small, extra cloud token cost today.<\/p>\n<\/p>\n<p>But this is exactly why we are relentlessly building our local vision engine. Very soon, we will ship a lightweight local model that can understand and dismiss these unexpected popups entirely offline. Once that&#8217;s live, even the anomaly recovery will drop back to exactly zero API cost.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>What kinds of apps does it work best with right now, native macOS apps or web apps in the browser?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Compiling workflows once via a deterministic DSL and skipping LLM calls at runtime is a smart tradeoff. We&#8217;ve hit exactly this problem at RetainSure: brittle selectors break on every UI update and token costs add up fast. This architectural choice solves both at once. How does freu-cli handle mid-execution interrupts? If a modal pops up, does it replan via LLM or does the DSL have recovery logic baked in?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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 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\/@madalina_barbu\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@madalina_barbu<\/a>&nbsp;Thank you,  Madalina!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>As someone who spends 2 hours a day moving data between apps, if this actually works I&#8217;m installing it right now. The zero-cost execution is the game changer.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@abod_rehman\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@abod_rehman<\/a>&nbsp;This is exactly who we built Freu AI for! 2 hours a day adds up to over 500 hours a year of pure torture.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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 best part for me is not having the agent re-read the same UI every time. If a workflow is repeated daily, teaching it once and running it locally sounds way more practical and I&#8217;d mainly want to see how it handles small layout changes after app updates.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@busra_seker1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@busra_seker1<\/a>&nbsp;Spot on! That recurring cost and latency is exactly why we went the AOT route. \ud83d\ude80<\/p>\n<p>Regarding layout changes\u2014this is where our Semantic UI (SUI) engine shines. Because the compiled DSL doesn&#8217;t rely on rigid X\/Y coordinates or fragile DOM paths, it anchors to the <em>semantic meaning<\/em> and visual context of the element. So if an app updates and moves a button slightly to the left, changes its color, or shifts a container, the local vision engine still easily resolves it. (Of course, if they completely redesign the entire app workflow, you&#8217;d just do a quick re-compile!).<\/p>\n<p>Would love for you to put it to the test!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Pretty simple but a very cool approach, also awaiting local vision engine!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@abhisheksrivastava\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@abhisheksrivastava<\/a>&nbsp;Hey Abhishek, thanks so much! &#8220;Simple but effective&#8221; is exactly what we were aiming for with the AOT compilation. Glad it resonated with you! \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<\/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\/LU4OSU7D6PY4QN\" class=\"app-title\">WhatCable<\/a><\/p>\n<div class=\"one-liner\">Know what your USB-C cable can really do<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">203<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>WhatCable\u80fd\u901a\u8fc7USB-C\u7ebf\u7f06\u8bc6\u522b\u5176\u771f\u5b9e\u901f\u5ea6\u3001\u5145\u7535\u529f\u7387\u548ce-marker\u6570\u636e\uff0c\u5e2e\u4f60\u5feb\u901f\u6392\u67e5\u8bbe\u5907\u5145\u7535\u6162\u3001\u5916\u8bbe\u5f02\u5e38\u7b49\u8fde\u63a5\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\/279ff549-912b-462d-9e33-d6c7e1a3d23d.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/93831679-d390-4d09-b8fd-d9dee7d30c75.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/13cdb477-d596-4bb2-9173-e0a89552842f.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/86112599-55a0-46c0-a1a6-95964e1b4a48.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\">Hardware<\/span><br \/>\n            <span class=\"tag\">Menu Bar Apps<\/span><br \/>\n            <span class=\"tag\">Apple<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">USB-C\u68c0\u6d4b<\/span><br \/>\n            <span class=\"tag\">\u5145\u7535\u529f\u7387\u6d4b\u8bd5<\/span><br \/>\n            <span class=\"tag\">\u7ebf\u7f06\u901f\u5ea6\u8bc6\u522b<\/span><br \/>\n            <span class=\"tag\">e-marker\u6570\u636e<\/span><br \/>\n            <span class=\"tag\">Mac\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u8fde\u63a5\u6545\u969c\u6392\u67e5<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u7528\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5229\u5668<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u8ba4\u53ef\u5176\u89e3\u51b3USB-C\u7ebf\u7f06\u6df7\u4e71\u7684\u75db\u70b9\uff0c\u5efa\u8bae\u63a8\u51faAndroid\u548ciOS\u7248\u672c\uff1b\u591a\u6570\u8bc4\u8bba\u8be2\u95ee\u662f\u5426\u4ec5\u652f\u6301Mac\uff1b\u6709\u7528\u6237\u5e0c\u671b\u7528\u4e8eiPhone\/iPad\uff1b\u53cd\u9988\u6b63\u9762\uff0c\u8ba4\u4e3a\u80fd\u7ec8\u7ed3\u201c\u731c\u7ebf\u201d\u7684\u70e6\u607c\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                WhatCable\u7cbe\u51c6\u51fb\u4e2d\u4e86USB-C\u65f6\u4ee3\u201c\u7ebf\u7f06\u9ed1\u7bb1\u201d\u8fd9\u4e00\u9690\u75db\u3002\u5f53\u63a5\u53e3\u7edf\u4e00\u540e\uff0c\u7528\u6237\u9762\u5bf9\u7684\u5374\u662f\u4e00\u5806\u5916\u89c2\u76f8\u540c\u3001\u6027\u80fd\u8fe5\u5f02\u7684\u7ebf\u7f06\uff0c\u800c\u4f20\u7edf\u7cfb\u7edf\u5bf9\u7ebf\u7f06\u4fe1\u606f\u7684\u5448\u73b0\u51e0\u4e4e\u4e3a\u96f6\u3002\u8be5\u5de5\u5177\u7684\u4ef7\u503c\u4e0d\u5728\u4e8e\u529f\u80fd\u590d\u6742\uff0c\u800c\u5728\u4e8e\u5b83\u5c06\u5e95\u5c42\u7535\u5b50\u6807\u8bb0\u6570\u636e\u8f6c\u5316\u4e3a\u4eba\u7c7b\u53ef\u8bfb\u7684\u201c\u7ed3\u8bba\u201d\u2014\u2014\u76f4\u63a5\u544a\u8bc9\u4f60\u74f6\u9888\u5728\u5145\u7535\u5668\u3001\u7ebf\u7f06\u8fd8\u662f\u8bbe\u5907\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u8bc4\u8bba\u770b\uff0c\u6838\u5fc3\u7528\u6237\u7fa4\uff08\u5f00\u53d1\u8005\u3001\u6570\u7801\u7231\u597d\u8005\u3001\u6280\u672f\u5c0f\u767d\uff09\u5bf9\u5176\u9700\u6c42\u9ad8\u5ea6\u4e00\u81f4\uff0c\u4f46\u201c\u4ec5\u9650Mac\u201d\u6210\u4e3a\u660e\u663e\u63a3\u8098\u3002\u5728Windows\u3001ChromeOS\u751a\u81f3Android\u4e0a\uff0cUSB-C\u7684\u6df7\u4e71\u540c\u6837\u5b58\u5728\uff0c\u751a\u81f3\u66f4\u751a\uff08\u5382\u5546\u5bf9\u6807\u51c6\u6267\u884c\u66f4\u4e0d\u7edf\u4e00\uff09\u3002\u82e5\u53ea\u505aMac\u7aef\uff0c\u672c\u8d28\u4e0a\u53ea\u662f\u586b\u8865\u4e86\u82f9\u679c\u7cfb\u7edf\u7684\u4fe1\u606f\u7f3a\u53e3\uff0c\u800c\u975e\u89e3\u51b3\u5168\u5e73\u53f0\u96be\u9898\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u53e6\u4e00\u6f5c\u5728\u98ce\u9669\u662f\uff1a\u968f\u7740USB-C\u667a\u80fd\u82af\u7247\u666e\u53ca\u4e0e\u7cfb\u7edf\u7ea7\u68c0\u6d4b\u589e\u5f3a\uff08\u5982iOS17\u5df2\u80fd\u663e\u793a\u5145\u7535\u8be6\u60c5\uff09\uff0c\u72ec\u7acb\u5de5\u5177\u7684\u5e02\u573a\u7a97\u53e3\u6216\u8bb8\u6709\u9650\u3002\u4e0d\u8fc7\u5f53\u524d\u9636\u6bb5\uff0c\u5b83\u4ecd\u662f\u6bcf\u4e2a\u6570\u7801\u7231\u597d\u8005\u5fc5\u5907\u7684\u201c\u6570\u5b57\u6e38\u6807\u5361\u5c3a\u201d\u2014\u2014\u4e0d\u8d35\u3001\u4e0d\u70ab\uff0c\u4f46\u6781\u5176\u7ba1\u7528\u3002\u771f\u6b63\u7684\u4ef7\u503c\u5728\u4e8e\uff1a\u8ba9\u7528\u6237\u4ece\u7384\u5b66\u731c\u6d4b\u8f6c\u5411\u6570\u636e\u5224\u5b9a\uff0c\u800c\u8fd9\u6b63\u662f\u5de5\u5177\u7c7bApp\u6700\u6734\u7d20\u7684\u80dc\u5229\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\">WhatCable<\/span>\n                <\/div>\n<div class=\"comment-content\">Why is my MacBook charging slowly? WhatCable shows USB-C cable speed, charging power, and e-marker data in plain English so you don&#8217;t have to guess.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hi everyone!<\/p>\n<p>Love small practical tools with a very clear pain point. <\/p>\n<p>Every USB-C cable looks the same, but some charge fast, some are slow, some handle displays, and some quietly break your setup.<\/p>\n<p>WhatCable makes that visible in plain English. It basically tells you whether the cable, charger, device, or Mac port is the problem, so you don\u2019t have to guess why your SSD is slow, your dock is acting weird, or your display refuses to work.<\/p>\n<p>Super handy stuff!<\/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\/@zaczuo\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@zaczuo<\/a>&nbsp;great \ud83d\ude03 \ud83d\udc4d  <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Cool project &#8211; need this for Android! <\/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>USB-C cable confusion is one of those problems that sounds trivial until you&#8217;re trying to figure out why your display isn&#8217;t working. Every developer has a drawer of mystery cables. Does it work on iOS too or Mac only?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Cool! only for mac?<\/div>\n<div class=\"comment-actions\">\n<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>That is really cool, Please tell me I can use this for my iPhone and iPad as well, by any chance <a href=\"https:\/\/www.producthunt.com\/@daz1uk\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"daz1uk\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@daz1uk<\/a>?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>I second this, such a tool would be amazing for iPhone.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This looks promising. I always have to call my husband to check the cable and figure out stuff. He knows all the USB cables and how fast it charges. To me, they look all the same. haha<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Definitely going to try it out! <\/p>\n<p>I&#8217;ve got a mess of cables to sort through, with some that are suspect. Now I can find out for sure!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Love it! As one of the folks who keeps &#8220;known good cables&#8221; separately from the rest of the flock.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\">That&#8217;s a cool idea, I struggled with this issue a few times before and wondered why my device was charging slower than usual.<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\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\/NIC3RMP2EUNMB6\" class=\"app-title\">Edgee Fallback Models<\/a><\/p>\n<div class=\"one-liner\">Claude Code that never stops<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">161<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Edgee Fallback Models \u662f\u4e00\u6b3e\u4e3a Claude Code \u7b49\u7f16\u7a0b\u52a9\u624b\u6253\u9020\u7684\u5907\u7528\u6a21\u578b\u8def\u7531\u5de5\u5177\uff0c\u5728 Anthropic \u670d\u52a1\u5b95\u673a\u3001\u901f\u7387\u9650\u5236\u6216\u8ba1\u5212\u989d\u5ea6\u8017\u5c3d\u65f6\uff0c\u81ea\u52a8\u65e0\u7f1d\u5207\u6362\u5230 Kimi\u3001Qwen \u7b49\u66ff\u4ee3\u6a21\u578b\uff0c\u786e\u4fdd\u5f00\u53d1\u8005\u7f16\u7801\u5de5\u4f5c\u4e0d\u4e2d\u65ad\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\/5e1ef19e-550f-4462-9f97-df7a27899196.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\/6c3ee3c7-b9d5-4a29-a2d1-85e97ac252b4.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/1b544a7d-4ebd-4163-9f6e-5dceef1f483e.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\/739d4d9c-18c7-49fa-94a6-885a7e53f43a.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=PISpFKavdwI\"><source src=\"https:\/\/www.youtube.com\/watch?v=PISpFKavdwI\" 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\">Software Engineering<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u7f16\u7801\u52a9\u624b<\/span><br \/>\n            <span class=\"tag\">\u6a21\u578b\u8def\u7531<\/span><br \/>\n            <span class=\"tag\">\u6545\u969c\u5207\u6362<\/span><br \/>\n            <span class=\"tag\">\u964d\u672c\u589e\u6548<\/span><br \/>\n            <span class=\"tag\">\u6a21\u578b\u517c\u5bb9\u5c42<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u4f1a\u8bdd\u4e0a\u4e0b\u6587\u538b\u7f29<\/span><br \/>\n            <span class=\"tag\">\u6a21\u578b\u94fe\u5f0f\u8c03\u7528<\/span><br \/>\n            <span class=\"tag\">\u4f01\u4e1a\u7ea7AI\u57fa\u7840\u8bbe\u65bd<\/span><br \/>\n            <span class=\"tag\">API\u4ee3\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\u6838\u5fc3\u75db\u70b9\u662f Claude Code \u9ad8\u5cf0\u671f\u901f\u7387\u9650\u5236\u53ca Anthropic \u989d\u5ea6\u524a\u51cf\u5bfc\u81f4\u5f00\u53d1\u4e2d\u65ad\u3002\u5173\u952e\u95ee\u9898\u96c6\u4e2d\u5728\uff1a\u5207\u6362\u6a21\u578b\u65f6\u4e0a\u4e0b\u6587\u662f\u5426\u5b8c\u6574\u4fdd\u7559\u300150%\u538b\u7f29\u5bf9\u957f\u4e0a\u4e0b\u6587\u8d28\u91cf\u7684\u5f71\u54cd\u3001\u4e0d\u540c\u6a21\u578b\u5de5\u5177\u8c03\u7528\uff08tool_use\uff09\u683c\u5f0f\u8f6c\u6362\u7684\u53ef\u9760\u6027\u3001\u662f\u5426\u652f\u6301\u81ea\u5b9a\u4e49\u94fe\u8def\u5907\u9009\u6a21\u578b\uff0c\u4ee5\u53ca\u6a21\u578b\u5207\u6362\u7684\u65e5\u5fd7\u900f\u660e\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                Edgee Fallback Models \u7cbe\u51c6\u8e29\u4e2d\u4e86 Anthropic \u5373\u5c06\u5b9e\u65bd\u7684\u4fe1\u7528\u989d\u5ea6\u524a\u51cf\u653f\u7b56\uff086\u670815\u65e5\u8d77\uff09\u6240\u5f15\u53d1\u7684\u7528\u6237\u6050\u614c\uff0c\u4ea7\u54c1\u53d1\u5e03\u65f6\u673a\u582a\u79f0\u201c\u5929\u65f6\u5730\u5229\u201d\u3002\u5176\u6838\u5fc3\u4ef7\u503c\u4e0d\u5728\u4e8e\u63d0\u4f9b\u53e6\u4e00\u4e2a\u201c\u66f4\u597d\u7684\u6a21\u578b\u201d\uff0c\u800c\u5728\u4e8e\u6784\u5efa\u4e86\u4e00\u4e2a**\u5f39\u6027\u7684\u6a21\u578b\u8def\u7531\u5c42**\u2014\u2014\u8fd9\u5728AI\u7f16\u7801\u5de5\u5177\u65e5\u76ca\u6210\u4e3a\u201c\u5361\u8116\u5b50\u201d\u57fa\u7840\u8bbe\u65bd\u7684\u5f53\u4e0b\uff0c\u662f\u4e00\u4e2a\u88ab\u4e25\u91cd\u4f4e\u4f30\u4f46\u521a\u9700\u6781\u9ad8\u7684\u57fa\u7840\u8bbe\u65bd\u7ea7\u4ea7\u54c1\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u6280\u672f\u5b9e\u73b0\u770b\uff0c\u521b\u59cb\u4eba\u5766\u8bda\u201c\u7ffb\u8bd1\u4e0d\u540c\u6a21\u578b\u95f4\u7684tool_use schema\u662f\u79d8\u5bc6\u6b66\u5668\u201d\uff0c\u8fd9\u6070\u6070\u662f\u4ea7\u54c1\u7684\u58c1\u5792\u6240\u5728\uff0c\u800c\u975e\u7b80\u5355\u7684API\u8f6c\u53d1\u3002\u771f\u6b63\u5177\u5907\u6df1\u5ea6\u7684\u529f\u80fd\u70b9\u5728\u4e8e\u5176**\u201c\u5168\u4f1a\u8bdd\u538b\u7f29+\u6a21\u578b\u5207\u6362\u201d**\u7684\u95ed\u73af\uff1a\u5728\u5207\u6362\u81f3\u5ec9\u4ef7\u6a21\u578b\u524d\uff0c\u5bf9\u5386\u53f2\u5bf9\u8bdd\u8fdb\u884c\u65e0\u635f\u538b\u7f29\u4ee5\u63a7\u5236token\u6d88\u8017\uff0c\u4ece\u800c\u8ba9\u5f00\u53d1\u8005\u65e2\u80fd\u7528Kimi\u6216Qwen\u8fd9\u7c7b\u6210\u672c\u6781\u4f4e\u7684\u6a21\u578b\u6765\u5b8c\u6210\u540e\u7eed\u4efb\u52a1\uff0c\u53c8\u4e0d\u4f1a\u4e22\u5931\u4e0a\u4e0b\u6587\u2014\u2014\u8fd9\u76f4\u63a5\u56de\u5e94\u4e86\u8bc4\u8bba\u4e2d\u7528\u6237\u5bf9\u201c\u5207\u6362\u540e\u4e0a\u4e0b\u6587\u4e22\u5931\u201d\u7684\u6838\u5fc3\u62c5\u5fe7\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u8be5\u4ea7\u54c1\u5b58\u5728\u4e24\u91cd\u9690\u5fe7\u3002\u5176\u4e00\uff0c**\u5e02\u573a\u7a97\u53e3\u98ce\u9669**\uff1a\u968f\u7740Amazon Bedrock\u3001Azure OpenAI\u7b49\u5e73\u53f0\u7eb7\u7eb7\u5185\u7f6e\u591a\u6a21\u578b\u8def\u7531\u80fd\u529b\uff0c\u4ea7\u54c1\u5b58\u5728\u88ab\u201c\u5e73\u53f0\u5316\u96c6\u6210\u201d\u8695\u98df\u7684\u53ef\u80fd\u3002\u5176\u4e8c\uff0c**\u4ee3\u7406\u5c42ROI\u5b58\u7591**\uff1a\u58f0\u79f0\u768450%\u538b\u7f29\u5728\u7ecf\u6d4e\u4e0a\u5f88\u8bf1\u4eba\uff0c\u4f46\u82e5\u9762\u5411\u4e2a\u4eba\u5f00\u53d1\u8005\uff0c\u6bcf\u6708$10-$20\u7684\u8ba2\u9605\u8d39\u662f\u5426\u771f\u80fd\u5bf9\u51b2\u6389Anthropic\u7684\u653f\u7b56\u6ce2\u52a8\u5e26\u6765\u7684\u6210\u672c\u51b2\u51fb\uff1f\u66f4\u8a00\u4e4b\uff0c\u5176\u771f\u6b63\u7684\u76ee\u6807\u5ba2\u6237\u5e94\u662f**SaaS\u521d\u521b\u56e2\u961f\u548c\u5185\u90e8DevOps\u5c0f\u7ec4**\u2014\u2014\u8fd9\u4e9b\u7fa4\u4f53\u4e0d\u80fd\u5fcd\u53d7\u201c\u5355\u70b9\u6545\u969c\u201d\uff0c\u4e14\u613f\u610f\u4e3a\u201c\u96f6\u4ee3\u7801\u4fee\u6539\u3001\u4e00\u952e\u5207\u6362\u81f3\u81ea\u6709Cloud\uff08Bedrock\/Vertex\/Azure\uff09\u201d\u7684\u4fbf\u6377\u6027\u652f\u4ed8\u6ea2\u4ef7\u3002\u81f3\u4e8e\u8bc4\u8bba\u4e2d\u63d0\u5230\u7684\u201c\u94fe\u5f0f\u8def\u7531\u201d\uff08\u5148\u514d\u8d39\u6a21\u578b\uff0c\u6700\u540e\u7528\u4ed8\u8d39\u7684\u5927\u6a21\u578b\u515c\u5e95\uff09\uff0c\u82e5\u771f\u80fd\u5b9e\u73b0\u81ea\u52a8\u5316\u7684\u6210\u672c-\u8d28\u91cf\u6743\u8861\u903b\u8f91\uff0c\u624d\u771f\u6b63\u8ba9\u8fd9\u6b3e\u5de5\u5177\u4ece\u201c\u5907\u7528\u65b9\u6848\u201d\u5347\u7ef4\u81f3\u201c\u667a\u80fd\u6210\u672c\u4f18\u5316\u5c42\u201d\u3002\u76ee\u524d\u6765\u770b\uff0c\u4ecd\u7f3a\u8fd9\u4e00\u4e1d\u7b97\u6cd5\u91ce\u5fc3\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\">Edgee Fallback Models<\/span>\n                <\/div>\n<div class=\"comment-content\">Your Claude Code session shouldn&#8217;t die when Anthropic goes down or your plan runs out. Edgee Fallback Models keeps coding assistants running by routing to alternative models like Kimi K2.6, Gemma, GLM, or Qwen when Claude is unavailable, rate-limited, or just too expensive. Or one-click fallback to your own Bedrock, Vertex, or Azure account. Same Claude Code, different backend, zero code changes. Built for teams that can&#8217;t afford to stop shipping.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey friends<\/p>\n<p>Sacha here, founder of <a href=\"https:\/\/www.producthunt.com\/products\/edgee\" data-node-type=\"mention\" data-mention-type=\"product\" data-mention-id=\"edgee\" target=\"_blank\" rel=\"noopener\">@Edgee<\/a> . <\/p>\n<p>Two weeks ago Anthropic announced that starting June 15, your programmatic Claude usage gets capped at a $20-$200 monthly credit pool. For heavy Claude Code users, that&#8217;s roughly a 25 to 40x cut in effective inference. <br \/>Same with Copilot that is moving to usage-based pricing June 1st.<\/p>\n<p>A lot of people are angry about it. I get it. But we&#8217;re builders, and the right answer to a market change is to ship better tools, not to complain.<\/p>\n<p>We started building Fallback Models the week before Anthropic&#8217;s announcement, after one too many Anthropic outages. The timing is now coincidentally perfect.<\/p>\n<p>Here&#8217;s what our Fallback Models feature does: <\/p>\n<p>\u2192 Anthropic down? Route to Kimi K2.6, GLM, Qwen, Gemma, or others.<\/p>\n<p>\u2192 Plan limit hit? Same thing, automatically.<\/p>\n<p>\u2192 Want to route always? Pick your model.<\/p>\n<p>You can also fall back to your own Bedrock, Vertex, or Azure account in one click. Same Claude Code on top, your cloud underneath, zero code changes.<\/p>\n<p>And it works the same with Copilot, Codex&#8230;<\/p>\n<p>How it fits with our other features:<\/p>\n<p>&#8211; <strong>Compression<\/strong>: use fewer tokens<\/p>\n<p>&#8211; <strong>Teams<\/strong>: see who uses tokens and on what<\/p>\n<p>&#8211; <strong>Fallback Models<\/strong>: keep working when your primary model can&#8217;t<\/p>\n<p>Fallback Models ships with our Team plan. The compression engine that powers all of it is free to try, no credit card.<\/p>\n<p>Two questions for you:<\/p>\n<p>&#8211; Which fallback models would you actually want to use?<\/p>\n<p>&#8211; What other failure modes should your coding assistant handle?<\/p>\n<p>Will be in comments all day \ud83d\ude4f<\/p>\n<p><a href=\"http:\/\/edgee.ai\/fallback-models\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">edgee.ai\/fallback-models<\/a><\/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\/@sachamorard\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sachamorard<\/a>&nbsp;bravo for this new launch &#8211; keep up the great work, keep launching<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>smart approach to a real pain point. the rate limiting on Claude Code during peak hours has killed my flow more times than id like to admit. curious how the token compression affects output quality though \u2014 does it handle long context windows well or is there a tradeoff with the 50% savings?<\/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\">Hello @ozandag. Good question. Token compression is deterministic and lossless. As it removes pollution, it does not alter the LLM result. But you know, the best way to check it is to try \ud83d\ude09<\/div>\n<div class=\"comment-actions\">\n<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\">@fmerian Love the &#8220;compress&#8221; part. Most fallback tools just switch models and you lose half the context.<\/p>\n<p>Do you recompress the conversation history before sending to Kimi\/Qwen, or do you keep the full context and let the model handle it?<\/p>\n<p>If this works well, it could cut my AI bill in half. Upvoted.<\/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\">@olivier_jury yep, the compression is made on the full conversation, at each request\u2026 and really fast \ud83d\ude09<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>4<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The auto-fallback when rate limits kick in is the part I always end up wiring by hand. 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>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\">@fberrez1 thank you very much. We had this problem in the team, so we fixed it \ud83d\ude09<\/div>\n<div class=\"comment-actions\">\n<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\/@fberrez1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@fberrez1<\/a>&nbsp; I had the same pain point. Built in is always better than a custom wrapper.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on the launch!! This solves a real issue for developers who can\u2019t afford downtime when Claude is rate limited or down. Keeping coding running with simple fallback models will make workflow feel more stable.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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 transparent proxy approach here is clever. Intercepting at the API layer means zero client changes, and that matters. We&#8217;ve burned time at RetainSure debugging failures partway through a session when Claude&#8217;s rate limits kicked in at the worst moments. How do you normalize tool_use schemas across models? Claude&#8217;s format doesn&#8217;t map cleanly to Qwen or Gemma, and that mismatch can quietly degrade agent output.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\">@anand_thakkar1 you pinpointed one of the most complicated part of our job. Translating an Anthropic request into a Qwen\/Kimi\u2026 compatible semantic, that\u2019s our secret sauce.<br \/>\nSorry, I have to keep it secret \ud83e\udd2b<\/div>\n<div class=\"comment-actions\">\n<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>Can we set the sequense of fallbacks? See, I&#8217;d love to give you a sequence of the LLMs I don&#8217;t pay for and then, last resort, OpenAI and Grok can squeeze the last of my life blood out of me. Thanks.<\/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\/@osakasaul\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@osakasaul<\/a>&nbsp;Fallbacks are indeed Chainable yes ! Do you have a quick idea of which LLMs you might talking about ?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>3<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The fallback angle is practical for agent workflows, especially when a coding session is mid-task and the provider limit hits. I\u2019d be curious how you surface model switches in logs, since silent fallbacks can make debugging output differences harder.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>Fallback models for Claude Code is exactly what&#8217;s needed hitting a rate limit mid-task and losing context is painful. Does it maintain the full context when switching models or does the fallback start fresh?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#6<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/WOSDWOWCZLH5H2\" class=\"app-title\">Runway Agent<\/a><\/p>\n<div class=\"one-liner\">Generate edited, sound-designed videos via chat<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">152<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Runway Agent \u662f\u4e00\u6b3e\u901a\u8fc7\u5bf9\u8bdd\u5f0fAI\u5c06\u521b\u610f\u7b80\u62a5\u76f4\u63a5\u8f6c\u5316\u4e3a\u5e26\u97f3\u6548\u4e0e\u526a\u8f91\u7684\u6210\u7247\u89c6\u9891\u7684\u5de5\u5177\uff0c\u89e3\u51b3\u4e86\u5185\u5bb9\u521b\u4f5c\u8005\u5728\u751f\u6210\u7247\u6bb5\u540e\u4ecd\u9700\u624b\u52a8\u526a\u8f91\u548c\u914d\u4e50\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\/6f46f098-0c10-4b44-ab2e-178ae05c7957.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\/62581d68-e04b-4252-8ad4-220eff63c67a.jpeg?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Design Tools<\/span><br \/>\n            <span class=\"tag\">Social Media<\/span><br \/>\n            <span class=\"tag\">Marketing<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u89c6\u9891\u751f\u6210<\/span><br \/>\n            <span class=\"tag\">\u5bf9\u8bdd\u5f0f\u526a\u8f91<\/span><br \/>\n            <span class=\"tag\">\u97f3\u6548\u8bbe\u8ba1<\/span><br \/>\n            <span class=\"tag\">\u5185\u5bb9\u521b\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u793e\u4ea4\u89c6\u9891<\/span><br \/>\n            <span class=\"tag\">\u5e7f\u544a\u5236\u4f5c<\/span><br \/>\n            <span class=\"tag\">Runway<\/span><br \/>\n            <span class=\"tag\">\u9879\u76ee\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u77ed\u89c6\u9891<\/span><br \/>\n            <span class=\"tag\">AI Agent<\/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\u9879\u76ee\u7ea7\u201d\u7f16\u8f91\u4e0e\u97f3\u6548\u96c6\u6210\u662f\u5dee\u5f02\u5316\u4ef7\u503c\uff0c\u5173\u6ce8\u70b9\u96c6\u4e2d\u5728\uff1a\u80fd\u5426\u5904\u7406Reels\/TikTok\u7ad6\u5c4f\u683c\u5f0f\uff1b\u80fd\u5426\u4fdd\u6301\u89d2\u8272\u548c\u89c6\u89c9\u7684\u4e00\u81f4\u6027\uff08\u5982\u54c1\u724c\u8272\u3001\u6a21\u677f\u8bb0\u5fc6\uff09\uff1b\u4ee5\u53ca\u80fd\u5426\u89e3\u51b3\u6b64\u524dRunway\u7247\u6bb5\u8fc7\u77ed\u3001\u753b\u5916\u97f3\u4e0d\u8fde\u8d2f\u7684\u95ee\u9898\u3002\u4e5f\u6709\u7528\u6237\u671f\u5f85\u7c7b\u4f3cClaude Code for Diffusion\u6a21\u578b\u7684\u7cbe\u786e\u63a7\u5236\u80fd\u529b\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                Runway Agent \u7684\u5b9a\u4f4d\u5e76\u975e\u53c8\u4e00\u6b3e\u201c\u63d0\u793a\u8bcd\u2192\u7247\u6bb5\u201d\u7684AI\u73a9\u5177\uff0c\u800c\u662f\u8bd5\u56fe\u5c06\u89c6\u9891\u751f\u6210\u4ece\u201c\u8d44\u4ea7\u751f\u4ea7\u201d\u63a8\u5411\u201c\u6210\u54c1\u4ea4\u4ed8\u201d\u7684\u5173\u952e\u4e00\u6b65\u3002\u4ece\u7528\u6237\u53cd\u9988\u6765\u770b\uff0c\u771f\u6b63\u7684\u75db\u70b9\u5e76\u4e0d\u5728\u4e8e\u751f\u6210\u5355\u5e27\u753b\u9762\u7684\u8d28\u91cf\uff08\u90a3\u662fSora\u4eec\u89e3\u51b3\u7684\u95ee\u9898\uff09\uff0c\u800c\u5728\u4e8e\u5c06\u591a\u4e2a\u7247\u6bb5\u7ec4\u5408\u6210\u4e00\u6761\u6709\u53d9\u4e8b\u3001\u6709\u60c5\u7eea\u3001\u6709\u97f3\u6548\u7684\u5b8c\u6574\u89c6\u9891\u65f6\u4ea7\u751f\u7684\u201c\u526a\u8f91\u9e3f\u6c9f\u201d\u3002Agent \u4ee5\u5bf9\u8bdd\u5f62\u5f0f\u627f\u63a5\u521b\u610f\u7b80\u62a5\uff0c\u5e76\u7aef\u5230\u7aef\u8f93\u51fa\u542b\u97f3\u6548\u7684\u6210\u7247\uff0c\u672c\u8d28\u4e0a\u662f\u5728\u7528AI\u4ee3\u7406\u66ff\u4ee3\u4f20\u7edf\u540e\u671f\u6d41\u7a0b\u4e2d\u7684\u4eba\u5de5\u89c4\u5212\u4e0e\u534f\u8c03\u5de5\u4f5c\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u8fd9\u6b3e\u4ea7\u54c1\u9762\u4e34\u7684\u6311\u6218\u4e5f\u5341\u5206\u5177\u4f53\uff1a\u9996\u5148\uff0c\u201c\u9879\u76ee\u7ea7\u201d\u7684\u89c6\u89c9\u4e00\u81f4\u6027\u662f\u4e00\u4e2a\u6280\u672f\u9ad8\u95e8\u69db\uff0c\u5982\u679cAgent\u65e0\u6cd5\u5728\u591a\u4e2a\u955c\u5934\u95f4\u4fdd\u6301\u89d2\u8272\u3001\u8272\u8c03\u3001\u6a21\u677f\u7684\u7edf\u4e00\uff0c\u90a3\u4e48\u201c\u6210\u7247\u201d\u5c31\u4ecd\u662f\u62fc\u8d34\uff1b\u5176\u6b21\uff0c\u7528\u6237\u8d28\u7591\u768410\u79d2\u7247\u6bb5\u9650\u5236\u548c\u7ad6\u5c4f\u9002\u914d\u95ee\u9898\uff0c\u66b4\u9732\u4e86\u5e95\u5c42\u6a21\u578b\u5bf9\u65f6\u95f4\u4e0e\u6784\u56fe\u7ef4\u5ea6\u7684\u638c\u63a7\u529b\u4e0d\u8db3\u3002Runway Agent \u7684\u65b9\u5411\u65e0\u7591\u662f\u6b63\u786e\u7684\u2014\u2014\u5c06\u590d\u6742\u5ea6\u4ece\u7528\u6237\u4fa7\u8f6c\u79fb\u5230\u6a21\u578b\u4fa7\uff0c\u8ba9\u521b\u4f5c\u8005\u56de\u5f52\u521b\u610f\u800c\u975e\u6280\u672f\u64cd\u4f5c\u3002\u4f46\u5982\u679c\u6267\u884c\u4e0a\u53ea\u662f\u7ed9\u751f\u6210\u63a5\u53e3\u5957\u4e86\u4e00\u5c42\u804a\u5929UI\uff0c\u800c\u6ca1\u6709\u771f\u6b63\u6253\u901a\u201c\u7f16\u8f91\u201d\u4e0e\u201c\u97f3\u753b\u540c\u6b65\u201d\u7684\u903b\u8f91\u5f15\u64ce\uff0c\u5b83\u6700\u7ec8\u53ea\u4f1a\u6ca6\u4e3a\u53c8\u4e00\u4e2a\u534e\u4e3d\u7684\u73a9\u5177\uff0c\u800c\u975e\u521b\u610f\u56e2\u961f\u7684\u6548\u7387\u5f15\u64ce\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\">Runway Agent<\/span>\n                <\/div>\n<div class=\"comment-content\">Runway Agent is a conversational AI that takes a brief and outputs finished, sound-designed, edited videos for ads, shorts, and social content. Available in the Runway web app.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p><strong>Runway Agent<\/strong> is a chat-based AI inside the Runway web app that handles ideation, editing, sound design, and final output as a single conversation.<\/p>\n<\/p>\n<p>You describe what you need, the agent builds toward it, and the output is a complete, publish-ready file rather than raw footage requiring further work.<\/p>\n<\/p>\n<p><strong>What makes it different<\/strong>: Most AI video tools are prompt-in, clip-out. Runway Agent operates at the project level, covering generation, editing, and audio in one session. The &#8220;finished&#8221; framing in Runway&#8217;s own copy is the operative word here. The output includes sound design, not just visuals.<\/p>\n<\/p>\n<p><strong>Key features<\/strong>:<\/p>\n<ul>\n<li>\n<p>Conversational interface for creative direction and execution<\/p>\n<\/li>\n<li>\n<p>Full video output with editing and sound design included<\/p>\n<\/li>\n<li>\n<p>Targets ads, shorts, and social content formats<\/p>\n<\/li>\n<li>\n<p>Available on Runway web<\/p>\n<\/li>\n<\/ul>\n<p><strong>Who it&#8217;s for<\/strong>: Content teams, solo creators, and marketers producing short-form video for social, ads, or branded content who want to go from idea to finished output without context-switching between tools.<\/p>\n<\/p>\n<p>An agent that can hold a creative brief and execute it end-to-end is a different product category from a generation tool. Whether the execution holds up in practice will be the real test, but the direction is the right one.<\/p>\n<\/p>\n<p>P.S. I hunt the latest and greatest launches in tech, SaaS and AI, follow to be notified <strong>\u2192<\/strong> <a href=\"https:\/\/www.producthunt.com\/@rohanrecommends\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rohanrecommends<\/a><\/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\/@rohanrecommends\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rohanrecommends<\/a>&nbsp;The concept is cool. Also does it help in scheduling posts directly on twitter\/ linkedin?  upvoted.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\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 struggle with photos to get the detail I want. <\/p>\n<p>With videos, it\u2019s much worse.<\/p>\n<p>We need something like Claude code to Diffusion models. \ud83d\ude05<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Chat-based video editing could be a game changer for solo content creators the editing part is always the bottleneck. Does it handle vertical format for Reels and TikTok or mostly landscape output?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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 stopped using Runway when the clips didn&#8217;t go beyond 10 sec and there was no voice over consistency across clips. Hoping &#8216;project level&#8217; editing can help with solving for the challenge of consistency and character integrity. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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 feels like one of those tools people will either love immediately or ignore completely. The idea is strong though, especially if it cuts down the usual video-editing pain.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\">@rohanrecommends I love the idea of \u200b\u200ba &#8220;project level&#8221; rather than a simple prompt \u2192 clip. The real pain point is precisely the editing and sound design after generation.<\/p>\n<p>Quick question: can the agent maintain visual consistency across multiple videos? Like, if I tell them to &#8220;use my template and brand colors,&#8221; will they remember?<\/p>\n<p>Looking forward to testing this for short videos. Upvoted \ud83d\ude80<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#7<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/KYKE27TJFPFYP5\" class=\"app-title\">DynamicNotch<\/a><\/p>\n<div class=\"one-liner\">Dynamic island for macOS<\/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>DynamicNotch\u4e3aMacBook\u7528\u6237\u5e26\u6765\u4e86\u4e0eiPhone\u7aef\u52a8\u6001\u5c9b\u5b8c\u5168\u4e00\u81f4\u7684\u4ea4\u4e92\u4f53\u9a8c\u548c\u52a8\u753b\u903b\u8f91\uff0c\u8ba9\u975ePro\u673a\u578b\u4e5f\u80fd\u5728\u83dc\u5355\u680f\u4eab\u53d7\u4fbf\u6377\u7684\u901a\u77e5\u4e0e\u72b6\u6001\u7ba1\u7406\u529f\u80fd\uff0c\u89e3\u51b3\u4e86Mac\u7f3a\u5c11\u539f\u751f\u786c\u4ef6\u7ea7\u4ea4\u4e92\u53cd\u9988\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\/79b9a2b5-ed25-4920-87b9-723564754a87.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\/c3467d75-f64d-4b64-80b4-b4f2e7e92503.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\/63736c7a-0c59-4758-9590-22f7961aa775.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/d8e55cab-9b8d-4988-9c9c-ea198fddc744.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/419e0aa3-e986-4625-801b-dcf048b1d125.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/2fae4934-af76-4735-9e5c-81adf761086e.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/7cdb4d80-9d8e-4995-a98d-a846b7e284c6.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/e2b0427a-aa48-4869-9e24-71c0eef39d2d.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/808c2594-70bf-4525-adf4-eda3066c00a1.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/fbeaae71-d075-4e5c-b5e4-03e3543df0bc.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/3815cdf4-8c45-40f3-a60b-efc3d2cf49e7.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/81598f2e-5eec-4d90-a77b-27c8ed55d765.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/bddabf88-c302-423a-8ced-0f338d3f51d5.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/03c65839-1a2f-446d-9766-1b2ca963630e.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/6eafc27c-ac02-4a89-8c48-6c7d4edc91a7.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/cc502247-85d4-4bff-82bc-f170901ba085.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/81b7f654-4d27-4d51-bb97-949a083d830d.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/894885aa-0631-442b-9a67-223d1a69a963.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/8995b616-f589-4b57-9d00-172c5b962693.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">GitHub<\/span><br \/>\n            <span class=\"tag\">Apple<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u52a8\u6001\u5c9b<\/span><br \/>\n            <span class=\"tag\">macOS\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u83dc\u5355\u680f\u589e\u5f3a<\/span><br \/>\n            <span class=\"tag\">\u7cfb\u7edf\u7f8e\u5316<\/span><br \/>\n            <span class=\"tag\">\u901a\u77e5\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u4ea4\u4e92\u4f53\u9a8c<\/span><br \/>\n            <span class=\"tag\">\u52a8\u753b\u5f15\u64ce<\/span><br \/>\n            <span class=\"tag\">\u539f\u751f\u8bbe\u8ba1<\/span><br \/>\n            <span class=\"tag\">\u6548\u7387\u5de5\u5177<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u5173\u6ce8\u9879\u76ee\u52a8\u673a\u4e0e\u73b0\u6709\u540c\u7c7b\u65b9\u6848\uff08\u5982TheBoringNotch\uff09\u7684\u5dee\u5f02\u3002\u5f00\u53d1\u8005\u56de\u5e94\u79f0\u56e0\u4e0d\u6ee1\u7ade\u54c1\u5b9e\u73b0\u8d28\u91cf\u4e0e\u4ee3\u7801\u4f9d\u8d56\uff0c\u51b3\u5b9a\u81ea\u7814\u5f15\u64ce\u8ffd\u6c42\u6781\u81f4\u539f\u751f\u611f\u3002\u6b63\u9762\u8bc4\u8bba\u79f0\u8d5e\u5176\u754c\u9762\u5e72\u51c0\u3001\u4f53\u9a8c\u6d41\u7545\uff0c\u8ba4\u4e3a\u80fd\u63d0\u5347\u65e5\u5e38\u4f7f\u7528\u6109\u60a6\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                DynamicNotch\u7684\u4ef7\u503c\u4e0d\u5728\u201c\u590d\u523b\u201d\uff0c\u800c\u5728\u201c\u8f83\u771f\u201d\u3002\u5e02\u9762\u4e0a\u591a\u6570\u7c7b\u4f3c\u9879\u76ee\u6b62\u6b65\u4e8e\u5957\u58f3\u4ee3\u7801\u6216\u7c97\u7cd9\u7684\u52a8\u753b\u6a21\u62df\uff0c\u800c\u8fd9\u6b3e\u4ea7\u54c1\u9009\u62e9\u4ece\u5e95\u5c42\u81ea\u5efa\u5f15\u64ce\uff0c\u4ece\u7528\u6237\u6b63\u53cd\u9988\uff08\u5c24\u5176\u5bf9\u201c\u5e72\u51c0\u611f\u201d\u548c\u201c\u539f\u751f\u611f\u201d\u7684\u8ba4\u53ef\uff09\u6765\u770b\uff0c\u786e\u5b9e\u5728\u4ea4\u4e92\u7ec6\u8282\u3001\u52a8\u753b\u66f2\u7387\u3001\u884c\u4e3a\u903b\u8f91\u4e0a\u903c\u8fd1\u4e86iPhone\u52a8\u6001\u5c9b\u7684\u4f53\u9a8c\u3002\u4f46\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u8fd9\u4ecd\u662f\u4e00\u4e2a\u201c\u4f2a\u786c\u4ef6\u201d\u5c42\u9762\u7684\u7f8e\u5316\u5de5\u5177\u2014\u2014\u5b83\u89e3\u51b3\u7684\u662f\u201c\u83dc\u5355\u680f\u770b\u8d77\u6765\u66f4\u50cfiPhone\u201d\u7684\u5ba1\u7f8e\u9700\u6c42\uff0c\u800c\u975e\u751f\u4ea7\u529b\u5c42\u9762\u7684\u6838\u5fc3\u75db\u70b9\u3002\u5f00\u53d1\u8005\u58f0\u79f0\u8981\u201c\u505a\u5f97\u50cf\u539f\u751f\u201d\uff0c\u4f46\u8fd9\u4e2a\u201c\u539f\u751f\u201d\u672c\u8eab\u5728Mac\u751f\u6001\u4e2d\u5c31\u4e0d\u5b58\u5728\uff0c\u7528\u6237\u5bf9\u201c\u52a8\u6001\u5c9b\u201d\u7684\u8ba4\u77e5\u662f\u57fa\u4e8eiPhone\u786c\u4ef6\u5207\u5272\u5c4f\u5e55\u7684\u7269\u7406\u53cd\u9988\uff0c\u800cMacBook\u7684\u83dc\u5355\u680f\u59cb\u7ec8\u662f\u8f6f\u4ef6\u5c42\uff0c\u8fd9\u79cd\u79fb\u690d\u672c\u8d28\u662f\u89c6\u89c9\u9690\u55bb\uff0c\u96be\u514d\u6709\u201c\u4e3a\u4e86\u52a8\u6001\u800c\u52a8\u6001\u201d\u7684\u5197\u4f59\u611f\u3002\u4ece125\u7968\u7684\u8bc4\u4ef7\u770b\uff0c\u5b83\u6216\u8bb8\u662f\u5c0f\u4f17\u6781\u5ba2\u7684\u5b8c\u7f8e\u73a9\u5177\uff0c\u4f46\u79bb\u771f\u6b63\u6539\u53d8Mac\u4ea4\u4e92\u903b\u8f91\u8fd8\u6709\u8ddd\u79bb\uff1a\u7f3a\u5c11\u6df1\u5ea6\u7684\u7cfb\u7edf\u7ea7\u96c6\u6210\uff08\u5982\u5c0f\u7ec4\u4ef6\u5d4c\u5957\u3001\u624b\u52bf\u5206\u5c42\u56de\u9988\uff09\uff0c\u672a\u80fd\u5229\u7528\u83dc\u5355\u680f\u7684\u7279\u6027\u5f00\u53d1\u51fa\u8d85\u8d8aiPhone\u4f53\u9a8c\u7684\u72ec\u521b\u529f\u80fd\u3002\u5982\u679c\u540e\u7eed\u80fd\u57fa\u4e8e\u81ea\u7814\u5f15\u64ce\u62d3\u5c55\u51fa\u201cMac\u4e13\u5c5e\u52a8\u6001\u4ea4\u4e92\u201d\uff08\u5982\u66f4\u6df1\u5ea6\u878d\u5408\u4e13\u6ce8\u6a21\u5f0f\u3001\u6587\u4ef6\u62d6\u62fd\u9884\u89c8\u3001\u83dc\u5355\u680f\u5b9e\u65f6App\u72b6\u6001\u5f3a\u5316\uff09\uff0c\u800c\u4e0d\u662f\u505c\u7559\u5728\u201c\u8ba9\u5218\u6d77\u53d8\u6210\u52a8\u6001\u5c9b\u201d\uff0c\u4ea7\u54c1\u624d\u53ef\u80fd\u4ece\u201c\u7cbe\u81f4\u4eff\u54c1\u201d\u8dc3\u5347\u4e3a\u201c\u751f\u6001\u7ea7\u5de5\u5177\u201d\u3002\u76ee\u524d\u9636\u6bb5\uff0c\u5b83\u662f\u540c\u8d5b\u9053\u91cc\u6700\u7528\u5fc3\u3001\u6700\u5e72\u51c0\u7684\u90a3\u4e00\u4e2a\uff0c\u4f46\u5929\u82b1\u677f\u4e5f\u663e\u800c\u6613\u89c1\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\">DynamicNotch<\/span>\n                <\/div>\n<div class=\"comment-content\">The difference between this project and others is that it is built on its own engine, and not taken from other ready-made repositories. It completely copies the logic, animations, and behavior of a real Dynamic Island on an iPhone, unlike other projects. The main goal is to make the project as native as possible, both in terms of design and interaction.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">I\u2019m curious, what made you decide to start this project was it for development experience or did you genuinely feel like you needed something like this<\/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\/@matthias_bettin\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@matthias_bettin<\/a>&nbsp;I downloaded similar analogues, but I didn&#8217;t like the implementation and almost all of them are based on TheBoringNotch, I liked the idea 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<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This actually looks pretty clean. Honestly, this is the kind of small Mac tweak that makes daily use feel nicer.<\/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\/@a_y_u_s_h\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@a_y_u_s_h<\/a>&nbsp;That was my main task, to make it as clean and native as possible<\/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\">#8<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/JAC6ZQ4L7XHTKA\" class=\"app-title\">DockFlow<\/a><\/p>\n<div class=\"one-liner\">Save, switch, and automate Dock layouts for every workflow<\/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>DockFlow \u662f\u4e00\u6b3emacOS Dock\u5e03\u5c40\u7ba1\u7406\u5de5\u5177\uff0c\u8ba9\u7528\u6237\u4e00\u952e\u4fdd\u5b58\u548c\u5207\u6362\u4e0d\u540c\u5de5\u4f5c\u573a\u666f\uff08\u5982\u8bbe\u8ba1\u3001\u7f16\u7a0b\u3001\u5199\u4f5c\uff09\u7684Dock\u9884\u8bbe\uff0c\u89e3\u51b3\u9891\u7e41\u624b\u52a8\u62d6\u62fd\u56fe\u6807\u3001\u6574\u7406Dock\u7684\u75db\u70b9\uff0c\u5feb\u901f\u8fdb\u5165\u5de5\u4f5c\u6d41\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\/37e07210-41fe-4c23-9911-64eb306f05e3.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/5a894eb0-bb99-4e46-b75e-694c1eccdfb7.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/2a111c6b-310d-43fe-9468-96d1ad5c43d5.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/ec44a454-3243-4061-9705-6e647a4938b9.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/6cf18190-f35c-4a20-9f98-27e128efe3d3.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/6b881785-3c42-4155-ade0-a9125db962bc.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/baf9fdcb-4b2f-4fc6-b194-060b15aa076e.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b09147ec-5f0d-4940-97ac-73ddde114975.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">Tech<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">macOS\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">Dock\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u5de5\u4f5c\u6d41\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">\u6548\u7387\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u751f\u4ea7\u529b<\/span><br \/>\n            <span class=\"tag\">\u5e94\u7528\u5207\u6362<\/span><br \/>\n            <span class=\"tag\">\u9884\u8bbe\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u83dc\u5355\u680f\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u5feb\u6377\u952e<\/span><br \/>\n            <span class=\"tag\">Mac\u63d2\u4ef6<\/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\u5207\u6362\u9884\u8bbe\u65f6\u662f\u5426\u4fdd\u7559\u5e94\u7528\u672a\u4fdd\u5b58\u72b6\u6001\uff0c\u5f00\u53d1\u56de\u590d\u79f0\u76f4\u63a5\u5173\u95ed\uff0c\u4f46\u53ef\u8bbe\u7f6e\u6392\u9664\u5e94\u7528\u3002\u7528\u6237\u8be2\u95ee\u662f\u5426\u6062\u590d\u7a97\u53e3\u4f4d\u7f6e\uff0c\u5f00\u53d1\u8868\u793a\u4f9d\u8d56macOS\u884c\u4e3a\uff0c\u6b63\u4e0eSpancer\u96c6\u6210\u4ee5\u5b9e\u73b0\u7a97\u53e3\u63a7\u5236\u3002\u53e6\u6709\u7528\u6237\u80af\u5b9a\u70ed\u952e\u529f\u80fd\u6709\u6548\u51cf\u5c11\u4e86\u5207\u6362\u6469\u64e6\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                DockFlow\u7684\u4ef7\u503c\u4e0d\u5728\u4e8e\u5b83\u6709\u591a\u70ab\u9177\uff0c\u800c\u5728\u4e8e\u5b83\u7cbe\u51c6\u51fb\u4e2d\u4e86macOS\u7528\u6237\u4e00\u4e2a\u957f\u671f\u88ab\u5ffd\u89c6\u7684\u201c\u5c0f\u75db\u82e6\u201d\u2014\u2014Dock\u5e03\u5c40\u7684\u788e\u7247\u5316\u3002\u5728\u82f9\u679c\u7cfb\u7edf\u5185\u5efa\u903b\u8f91\u91cc\uff0cDock\u662f\u9759\u6001\u7684\u3001\u5343\u4eba\u4e00\u9762\u7684\uff0c\u4f46\u4eba\u7684\u5de5\u4f5c\u6d41\u662f\u52a8\u6001\u7684\u3001\u5206\u573a\u666f\u7684\u3002DockFlow\u5de7\u5999\u5730\u7528\u201c\u9884\u8bbe+\u4e00\u952e\u5207\u6362+\u5e94\u7528\u751f\u547d\u5468\u671f\u7ba1\u7406\u201d\u8fd9\u7ec4\u7ec4\u5408\u62f3\uff0c\u628aDock\u4ece\u4e00\u4e2a\u201c\u542f\u52a8\u5668\u5e9f\u7eb8\u7bd3\u201d\u53d8\u6210\u4e86\u4e00\u4e2a\u201c\u5de5\u4f5c\u6d41\u5f00\u5173\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u4ea7\u54c1\u8bbe\u8ba1\u770b\uff0c\u5b83\u907f\u5f00\u4e86\u4e24\u4e2a\u5751\uff1a\u4e00\u662f\u6ca1\u6709\u81ea\u9020\u4e00\u4e2aDock\u66ff\u4ee3\u54c1\uff0c\u800c\u662f\u57fa\u4e8e\u539f\u751fDock\uff0c\u8fd9\u4fdd\u8bc1\u4e86\u96f6\u5b66\u4e60\u6210\u672c\u548c\u7cfb\u7edf\u7ea7\u522b\u7a33\u5b9a\u6027\uff1b\u4e8c\u662f\u6ca1\u6709\u8bd5\u56fe\u505a\u4e00\u4e2a\u201c\u7a97\u53e3\u7ba1\u7406\u5de8\u65e0\u9738\u201d\uff0c\u800c\u662f\u805a\u7126\u4e8e\u201c\u54ea\u4e9b\u5e94\u7528\u51fa\u73b0\u5728Dock\u201d\u8fd9\u4e00\u8584\u5c42\uff0c\u5f88\u514b\u5236\u3002116\u7968\u5728Product Hunt\u4e0d\u7b97\u7206\u6b3e\uff0c\u4f46\u8bc4\u8bba\u533a\u663e\u793a\u7528\u6237\u5173\u6ce8\u70b9\u5df2\u7ecf\u6df1\u5165\u5230\u4e86\u201c\u672a\u4fdd\u5b58\u72b6\u6001\u5904\u7406\u201d\u548c\u201c\u7a97\u53e3\u4f4d\u7f6e\u6062\u590d\u201d\u7b49\u7ec6\u8282\uff0c\u8bf4\u660e\u5b83\u786e\u5b9e\u88ab\u91cd\u5ea6\u7528\u6237\u5728\u771f\u5b9e\u573a\u666f\u4e2d\u8003\u9a8c\u8fc7\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u98ce\u9669\u70b9\u4e5f\u5f88\u660e\u663e\uff1amacOS\u7684\u6c99\u76d2\u9650\u5236\u548c\u7cfb\u7edf\u66f4\u65b0\u53ef\u80fd\u5bfc\u81f4Dock\u64cd\u4f5cAPI\u4e0d\u7a33\u5b9a\uff0c\u5f00\u53d1\u8005\u660e\u786e\u627f\u8ba4\u7a97\u53e3\u6062\u590d\u529f\u80fd\u975e\u81ea\u8eab\u6240\u80fd\uff0c\u4f9d\u8d56\u7b2c\u4e09\u65b9\u96c6\u6210\uff0c\u8fd9\u65e2\u662f\u8bda\u5b9e\u7684\u4ea4\u4ee3\uff0c\u4e5f\u662f\u4ea7\u54c1\u62a4\u57ce\u6cb3\u8f83\u6d45\u7684\u8bc1\u660e\u3002\u5982\u679c\u82f9\u679c\u67d0\u5929\u5728\u7cfb\u7edf\u504f\u597d\u8bbe\u7f6e\u4e2d\u5185\u7f6e\u4e86\u7c7b\u4f3c\u529f\u80fd\uff0cDockFlow\u4f1a\u9762\u4e34\u201c\u6398\u5893\u4eba\u98ce\u9669\u201d\u3002\u76ee\u524d\u770b\u6765\uff0c\u5b83\u66f4\u50cf\u4e00\u4e2a\u7cbe\u5de7\u7684\u201c\u7cfb\u7edf\u8865\u4e01\u201d\uff0c\u800c\u975e\u4e00\u4e2a\u4e0d\u53ef\u66ff\u4ee3\u7684\u4e1a\u52a1\u3002\u5bf9\u4e8e\u613f\u610f\u4e3a\u201c\u6bcf\u5929\u7701\u4e0b\u4e24\u5206\u949f\u62d6\u56fe\u6807\u65f6\u95f4\u201d\u4ed8\u8d39\u7684\u7528\u6237\u6765\u8bf4\uff0c\u5b83\u5df2\u7ecf\u8db3\u591f\u597d\u4e86\uff1b\u4f46\u5bf9\u4e8e\u8ffd\u6c42\u5f7b\u5e95\u81ea\u52a8\u5316\u5de5\u4f5c\u6d41\u7684\u6781\u5ba2\uff0c\u5b83\u53ea\u662f\u62fc\u56fe\u7684\u4e00\u5c0f\u5757\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\">DockFlow<\/span>\n                <\/div>\n<div class=\"comment-content\">DockFlow is a Dock utility that lets you save and swap between different macOS Dock presets. Set up one for design, another for coding, another for writing. One click to switch, close the apps you don&#8217;t need, and open the ones you do. I built this because I kept wasting the first few minutes of every session dragging icons back into place before I could actually work. Now I pick my context, and I&#8217;m already in my workflow. A year and 70 updates in, over 1,000 people use it.<\/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<br \/>\nI\u2019m Asaf, the maker of DockFlow &#8211; a macOS app that lets you save multiple Dock presets and switch between them instantly when you change context (coding, meetings, design, personal time, etc.).<br \/>\nThe idea came from constantly dragging apps in and out of the Dock whenever I jumped between projects and wanting that switch to be a single, reliable action instead.<\/p>\n<p>With DockFlow you can:<\/p>\n<p>Save dedicated Dock layouts (\u201cpresets\u201d) for different workflows.<\/p>\n<p>Switch presets with one click from the menu bar or a custom hotkey, and optionally close apps that don\u2019t belong to the current preset so you stay focused.<\/p>\n<p>Include apps, folders, and files, use spacers to visually group tools, and keep everything running on the native macOS Dock (no custom dock or extra permissions).<\/p>\n<p>Save your last context when switching presets &#8211; allows you to get back right to your latest tasks when needed.<\/p>\n<p>For power users, automate Dock changes with Shortcuts or the CLI so your Dock can adapt based on time of day or other triggers.<\/p>\n<p>Since our first launch we\u2019ve shipped a lot of improvements, including better menu bar access to settings, more robust hotkey handling, support for folder stacks, app actions, and multiple stability fixes to keep DockFlow reliable in daily use.<\/p>\n<p>Thanks for checking out DockFlow.<br \/>\nI\u2019ll be here all day answering questions, collecting ideas, and iterating based on your feedback \ud83d\ude4f<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The preset model is cleaner than it looks. It&#8217;s not just icon positions, it&#8217;s app lifecycle management across contexts, which is where the real complexity lives. At RetainSure I switch between customer-facing work and engineering several times a day and the context tax adds up. How do you handle apps with unsaved state? Does DockFlow warn before closing or delegate that to each app?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@anand_thakkar1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@anand_thakkar1<\/a>&nbsp;Hey there,<\/p>\n<p>DockFlow closes everything right away,<\/p>\n<p>Apps that have a safe pop-up before closing will still promote them<\/p>\n<p>In DockFlow, you can set excluded apps that will never be closed when switching presets, so this allows you to have some safeguards on really sensitive apps or apps that you want to keep active all the time, like email or WhatsApp, etc.<\/p>\n<p>Thank you for showing interest in DockFlow! \ud83d\ude4f<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>When you switch presets, does it also restore window positions or just open and close apps?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@othman_katim\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@othman_katim<\/a>&nbsp;<br \/>Hey,<br \/>Sorry for the late response,<br \/>Yes, this is happening, but it&#8217;s due to macOS behavior, not something DockFlow directly handles.<br \/>We are working on some integrations with the third-party app Spancer to gain full control over window sizes and locations when switching presets.<br \/>Thank you for your interest in DockFlow super appreciated \ud83d\ude4f<\/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>Nice work on the hotkeys, context-switching between dock presets is the kind of friction I keep wanting gone. Good luck with the launch!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@fberrez1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@fberrez1<\/a>&nbsp;Thank you very much!<\/p>\n<p>Try it let me know what you think \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<\/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\/GDCAFDVG6TRKZW\" class=\"app-title\">Podio<\/a><\/p>\n<div class=\"one-liner\">Your personal news radio, built around your interests<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">34<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Podio\u662f\u4e00\u6b3e\u5c06\u7528\u6237\u8ba2\u9605\u7684\u5174\u8da3\u9886\u57df\uff08\u5de5\u4f5c\u3001\u80a1\u7968\u3001\u4f53\u80b2\u3001\u52a0\u5bc6\u7b49\uff09\u5b9e\u65f6\u8f6c\u5316\u4e3a\u4e2a\u6027\u5316\u97f3\u9891\u7535\u53f0\u7684APP\uff0c\u89e3\u51b3\u7528\u6237\u5728\u788e\u7247\u65f6\u95f4\uff08\u901a\u52e4\u3001\u5065\u8eab\u7b49\uff09\u4e2d\u901a\u8fc7\u201c\u5237\u4fe1\u606f\u6d41\u201d\u83b7\u53d6\u65b0\u95fb\u5e26\u6765\u7684\u7126\u8651\u548c\u6548\u7387\u4f4e\u4e0b\u95ee\u9898\uff0c\u5b9e\u73b0\u201c\u53ea\u542c\u4e0d\u5237\u201d\u7684\u88ab\u52a8\u5f0f\u4fe1\u606f\u6d88\u8d39\u4f53\u9a8c\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/5cfcc6f0-2d63-4243-828f-fa71f35c1d0c.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/0e6dd867-a2cd-45a0-9618-5eac542a3aa3.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/05250b48-9225-4500-9f81-42d6bd822f01.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/61bbe7b7-b929-4a9b-af0d-792a5e2b3f3e.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b8c73a54-e9ed-43d5-b688-6cfb4e164b75.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\/3941b00b-3651-4c06-9cff-dd45185fe303.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/r2jw77Wkx68\"><source src=\"https:\/\/youtu.be\/r2jw77Wkx68\" 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\">News<\/span><br \/>\n            <span class=\"tag\">Entertainment<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u4e2a\u6027\u5316\u65b0\u95fb\u7535\u53f0<\/span><br \/>\n            <span class=\"tag\">AI\u97f3\u9891\u751f\u6210<\/span><br \/>\n            <span class=\"tag\">\u8bed\u97f3\u52a9\u624b<\/span><br \/>\n            <span class=\"tag\">\u4fe1\u606f\u805a\u5408<\/span><br \/>\n            <span class=\"tag\">\u5174\u8da3\u8ba2\u9605<\/span><br \/>\n            <span class=\"tag\">\u53cd\u7126\u8651\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u64ad\u5ba2\u66ff\u4ee3\u54c1<\/span><br \/>\n            <span class=\"tag\">\u788e\u7247\u65f6\u95f4\u6548\u7387\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u65b0\u95fb\u8fc7\u6ee4<\/span><br \/>\n            <span class=\"tag\">\u4ea7\u54c1\u730e\u4eba\u65b0\u54c1<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u8ba4\u53ef\u5176\u201c\u66ff\u4ee3\u5237\u5c4f\u3001\u51cf\u5c11\u7126\u8651\u201d\u7684\u7406\u5ff5\u3002\u6709\u6548\u53cd\u9988\u96c6\u4e2d\u5728\u4e2a\u6027\u5316\u6df1\u5ea6\uff1a\u7528\u6237\u5173\u5fc3AI\u80fd\u5426\u5b66\u4e60\u6536\u542c\u4e60\u60ef\u8fbe\u5230\u8d85\u4e2a\u6027\u5316\uff1b\u53e6\u6709\u7528\u6237\u8be2\u95ee\u80fd\u5426\u63a5\u5165\u4e2a\u4eba\u4fe1\u6e90\uff08\u5982\u6307\u5b9a\u7f51\u7ad9\u6216X\u8d26\u6237\uff09\u3002\u521b\u59cb\u4eba\u5747\u56de\u5e94\u79f0\u6b63\u5f00\u53d1\u8bb0\u5fc6\u4e0e\u81ea\u5b9a\u4e49\u6765\u6e90\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                Podio\u7684\u5b9a\u4f4d\u7cbe\u51c6\u5730\u51fb\u4e2d\u4e86\u4fe1\u606f\u65f6\u4ee3\u7684\u4e00\u4e2a\u96c6\u4f53\u75db\u70b9\u2014\u2014\u201c\u5237\u4fe1\u606f\u6d41\u201d\u5e26\u6765\u7684\u7126\u8651\u611f\u4e0e\u65f6\u95f4\u9ed1\u6d1e\u3002\u5176\u201c\u7535\u53f0\u5316\u201d\u7684\u601d\u8def\u5e76\u975e\u7b80\u5355\u7684\u5185\u5bb9\u8f6c\u8bd1\uff0c\u800c\u662f\u5bf9\u4fe1\u606f\u6d88\u8d39\u6a21\u5f0f\u7684\u4e00\u6b21\u795b\u9b45\uff1a\u5c06\u7528\u6237\u4ece\u4e3b\u52a8\u7684\u3001\u5145\u6ee1\u8bf1\u60d1\u7684\u201c\u72e9\u730e\u8005\u201d\u89d2\u8272\uff0c\u5207\u6362\u4e3a\u88ab\u52a8\u7684\u3001\u653e\u677e\u7684\u201c\u6536\u542c\u8005\u201d\u3002\u8fd9\u79cd\u8bbe\u8ba1\u6709\u52a9\u4e8e\u964d\u4f4e\u8ba4\u77e5\u8d1f\u62c5\uff0c\u6709\u6548\u62e6\u622a\u201c\u6807\u9898\u515a\u201d\u548c\u201c\u7b97\u6cd5\u9677\u9631\u201d\u9020\u6210\u7684\u60c5\u7eea\u6ce2\u52a8\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u4ea7\u54c1\u7684\u771f\u6b63\u6311\u6218\u5728\u4e8e\u5176\u6838\u5fc3\u5356\u70b9\uff1a\u4e2a\u6027\u5316\u3002\u76ee\u524d\u901a\u8fc7\u7528\u6237\u81ea\u5b9a\u4e49\u8bdd\u9898\u6765\u5b9e\u73b0\u201c\u5b9a\u5236\u201d\uff0c\u8fd9\u79cd\u4e00\u7ea7\u8fc7\u6ee4\u5728\u521d\u671f\u6709\u6548\uff0c\u4f46\u5bb9\u6613\u9677\u5165\u201c\u4fe1\u606f\u8327\u623f\u201d\u4e14\u7f3a\u4e4f\u60ca\u559c\u3002\u7528\u6237\u8bc4\u8bba\u4e2d\u63d0\u51fa\u7684\u201c\u5b66\u4e60\u6536\u542c\u4e60\u60ef\u201d\u548c\u201c\u81ea\u5b9a\u4e49\u4fe1\u6e90\u201d\u662f\u901a\u5f80\u6df1\u5ea6\u4e2a\u6027\u5316\u7684\u5173\u952e\u8def\u5f84\uff0c\u82e5\u5904\u7406\u4e0d\u5f53\uff0cPodio\u6781\u6613\u9000\u5316\u4e3a\u4e00\u6b3e\u201c\u6709\u5206\u7c7b\u680f\u76ee\u7684AI\u64ad\u62a5RSS\u9605\u8bfb\u5668\u201d\u3002\u53e6\u4e00\u4e2a\u9690\u5fe7\u662f\u97f3\u9891\u5185\u5bb9\u8d28\u91cf\u2014\u2014AI\u751f\u6210\u7684\u8bed\u97f3\u5408\u6210\u4e0e\u81ea\u7136\u8bed\u8a00\u7ec4\u7ec7\u80fd\u5426\u8fbe\u5230\u8db3\u4ee5\u8ba9\u7528\u6237\u201c\u542c\u5b8c\u201d\u800c\u4e0d\u611f\u5230\u673a\u68b0\u4e4f\u5473\u7684\u6c34\u51c6\uff1f\u8fd9\u5bf9\u4e00\u4e2a\u4e24\u4eba\u56e2\u961f\u7684\u6280\u672f\u548c\u5185\u5bb9\u628a\u63a7\u529b\u662f\u5de8\u5927\u8003\u9a8c\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u603b\u4f53\u800c\u8a00\uff0cPodio\u662f\u4e00\u4e2a\u4ef7\u503c\u89c2\u6b63\u786e\u3001\u5207\u5165\u70b9\u7280\u5229\u7684MVP\uff0c\u5176\u5728\u53cd\u201c\u5237\u5c4f\u201d\u7406\u5ff5\u4e0a\u7684\u5e02\u573a\u6559\u80b2\u4ef7\u503c\u5927\u4e8e\u5f53\u524d\u7684\u4f53\u9a8c\u4ef7\u503c\u3002\u5982\u679c\u4e0d\u80fd\u5728\u4e2a\u6027\u5316\u7b97\u6cd5\u548c\u97f3\u9891\u542c\u611f\u4e0a\u5efa\u7acb\u58c1\u5792\uff0c\u5b83\u5c06\u5f88\u5feb\u9762\u4e34\u6765\u81ea\u7ade\u54c1\uff08\u5982\u8c37\u6b4cNotebookLM\u7684Audio Overview\u6216\u66f4\u6210\u719f\u7684\u64ad\u5ba2\u805a\u5408\u5668\uff09\u7684\u964d\u7ef4\u6253\u51fb\u3002\u5efa\u8bae\u56e2\u961f\u4f18\u5148\u6b7b\u78d5\u201c\u8d85\u4e2a\u6027\u5316\u201d\u548c\u201c\u65c1\u767d\u542c\u611f\u201d\u8fd9\u4e24\u70b9\uff0c\u800c\u4e0d\u662f\u5728UI\u4e0a\u8fc7\u591a\u96d5\u82b1\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\">Podio<\/span>\n                <\/div>\n<div class=\"comment-content\">Choose what you care about (work, interests, stocks, sports, crypto, your teams) and Podio builds a live station around it. Hit play, you&#8217;re on air. At the Explore, Hot Topics cover what&#8217;s breaking; daily and weekly channels handle the rest. No feeds, no scrolling.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Product Hunt \ud83d\udc4b<\/p>\n<\/p>\n<p>I&#8217;m Samet. Building Podio with <a href=\"https:\/\/www.producthunt.com\/@armanaksoy34\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@armanaksoy34<\/a><\/p>\n<\/p>\n<p>Quick context on why this exists: we kept opening news apps, scrolling for ten minutes, and walking away more anxious without actually knowing more. The feeds aren&#8217;t broken. They&#8217;re just doing a different job than the one we wanted them to do.<\/p>\n<p>So we tried audio. You tell Podio what you follow (your industry, a few stocks, the team you support, whatever it is) and it builds a live news station around that. Hit play, you&#8217;re on air.<\/p>\n<p>It works like a real radio, not a podcast app. There&#8217;s no episode list to manage. You press play and there&#8217;s news on what you picked.<\/p>\n<\/p>\n<p>Inside the app right now:<\/p>\n<p>\ud83c\udf99 Custom stations you build yourself<\/p>\n<p>\ud83d\udd25 Hot Topics: ready-made stations on whatever&#8217;s moving today<\/p>\n<p>\ud83d\udcc5 Daily and weekly channels that show up without you asking<\/p>\n<\/p>\n<p>We&#8217;ve been at this about a year and shipped to early users a few months back. The product changes most weeks based on what people tell us, which is why I&#8217;m here.<\/p>\n<\/p>\n<p>Try it: \ud83d\udcf1 iOS: <a href=\"http:\/\/apps.apple.com\/us\/app\/podio-news-podcast-maker\/id6747738443\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">apps.apple.com\/us\/app\/podio-news-podcast-maker\/id6747738443<\/a> \ud83c\udf10 Web: <a href=\"http:\/\/listenpodio.com\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">listenpodio.com<\/a><\/p>\n<\/p>\n<p>What I&#8217;d really value: spend a few minutes with it, then tell me what you&#8217;d change. If it clicks for you, an upvote means a lot to a two-person team. If it doesn&#8217;t, please tell me why. That&#8217;s the more useful comment anyway.<\/p>\n<\/p>\n<p>Huge thanks to <a href=\"https:\/\/www.producthunt.com\/@armanaksoy34\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@armanaksoy34<\/a> for being a relentless co-founder and to everyone on PH for taking a look \u2764\ufe0f<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>5<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@armanaksoy34\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@armanaksoy34<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@RohanRecommends\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@RohanRecommends<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@samet_sezer\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@samet_sezer<\/a>&nbsp;So, finally a filter away the trash and only listen what you like to. love the concept. This is spotify for news.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Point about scrolling news apps for ten minutes and just walking away anxious is so incredibly accurate. Endless doomscrolling is a terrible way to start the morning. Replacing that with a passive, hands-free radio format is a brilliant concept. <a href=\"https:\/\/www.producthunt.com\/@samet_sezer\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"samet_sezer\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@samet_sezer<\/a> <\/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\/@samet_sezer\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@samet_sezer<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@vikramp7470\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@vikramp7470<\/a>&nbsp;Thank you so much for your comment Vikram \ud83d\ude42 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<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@vikramp7470\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@vikramp7470<\/a>&nbsp;Thanks Vikram, really appreciate it \ud83d\ude4c Mornings shouldn&#8217;t drain you before the day even starts.<\/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>Cool! It reminds me one guy who built something like podcast from tweets. This is also an interesting idea \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\/@busmark_w_nika\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@busmark_w_nika<\/a>&nbsp;Thank you for the comment \ud83d\ude42 wow, that actually sounds really cool <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<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;Haha that\u2019s actually a really cool comparison \ud83d\ude04Appreciate the support Nika! \ud83d\ude4c<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">The podcast had a baby with a news radio and raised it on AI. And it SLAPS.<\/div>\n<div class=\"comment-actions\">\n<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\/@anusuya_bhuyan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@anusuya_bhuyan<\/a>&nbsp;This might be the new tagline ngl \ud83d\ude02 thanks Anusuya!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I really like this concept. Finally an app that builds me a live station with exactly the topics I care about &#8211; no endless scrolling through feeds.<\/p>\n<p>Quick question: How personalized does the content get over time? Does it learn from what I skip or listen to longer?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@hsr88\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@hsr88<\/a>&nbsp;Hey Krystian, thank you so much for your comment \ud83d\ude42 <\/p>\n<p>We are working on the memory of the agents to increase personalization over time, we will launch an agent training feature for hyper-personalization soon. <\/p>\n<p>As of now, you can select topics as specific as you want and your unique set of news will be curated instantly. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Came across this today and the concept is interesting. I like the idea of not having to scroll through feeds but I am a bit unsure how well it will actually match my specific interests without feeling too generic. Will give it a try and see if it actually feels personal or not. Btw good luck with the launch.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@sidraarifali\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sidraarifali<\/a>&nbsp;Hey Sidra, thank you so much for the kind comment and for giving Podio a try!<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/abs.twimg.com\/emoji\/v2\/svg\/1f64c.svg\" alt=\"\ud83d\ude4c\" title=\"Raising hands\" style=\"max-width: 100%\"><\/p>\n<p>We\u2019ve put a lot of effort into making the personalization extremely granular. You can go into very fine details when specifying your interests. <\/p>\n<p>I\u2019d love to hear how it matches (or doesn\u2019t match) your specific topics once you\u2019ve used it for a bit. Any feedback (positive or critical) will directly help us improve the algorithm.<\/p>\n<p>Really appreciate you stopping by and good luck with your own projects too!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Tired of doomscrolling news feeds and wasting time?<\/p>\n<p>We&#8217;ve built Podio so you can just hit play and stay informed hands-free.Podio turns your interests into a live, personalized audio stream:<\/p>\n<p>Perfect for commuting, workouts, cooking, or deep work.<br \/>No screens, no algorithms fighting for your attention. It&#8217;s early, and I&#8217;d genuinely love your honest feedback (what&#8217;s working, what&#8217;s missing, content quality, etc.).<\/p>\n<p>Many thanks to my co-founder <a href=\"https:\/\/www.producthunt.com\/@samet_sezer\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@samet_sezer<\/a> who made this possible. <br \/>Can&#8217;t wait for the feedback and comments today!<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/abs.twimg.com\/emoji\/v2\/svg\/1f449.svg\" alt=\"\ud83d\udc49\" title=\"Right pointing backhand index\" style=\"max-width: 100%\"><\/p>\n<p>Try it free on the App Store: <a href=\"https:\/\/apps.apple.com\/us\/app\/podio-news-podcast-maker\/id6747738443\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/apps.apple.com\/us\/app\/podio-news-podcast-maker\/id6747738443<\/a><\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Where are the news coming from can I give my personal sources ?<\/div>\n<div class=\"comment-actions\">\n<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\/@bengeekly\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@bengeekly<\/a>&nbsp;Thank you for your comment!<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/abs.twimg.com\/emoji\/v2\/svg\/1f60a.svg\" alt=\"\ud83d\ude0a\" title=\"Smiling face with smiling eyes\" style=\"max-width: 100%\"><\/p>\n<p>We pull news from both local and global sources across the web, along with updates and posts from X.<\/p>\n<p>Regarding personal resources, how would you like to add your own? <\/p>\n<p>One option  is letting users input whitelisted websites and specific X accounts to follow. Would that cover what you had in mind, or were you thinking of something different?<\/p>\n<p>Really appreciate the feedback!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/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\/LLJKBLTAD7R5YQ\" class=\"app-title\">Monkey Morse<\/a><\/p>\n<div class=\"one-liner\">A typing test, but for dits and dahs<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">17<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Monkey Morse \u662f\u4e00\u6b3e\u501f\u9274\u4e86Monkeytype\u98ce\u683c\u7684\u6d4f\u89c8\u5668\u7aef\u6469\u65af\u7535\u7801\u8bad\u7ec3\u5668\uff0c\u901a\u8fc7\u6253\u5b57\u6d4b\u8bd5\u7684\u5f62\u5f0f\uff0c\u89e3\u51b3\u73b0\u6709\u5b66\u4e60\u5de5\u5177\u754c\u9762\u8001\u65e7\u3001\u7f3a\u4e4f\u8fdb\u5ea6\u53cd\u9988\u7684\u75db\u70b9\uff0c\u8ba9\u7528\u6237\u8f7b\u677e\u3001\u6709\u8da3\u5730\u7ec3\u4e60\u53d1\u62a5\u4e0e\u89e3\u7801\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\/12b0301c-5378-43ca-8ef8-2fd745f8e992.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/X_7v08hicbo\"><source src=\"https:\/\/youtu.be\/X_7v08hicbo\" 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\/435e993e-b5ed-46d4-a2a4-4ce99679759a.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/f0909799-3de6-47ee-9980-9ebd3d208319.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/1a300970-d6a5-4909-af35-371335ddac79.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">Education<\/span><br \/>\n            <span class=\"tag\">Games<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u6469\u65af\u7535\u7801<\/span><br \/>\n            <span class=\"tag\">\u6253\u5b57\u6d4b\u8bd5<\/span><br \/>\n            <span class=\"tag\">\u5b66\u4e60\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u6d4f\u89c8\u5668\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u8bad\u7ec3\u5668<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u65f6\u7edf\u8ba1<\/span><br \/>\n            <span class=\"tag\">\u514d\u8d39\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u8da3\u5473\u5b66\u4e60<\/span><br \/>\n            <span class=\"tag\">\u7535\u952e\u6a21\u62df<\/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@anin_arafath\u795d\u8d3a\u53d1\u5e03\uff0c\u5e76\u8be2\u95ee\u4f5c\u8005\u66f4\u4fa7\u91cd\u4e8e\u201c\u8ba9\u7ec3\u4e60\u53d8\u5f97\u6709\u8da3\u201d\u8fd8\u662f\u201c\u8ba9\u51c6\u786e\u6027\/\u4e00\u81f4\u6027\u8ffd\u8e2a\u771f\u6b63\u5bf9\u5b66\u4e60\u6709\u7528\u201d\u3002\u4f5c\u8005\u672a\u76f4\u63a5\u56de\u590d\uff0c\u4f46\u8fd9\u6307\u51fa\u4e86\u4ea7\u54c1\u5728\u5a31\u4e50\u6027\u4e0e\u5b9e\u7528\u6027\u4e4b\u95f4\u7684\u6838\u5fc3\u5e73\u8861\u95ee\u9898\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                Monkey Morse\u5de7\u5999\u5730\u5c06\u201c\u6253\u5b57\u6d4b\u8bd5\u201d\u8fd9\u4e2a\u5df2\u88ab\u9a8c\u8bc1\u5177\u6709\u9ad8\u7528\u6237\u7c98\u6027\u7684\u4ea4\u4e92\u8303\u5f0f\u79fb\u690d\u5230\u201c\u6469\u65af\u7535\u7801\u5b66\u4e60\u201d\u8fd9\u4e00\u5c0f\u4f17\u5782\u76f4\u9886\u57df\uff0c\u672c\u8d28\u4e0a\u662f\u4e00\u79cd\u4f53\u9a8c\u7684\u964d\u7ef4\u6253\u51fb\u3002\u4ea7\u54c1\u6700\u806a\u660e\u7684\u70b9\u5728\u4e8e\uff0c\u5b83\u6ca1\u6709\u53bb\u8ddf\u4e13\u4e1a\u7684CW\uff08\u7b49\u5e45\u7535\u62a5\uff09\u8f6f\u4ef6\u6bd4\u62fc\u529f\u80fd\u6df1\u5ea6\uff0c\u800c\u662f\u6293\u4f4f\u4e86\u201c\u5feb\u901f\u53cd\u9988\u201d\u548c\u201c\u5373\u65f6\u91cd\u542f\u201d\u8fd9\u4e24\u4e2a\u4ee4\u4eba\u4e0a\u763e\u7684\u673a\u5236\uff0c\u5927\u5e45\u964d\u4f4e\u4e86\u5b66\u4e60\u8fc7\u7a0b\u4e2d\u7684\u632b\u8d25\u611f\u2014\u2014\u8fd9\u6b63\u662f\u65e0\u6570\u6ca1\u6491\u8fc7Koch\u6cd5\u524d\u671f\u67af\u71e5\u8bad\u7ec3\u7684\u521d\u5b66\u8005\u6700\u9700\u8981\u7684\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u4ea7\u54c1\u76ee\u524d\u6709\u660e\u786e\u7684\u4e24\u96be\u5904\u5883\uff1a\u5b83\u66f4\u50cf\u4e00\u4e2a\u201c\u6e38\u620f\u5316\u7684\u6d4b\u8bd5\u5de5\u5177\u201d\uff0c\u800c\u975e\u7cfb\u7edf\u6027\u7684\u201c\u5b66\u4e60\u8bfe\u7a0b\u201d\u3002\u8bc4\u8bba\u533a\u7684\u6838\u5fc3\u77db\u76fe\u2014\u2014\u201c\u6709\u8da3\u201d\u8fd8\u662f\u201c\u6709\u7528\u201d\u5c1a\u672a\u5f97\u5230\u89e3\u51b3\u3002\u5982\u679c\u53ea\u8ffd\u6c42\u5373\u65f6\u7684WPM\u548c\u51c6\u786e\u7387\uff0c\u7528\u6237\u5f88\u53ef\u80fd\u9677\u5165\u201c\u5728\u719f\u6089\u7684\u5185\u5bb9\u4e0a\u5237\u9ad8\u5206\u201d\u7684\u865a\u5047\u6210\u5c31\u611f\u4e2d\uff0c\u800c\u96be\u4ee5\u771f\u6b63\u5c06\u542c\u5230\u7684\u968f\u673a\u7535\u7801\u53d8\u6210\u808c\u8089\u8bb0\u5fc6\u3002\u76ee\u524d\u7684\u201c\u89e3\u7801\u201d\u6a21\u5f0f\u4e5f\u4ec5\u4ec5\u662f\u628a\u5b57\u7b26\u6620\u5c04\u7528\u6253\u5b57\u6d4b\u8bd5\u7684\u58f3\u5b50\u5957\u4e86\u4e00\u904d\uff0c\u7f3a\u4e4f\u6839\u636e\u7528\u6237\u9519\u8bef\u7387\u52a8\u6001\u8c03\u6574\u7684\u6e10\u8fdb\u5f0f\u5b66\u4e60\u8def\u5f84\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u5546\u4e1a\u548c\u6301\u7eed\u4ef7\u503c\u89d2\u5ea6\u770b\uff0c\u8be5\u5de5\u5177\u53ef\u80fd\u66f4\u9002\u5408\u4f5c\u201c\u5b66\u4e60\u6d41\u7a0b\u4e2d\u7684\u4e00\u73af\u201d\u2014\u2014\u6bd4\u5982\u4f5c\u4e3aKoch\u6cd5\u6216Farnsworth\u6cd5\u5b66\u4e60\u540e\u7684\u68c0\u9a8c\u5e73\u53f0\u3002\u5982\u679c\u540e\u7eed\u4e0d\u80fd\u8865\u5b8c\u4e00\u5957\u57fa\u4e8e\u6700\u77ed\u5b66\u4e60\u8def\u5f84\u7684\u7b97\u6cd5\u63a8\u8350\uff08\u5982\u4f18\u5148\u63a8\u9001\u7528\u6237\u5e38\u9519\u7684\u5b57\u7b26\uff09\uff0c\u5b83\u5f88\u5feb\u4f1a\u53d8\u6210\u4e00\u4e2a\u201c\u7528\u4e00\u6b21\u5c31\u5378\u8f7d\u201d\u7684\u65b0\u5947\u73a9\u610f\u3002\u771f\u6b63\u7684\u4ea7\u54c1\u4ef7\u503c\u4e0d\u5728\u4e8e\u505a\u5f97\u50cfMonkeytype\uff0c\u800c\u5728\u4e8e\u80fd\u5426\u6210\u4e3a\u6469\u65af\u7535\u7801\u9886\u57df\u7684\u201cDuolingo\u201d\uff1a\u65e2\u6709\u5237\u9898\u7684\u5feb\u611f\uff0c\u53c8\u6709\u79d1\u5b66\u7684\u6559\u5b66\u5185\u6838\u3002\u76ee\u524d\uff0c\u5b83\u53ea\u5b8c\u6210\u4e86\u524d\u8005\u7684\u4e00\u534a\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\">Monkey Morse<\/span>\n                <\/div>\n<div class=\"comment-content\">Monkey Morse is a clean, browser-based morse code trainer inspired by monkeytype. Tap a telegraph key to send dots and dashes, or decode morse audio and type the matching letter. Tracks WPM, accuracy, and consistency in real time. Free, no signup.<\/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 built Monkey Morse because I wanted to learn morse code but every existing tool felt like it was made in 2010 \u2014 clunky UIs, walls of dots and dashes, no sense of progress.<\/p>\n<p>So I borrowed the bit that makes monkeytype addictive (clean typing test, live stats, instant restart).<br \/>Would love feedback from anyone who&#8217;s tried to learn morse before, what made you bounce off?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@anin_arafath\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@anin_arafath<\/a>&nbsp;Congrats on the launch! A typing test for dits and dahs is a fun niche. What was more important for you? Making Morse practice feel fun, or making the accuracy\/consistncy tracking actually useful for learning?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#11<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/KY6UJA4SRQQ67V\" class=\"app-title\">Vela<\/a><\/p>\n<div class=\"one-liner\">Generate motion graphics with text. No After Effects<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">16<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Vela\u662f\u4e00\u6b3e\u901a\u8fc7\u6587\u672c\u63cf\u8ff0\u5373\u53ef\u81ea\u52a8\u751f\u6210\u4e13\u4e1a\u52a8\u6001\u56fe\u5f62\u7684AI\u5de5\u5177\uff0c\u5e2e\u52a9\u521b\u4f5c\u8005\u3001\u8425\u9500\u4eba\u5458\u548c\u521b\u59cb\u4eba\u65e0\u9700\u638c\u63e1After Effects\u7b49\u590d\u6742\u8f6f\u4ef6\uff0c\u5feb\u901f\u89e3\u51b3\u52a8\u6001\u56fe\u5f62\u5236\u4f5c\u8017\u65f6\u3001\u6210\u672c\u9ad8\u3001\u6a21\u677f\u540c\u8d28\u5316\u7684\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/cfab506c-074a-46bf-aa8a-14208ca08ff5.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=t3x1GJklJ_c\"><source src=\"https:\/\/www.youtube.com\/watch?v=t3x1GJklJ_c\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/98cf758d-5375-4f65-8532-eec88616df7a.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/ab3b4fea-11f6-414b-9612-7f992a2ebf09.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/2281b650-453e-43b1-a2b0-263cbb5b04f8.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Design Tools<\/span><br \/>\n            <span class=\"tag\">Marketing<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u52a8\u6001\u56fe\u5f62\u751f\u6210<\/span><br \/>\n            <span class=\"tag\">AI\u52a8\u753b\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u6587\u672c\u751f\u6210\u52a8\u753b<\/span><br \/>\n            <span class=\"tag\">\u514d\u8bbe\u8ba1\u8f6f\u4ef6<\/span><br \/>\n            <span class=\"tag\">\u8425\u9500\u52a8\u753b<\/span><br \/>\n            <span class=\"tag\">\u4ea7\u54c1\u6f14\u793a\u52a8\u753b<\/span><br \/>\n            <span class=\"tag\">\u52a8\u6001\u8bbe\u8ba1\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">\u521b\u4f5c\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u96f6\u95e8\u69db\u52a8\u753b<\/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\u5bf9\u4ea7\u54c1\u8868\u793a\u8ba4\u53ef\uff0c\u6709\u8bc4\u8bba\u8ba4\u4e3a\u5176\u201c\u770b\u8d77\u6765\u592a\u68d2\u4e86\u201d\u3002\u4e3b\u8981\u53cd\u9988\u96c6\u4e2d\u5728\u5de5\u5177\u662f\u5426\u771f\u7684\u80fd\u66ff\u4ee3\u4f20\u7edf\u5de5\u4f5c\u6d41\uff0c\u4ee5\u53ca\u751f\u6210\u6548\u679c\u7684\u4e13\u4e1a\u6027\u671f\u5f85\u4e0a\uff0c\u6682\u65e0\u5177\u4f53\u6279\u8bc4\u6216\u4f7f\u7528\u95ee\u9898\u63d0\u51fa\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                Vela\u7684\u5207\u5165\u70b9\u5728AI\u89c6\u9891\u751f\u6210\u7684\u7ea2\u6d77\u4e2d\u663e\u5f97\u683c\u5916\u7280\u5229\u2014\u2014\u5b83\u653e\u5f03\u4e86\u4e0eSora\u3001Runway\u7b49\u4e89\u593a\u201c\u5168\u80fd\u89c6\u9891\u751f\u6210\u201d\u7684\u6218\u573a\uff0c\u800c\u662f\u7cbe\u51c6\u951a\u5b9a\u201c\u52a8\u6001\u56fe\u5f62\uff08Motion Graphics\uff09\u201d\u8fd9\u4e00\u5782\u76f4\u9886\u57df\u3002\u8fd9\u6070\u6070\u662f\u5546\u4e1a\u4f20\u64ad\u4e2d\u7684\u9ad8\u9891\u521a\u9700\uff08\u4ea7\u54c1\u53d1\u5e03\u3001\u5e7f\u544a\u3001\u6559\u5b66\uff09\uff0c\u5374\u53c8\u662f\u4f20\u7edfAI\u5de5\u5177\u7684\u76f2\u533a\uff1a\u5927\u591a\u6570AI\u89c6\u9891\u5de5\u5177\u64c5\u957f\u751f\u6210\u5199\u5b9e\u6216\u98ce\u683c\u5316\u573a\u666f\uff0c\u4f46\u65e0\u6cd5\u7cbe\u786e\u63a7\u5236\u56fe\u6587\u6392\u7248\u3001\u5b57\u8ddd\u3001\u56fe\u5c42\u6e10\u663e\u7b49\u52a8\u6001\u56fe\u5f62\u8bbe\u8ba1\u7684\u6838\u5fc3\u8981\u7d20\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u4ea7\u54c1\u903b\u8f91\u770b\uff0cVela\u7684\u4ef7\u503c\u4e0d\u5728\u4e8e\u201cAI\u66ff\u4ee3\u4eba\u7c7b\u201d\uff0c\u800c\u5728\u4e8e\u201cAI\u5c06\u62bd\u8c61\u9700\u6c42\u76f4\u63a5\u7f16\u8bd1\u4e3a\u52a8\u6548\u4ee3\u7801\u6216\u6e32\u67d3\u6307\u4ee4\u201d\u3002\u5b83\u628a\u7528\u6237\u4ece\u201c\u64cd\u4f5c\u8f6f\u4ef6\u201d\u7684\u75db\u82e6\u7684\u8f6c\u79fb\u5230\u4e86\u201c\u63cf\u8ff0\u9700\u6c42\u201d\u7684\u5bf9\u8bdd\u4e2d\uff0c\u8fd9\u672c\u8d28\u4e0a\u662f\u5bf9\u8bbe\u8ba1\u751f\u4ea7\u6d41\u7a0b\u7684\u964d\u7ef4\u6253\u51fb\u3002\u5c24\u5176\u5bf9\u4e8e\u521d\u521b\u516c\u53f8\u548c\u72ec\u7acb\u521b\u4f5c\u8005\uff0c\u7701\u53bb\u51e0\u767e\u7f8e\u5143\u7684\u5916\u5305\u8d39\u548c\u4e00\u4e2a\u5de5\u4f5c\u65e5\u7684\u6c9f\u901a\u5468\u671f\uff0c\u662f\u5b9e\u5b9e\u5728\u5728\u7684ROI\u63d0\u5347\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u771f\u6b63\u7684\u58c1\u5792\u5728\u4e8e\u201c\u751f\u6210\u7ed3\u679c\u7684\u8d28\u91cf\u4e0e\u53ef\u63a7\u6027\u201d\u3002\u76ee\u524d\u6f14\u793a\u4e2d\u201c\u6d6e\u52a8UI\u5143\u7d20\u201d\u6216\u201c\u98de\u884c\u8def\u5f84\u5730\u56fe\u201d\u8fd9\u7c7b\u5e38\u89c1\u6a21\u677f\u5316\u9700\u6c42\u6613\u5b9e\u73b0\uff0c\u4f46\u7528\u6237\u82e5\u8981\u6c42\u201c\u5e26\u6709\u5fae\u5999\u7f13\u52a8\u66f2\u7ebf\u7684\u7c92\u5b50\u6d88\u6563\u6548\u679c\u201d\u6216\u201c\u7b26\u5408\u54c1\u724c\u89c4\u8303\u7684\u5b57\u95f4\u8ddd\u884c\u95f4\u8ddd\u201d\uff0cVela\u662f\u5426\u80fd\u901a\u8fc7\u201c\u518d\u804a\u5929\u201d\u51c6\u786e\u6821\u51c6\uff1f\u6b64\u5916\uff0c\u4e00\u65e6\u7528\u6237\u8981\u6c42\u590d\u6742\u5ea6\u8d85\u8fc7\u6a21\u578b\u9884\u8bbe\u7684\u7ec4\u4ef6\u5e93\uff0c\u5176\u9c81\u68d2\u6027\u5c06\u9762\u4e34\u8003\u9a8c\u3002\u66f4\u957f\u8fdc\u770b\uff0cAI\u52a8\u6548\u5de5\u5177\u82e5\u53ea\u4f1a\u201c\u6a21\u4eff\u6a21\u677f\u201d\uff0c\u800c\u4e0d\u7406\u89e3\u8bbe\u8ba1\u539f\u7406\uff08\u5982\u89c6\u89c9\u5c42\u7ea7\u3001\u52a8\u52bf\u5f15\u5bfc\uff09\uff0c\u6700\u7ec8\u6210\u54c1\u4ecd\u4f1a\u663e\u5f97\u5ec9\u4ef7\u3002Vela\u5fc5\u987b\u5728\u201c\u81ea\u7136\u8bed\u8a00\u7406\u89e3\u201d\u4e0e\u201c\u8bbe\u8ba1\u8bed\u6cd5\u201d\u4e4b\u95f4\u627e\u5230\u66f4\u6df1\u7684\u878d\u5408\uff0c\u800c\u975e\u4ec5\u505a\u4e00\u4e2a\u6587\u672c\u9a71\u52a8\u7684\u6a21\u677f\u5f15\u64ce\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\">Vela<\/span>\n                <\/div>\n<div class=\"comment-content\">Vela lets you generate professional motion graphics just by typing. Describe the motion graphic you need \u2014 &#8220;a clean product launch animation with floating UI elements&#8221; or &#8220;a 3D map showing a flight path from Delhi to London&#8221; \u2014 and Vela builds and animates it for you. No After Effects. No keyframes. No design degree. Once it&#8217;s generated, you keep refining it through chat. Say &#8220;change the background to dark mode&#8221; or &#8220;make the text entrance faster&#8221; \u2014 Vela updates it instantly.<\/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>We built Vela because motion graphics are still absurdly hard to make \u2014 and they shouldn&#8217;t be.<\/p>\n<p>If you&#8217;ve ever needed an animated intro, a product explainer, a map animation, or a motion graphic for a social ad, you know the options are: (a) learn After Effects and spend 6+ hours, (b) hire a freelancer for $400\u2013$800 and wait 3 days, or (c) use a template that looks like everyone else&#8217;s.<\/p>\n<p>Vela is option (d).<\/p>\n<p>\u2014 \u2014 \u2014<\/p>\n<p>HOW IT WORKS<\/p>\n<p>1. Type what you want<br \/>\nDescribe your motion graphic in plain English. &#8220;A premium dark-theme SaaS product reveal with animated UI mockups.&#8221; &#8220;An animated map showing our delivery zones across India.&#8221; &#8220;A clean lower-third intro for my YouTube channel.&#8221;<\/p>\n<p>2. Vela generates it<br \/>\nIn under 2 minutes, Vela builds and animates the entire motion graphic. Timing, transitions, typography, layout \u2014 all handled automatically.<\/p>\n<p>3. Refine by chatting<br \/>\nDon&#8217;t like the color? Say &#8220;make the background navy.&#8221; Want it faster? Say &#8220;tighten the animation timing.&#8221; Vela updates it live. No export, no re-import, no timeline hunting.<\/p>\n<p>\u2014 \u2014 \u2014<\/p>\n<p>WHO IT&#8217;S FOR<\/p>\n<p>\u2192 Creators who need professional intros and outros without a design budget<br \/>\n\u2192 Marketers who need animated social ads without a motion designer<br \/>\n\u2192 Founders who need a product demo animation for their launch<br \/>\n\u2192 Educators who want animated explainers without touching a timeline<br \/>\n\u2192 Freelancers who want to deliver motion graphics 10x faster<\/p>\n<p>\u2014 \u2014 \u2014<\/p>\n<p>WHAT MAKES IT DIFFERENT<\/p>\n<p>Most AI video tools generate stock-footage collages. Vela generates actual motion graphics \u2014 animated typography, shape animations, UI reveals, and map animations \u2014 from scratch, from your description.<\/p>\n<p>And unlike templates, every output is unique to your prompt. You&#8217;re not picking from a library. You&#8217;re describing exactly what you need.<\/p>\n<p>\u2014 \u2014 \u2014<\/p>\n<p>We&#8217;re just getting started. Would love your feedback \u2014 especially from anyone who&#8217;s suffered through After Effects. \ud83d\ude4f<\/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>looks awesome dude<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/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\/SXVPHAUCI5LNPY\" class=\"app-title\">Nexpend &#8211; Subscription Tracker<\/a><\/p>\n<div class=\"one-liner\">Stop wasting money for unwanted subscriptions<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">15<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>\u8fd9\u662f\u4e00\u6b3e\u4e3b\u6253\u9690\u79c1\u4fdd\u62a4\u7684\u672c\u5730\u5316\u8ba2\u9605\u7ba1\u7406\u5de5\u5177\uff0c\u5e2e\u52a9\u7528\u6237\u5728\u5fd8\u8bb0\u4ed8\u8d39\u65f6\u6536\u5230\u667a\u80fd\u63d0\u9192\uff0c\u907f\u514d\u56e0\u9057\u5fd8\u800c\u6d6a\u8d39\u6bcf\u5e74\u7ea6240\u7f8e\u5143\u7684\u65e0\u6548\u8ba2\u9605\u652f\u51fa\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\/6991da6a-bfef-4304-8eed-236c76ecb099.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/af8eae2c-70ea-4b72-ada4-ae3d70f5b791.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/69cb2732-5d40-44eb-afd5-e3a73f9421cc.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/d564c231-7f68-4cd5-909b-e6f18698fb83.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/f7d3fb53-29e1-4209-af02-cef3ed18ec14.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/60a77d9c-60d6-4a86-a029-78bcae5f81b7.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\">Fintech<\/span><br \/>\n            <span class=\"tag\">Money<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u8ba2\u9605\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u8d39\u7528\u8ffd\u8e2a<\/span><br \/>\n            <span class=\"tag\">\u9690\u79c1\u4f18\u5148<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u6570\u636e<\/span><br \/>\n            <span class=\"tag\">\u624b\u52a8\u8bb0\u8d26<\/span><br \/>\n            <span class=\"tag\">\u4e2a\u4eba\u7406\u8d22<\/span><br \/>\n            <span class=\"tag\">\u63d0\u9192\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u907f\u514d\u6d6a\u8d39<\/span><br \/>\n            <span class=\"tag\">iOS\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u8bb0\u8d26<\/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\u9700\u6c42\u75db\u70b9\uff08\u9057\u5fd8\u8ba2\u9605\uff09\uff0c\u4f46\u591a\u6b21\u8be2\u95ee\u80fd\u5426\u7ed1\u5b9a\u94f6\u884c\u81ea\u52a8\u68c0\u6d4b\u8ba2\u9605\uff0c\u5f00\u53d1\u8005\u660e\u786e\u62d2\u7edd\u5e76\u5f3a\u8c03\u9690\u79c1\u4f18\u5148\u3002\u6709\u7528\u6237\u5efa\u8bae\u589e\u52a0Chrome\u6269\u5c55\u5728\u8ba2\u9605\u65f6\u81ea\u52a8\u5f55\u5165\uff0c\u5f00\u53d1\u8005\u672a\u56de\u5e94\u4f46\u6697\u793a\u624b\u52a8\u8f93\u5165\u662f\u521d\u671f\u5fc5\u7ecf\u4e4b\u8def\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                **\u5b9a\u4f4d\u7cbe\u51c6\uff0c\u4f46\u201c\u9690\u79c1\u62a4\u57ce\u6cb3\u201d\u6b63\u5728\u6210\u4e3a\u529f\u80fd\u7262\u7b3c\u3002**\n            <\/p>\n<p class=\"ai-content\">\n                Nexpend\u7684\u5356\u70b9\u201c\u4e0d\u8054\u7f51\u3001\u4e0d\u7ed1\u5361\u3001\u4e0d\u4e0a\u4e91\u201d\u5728\u5f53\u524d\u6570\u636e\u6cc4\u9732\u9891\u53d1\u7684\u73af\u5883\u4e0b\u786e\u5b9e\u80fd\u51fb\u4e2d\u90e8\u5206\u6781\u7b80\u4e3b\u4e49\u6216\u9690\u79c1\u654f\u611f\u7528\u6237\u7684\u75d2\u70b9\u3002\u4f46\u4ed4\u7ec6\u63a8\u6572\uff0c\u8fd9\u662f\u4e00\u4e2a\u5178\u578b\u7684\u201c\u8fc7\u72b9\u4e0d\u53ca\u201d\u8bbe\u8ba1\uff1a**\u624b\u52a8\u5f55\u5165\u6240\u6709\u8ba2\u9605\u4fe1\u606f\uff0c\u672c\u8d28\u662f\u628a\u201c\u907f\u514d\u9057\u5fd8\u201d\u7684\u75db\uff0c\u66ff\u6362\u6210\u4e86\u201c\u5fc5\u987b\u8bb0\u5fc6\u5e76\u4e3b\u52a8\u8bb0\u5f55\u201d\u7684\u66f4\u5927\u75db\u3002** \u7528\u6237\u8fde\u8ba2\u9605\u672c\u8eab\u90fd\u5fd8\u4e86\uff0c\u51ed\u4ec0\u4e48\u8fd8\u80fd\u8bb0\u4f4f\u6253\u5f00APP\u624b\u52a8\u5f55\u5165\uff1f\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u8bc4\u8bba\u53cd\u9988\u53ef\u4ee5\u770b\u51fa\uff0c\u7528\u6237\u6700\u6838\u5fc3\u7684\u9700\u6c42\u5176\u5b9e\u662f\u201c\u81ea\u52a8\u53d1\u73b0+\u4e00\u952e\u7ba1\u7406\u201d\uff0c\u800c\u975e\u201c\u4e00\u6b65\u4e00\u8f93\u5165+\u9690\u79c1\u6258\u8bcd\u201d\u3002\u5f00\u53d1\u8005\u5bf9\u6bcf\u4e00\u6761\u5173\u4e8e\u5bf9\u63a5\u94f6\u884c\u7684\u63d0\u95ee\u90fd\u7ed9\u51fa\u957f\u7bc7\u540c\u4e00\u5957\u89e3\u91ca\uff0c\u8fd9\u4e0e\u5176\u8bf4\u662f\u56de\u5e94\uff0c\u4e0d\u5982\u8bf4\u662f\u9632\u5fa1\u6027\u8bdd\u672f\u2014\u2014**\u7528\u9690\u79c1\u6b63\u786e\u6765\u63a9\u76d6\u529f\u80fd\u7f3a\u5931\u3002** \u771f\u6b63\u5c0a\u91cd\u9690\u79c1\u7684\u89e3\u51b3\u65b9\u6848\uff0c\u5e94\u8be5\u662f\u8ba9\u7528\u6237\u5728\u672c\u5730\u5b8c\u6210\u652f\u4ed8\u6570\u636e\u5bfc\u5165\uff08\u5982API token\u3001\u4fe1\u7528\u5361\u8d26\u5355PDF\u89e3\u6790\uff09\uff0c\u800c\u975e\u5f7b\u5e95\u5272\u88c2\u8fde\u63a5\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u6b64\u5916\uff0c15\u4e2a\u6295\u7968\u548c\u5be5\u5be5\u6570\u6761\u8bc4\u8bba\uff08\u57fa\u672c\u662f\u4eb2\u53cb\u56e2\u4e92\u8d5e\uff09\u8868\u660e\u4ea7\u54c1\u5c1a\u5904\u4e8e\u6781\u65e9\u671f\u3002\u5355\u9760\u201c\u624b\u52a8\u8bb0\u8d26+\u63d0\u9192\u201d\u7684\u6a21\u5f0f\u5f88\u96be\u5f62\u6210\u7c98\u6027\u2014\u2014\u540c\u7c7b\u7ade\u54c1\u5982Bobby\u3001Subby\u5df2\u8986\u76d6\u6210\u719f\uff0c\u800c\u94f6\u884cAPP\u5185\u7f6e\u7684\u8ba2\u9605\u68c0\u6d4b\u529f\u80fd\u6b63\u5728\u5d1b\u8d77\uff08\u5982Mint\u3001Rocket Money\uff09\u3002Nexpend\u82e5\u53ea\u505c\u7559\u5728\u201c\u7528\u8bb0\u4e8b\u672c\u5f62\u5f0f\u5356\u9690\u79c1\u6545\u4e8b\u201d\uff0c\u5927\u6982\u7387\u53ea\u4f1a\u6210\u4e3a\u7528\u6237App Store\u91cc\u53e6\u4e00\u4e2a\u201c\u4e0b\u8f7d\u540e\u5fd8\u8bb0\u6253\u5f00\u201d\u7684\u8ba2\u9605\u672c\u8eab\u3002**\u503c\u5f97\u5c1d\u8bd5\u7684\u65b9\u5411\u662f\uff1a\u589e\u52a0\u672c\u5730PDF\/\u622a\u56fe\u6279\u91cf\u5bfc\u5165\u3001\u5316\u624b\u52a8\u4e3a\u534a\u81ea\u52a8\uff0c\u6216\u505a\u6210\u667a\u80fd\u65e5\u5386\u5f0f\u5361\u7247\u7ba1\u7406\uff0c\u5426\u5219\u8fd9\u4e2a\u4ea7\u54c1\u6551\u4e0d\u4e86\u5fd8\u8bb0\u8ba2\u9605\u7684\u4eba\uff0c\u53ea\u4f1a\u6210\u4e3a\u7528\u6237\u53c8\u4e00\u9635\u7684\u81ea\u6211\u611f\u52a8\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\">Nexpend &#8211; Subscription Tracker<\/span>\n                <\/div>\n<div class=\"comment-content\">The average person wastes $240\/year on forgotten subscriptions. Nexpend helps you track every subscription, get smart reminders, and take full control of your spending.<\/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>I built this after realizing I was paying for subscriptions I didn\u2019t even remember.<\/p>\n<p>Most tools I tried felt too complex or required too much setup, so I wanted something simple, fast, and private.<\/p>\n<p>Curious to hear how you\u2019re currently managing subscriptions (if at all).<\/p>\n<p>Happy to answer any questions or take feedback!<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>4<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Does Nexpend connect to bank transactions to detect subscriptions automatically, or is it manual tracking only?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@naimz\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@naimz<\/a>&nbsp;No for banking connection -&gt; it&#8217;s built around privacy, so no linking with any entity, also it&#8217;s built to keep data locally on your device.<\/p>\n<\/p>\n<p>Nexpend isn\u2019t trying to replace bank-connected finance apps. That\u2019s a different product with a very different tradeoff.<\/p>\n<\/p>\n<p>A few reasons behind this approach:<\/p>\n<ul>\n<li>\n<p>Privacy matters a lot. I intentionally don\u2019t ask users to connect their bank account, email inbox, or any third-party service just to use the app.<\/p>\n<\/li>\n<li>\n<p>Not everything can be auto-detected anyway. School fees, gym memberships paid in cash, family subscriptions, local services, manual recurring payments, subscriptions on cards you no longer actively use\u2026 many real-world recurring expenses won\u2019t be caught automatically.<\/p>\n<\/li>\n<li>\n<p>Anything you use to manage subscriptions requires initial input somewhere. Whether it\u2019s a spreadsheet, Notion, another app, or a finance dashboard, the first setup always exists.<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\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 Ayoub \ud83d\ude80<br \/>\nWishing you big success today \ud83d\udc4f<\/div>\n<div class=\"comment-actions\">\n<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\/@mustapha_ajermou1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mustapha_ajermou1<\/a>&nbsp;Thanks Mustapha for the support \ud83d\ude4f\ud83d\ude4f<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>congrats on the launch can i link it with my bank for example mercury and it detects subs from there ?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@nabil_bakour1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@nabil_bakour1<\/a>&nbsp;Thanks, buddy \ud83d\ude4f<br \/>No brother for banking connection -&gt; it&#8217;s built around privacy, so no linking with any entity, also it&#8217;s built to keep data locally on your device.<\/p>\n<\/p>\n<p>Nexpend isn\u2019t trying to replace bank-connected finance apps. That\u2019s a different product with a very different tradeoff.<\/p>\n<\/p>\n<p>A few reasons behind this approach:<\/p>\n<ul>\n<li>\n<p>Privacy matters a lot. I intentionally don\u2019t ask users to connect their bank account, email inbox, or any third-party service just to use the app.<\/p>\n<\/li>\n<li>\n<p>Not everything can be auto-detected anyway. School fees, gym memberships paid in cash, family subscriptions, local services, manual recurring payments, subscriptions on cards you no longer actively use\u2026 many real-world recurring expenses won\u2019t be caught automatically.<\/p>\n<\/li>\n<li>\n<p>Anything you use to manage subscriptions requires initial input somewhere. Whether it\u2019s a spreadsheet, Notion, another app, or a finance dashboard, the first setup always exists.<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"comment-actions\">\n<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 Ayoub \ud83d\udc4f<br \/>\nApp well needed, I wish there\u2019s a chrome extension that gets triggered whenever I subscribe to any platform, so I don\u2019t have to add it manually.<\/div>\n<div class=\"comment-actions\">\n<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\">Subscribe or Upgrade plan, because the pain is forgetting to downgrade before the next payment then u get shocked with the amount deducted<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\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\/TOIHDRQVDMW5R6\" class=\"app-title\">JellyNet<\/a><\/p>\n<div class=\"one-liner\">Sell your idle API quota. Buy any LLM for less.<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">13<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>JellyNet\u662f\u4e00\u4e2aAPI\u5bb9\u91cf\u5171\u4eab\u5e02\u573a\uff0c\u8ba9\u5f00\u53d1\u8005\u5c06\u95f2\u7f6e\u7684AI API\u5bc6\u94a5\uff08\u5982OpenAI\u3001Anthropic\u7b4940+\u4f9b\u5e94\u5546\uff09\u8d21\u732e\u5230\u516c\u5171\u6c60\u4e2d\u8d5a\u53d6USDC\uff0c\u540c\u65f6\u4e70\u5bb6\u901a\u8fc7\u4e00\u4e2a\u901a\u7528\u5bc6\u94a5\u5373\u53ef\u4f4e\u4ef7\u8c03\u7528\u4efb\u610f\u6a21\u578b\uff0c\u5b9e\u73b0\u201c\u95f2\u7f6e\u53d8\u73b0\u3001\u6309\u9700\u8d2d\u4e70\u201d\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\/14314923-b765-4491-9ed2-ed448044ffad.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/0e9ad0f6-a750-4ae5-9ffa-4e33242c3e53.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/e2855d43-e1b3-4f19-9fae-e403944605d2.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/d50e3e44-fa93-4c44-9d19-7420b77f897b.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/c0d1b22b-8997-4c41-8fba-453b4d6a040f.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\/a61d6a30-5746-46c8-86c3-eda36f81f4b9.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/ZA1kY0zLISc\"><source src=\"https:\/\/youtu.be\/ZA1kY0zLISc\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">API<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">API\u5bb9\u91cf\u5171\u4eab<\/span><br \/>\n            <span class=\"tag\">AI\u57fa\u7840\u8bbe\u65bd<\/span><br \/>\n            <span class=\"tag\">\u95f2\u7f6e\u8d44\u6e90\u53d8\u73b0<\/span><br \/>\n            <span class=\"tag\">P2P\u5e02\u573a<\/span><br \/>\n            <span class=\"tag\">LLM\u805a\u5408<\/span><br \/>\n            <span class=\"tag\">\u901a\u7528API\u5bc6\u94a5<\/span><br \/>\n            <span class=\"tag\">\u65e0\u4f9b\u5e94\u5546\u9501\u5b9a<\/span><br \/>\n            <span class=\"tag\">x402\u5fae\u652f\u4ed8<\/span><br \/>\n            <span class=\"tag\">Solana<\/span><br \/>\n            <span class=\"tag\">\u53bb\u4e2d\u5fc3\u5316<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u8ba4\u53ef\u89e3\u51b3\u591aAPI\u5bc6\u94a5\u7ba1\u7406\u7684\u75db\u70b9\uff0c\u4f46\u5173\u6ce8\u8def\u7531\u7b97\u6cd5\u662f\u5426\u4f18\u5316\u6210\u672c\/\u5ef6\u8fdf\uff0c\u4ee5\u53ca\u8bf7\u6c42\u8def\u7531\u5230\u7b2c\u4e09\u65b9\u5bc6\u94a5\u65f6\u7684\u53ef\u9760\u6027\u3001\u9690\u79c1\u4e0e\u4fe1\u4efb\u95ee\u9898\u3002\u521b\u59cb\u4eba\u56de\u5e94\u4e86\u9a8c\u8bc1\u3001\u81ea\u52a8\u91cd\u8bd5\u548c\u7ecf\u6d4e\u6fc0\u52b1\u8bbe\u8ba1\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                JellyNet\u7684\u6784\u60f3\u2014\u2014API\u7248\u672c\u7684Airbnb\u2014\u2014\u786e\u5b9e\u6320\u5230\u4e86\u5f00\u53d1\u8005\u201c\u82b1\u51a4\u6789\u94b1\u4e70\u914d\u989d\u201d\u7684\u75d2\u5904\u3002\u4f46\u5b83\u7684\u771f\u6b63\u4ef7\u503c\u4e0d\u5728\u4e8e\u201c\u5171\u4eab\u7ecf\u6d4e\u201d\u7684\u7406\u5ff5\u5305\u88c5\uff0c\u800c\u5728\u4e8e\u5c06\u201c\u95f2\u7f6e\u8d44\u6e90\u201d\u91d1\u878d\u5316\uff0c\u521b\u9020\u4e86\u4e00\u4e2a\u9ad8\u6548\u7684\u4e8c\u7ea7\u5e02\u573a\u3002\u5bf9\u4f9b\u5e94\u5546\u800c\u8a00\uff0c\u5b83\u628a\u6c89\u6ca1\u6210\u672c\u53d8\u6210\u4e86\u88ab\u52a8\u6536\u5165\uff1b\u5bf9\u4e70\u5bb6\u800c\u8a00\uff0c\u5b83\u6253\u7834\u4e86\u4f9b\u5e94\u5546\u7684\u5b9a\u4ef7\u6743\u548c\u9501\u6b7b\u6548\u5e94\uff0c\u5b9e\u73b0\u4e8630%\u7684\u6298\u6263\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4e0d\u8fc7\uff0c\u4ea7\u54c1\u76ee\u524d\u4ecd\u9762\u4e34\u4e25\u5cfb\u8003\u9a8c\u3002\u9996\u5148\u662f\u4fe1\u4efb\u95ee\u9898\uff1a\u867d\u7136\u521b\u59cb\u4eba\u63d0\u5230\u4e86ZK\u52a0\u5bc6\u548c\u81ea\u52a8\u9a8c\u8bc1\uff0c\u4f46\u5728\u5b9e\u73b0\u4e4b\u524d\uff0c\u654f\u611f\u6570\u636e\u901a\u8fc7\u4ed6\u4eba\u5bc6\u94a5\u6d41\u8f6c\u672c\u8eab\u5c31\u662f\u5b89\u5168\u707e\u96be\uff1b\u4e70\u5bb6\u65e0\u6cd5\u77e5\u9053\u8c03\u7528\u7684\u662f\u8c01\u7684\u91d1\u94a5\uff0c\u4f9b\u5e94\u5546\u4e5f\u65e0\u6cd5\u63a7\u5236\u8c01\u7528\u4e86\u81ea\u5df1\u7684\u914d\u989d\u3002\u5176\u6b21\u662f\u7ecf\u6d4e\u6a21\u578b\u53ef\u6301\u7eed\u6027\uff1a60%\u7684\u5206\u6210\u6bd4\u4f8b\u5bf9\u4f9b\u5e94\u5546\u5f88\u6709\u5438\u5f15\u529b\uff0c\u4f4610%\u7684\u5e73\u53f0\u62bd\u6210\u80fd\u5426\u8986\u76d6\u8def\u7531\u3001\u91cd\u8bd5\u3001\u5f02\u5e38\u5904\u7406\u548c\u672a\u6765\u5408\u89c4\u6210\u672c\uff1f\u968f\u7740\u89c4\u6a21\u6269\u5927\uff0c\u6076\u610f\u4f9b\u5e94\u5546\u5237\u5931\u6548\u5bc6\u94a5\u6216\u4e70\u5bb6\u6ee5\u7528\u514d\u8d39\u989d\u5ea6\u5c06\u5bfc\u81f4\u7cfb\u7edf\u8106\u5f31\u3002\u6700\u540e\u662f\u7528\u6237\u4f53\u9a8c\u7684\u73b0\u5b9e\u843d\u5dee\uff1ax402\u5fae\u652f\u4ed8\u867d\u7136\u9177\u70ab\uff0c\u4f46Solana\u94fe\u4e0a\u7684\u7f51\u7edc\u62e5\u5835\u548c\u624b\u7eed\u8d39\u7528\u53ef\u80fd\u524a\u5f31\u201c\u5373\u7528\u5373\u4ed8\u201d\u7684\u5373\u65f6\u6027\uff0c\u800c\u666e\u901a\u5f00\u53d1\u8005\u66f4\u53ef\u80fd\u9009\u62e9\u7b80\u4fbf\u7684Stripe\u4fe1\u7528\u5361\uff0c\u800c\u975e\u89e6\u78b0\u52a0\u5bc6\u94b1\u5305\u3002\n            <\/p>\n<p class=\"ai-content\">\n                JellyNet\u7684\u65b9\u5411\u662f\u6b63\u786e\u7684\u2014\u2014AI\u57fa\u7840\u8bbe\u65bd\u7684\u4e0b\u4e00\u6b65\u786e\u5b9e\u662f\u4f18\u5316\u5b58\u91cf\u800c\u975e\u5806\u780c\u65b0\u7b97\u529b\u3002\u4f46\u5b83\u7684\u5929\u82b1\u677f\u4e0d\u5728\u6280\u672f\uff0c\u800c\u5728\u80fd\u5426\u5efa\u7acb\u8d77\u4e00\u4e2a\u8db3\u591f\u900f\u660e\u4e14\u53ef\u4fe1\u7684\u6cbb\u7406\u673a\u5236\uff0c\u8ba9\u201c\u5171\u4eab\u201d\u4e0d\u81f3\u4e8e\u6ca6\u4e3a\u201c\u98ce\u9669\u5916\u6ea2\u201d\u3002\u82e5\u53ea\u662f\u7b80\u5355\u505a\u4e00\u5c42\u5bc6\u94a5\u8f6c\u53d1\uff0c\u90a3\u5b83\u5f88\u5feb\u5c31\u4f1a\u6ca6\u4e3a\u673a\u5668\u4eba\u722c\u866b\u7684\u517b\u6599\uff1b\u82e5\u80fd\u771f\u6b63\u89e3\u51b3\u9690\u79c1\u4e0e\u4fe1\u4efb\u7684\u6865\u6881\u95ee\u9898\uff0c\u5b83\u6216\u8bb8\u80fd\u6210\u4e3aAI\u65f6\u4ee3\u7684\u201cHTTP\u4ee3\u7406\u6c11\u4e3b\u5316\u201d\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\">JellyNet<\/span>\n                <\/div>\n<div class=\"comment-content\">JellyNet is an API capacity-sharing marketplace. Suppliers contribute idle API keys across 40+ LLM providers and earn USDC for every call served. Buyers get instant access through one universal API key with automatic failover across the entire pool. AI agents pay per-call using the x402 payment protocol \u2014 no signup, no API key management. Just a standard HTTP request with a USDC micropayment on Solana. Self-serve: your own keys serve your own calls first &#038; free.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey Product Hunt! \ud83d\udc4b<\/p>\n<p>I&#8217;m Mukul, solo founder of JellyNet. Here&#8217;s the problem that wouldn&#8217;t leave my head:<\/p>\n<p>I pay for API subscriptions across OpenAI, Anthropic, Google, ElevenLabs, Mistral, and a dozen others. Most months, I use maybe 30-40% of my quota. The rest just expires. Multiply that by every developer, startup, and AI team out there \u2014 we&#8217;re collectively wasting millions in unused API capacity every month.<\/p>\n<p>JellyNet fixes this. It&#8217;s an API capacity-sharing marketplace:<\/p>\n<p>For Suppliers (people with API keys):<br \/>\n\u2192 Paste your idle API keys into JellyNet<br \/>\n\u2192 We pool them into a shared capacity layer<br \/>\n\u2192 Every time someone uses capacity from your keys, you earn USDC<br \/>\n\u2192 Your own calls use your own keys first \u2014 completely free<br \/>\n\u2192 You only start earning when others consume from your pool<\/p>\n<p>For Buyers (developers and AI agents):<br \/>\n\u2192 One universal API key (jn_xxx) works across 40+ LLM providers<br \/>\n\u2192 Weighted-random rotation across the entire pool \u2014 automatic failover<br \/>\n\u2192 If one key hits a rate limit, we silently retry on the next one<br \/>\n\u2192 No vendor lock-in, no provider-specific SDKs<\/p>\n<p>For AI Agents (the x402 flow):<br \/>\n\u2192 Send a standard HTTP request to our endpoint<br \/>\n\u2192 Get back a 402 Payment Required with a USDC price<br \/>\n\u2192 Pay the micropayment on Solana, retry with proof<br \/>\n\u2192 Get the upstream response \u2014 no account, no key, no signup<br \/>\n\u2192 This is the HTTP 402 status code working as originally intended<\/p>\n<p>What&#8217;s live today:<br \/>\n&#8211; 40+ supported providers (OpenAI, Anthropic, Google, Mistral, Cohere, ElevenLabs, Replicate, Stability AI, Voyage, and many more)<br \/>\n&#8211; Universal API key with weighted pool rotation<br \/>\n&#8211; x402 agent payment rail on Solana<br \/>\n&#8211; Fiat payments via Stripe for human buyers (coming soon)<br \/>\n&#8211; Epoch-based revenue distribution (8-hour cycles)<br \/>\n&#8211; Real-time supplier dashboard with earnings tracking<br \/>\n&#8211; Automatic 429\/rate-limit retry with silent key rotation<\/p>\n<p>The economics:<br \/>\n&#8211; Suppliers earn 60% of every call served (native-call mode)<br \/>\n&#8211; Buyers get 30% below retail pricing<br \/>\n&#8211; JellyNet takes 10%<br \/>\n&#8211; Your own keys serve your own calls FREE \u2014 payment only happens when you consume from other suppliers&#8217; pools<\/p>\n<p>I built JellyNet because I believe the next wave of AI infrastructure isn&#8217;t about building more capacity \u2014 it&#8217;s about better utilizing what already exists. Every idle API key is wasted value. Every rate-limited developer is a missed opportunity.<\/p>\n<p>This is real P2P &#8220;capacity sharing&#8221; \u2014 the Airbnb model applied to API subscriptions. You&#8217;re not reselling; you&#8217;re sharing surplus capacity and getting compensated for it.<\/p>\n<p>Would love to hear from the PH community: What API subscriptions do you pay for but barely use? That&#8217;s exactly the surplus JellyNet turns into income. \ud83e\udebc<\/p>\n<p>Try it out \u2192 <a href=\"https:\/\/www.jellynet.net\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/www.jellynet.net<\/a><br \/>\nJoin our Group \u2192 <a href=\"https:\/\/t.me\/jellynet\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/t.me\/jellynet<\/a><\/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\/@mukul_israni\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mukul_israni<\/a>&nbsp;<br \/>This is solving a real pain for me. I currently manage API keys for OpenAI, Anthropic, and Gemini across 3 different dashboards with 3 different billing cycles.  The universal key concept is exactly what I need \u2014 just swap the base URL and it routes to whoever has capacity? That&#8217;s clean.  <br \/>Question: how does the routing decide which provider to use? Is it random or does it optimize for something?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Quick breakdown of what you can actually do right now:  <\/p>\n<p>\ud83d\uded2 Browse the marketplace (no login needed) \u2014 <a href=\"http:\/\/jellynet.net\/marketplace\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">jellynet.net\/marketplace<\/a> <br \/>\u2192 40 providers across 12 categories: LLMs, image gen, speech, embeddings, vision, crypto, market data  <\/p>\n<p>\ud83d\udd11 As a buyer: <br \/>\u2192 Sign up, get a universal jn_xxx key <br \/>\u2192 Swap your provider URL to <a href=\"http:\/\/api.jellynet.net\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">api.jellynet.net<\/a> \u2014 that&#8217;s it, no SDK <br \/>\u2192 Smart routing picks the cheapest available key. If it 429s, silent retry on the next one.  <\/p>\n<p>\ud83d\udcb0 As a supplier: <br \/>\u2192 Paste your idle API keys <br \/>\u2192 Your own calls run free first <br \/>\u2192 Surplus earns you 60% per call served <br \/>\u2192 8-hour payouts in USDC or fiat  \ud83e\udd16 For AI agents: <br \/>\u2192 x402 micropayments on Solana \u2014 no signup, no API key, just pay-per-call with USDC  <\/p>\n<p>$5 free credits on signup to try it out.  <\/p>\n<p>We broke down the full story in a thread here: <a href=\"https:\/\/x.com\/jellynet_\/status\/2058452265095278629?s=20\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/x.com\/jellynet_\/status\/2058452265095278629?s=20<\/a>  <\/p>\n<p>Would love honest feedback \u2014 what&#8217;s missing, what&#8217;s confusing, what would make you actually use this. We&#8217;re building in public and every comment shapes what ships next \ud83d\ude4f<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This is a pretty unusual take on the LLM API problem. How do you handle reliability and trust when requests are routed through supplier contributed API capacity?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@dmitrii_volosatov\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dmitrii_volosatov<\/a>&nbsp;Great question \u2014 trust is the core design challenge. <\/p>\n<p>Three layers handle it:<\/p>\n<p>First, every API key goes through a validation call before entering the pool. If it doesn&#8217;t return a valid response, it&#8217;s rejected.<\/p>\n<p>Second, routing uses weighted-random rotation across the supplier pool. If a call fails (5xx or rate limit), the router silently retries on the next available key \u2014 default 3 retries within a 9-second budget, buyer-configurable. No single key is a bottleneck.<\/p>\n<p>Third, the economics enforce trust: suppliers only earn when their keys successfully serve calls. Failed calls = auto-refund to buyer, zero payout to supplier. Direct financial incentive to contribute reliable keys.<\/p>\n<p>On the privacy side, we&#8217;re building toward end-to-end ZK encryption for prompts and responses so that content is never exposed in transit between buyer and supplier infrastructure \u2014 neither JellyNet nor the supplier can read what&#8217;s being sent. Early stage on that but it&#8217;s core to the roadmap.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/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\/NTGLIPXU5I4NLT\" class=\"app-title\">CloudRaptor<\/a><\/p>\n<div class=\"one-liner\">Cloud Server management, made simple<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">10<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>CloudRaptor \u8ba9\u4e0d\u61c2 DevOps \u7684\u521b\u59cb\u4eba\u4e0e\u673a\u6784\uff0c\u901a\u8fc7\u53ef\u89c6\u5316\u9762\u677f\u4e00\u952e\u7ba1\u7406\u591a\u4e91\u670d\u52a1\u5668\uff08\u5982 AWS\u3001DigitalOcean\uff09\uff0c\u5f7b\u5e95\u544a\u522b\u7ec8\u7aef\u914d\u7f6e\u3001\u5b89\u5168\u6f0f\u6d1e\u4e0e\u9ad8\u6602\u8d26\u5355\u7684\u5669\u68a6\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\/58767bf7-4e46-4405-a567-55d19e418a8a.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/_3_5kslpJw8\"><source src=\"https:\/\/youtu.be\/_3_5kslpJw8\" 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\/563b8994-257b-4aeb-b0fb-b0444a360a90.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\/f35f3ac5-031f-42bd-9e8b-59e25d6166df.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/6ad95159-0379-44bb-9e74-bffa0c3906c3.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b198fc4d-603e-4302-8356-38d89de729e6.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/737e9d2d-be40-4386-ab0c-f3fdd3d4b12c.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/adc93070-d5d5-4f7e-a984-e8e6cd1acbd5.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/15177f7f-9380-47e8-9261-16104a252fd9.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\">SaaS<\/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\">\u670d\u52a1\u5668\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u4e00\u952e\u90e8\u7f72<\/span><br \/>\n            <span class=\"tag\">\u4e91\u9762\u677f<\/span><br \/>\n            <span class=\"tag\">\u65e0\u4ee3\u7801\u8fd0\u7ef4<\/span><br \/>\n            <span class=\"tag\">Docker\u9694\u79bb<\/span><br \/>\n            <span class=\"tag\">WordPress\u6258\u7ba1<\/span><br \/>\n            <span class=\"tag\">VPS\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u7ad9\u957f\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u72ec\u7acb\u5f00\u53d1\u8005<\/span><br \/>\n            <span class=\"tag\">\u591a\u4e91\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\u666e\u904d\u8d5eUI\u6e05\u723d\uff0c\u652f\u6301\u8fc1\u79fb\u4f46\u65b0\u624b\u62c5\u5fc3\u64cd\u4f5c\u590d\u6742\u3002\u5173\u952e\u95ee\u9898\u662f\uff1a\u90e8\u7f72\u5931\u8d25\u65e0\u660e\u786e\u9519\u8bef\u63d0\u793a\uff0c\u5f71\u54cd\u521d\u4f53\u9a8c\uff084\u8d5e\u5dee\u8bc4\uff09\uff1b\u5236\u4f5c\u8005\u56de\u5e94\u5c06\u6392\u67e5\u65e5\u5fd7\u5e76\u4feebug\u3002\u53e6\u7528\u6237\u547c\u5401\u63d0\u4f9b\u89c6\u9891\u6f14\u793a\u4e0e\u76f4\u64ad\u5f15\u5bfc\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                CloudRaptor \u6293\u4f4f\u4e86\u201c\u6280\u672f\u503a\u8f6c\u5ac1\u201d\u8fd9\u4e2a\u6838\u5fc3\u75db\u70b9\uff1a\u5b83\u4e0d\u662f\u5728\u9020\u65b0\u7684\u670d\u52a1\u5668\uff0c\u800c\u662f\u4e3a\u90a3\u4e9b\u88ab Linux \u547d\u4ee4\u884c\u3001\u5b89\u5168\u6f0f\u6d1e\u548c\u9ad8\u6602\u8fd0\u7ef4\u6210\u672c\u6298\u78e8\u7684\u201c\u975e\u6280\u672f\u201d\u521b\u59cb\u4eba\uff0c\u63d0\u4f9b\u4e86\u4e00\u5ea7\u771f\u6b63\u53ef\u843d\u5730\u7684\u9003\u751f\u8231\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5176\u4ea7\u54c1\u903b\u8f91\u5f88\u6e05\u6670\u2014\u2014\u7528 Docker \u9694\u79bb\u6bcf\u4e2a\u7ad9\u70b9\uff0c\u89e3\u51b3\u4f20\u7edf\u5171\u4eab\u9762\u677f\u201c\u4e00\u635f\u4ff1\u635f\u201d\u7684\u81f4\u547d\u4f24\uff1b\u7528\u591a\u4e91\u7edf\u4e00\u7ba1\u7406\uff0c\u6d88\u9664\u56e0\u6027\u80fd\/\u4ef7\u683c\u8fc1\u79fb\u4ea7\u751f\u7684\u5b66\u4e60\u6210\u672c\uff1b\u7528\u4e00\u952e\u90e8\u7f72\u66ff\u4ee3\u624b\u52a8\u914d\u7f6e\uff0c\u628a\u7cbe\u529b\u4ece\u201c\u8fd0\u7ef4\u201d\u8fd8\u539f\u56de\u201c\u4e1a\u52a1\u201d\u3002\u8fd9\u663e\u7136\u5438\u53d6\u4e86\u50cf RunCloud\u3001Ploi \u7b49\u524d\u8f88\u7684\u6559\u8bad\uff0c\u5e76\u5c06\u5b89\u5168\u6027\uff08\u5c24\u5176\u9488\u5bf9\u9ed1\u5ba2\u4e8b\u4ef6\uff09\u4f5c\u4e3a\u5dee\u5f02\u5316\u5356\u70b9\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u4ec5\u51ed 10 \u4e2a\u6295\u7968\u548c\u6709\u9650\u8bc4\u8bba\uff0c\u80fd\u6d1e\u5bdf\u5230\u4e24\u4e2a\u6f5c\u5728\u7ea2\u7ebf\uff1a\u4e00\u662f\u201c\u90e8\u7f72\u5931\u8d25\u65e0\u65e5\u5fd7\u201d\u8fd9\u7c7b\u6280\u672f\u5931\u8bef\uff0c\u5bf9\u4e3b\u6253\u201c\u65e0\u75db\u201d\u7684\u4ea7\u54c1\u582a\u79f0\u81f4\u547d\u6253\u51fb\uff0c\u8bf4\u660e\u4ea7\u54c1\u5728\u6df7\u6c8c\u5de5\u7a0b\u548c\u5f02\u5e38\u5904\u7406\u4e0a\u5c1a\u4e0d\u6210\u719f\uff1b\u4e8c\u662f\u7528\u6237\u201c\u770b\u6f14\u793a\u624d\u6562\u4e0b\u5355\u201d\u7684\u8bc9\u6c42\uff0c\u6697\u793a\u5f53\u524d\u6c9f\u901a\u80fd\u529b\u8584\u5f31\uff0c\u7f3a\u4e4f\u6709\u8bf4\u670d\u529b\u7684\u8f6c\u5316\u7d20\u6750\u3002\u5982\u679c\u8fde\u6807\u51c6\u5316\u7684\u90e8\u7f72\u94fe\u8def\u90fd\u4e0d\u80fd\u4fdd\u8bc1\u7b2c\u4e00\u6b21\u6210\u529f\uff0c\u90a3\u4e48\u201c\u7b80\u5355\u201d\u53ea\u4f1a\u6210\u4e3a\u6700\u8bbd\u523a\u7684\u501f\u53e3\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5c55\u671b\u6765\u770b\uff0cCloudRaptor \u6495\u5f00\u7684\u5207\u53e3\u6781\u4e3a\u7cbe\u51c6\u2014\u2014\u5c0f\u578b\u4ee3\u7406\u3001\u72ec\u7acb\u7ad9\u7fa4\u548c\u539f\u578b\u9a8c\u8bc1\u9636\u6bb5\u7684\u521b\u4e1a\u8005\u3002\u4f46\u8981\u771f\u6b63\u6210\u4e3a\u201c\u8425\u6536\u5229\u5668\u201d\uff0c\u8fd8\u987b\u8865\u9f50\u9488\u5bf9\u591a\u8d26\u6237\u534f\u4f5c\u3001\u81ea\u52a8\u5316\u5907\u4efd\u6062\u590d\u7684\u53ef\u89c6\u5316\u7f16\u6392\uff0c\u4ee5\u53ca\u4e00\u5957\u8ba9\u7528\u6237\u6562\u4e8e\u201c\u4e00\u952e\u8fc1\u79fb\u201d\u7684\u96f6\u98ce\u9669\u5bfc\u6d41\u65b9\u6848\u3002\u5426\u5219\uff0c\u5b83\u53ef\u80fd\u59cb\u7ec8\u505c\u7559\u5728\u201c\u4eea\u8868\u76d8\u7f8e\u89c2\u201d\u4f46\u201c\u4fe1\u4efb\u6210\u672c\u9ad8\u201d\u7684\u5c34\u5c2c\u533a\u95f4\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\">CloudRaptor<\/span>\n                <\/div>\n<div class=\"comment-content\">CloudRaptor makes server management simple. Deploy WordPress, Laravel, PHP, or Node on any cloud (AWS, DigitalOcean, Hetzner, and more) without touching a terminal. Get one-click deployments, automatic backups, free SSL, and built-in security out of the box. It&#8217;s built for founders and agencies, not DevOps engineers. If you&#8217;ve ever lost hours fighting server configs, CloudRaptor is the dashboard you wish you had years ago.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey Product Hunt \ud83d\udc4b|<\/p>\n<p>I&#8217;m Mizanur Rahman, maker of CloudRaptor.<\/p>\n<p>Quick backstory. I was running multiple websites on shared hosting, then upgraded to VPS when traffic grew. That&#8217;s when the real problems started. Linux, terminal, configs. If you don&#8217;t have a DevOps background, it&#8217;s a nightmare.<br \/>\nI tried open-source panels and got hacked once. Lost dozens of sites overnight. No backup, no idea where the gap was. Then I tried paid services. Good performance, but the bill kept climbing and I never had full control of my own server.<br \/>\nThat&#8217;s when it hit me: speed, security, and cost. I shouldn&#8217;t have to compromise on any of them.<br \/>\nI started building CloudRaptor in 2023. Today it&#8217;s finally here.<br \/>\nWhat it does:<br \/>\nConnect your DigitalOcean, AWS, Vultr, Hetzner, or any VPS. Manage everything from one dashboard. No terminal. No DevOps. Host unlimited sites on one server, and every bit of resource is 100% yours.<\/p>\n<p>A few things we obsessed over:<\/p>\n<p>\u26a1 Dashboard that actually feels fast. Click and it responds instantly.<br \/>\n\ud83d\ude80 One-click WordPress. Server ready, site live, done.<br \/>\n\ud83d\udd12 Security with zero shortcuts. I lost my own sites to a hack. Built this so that never happens to anyone else.<br \/>\n\ud83d\udce6 Every site runs in its own isolated Docker container. One site breaks, the rest stay safe.<br \/>\n\ud83d\udcca Lightweight monitoring that doesn&#8217;t slow your server down.<\/p>\n<p>This is our first launch and I genuinely want feedback. What works, what doesn&#8217;t, what&#8217;s missing.<\/p>\n<p>Drop a comment or DM me, even just thoughts on the dashboard help a lot. \ud83d\ude4f<\/p><\/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<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Honestly, congrats, man \ud83c\udf89 I&#8217;ve been following your journey on Twitter for months and seeing this launch. The UI looks SO clean compared to the panels I&#8217;ve used. Quick q before I jump in, I&#8217;m running 4 client WordPress sites on a single Hetzner box right now. Can I migrate them in without breaking anything? A little scared to move tbh.<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>10<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@tanjum\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@tanjum<\/a>&nbsp;Thank you, that genuinely means a lot \ud83d\ude4f And I totally get the fear, moving client sites is nerve-wracking. Good news: you connect your existing Hetzner server and your sites keep running exactly as they are. Nothing gets touched until you choose to. You can bring them under management one at a time, no big-bang migration. Want me to walk you through it personally? Happy to hop on and make sure it&#8217;s smooth.<\/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>This looks amazing!! But also kinda overwhelming lol \ud83d\ude05 I&#8217;m a complete beginner, never deployed a server in my life, and I just have a blog idea. Is this too advanced for someone like me or can I actually use it?<\/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\/@monir_\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@monir_<\/a>&nbsp;Ha, you&#8217;re exactly who we built this for \ud83d\ude04 You don&#8217;t need to know anything about servers. You click &#8220;deploy,&#8221; click &#8220;install WordPress,&#8221; point your domain &#8211; done. The scary stuff happens behind the scenes so you never see it. If you can run a blog, you can run this. Start with one site, and you&#8217;ll see how simple it feels.<\/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>Upvoted! Rooting for indie makers like you \ud83d\ude80 One thing that would make me pull the trigger today, do you have any kind of demo or video walkthrough? I learn better seeing it in action before I connect my own server.<\/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\/@glenn_ryan3\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@glenn_ryan3<\/a>&nbsp;Appreciate the support \ud83d\ude4c Totally reasonable, seeing it beats reading about it. We&#8217;re putting together full walkthrough videos on our YouTube channel and adding more this week. In the meantime, I&#8217;d be glad to give you a quick live demo or send a short clip of the exact flow you care about. What would you most want to see, deploying a server, or installing an app?<\/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>Tried to deploy a server and it failed twice. No clear error message, just spun and died. Not a great first impression for something that&#8217;s supposed to be &#8220;simple.&#8221; \ud83d\udc4e<\/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\/@angelaaa\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@angelaaa<\/a>&nbsp;That&#8217;s genuinely frustrating and I&#8217;m sorry, you&#8217;re right that a failed deploy with no clear error is exactly the experience we&#8217;re trying to eliminate. I want to fix this for you specifically. Could you share which cloud provider and region you used, and roughly what time it failed? I&#8217;ll dig into the logs on our side right now. And the unclear error message itself is a real bug, thank you for flagging it, that&#8217;s getting addressed.<\/p>\n<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#15<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/HXBEGVGLFP7ZBR\" class=\"app-title\">DropStories<\/a><\/p>\n<div class=\"one-liner\">Paste a link, get a beautiful Instagram Story<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">9<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>DropStories\u662f\u4e00\u4e2a\u4e13\u4e3aAndroid\u7528\u6237\u8bbe\u8ba1\u7684\u94fe\u63a5\u8f6cInstagram\u6545\u4e8b\u5de5\u5177\uff0c\u901a\u8fc7\u7c98\u8d34\u4efb\u610f\u94fe\u63a5\u5373\u53ef\u81ea\u52a8\u751f\u6210\u7cbe\u7f8e\u7684\u6545\u4e8b\u6a21\u677f\uff0c\u89e3\u51b3\u4e86\u5728\u793e\u4ea4\u5a92\u4f53\u5206\u4eab\u94fe\u63a5\u65f6\u9884\u89c8\u56fe\u5236\u4f5c\u8017\u65f6\u4e14\u6548\u679c\u4e0d\u4f73\u7684\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/3b5ec6dd-6de1-40cd-b2c9-bd800212c3e2.jpeg?auto=format\" data-video-url=\"https:\/\/youtube.com\/shorts\/3kVOqGnUEJo?feature=share\"><source src=\"https:\/\/youtube.com\/shorts\/3kVOqGnUEJo?feature=share\" 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\/65222dfd-84b0-4eec-bc15-f299903bea6f.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/464ee272-ac6e-4db2-a2b6-1772af2db1d3.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/8015872c-0bf1-4b8a-bcf8-c13b69ddcec5.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/302929f1-f172-4a04-ae77-3b525eede42d.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/3e4fc6f4-2920-4290-9b31-39b4718c0f49.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\">Social Media<\/span><br \/>\n            <span class=\"tag\">Marketing<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Android\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">Instagram\u6545\u4e8b<\/span><br \/>\n            <span class=\"tag\">\u94fe\u63a5\u8f6c\u56fe\u7247<\/span><br \/>\n            <span class=\"tag\">\u5185\u5bb9\u5206\u4eab<\/span><br \/>\n            <span class=\"tag\">\u6a21\u677f\u751f\u6210<\/span><br \/>\n            <span class=\"tag\">\u793e\u4ea4\u5a92\u4f53\u7f8e\u5316<\/span><br \/>\n            <span class=\"tag\">\u521b\u4f5c\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">Material 3\u8bbe\u8ba1<\/span><br \/>\n            <span class=\"tag\">\u8ba2\u9605\u5236<\/span><br \/>\n            <span class=\"tag\">\u81ea\u52a8\u5316\u9884\u89c8<\/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\u6237Hari\uff08\u5f00\u53d1\u8005\uff09\u5728\u8bc4\u8bba\u4e2d\u4e3b\u8981\u4ecb\u7ecd\u4e86\u4ea7\u54c1\u52a8\u673a\u3001\u529f\u80fd\u548c\u4f7f\u7528\u573a\u666f\uff0c\u672a\u6536\u5230\u5176\u4ed6\u7528\u6237\u7684\u5177\u4f53\u53cd\u9988\u6216\u95ee\u9898\u3002\u671f\u5f85\u7528\u6237\u8bd5\u7528\u540e\u63d0\u4f9b\u6a21\u677f\u9002\u914d\u6027\u548c\u94fe\u63a5\u5904\u7406\u80fd\u529b\u7684\u6539\u8fdb\u5efa\u8bae\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                DropStories\u7cbe\u51c6\u5207\u5165\u4e86\u4e00\u4e2a\u5c0f\u800c\u5b9e\u9645\u7684\u75db\u70b9\u2014\u2014\u5728Instagram\u4e0a\u5206\u4eab\u94fe\u63a5\u7684\u201c\u5185\u5bb9\u5305\u88c5\u201d\u73af\u8282\u3002\u5176\u6838\u5fc3\u4ef7\u503c\u4e0d\u5728\u4e8e\u6280\u672f\u521b\u65b0\uff0c\u800c\u5728\u4e8e\u5c06\u201c\u622a\u56fe-\u88c1\u5207-\u6392\u7248\u201d\u8fd9\u4e00\u7e41\u7410\u6d41\u7a0b\u538b\u7f29\u4e3a\u201c\u7c98\u8d34-\u9009\u6a21\u677f-\u5206\u4eab\u201d\u7684\u4e09\u6b65\u64cd\u4f5c\uff0c\u5c24\u5176\u5bf9Android\u751f\u6001\u4e2d\u7f3a\u4e4f\u540c\u7c7b\u5de5\u5177\u7684\u573a\u666f\u5177\u6709\u7a00\u7f3a\u6027\u30020.99\u7f8e\u5143\u7684\u4f4e\u4ef7\u8ba2\u9605\u5236\u7b26\u5408\u201c\u5de5\u5177\u578b\u4ea7\u54c1\u201d\u7684\u8f7b\u91cf\u53d8\u73b0\u903b\u8f91\uff0c\u4f46\u8fd9\u4e5f\u66b4\u9732\u51fa\u5176\u5929\u82b1\u677f\uff1a\u529f\u80fd\u5355\u4e00\u3001\u9ad8\u5ea6\u4f9d\u8d56Instagram\u751f\u6001\uff0c\u4e14\u6a21\u677f\u8d28\u91cf\u548c\u6837\u5f0f\u66f4\u65b0\u901f\u5ea6\u5c06\u76f4\u63a5\u51b3\u5b9a\u7528\u6237\u7559\u5b58\u3002\u503c\u5f97\u80af\u5b9a\u7684\u662f\uff0c\u4ea7\u54c1\u575a\u6301Native Material 3\u8bbe\u8ba1\uff0c\u907f\u514d\u4e86Android\u5e94\u7528\u5e38\u89c1\u7684\u201ciOS\u79fb\u690d\u201d\u7684\u5272\u88c2\u611f\uff0c\u8fd9\u5728\u5c0f\u4f17\u5de5\u5177\u4e2d\u5c24\u4e3a\u53ef\u8d35\u3002\u7136\u800c\uff0c\u7f3a\u4e4f\u7528\u6237\u8bc4\u8bba\u7684\u53cd\u9988\u95ed\u73af\u662f\u81f4\u547d\u77ed\u677f\u2014\u2014\u5f00\u53d1\u8005\u5f3a\u8c03\u201c\u9605\u8bfb\u6bcf\u6761\u8bc4\u8bba\u201d\uff0c\u4f46\u4ea7\u54c1\u4e0a\u7ebf\u540e\u65e0\u771f\u5b9e\u7528\u6237\u4e92\u52a8\uff0c\u53ef\u80fd\u610f\u5473\u7740\u521d\u671f\u66dd\u5149\u4e0d\u8db3\u6216\u76ee\u6807\u7528\u6237\u8986\u76d6\u4e0d\u7cbe\u51c6\u3002\u771f\u6b63\u7684\u6311\u6218\u5728\u4e8e\uff1a\u5982\u4f55\u8bc1\u660e\u201c10\u79d2\u751f\u6210\u6545\u4e8b\u201d\u7684\u4ef7\u503c\u8db3\u4ee5\u8ba9\u7528\u6237\u6bcf\u6708\u4ed8\u8d39\uff1f\u9664\u975e\u540e\u7eed\u80fd\u62d3\u5c55\u5230\u652f\u6301\u591a\u5e73\u53f0\uff08\u5982WhatsApp Status\u3001Telegram Stories\uff09\u6216\u9644\u52a0\u56fe\u7247\u7f16\u8f91\u80fd\u529b\uff0c\u5426\u5219\u96be\u4ee5\u7a81\u7834\u5de5\u5177\u7c7b\u4ea7\u54c1\u7684\u201c\u7528\u5b8c\u5373\u8d70\u201d\u5bbf\u547d\u3002\u5bf9\u72ec\u7acb\u5f00\u53d1\u8005\u800c\u8a00\uff0c\u8fd9\u662f\u4e00\u4e2a\u6559\u79d1\u4e66\u7ea7\u7684\u201c\u75db\u70b9\u89e3\u51b3\u65b9\u6848\u201d\uff0c\u4f46\u5546\u4e1a\u89c6\u89d2\u4e0b\uff0c\u5b83\u66f4\u50cf\u662fInstagram\u539f\u751f\u529f\u80fd\u7684\u201c\u8865\u4e01\u201d\uff0c\u800c\u975e\u53ef\u6301\u7eed\u7684\u72ec\u7acb\u751f\u610f\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\">DropStories<\/span>\n                <\/div>\n<div class=\"comment-content\">Sharing a link to Instagram Stories shouldn&#8217;t take 10 minutes in Canva. But it does, because Instagram&#8217;s link sticker is ugly and screenshots of article headers or YouTube thumbnails look lazy. DropStories fixes that. Paste any URL, whether it&#8217;s a YouTube video, Substack post, podcast, blog article, or product page, pick a template, and tap share. The preview gets pulled in automatically. Done in 10 seconds. Built for creators, writers, and anyone who shares links regularly on Android.<\/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<br \/>\nI&#8217;m Hari, an Android dev based in the Netherlands. I built DropStories because I kept wanting to share links to my Instagram Story and never had a good way to make a preview. So I screenshotted. Sometimes the article header, sometimes the YouTube thumbnail, sometimes a chunk of a webpage. It always looked lazy.<br \/>\nSome apps eventually started generating previews for specific things, but there&#8217;s still no universal way to take any link and turn it into something that looks nice on a Story. I looked around and found a few options on iOS, but nothing that felt right on Android. So I built one.<br \/>\nDropStories is simple. You paste any link, whether it&#8217;s a YouTube video, a Substack post, a podcast, a blog article, or a product page. It pulls the thumbnail, title, and source automatically. You pick a template and tap share. It opens in Instagram with the image attached and ready to post. About 10 seconds end to end.<br \/>\nThe whole app is built with the latest Material 3 Expressive design, so it actually feels like it belongs on Android instead of looking like an iOS port.<br \/>\nDifferent people use it differently. YouTubers promote their latest video. Newsletter writers share their new issue. Podcasters share episodes. Bookstagrammers share what they&#8217;re reading. Whatever the link, the workflow is the same.<br \/>\nA quick note on the model. Free tier gives you 2 templates and unlimited links. Pro unlocks all templates. It&#8217;s \u20ac0.99 a month or \u20ac4.99 a year (\u20b979 a month or \u20b9499 a year in India). Cheap on purpose, because I&#8217;d rather more people use it than squeeze a few. Brand presets and a few other things are on the roadmap.<br \/>\nI&#8217;d love to know which templates feel right and which feel off, and what kind of links the app doesn&#8217;t handle well yet. I read every comment and ship fast.<br \/>\nNot asking for upvotes. Just try it on a link you actually want to share, and tell me what&#8217;s broken.<br \/>\nThanks for hunting \ud83d\ude4f<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#16<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/3X2HYPTR5ONC45\" class=\"app-title\">Folio<\/a><\/p>\n<div class=\"one-liner\">The modern, clickable alternative to boring PDF resumes.<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">9<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Folio \u662f\u4e00\u6b3e\u4e13\u4e3a\u5b66\u751f\u548c\u5f00\u53d1\u8005\u8bbe\u8ba1\u7684\u201c\u53ef\u70b9\u51fb\u5f0f\u201d\u5728\u7ebf\u4e2a\u4eba\u6863\u6848\u5de5\u5177\uff0c\u66ff\u4ee3\u4f20\u7edf\u9759\u6001PDF\u7b80\u5386\uff0c\u8ba9\u6c42\u804c\u8005\u80fd\u76f4\u89c2\u5c55\u793a\u9879\u76ee\u3001\u4ee3\u7801\u548c\u4e2a\u4eba\u98ce\u683c\uff0c\u4ece\u800c\u5438\u5f15\u62db\u8058\u65b9\u4e3b\u52a8\u70b9\u51fb\u6d4f\u89c8\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\/f0f86f77-1de0-4c5e-b607-8c4c1b548242.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/1e4cacd8-1115-4bca-9c8b-324bfd1188b4.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/a9058ab8-4649-4a36-9aa0-79cc0818a669.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\/ab4e6ead-8018-49ea-939a-d5e5d669d3f4.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/cIXcpxE2wfc\"><source src=\"https:\/\/youtu.be\/cIXcpxE2wfc\" 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\">Website Builder<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">Career<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u5bf9\u201c\u62d2\u7edd\u65e0\u804aPDF\u201d\u7684\u5b9a\u4f4d\u8868\u793a\u8ba4\u53ef\uff0c\u5e76\u8be2\u95ee\u7528\u6237\u9996\u5148\u6dfb\u52a0\u7684\u5185\u5bb9\u662f\u9879\u76ee\u3001\u6545\u4e8b\u8fd8\u662f\u94fe\u63a5\uff1b\u53e6\u4e00\u7528\u6237\u79f0\u8d5e\u8bbe\u8ba1\u7cbe\u826f\uff0c\u5e76\u53d1\u95ee\u662f\u5426\u5f00\u53d1\u8005\u65e0\u9700\u81ea\u884c\u642d\u5efa\u5373\u53ef\u62e5\u6709\u5728\u7ebf\u4f5c\u54c1\u96c6\uff0c\u6697\u793a\u5bf9\u8f7b\u91cf\u5316\u514d\u642d\u5efa\u6d41\u7a0b\u6709\u9700\u6c42\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                Folio \u5207\u5165\u7684\u5e76\u975e\u53c8\u4e00\u4e2a\u201c\u94fe\u63a5\u9875\u201d\u7684\u7ea2\u6d77\uff0c\u800c\u662f\u7cbe\u51c6\u51fb\u4e2d\u201c\u7b80\u5386\u5ba1\u7f8e\u75b2\u52b3\u201d\u4e0b\u7684\u6c42\u804c\u75db\u611f\u3002\u5b83\u7684\u4ef7\u503c\u4e0d\u5728\u4e8e\u6280\u672f\u58c1\u5792\u2014\u2014\u4e00\u4e2a\u514d\u642d\u5efa\u7684\u4f5c\u54c1\u96c6\u9875\u9762\u7684\u6280\u672f\u95e8\u69db\u6781\u4f4e\uff0c\u800c\u5728\u4e8e\u5b83\u5bf9\u201c\u5b66\u751f\u548c\u5f00\u53d1\u8005\u201d\u8fd9\u7fa4\u7279\u5b9a\u7528\u6237\u7684\u5fc3\u7406\u6d1e\u5bdf\uff1a\u4ed6\u4eec\u65e2\u9700\u8981\u5c55\u793a\u786c\u6838\u6280\u80fd\uff08\u4ee3\u7801\u9879\u76ee\uff09\uff0c\u53c8\u6e34\u671b\u51f8\u663e\u4e2a\u6027\u5ba1\u7f8e\uff0c\u4f20\u7edf\u7684PDF\u7b80\u5386\u5728\u8fd9\u4e24\u4ef6\u4e8b\u4e0a\u90fd\u662f\u707e\u96be\u3002\u76f8\u6bd4 IndiePage \u9762\u5411\u521b\u4e1a\u8005\uff0cFolio \u66f4\u7b26\u5408\u65e9\u671f\u804c\u4e1a\u8005\u7684\u8bed\u5883\u2014\u2014\u4ed6\u4eec\u66f4\u9700\u8981\u4e00\u4e2a\u201c\u88ab\u70b9\u51fb\u201d\u7684\u5165\u53e3\uff0c\u800c\u975e\u201c\u88ab\u6536\u85cf\u201d\u7684\u8054\u7cfb\u9875\u3002\u4f46\u98ce\u9669\u540c\u6837\u660e\u663e\uff1a9\u7968\u7684\u51b7\u542f\u52a8\u6570\u636e\u8bf4\u660e\u5f53\u524d\u4ea7\u54c1\u8fd8\u672a\u5f62\u6210\u53e3\u7891\u5f15\u7206\u70b9\u3002\u7528\u6237\u63d0\u95ee\u201c\u9996\u5148\u6dfb\u52a0\u4ec0\u4e48\u201d\u6070\u6070\u66b4\u9732\u4e86\u4ea7\u54c1\u5f15\u5bfc\u8bbe\u8ba1\u53ef\u80fd\u5b58\u5728\u7a7a\u767d\u2014\u2014\u5982\u679c\u65b0\u7528\u6237\u8fdb\u6765\u4e0d\u77e5\u8be5\u586b\u9879\u76ee\u94fe\u63a5\u8fd8\u662f\u5199\u4e00\u6bb5\u4e2a\u4eba\u6545\u4e8b\uff0c\u7559\u5b58\u5c31\u4f1a\u6253\u6298\u3002\u6b64\u5916\uff0c\u529f\u80fd\u5c42\u9762\u6ca1\u6709\u770b\u5230\u4e0eGitHub\u3001LeetCode\u7b49\u5f00\u53d1\u8005\u4e3b\u6d41\u5e73\u53f0\u7684\u6570\u636e\u6253\u901a\uff0c\u82e5\u4ec5\u505a\u4e00\u4e2a\u201c\u597d\u770b\u7684\u4e2a\u4eba\u5c55\u793a\u9875\u201d\uff0c\u5219\u5bb9\u6613\u88abNotion\u3001GitHub Pages\u751a\u81f3\u9886\u82f1\u7684\u201c\u7279\u8272\u9879\u76ee\u201d\u529f\u80fd\u6240\u66ff\u4ee3\u3002\u771f\u6b63\u80fd\u5f62\u6210\u58c1\u5792\u7684\uff0c\u6216\u8bb8\u662f\u540e\u7eed\u63d0\u4f9b\u7684\u201c\u7b80\u5386\u70b9\u51fb\u6570\u636e\u5206\u6790\u201d\u6216\u201c\u62db\u8058\u65b9\u4e92\u52a8\u8ffd\u8e2a\u201d\uff0c\u8ba9\u5019\u9009\u4eba\u770b\u5230\u6548\u679c\u7684\u6ea2\u51fa\uff0c\u800c\u975e\u53ea\u662f\u6362\u4e2a\u66f4\u7f8e\u5f62\u7684PDF\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\">Folio<\/span>\n                <\/div>\n<div class=\"comment-content\">Create a beautiful public profile page recruiters actually click. Folio is the ultimate link-in-bio tool built exclusively for students and developers. Stop sending boring, static PDF resumes that hide your true potential. Showcase your coding projects, highlight your personal aesthetic, and bridge the gap between a simple document and a personal website. Build a Folio instead!<\/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 I&#8217;m Anushrav, the maker of Folio.<\/p>\n<p>There are hundreds of link-in-bio tools out there for almost every niche imaginable, but I noticed a huge gap: there was nothing really built specifically for students and developers. Inspired by how IndiePage created a dedicated space for indie hackers, I realized we needed something tailored for us.<\/p>\n<p>When reaching out for opportunities, collaborations, or sharing my background, sending a standard, static PDF resume always felt incredibly outdated. It just doesn&#8217;t capture your coding projects, your personal aesthetic, or your actual vibe.<\/p>\n<p>I wanted something that bridged the gap between a boring document and a time-consuming personal website. So, I built Folio. It\u2019s the modern, clickable alternative designed to help you easily spin up a beautiful, public-facing profile that highlights your work in a way that makes recruiters and partners want to click.<\/p>\n<p>I&#8217;d love for you all to give it a spin. What do you think of the design? What features or integrations would make this a no-brainer replacement for your current resume?<\/p>\n<p>Excited to hear your feedback!<\/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\/@anushravrathi\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@anushravrathi<\/a>&nbsp;\u201cStop sending boring PDF resumes\u201d is a clear hook. What are you seeing users add first coding projects, personal story, achievements, or links like LinkedIn?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@anushravrathi\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@anushravrathi<\/a>&nbsp;Hello Anushrav, I checked out the website because the logo caught my eye xd. The design is absolutely top-notch, and the message in the hero section is super clear. If I understand correctly, developers can create a live online portfolio without having to build and host one from scratch? Congrats on the launch!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/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\/J7T25ZRZURDHMP\" class=\"app-title\">SocraDraft<\/a><\/p>\n<div class=\"one-liner\">The Socratic Partner for Flow-State Writing<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">9<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>SocraDraft\u662f\u4e00\u6b3e\u878d\u5408\u82cf\u683c\u62c9\u5e95\u5f0f\u5bf9\u8bdd\u7684AI\u5199\u4f5c\u4f34\u4fa3\uff0c\u5e2e\u52a9\u7528\u6237\u5728\u788e\u7247\u5316\u601d\u8003\u5230\u6210\u6587\u8fc7\u7a0b\u4e2d\u6d88\u9664\u8868\u8fbe\u6469\u64e6\uff0c\u5c06\u6563\u4e71\u60f3\u6cd5\u8f6c\u5316\u4e3a\u7ed3\u6784\u5316\u7684\u5907\u5fd8\u5f55\u3001\u535a\u5ba2\u6216\u884c\u52a8\u6e05\u5355\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\/fe9d44b7-5fc5-4fcd-81fb-2bdc8208d8c4.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/8635ba79-53eb-4c01-a055-f0c7372a561b.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/1bfb390a-c5f8-4645-a31f-4626e23c8804.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/29de889b-5244-40e7-b1f6-22ea631c029e.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/f75fefc6-1f4f-4c4b-bc83-9fa1ccb996aa.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/6dc019b9-8cc5-413d-973e-51f5f741f390.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\/6fa66a15-4112-483c-a2d8-a0a2969ab626.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/Gptevzn2ahE\"><source src=\"https:\/\/youtu.be\/Gptevzn2ahE\" 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\">Productivity<\/span><br \/>\n            <span class=\"tag\">Writing<\/span><br \/>\n            <span class=\"tag\">Notes<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u5199\u4f5c\u52a9\u624b<\/span><br \/>\n            <span class=\"tag\">\u7b14\u8bb0\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u82cf\u683c\u62c9\u5e95\u5f0f\u5bf9\u8bdd<\/span><br \/>\n            <span class=\"tag\">\u5934\u8111\u6574\u7406<\/span><br \/>\n            <span class=\"tag\">\u601d\u8003\u52a0\u901f\u5668<\/span><br \/>\n            <span class=\"tag\">\u4e3b\u52a8\u521b\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u6d41\u5f0f\u5199\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u5185\u5bb9\u751f\u6210<\/span><br \/>\n            <span class=\"tag\">\u77e5\u8bc6\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">AI\u539f\u751f\u5e94\u7528<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u521b\u59cb\u4ebaWood\u6307\u51fa\uff0c\u4f20\u7edf\u7b14\u8bb0\u5e94\u7528\u662f\u9759\u6001\u5b58\u50a8\uff0c\u60f3\u6cd5\u6613\u6210\u201c\u6570\u5b57\u5783\u573e\u201d\uff1bSocraDraft\u4ece\u201c\u88ab\u52a8\u8bb0\u5f55\u201d\u6f14\u8fdb\u4e3a\u201c\u4e3b\u52a8\u63a8\u7406+\u6267\u884c\u201d\uff0c\u589e\u8bbe\u201c\u82cf\u683c\u62c9\u5e95\u5bfc\u5e08\u201d\u9636\u6bb5\u6765\u6316\u6398\u903b\u8f91\u76f2\u70b9\uff0c\u518d\u4e00\u952e\u8f6c\u6210\u6210\u54c1\u3002\u7528\u6237\u672a\u63d0\u51fa\u8d1f\u9762\u53cd\u9988\uff0c\u4f46\u4ea7\u54c1\u6295\u7968\u6570\u4ec59\uff0c\u53ef\u80fd\u53cd\u6620\u65e9\u671f\u66dd\u5149\u5ea6\u6216\u7559\u5b58\u5f85\u9a8c\u8bc1\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                SocraDraft\u7684\u7acb\u610f\u5f88\u806a\u660e\u2014\u2014\u5b83\u6ca1\u6709\u8bd5\u56fe\u505a\u4e00\u4e2a\u201c\u66f4\u597d\u7684Notion\u201d\uff0c\u800c\u662f\u76f4\u63a5\u56de\u51fb\u4e86\u4e00\u4e2a\u5178\u578b\u75db\u70b9\uff1a\u5199\u4f5c\u8fc7\u7a0b\u4e2d\u201c\u601d\u60f3\u5feb\u4e8e\u624b\u6307\u201d\u6216\u201c\u6709\u7075\u611f\u4f46\u4e0d\u4f1a\u7ec4\u7ec7\u201d\u7684\u54d1\u706b\u65f6\u523b\u3002\u5b83\u7528\u82cf\u683c\u62c9\u5e95\u5f0f\u63d0\u95ee\u66ff\u4ee3\u4e86\u4f20\u7edf\u7684\u6392\u7248\u3001\u8bed\u6cd5\u4fee\u6b63\uff0c\u628aAI\u7684\u89d2\u8272\u4ece\u201c\u52a9\u7406\u201d\u5347\u7ea7\u4e3a\u201c\u6363\u4e71\u8005\u201d\uff1a\u4e0d\u662f\u5e2e\u4f60\u5199\uff0c\u800c\u662f\u903c\u4f60\u601d\u8003\u3002\u8fd9\u79cd\u201c\u4e3b\u52a8\u8ba4\u77e5\u6469\u64e6\u201d\u7684\u4ea7\u54c1\u903b\u8f91\uff0c\u5728AI\u5199\u4f5c\u5de5\u5177\u540c\u8d28\u5316\u4e25\u91cd\u7684\u5f53\u4e0b\uff0c\u786e\u5b9e\u63d0\u4f9b\u4e86\u4e00\u79cd\u5dee\u5f02\u5316\u8def\u5f84\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u95ee\u9898\u4e5f\u5f88\u660e\u663e\uff1a\u6295\u7968\u6570\u53ea\u67099\uff0c\u8bf4\u660e\u5b83\u8fd8\u672a\u771f\u6b63\u6253\u52a8\u5176\u76ee\u6807\u4eba\u7fa4\u3002\u82cf\u683c\u62c9\u5e95\u5f0f\u5bf9\u8bdd\u867d\u7136\u7406\u8bba\u4e0a\u80fd\u6fc0\u53d1\u6df1\u5ea6\u601d\u8003\uff0c\u4f46\u5728\u5b9e\u9645\u5199\u4f5c\u6d41\u4e2d\u53ef\u80fd\u662f\u4e2a\u201c\u5e72\u6270\u6e90\u201d\u2014\u2014\u7528\u6237\u66f4\u5e38\u9700\u8981\u7684\u662f\u5feb\u901f\u8f93\u51fa\uff0c\u800c\u4e0d\u662f\u88ab\u53cd\u63a8\u3002\u4ea7\u54c1\u5728\u201c\u4f4e\u6469\u64e6\u6355\u6349\u201d\u548c\u201c\u9ad8\u6469\u64e6\u542f\u53d1\u201d\u4e4b\u95f4\u6447\u6446\uff0c\u5bb9\u6613\u5bfc\u81f4\u4e24\u5934\u4e0d\u8ba8\u597d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u6b64\u5916\uff0c\u521b\u59cb\u4eba\u5728\u4ecb\u7ecd\u4e2d\u628a\u201c\u6253\u5b57\u3001\u6392\u7248\u7b49\u673a\u68b0\u52a8\u4f5c\u201d\u5b9a\u6027\u4e3a\u201c\u6469\u64e6\u201d\uff0c\u4f46\u8fd9\u6070\u6070\u662f\u5199\u4f5c\u6d41\u7545\u6027\u7684\u57fa\u7840\u2014\u2014\u597d\u7684\u601d\u60f3\u7ec4\u7ec7\u5f80\u5f80\u4f34\u968f\u6253\u5b57\u8282\u594f\u3002\u5b8c\u5168\u53d6\u6d88\u8fd9\u79cd\u201c\u673a\u68b0\u611f\u201d\uff0c\u53ef\u80fd\u4f1a\u8ba9\u5199\u4f5c\u5931\u53bb\u201c\u624b\u611f\u201d\u548c\u201c\u81ea\u6211\u4fee\u6b63\u201d\u7684\u7a7a\u95f4\u3002SocraDraft\u7684\u771f\u6b63\u4ef7\u503c\uff0c\u6216\u8bb8\u4e0d\u5728\u53d6\u4ee3\u4f20\u7edf\u7f16\u8f91\u5668\uff0c\u800c\u5728\u4e8e\u6210\u4e3a\u201c\u601d\u8003\u70ed\u8eab\u201d\u5de5\u5177\uff1a\u5728\u6b63\u5f0f\u52a8\u7b14\u524d\uff0c\u7528\u5b83\u8fdb\u884c\u5934\u8111\u98ce\u66b4\u548c\u903b\u8f91\u52d8\u8bef\u3002\u5982\u679c\u80fd\u5b9a\u4f4d\u4e3a\u201c\u5199\u4f5c\u524d\u7684\u601d\u8003\u5f15\u64ce\u201d\uff0c\u800c\u4e0d\u662f\u201c\u5199\u4f5c\u4e2d\u7684\u66ff\u4ee3\u54c1\u201d\uff0c\u6027\u4ef7\u6bd4\u4f1a\u66f4\u9ad8\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\">SocraDraft<\/span>\n                <\/div>\n<div class=\"comment-content\">SocraDraft is more than a notes app. Type or talk freely \u2014 AI organizes your notes, deepens ideas via Socratic dialogue, then creates memos, blogs, action items &#038; reading lists. SocraDraft helps you write in flow by combining frictionless input (dump unedited thoughts) with Socratic coaching (deep questions that sharpen your thinking), so you can express ideas you&#8217;d normally skip and produce clearer output.<\/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<br \/>\nI am Wood, founder &amp; developer of Socra AI &amp; FunBlocks AI.<\/p>\n<p>SocraDraft is an AI-native writing agent app and active thinking partner that uses Socratic dialogue to transform your scattered thoughts into refined, publish-ready content like memos, blogs, and action items.<\/p>\n<p>\u2705 What inspired you to build this?<br \/>\nWe realized that most traditional note-taking apps act as static storage bins. You capture a brilliant idea, but it often ends up as digital clutter because it lacks a partner to help refine it. Inspired by the Socratic method\u2014the foundation of our main Socra learning platform\u2014we wanted to build an active &#8220;thinking partner.&#8221; We envisioned an AI scribe that listens, challenges your assumptions, and actively helps develop your ideas from the inside out, rather than just passively recording them.<\/p>\n<p>\u2705 What problem were you trying to solve?<br \/>\nThe friction of traditional writing and the isolation of the drafting process. When you write alone, you have to organize your own language, worry about imperfect expression, and often miss logical gaps or blind spots. The tedious mechanics of writing\u2014cursor positioning, formatting, and manual editing\u2014cause many great, half-formed ideas to be lost in hesitation. We set out to eliminate this friction by creating a &#8220;typeless&#8221; experience where you can express your thoughts naturally, knowing AI will handle the structure, logic, and clarity. <\/p>\n<p>\u2705 How did your approach or process evolve while working on this launch?<br \/>\nInitially, we focused heavily on frictionless capture\u2014simply building a better AI scribe to organize messy inputs. However, as we developed SocraDraft, we realized that merely capturing ideas wasn&#8217;t enough to push them to the finish line. Our approach evolved to prioritize *development* and *execution*. We integrated a &#8220;Socratic Tutor&#8221; phase to actively probe reasoning and surface blind spots, followed by a &#8220;Consultant&#8221; phase to convert those refined thoughts into publish-ready artifacts (like memos, blog drafts, reading lists, and podcast scripts) in one click. It shifted from being a smart capture tool to an end-to-end &#8220;thinking accelerator.&#8221;<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#18<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/2TAJEEJZEVWVTD\" class=\"app-title\">SlateHut.com &#8211; AI website builder<\/a><\/p>\n<div class=\"one-liner\">Easiest way to make websites!<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">9<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>\u7528\u6237\u53ea\u9700\u4e00\u53e5\u8bdd\u63cf\u8ff0\u4e1a\u52a1\uff0c\u5373\u53ef\u5728\u7ea660\u79d2\u5185\u751f\u6210\u4e00\u4e2a\u5305\u542b\u6258\u7ba1\u3001\u8868\u5355\u3001CMS\u548c\u81ea\u5b9a\u4e49\u57df\u540d\u7684\u5b8c\u6574\u3001\u53ef\u76f4\u63a5\u7f16\u8f91\u7684\u7f51\u7ad9\uff0c\u89e3\u51b3\u4e86\u975e\u6280\u672f\u4eba\u5458\u5feb\u901f\u5efa\u7ad9\u548c\u590d\u6742\u64cd\u4f5c\u6d41\u7a0b\u7684\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/85231628-1ac6-4328-a626-8cb83f12474a.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\/2c44a994-cf17-4e0b-a756-44495f096b12.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/d12f316f-52fa-407b-b02b-c370080fc146.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\/aaf257c2-9b1d-4daa-a217-53f75ca0c7fa.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=TiT-OEoxEI4\"><source src=\"https:\/\/www.youtube.com\/watch?v=TiT-OEoxEI4\" 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\">Design Tools<\/span><br \/>\n            <span class=\"tag\">Marketing<\/span><br \/>\n            <span class=\"tag\">Website Builder<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u5efa\u7ad9<\/span><br \/>\n            <span class=\"tag\">\u81ea\u52a8\u5316\u5efa\u7ad9<\/span><br \/>\n            <span class=\"tag\">\u65e0\u4ee3\u7801\u5efa\u7ad9<\/span><br \/>\n            <span class=\"tag\">\u62d6\u62fd\u7f16\u8f91<\/span><br \/>\n            <span class=\"tag\">\u7f51\u7ad9\u751f\u6210\u5668<\/span><br \/>\n            <span class=\"tag\">\u5feb\u901f\u5efa\u7ad9<\/span><br \/>\n            <span class=\"tag\">\u8868\u5355\u7cfb\u7edf<\/span><br \/>\n            <span class=\"tag\">CMS<\/span><br \/>\n            <span class=\"tag\">\u6258\u7ba1\u670d\u52a1<\/span><br \/>\n            <span class=\"tag\">\u6781\u901f\u90e8\u7f72<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u53cd\u9988\u4ea7\u54c1\u975e\u5e38\u6613\u7528\uff0c\u80fd\u5feb\u901f\u5f00\u53d1\u535a\u5ba2\u3001\u5546\u4e1a\u7f51\u7ad9\uff0c\u53d8\u66f4\u53ef\u7acb\u5373\u90e8\u7f72\uff1b\u5185\u7f6e\u7ec4\u4ef6\u3001\u8868\u5355\u548cCMS\u7cfb\u7edf\u5b9e\u7528\uff1b\u6709\u7528\u6237\u5c55\u793a\u4e86\u4e00\u5206\u949f\u751f\u6210\u7684\u7f51\u7ad9\u6848\u4f8b\u3002\u6682\u65e0\u95ee\u9898\u6216\u5efa\u8bae\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                \u5728\u4ea7\u54c1\u6ee1\u5927\u8857\u7684\u5efa\u7ad9\u8d5b\u9053\uff0cSlateHut\u8fd9\u4e2a60\u79d2\u51fa\u6d3b\u3001\u4e00\u952e\u6258\u7ba1\u3001\u62d6\u62fd\u7f16\u8f91\u7684\u5b9a\u4f4d\uff0c\u542c\u8d77\u6765\u786e\u5b9e\u8db3\u591f\u201c\u723d\u201d\u3002\u4f469\u4e2a\u6295\u7968\u548c\u5be5\u5be5\u51e0\u6761\u597d\u8bc4\uff0c\u66b4\u9732\u4e86\u5b83\u76ee\u524d\u7684\u5c34\u5c2c\u5904\u5883\u2014\u2014\u6280\u672fdemo\u5f88\u9177\uff0c\u4f46\u79bb\u771f\u5b9e\u7684\u5e02\u573a\u8ba4\u53ef\u8fd8\u5f88\u8fdc\u3002\u6838\u5fc3\u95ee\u9898\u5728\u4e8e\uff0c\u5b83\u60f3\u89e3\u51b3\u7684\u7528\u6237\u75db\u70b9\u2014\u2014\u201c\u4e0d\u61c2\u6280\u672f\u3001\u6ca1\u65f6\u95f4\u3001\u6015\u9ebb\u70e6\u201d\u2014\u2014\u5df2\u7ecf\u88abWix\u3001Squarespace\u751a\u81f3WordPress+Elementor\u89e3\u51b3\u5f97\u5f88\u597d\u4e86\u3002SlateHut\u6240\u8c13\u7684\u201c\u4e00\u53e5\u8bddAI\u751f\u6210\u201d\uff0c\u672c\u8d28\u4e0a\u53ea\u662f\u628a\u6a21\u677f\u9009\u62e9\u6b65\u9aa4\u667a\u80fd\u538b\u7f29\u4e86\u4e00\u4e0b\uff0c\u5e95\u5c42\u4f9d\u7136\u662f\u6a21\u677f\u5806\u780c\u52a0\u62d6\u62fd\u7f16\u8f91\u3002\u7528\u6237\u5b8c\u6210\u521d\u59cb\u7f51\u7ad9\u540e\uff0c\u771f\u6b63\u7684\u6311\u6218\u5728\u4e8e\uff1a\u5982\u4f55\u4e0d\u82b1\u94b1\u6301\u7eed\u83b7\u5f97\u9ad8\u8d28\u91cfAI\u8f85\u52a9\uff1f\u5982\u4f55\u4fdd\u8bc1\u751f\u6210\u7684\u7f51\u7ad9\u4e0d\u4f1a\u5343\u7bc7\u4e00\u5f8b\u6216\u51fa\u73b0\u903b\u8f91\u786c\u4f24\uff1f\u5176\u514d\u8d39\u653f\u7b56\u5f88\u8bf1\u4eba\uff0c\u4f46\u540e\u7eed\u7684\u53d8\u73b0\u95e8\u69db\uff08\u5982\u81ea\u5b9a\u4e49\u57df\u540d\u662f\u5426\u6536\u8d39\u3001CMS\u5b58\u50a8\u9650\u5236\uff09\u624d\u662f\u51b3\u5b9a\u7559\u5b58\u7387\u7684\u5173\u952e\u3002\u4e00\u53e5\u8bdd\u603b\u7ed3\uff1a\u8fd9\u662f\u4e00\u4e2a\u770b\u8d77\u6765\u5f88\u7f8e\u7684\u5c0f\u5de5\u5177\uff0c\u8db3\u591f\u6613\u7528\uff0c\u4f46\u8981\u60f3\u5728\u5de8\u5934\u6797\u7acb\u7684\u5e02\u573a\u4e2d\u6d3b\u4e0b\u6765\uff0c\u5b83\u9700\u8981\u7684\u4e0d\u53ea\u662f\u201c\u5feb\u201d\uff0c\u800c\u662f\u660e\u786e\u533a\u522b\u4e8e\u540c\u884c\u3001\u4e14\u4e0d\u53ef\u88ab\u7b80\u5355\u590d\u5236\u7684\u201cAI\u80fd\u529b\u201d\uff0c\u6bd4\u5982\u9488\u5bf9SEO\u7684\u667a\u80fd\u4f18\u5316\u3001\u57fa\u4e8e\u884c\u4e1a\u6570\u636e\u7684\u4e2a\u6027\u5316\u914d\u8272\u4e0e\u6587\u6848\u751f\u6210\u3002\u5426\u5219\uff0c\u5b83\u7ec8\u5c06\u53ea\u662f\u53c8\u4e00\u4e2a\u88ab\u6536\u85cf\u5939\u5403\u7070\u7684\u5c1d\u9c9c\u54c1\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">SlateHut.com &#8211; AI website builder<\/span>\n                <\/div>\n<div class=\"comment-content\">Describe your business in one sentence \u2192 get a real, live website in ~60 seconds. Not a chat thread. Not a draft you babysit. An actual site \u2014 hosting, forms, CMS, custom domain \u2014 that you edit by point-and-click. That&#8217;s SlateHut. Free to start, no card.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Tried your product, it&#8217;s very easy to develop any blog\/business site using it, and it&#8217;s very fast with changes deployed to production.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\">With SlateHut, you can build your website in few mins &amp; connect your domain.<br \/>\nSlatehut comes with a ton of inbuilt components, in built contact form and a cms system for blogs or directories.<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\/products\/slatehut-com-ai-website-builder\" data-node-type=\"mention\" data-mention-type=\"product\" data-mention-id=\"slatehut-com-ai-website-builder\" target=\"_blank\" rel=\"noopener\">@SlateHut.com &#8211; AI website builder<\/a> made the following website in 1 shot. Check more demo here <a href=\"https:\/\/slatehut.com\/showcase\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/slatehut.com\/showcase<\/a><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/5b1c32df-c6c9-49c4-bbbd-85263edaf25b.png?auto=compress&amp;codec=mozjpeg&amp;cs=strip&amp;auto=format\" style=\"max-width: 100%\"><\/p>\n<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/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\/5WM52EQM366NRY\" class=\"app-title\">Poker Planner<\/a><\/p>\n<div class=\"one-liner\">Plan poker trips without spreadsheets<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">8<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Poker Planner\u4e13\u4e3a\u73b0\u573a\u6251\u514b\u73a9\u5bb6\u6253\u9020\uff0c\u901a\u8fc7\u81ea\u52a8\u5316\u7ba1\u7406\u9526\u6807\u8d5b\u65e5\u7a0b\u3001\u4e70\u8fdb\u3001\u8d44\u91d1\u548c\u51b2\u7a81\uff0c\u89e3\u51b3\u4f7f\u7528\u7535\u5b50\u8868\u683c\u89c4\u5212\u6251\u514b\u65c5\u884c\u65f6\u7e41\u7410\u3001\u6613\u51fa\u9519\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\/ad5bc00d-bc31-463b-9ac7-a814a35a9a0f.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b3491ded-74ae-4e58-b800-c1004638256d.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/0e403e6a-b54f-40d2-b059-dc82367f71ab.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/cb3e4293-cd18-40fe-8005-373e4caf392e.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">Travel<\/span><br \/>\n            <span class=\"tag\">Games<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u6251\u514b\u89c4\u5212<\/span><br \/>\n            <span class=\"tag\">\u9526\u6807\u8d5b\u65e5\u7a0b<\/span><br \/>\n            <span class=\"tag\">\u8d44\u91d1\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u51b2\u7a81\u68c0\u6d4b<\/span><br \/>\n            <span class=\"tag\">\u65c5\u884c\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u73b0\u573a\u6251\u514b<\/span><br \/>\n            <span class=\"tag\">\u8d5b\u4e8b\u65e5\u5386<\/span><br \/>\n            <span class=\"tag\">\u65e5\u7a0b\u5bfc\u51fa<\/span><br \/>\n            <span class=\"tag\">\u6251\u514b\u73a9\u5bb6<\/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\u5efa\u8bae\u589e\u52a0\u65e5\u7a0b\u5bfc\u51fa\u5230\u8c37\u6b4c\u65e5\u5386\u5e76\u652f\u6301\u63d0\u9192\u7684\u529f\u80fd\u3002\u5f00\u53d1\u8005\u56de\u5e94\u652f\u6301\u5bfc\u51fa.ics\u6587\u4ef6\uff0c\u517c\u5bb9\u8c37\u6b4c\u3001\u82f9\u679c\u548cOutlook\u65e5\u5386\uff0c\u6bcf\u573a\u9526\u6807\u8d5b\u53ef\u72ec\u7acb\u8bbe\u7f6e\u63d0\u9192\u3002\u5f00\u53d1\u8005\u81ea\u8ff0\u4ea7\u54c1\u6e90\u4e8e\u81ea\u8eab\u75db\u70b9\uff0c\u671f\u5f85\u53cd\u9988\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Poker Planner\u7684\u5b9a\u4f4d\u7cbe\u51c6\u4e14\u52a1\u5b9e\uff0c\u5b83\u5207\u5165\u4e86\u4e00\u4e2a\u88ab\u4e3b\u6d41\u751f\u4ea7\u529b\u5de5\u5177\u5ffd\u89c6\u7684\u7ec6\u5206\u573a\u666f\uff1a\u73b0\u573a\u6251\u514b\u73a9\u5bb6\u7684\u65c5\u884c\u89c4\u5212\u3002\u6838\u5fc3\u4ef7\u503c\u4e0d\u5728\u4e8e\u521b\u9020\u5168\u65b0\u9700\u6c42\uff0c\u800c\u5728\u4e8e\u5c06\u201c\u591a\u7f51\u9875\u3001\u591a\u6807\u7b7e\u3001\u4e00\u5f20\u7535\u5b50\u8868\u683c\u201d\u7684\u6df7\u4e71\u6d41\u7a0b\uff0c\u6574\u5408\u4e3a\u4e00\u4e2a\u4e13\u7528\u3001\u81ea\u52a8\u5316\u7684\u5de5\u5177\u3002\u4ece\u7528\u6237\u8bc4\u8bba\u770b\uff0c\u5bfc\u51fa\u5230\u65e5\u5386\u5e76\u5e26\u63d0\u9192\u662f\u5b9e\u73b0\u201c\u89c4\u5212\u5230\u6267\u884c\u201d\u95ed\u73af\u7684\u5173\u952e\u529f\u80fd\uff0c\u5f00\u53d1\u8005\u5df2\u8fc5\u901f\u56de\u5e94\u5e76\u652f\u6301\uff0c\u663e\u793a\u4e86\u826f\u597d\u7684\u7528\u6237\u9a71\u52a8\u610f\u8bc6\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u4ea7\u54c1\u7684\u771f\u6b63\u6311\u6218\u5728\u4e8e\u201c\u62a4\u57ce\u6cb3\u201d\u6781\u4f4e\u3002\u6251\u514b\u8d5b\u4e8b\u6570\u636e\u672c\u8eab\u662f\u516c\u5f00\u7684\uff0c\u7ade\u54c1\u53ef\u4ee5\u8f7b\u6613\u590d\u5236\u6838\u5fc3\u529f\u80fd\u3002\u76ee\u524d8\u7968\u7684\u793e\u533a\u53cd\u9988\u4e5f\u8bf4\u660e\u65e9\u671f\u7528\u6237\u57fa\u6570\u6709\u9650\u3002\u66f4\u4e25\u5cfb\u7684\u95ee\u9898\u662f\uff1a\u8fd9\u7c7b\u5de5\u5177\u7684\u7528\u6237\u7c98\u6027\u53d6\u51b3\u4e8e\u5927\u8d5b\u5b63\uff08\u5982WSOP\uff09\u7684\u5468\u671f\u6027\uff0c\u975e\u8d5b\u5b63\u671f\u95f4\u6d3b\u8dc3\u5ea6\u96be\u4ee5\u7ef4\u6301\u3002\u6b64\u5916\uff0c\u4e0eGmail\u3001Excel\u7b49\u901a\u7528\u5de5\u5177\u7684\u6df1\u5ea6\u6574\u5408\uff08\u5982\u81ea\u52a8\u4ece\u8d5b\u4e8b\u90ae\u4ef6\u6293\u53d6\u4fe1\u606f\u3001\u4e0e\u94f6\u884c\u6d41\u6c34\u5bf9\u8d26\uff09\uff0c\u4ee5\u53ca\u793e\u4ea4\u529f\u80fd\uff08\u5982\u4e0e\u724c\u53cb\u5171\u4eab\u8ba1\u5212\uff09\u624d\u662f\u63d0\u5347\u58c1\u5792\u7684\u65b9\u5411\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u603b\u4f53\u800c\u8a00\uff0cPoker Planner\u662f\u4e00\u4e2a\u4f18\u79c0\u7684\u75db\u70b9\u89e3\u51b3\u65b9\u6848\uff0c\u4f46\u76ee\u524d\u5c1a\u672a\u5f62\u6210\u538b\u5012\u6027\u4f18\u52bf\u3002\u82e5\u4e0d\u80fd\u5feb\u901f\u79ef\u7d2f\u8d5b\u4e8b\u6570\u636e\u6e90\u3001\u5efa\u7acb\u793e\u533a\u53e3\u7891\u6216\u63a2\u7d22\u4ed8\u8d39\u8ba2\u9605\uff08\u5982\u9488\u5bf9\u9ad8\u989d\u4e70\u5165\u73a9\u5bb6\u7684\u9ad8\u7ea7\u5206\u6790\uff09\uff0c\u5f88\u5bb9\u6613\u88ab\u5927\u578b\u8d5b\u4e8b\u7f51\u7ad9\u5185\u90e8\u96c6\u6210\u6216\u66f4\u5f3a\u5927\u7684\u7ade\u54c1\u53d6\u4ee3\u3002\u5b83\u76ee\u524d\u66f4\u50cf\u4e2a\u201c\u597d\u7528\u7684\u5c0f\u5de5\u5177\u201d\uff0c\u79bb\u201c\u5fc5\u7528\u7684\u884c\u4e1a\u6807\u51c6\u201d\u8fd8\u6709\u8ddd\u79bb\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Poker Planner<\/span>\n                <\/div>\n<div class=\"comment-content\">Poker Planner helps live poker players build tournament schedules around dates, buy-ins, bankroll, game types, and conflicts. Browse major poker series, compare events, track your budget, avoid overlaps, and keep your trip organized. For launch, Vegas 2026 planning is free for new signups before July 1.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>We\u2019re two friends who play live poker and work in tech.<\/p>\n<p>Every big series, we had the same problem. Too many schedules, too many tabs, and eventually a spreadsheet full of buy-ins, bullets, Day 2s, backups, and conflicts.<\/p>\n<\/p>\n<p>So we built Poker Planner for ourselves.<\/p>\n<p>It helps you plan a poker trip around your dates, bankroll, game preferences, and schedule conflicts.<\/p>\n<\/p>\n<p>For launch, new signups get one Vegas 2026 trip unlocked for free before July 1.<\/p>\n<\/p>\n<p>Would love feedback from anyone who has ever planned a live poker trip the hard way<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>16<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@pokerplanner\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@pokerplanner<\/a> good luck guys!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Can you export the final schedule to Google Calendar with reminders?<\/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\/@othman_katim\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@othman_katim<\/a>&nbsp;Hi,<\/p>\n<p>Yes, we are supporting an export to google calendar <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\">@othman_katim<br \/>\nYes!<br \/>\nYou can exports as an .ics file that works with Google, Apple, and Outlook calendars. Per-tournament reminders are supported too.<\/div>\n<div class=\"comment-actions\">\n<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\">#20<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/3LXRY6BQDZQ2FR\" class=\"app-title\">Drink Your Water<\/a><\/p>\n<div class=\"one-liner\">Grab the water. Face the camera. Take the sip. It&#8217;s time.<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">8<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Drink Your Water \u662f\u4e00\u6b3e\u5229\u7528\u524d\u7f6e\u6444\u50cf\u5934\u5b9e\u65f6\u9a8c\u8bc1\u996e\u6c34\u52a8\u4f5c\u7684\u201c\u786c\u6838\u201d\u4e60\u60ef\u5e94\u7528\uff0c\u4e13\u4e3a\u90a3\u4e9b\u5bf9\u4f20\u7edf\u63d0\u9192\u9ebb\u6728\u3001\u5c61\u6b21\u201c\u8f9c\u8d1f\u201d\u559d\u6c34\u76ee\u6807\u7684\u4eba\u8bbe\u8ba1\uff0c\u7528\u4e0d\u53ef\u8df3\u8fc7\u7684\u5b9e\u9645\u6267\u884c\u95ed\u73af\u5f7b\u5e95\u89e3\u51b3\u201c\u77e5\u9053\u8be5\u559d\u4f46\u5c31\u662f\u4e0d\u53bb\u559d\u201d\u7684\u4f2a\u4e60\u60ef\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\/b41ebccb-ab8b-45aa-8906-f0d1d72f2065.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/bb03db11-f33b-4839-9b70-2bfafc1b7e9d.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/3f2a1a66-8812-4675-bcab-5becde73981f.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/57973aa6-3e1e-4644-a166-f68ec418cdf9.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/d29162a7-76d6-4ba0-a1b5-e7d8e1cbed96.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/87651561-a50f-47ae-9acf-31b65dce955e.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\">Health &#038; Fitness<\/span><br \/>\n            <span class=\"tag\">Productivity<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u559d\u6c34\u63d0\u9192<\/span><br \/>\n            <span class=\"tag\">\u6444\u50cf\u5934\u9a8c\u8bc1<\/span><br \/>\n            <span class=\"tag\">\u884c\u4e3a\u4e60\u60ef<\/span><br \/>\n            <span class=\"tag\">\u5065\u5eb7\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u9690\u79c1\u4f18\u5148<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u65f6\u68c0\u6d4b<\/span><br \/>\n            <span class=\"tag\">\u4e60\u60ef\u517b\u6210<\/span><br \/>\n            <span class=\"tag\">\u9632\u4f5c\u5f0a<\/span><br \/>\n            <span class=\"tag\">\u8f7b\u5ea6\u4ecb\u5165<\/span><br \/>\n            <span class=\"tag\">\u4e13\u6ce8\u6267\u884c<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u8ba4\u540c\u201c\u65e0\u6cd5\u4f5c\u5f0a\u201d\u7684\u8bbe\u8ba1\u80fd\u6253\u7834\u4e60\u60ef\u62d6\u5ef6\u5faa\u73af\uff1b\u6838\u5fc3\u7591\u95ee\u96c6\u4e2d\u5728\u9690\u79c1\u5904\u7406\u4e0a\uff0c\u5f00\u53d1\u8005\u56de\u5e94\u79f0\u6240\u6709\u68c0\u6d4b\u5728\u672c\u5730\u5b9e\u65f6\u5b8c\u6210\uff0c\u4e0d\u5b58\u50a8\u4efb\u4f55\u5f55\u50cf\u3002\u90e8\u5206\u7528\u6237\u51ed\u5b9e\u6d4b\u63a8\u8350\u201cUnhinged\u201d\u6a21\u5f0f\uff0c\u8ba4\u4e3a\u5b83\u771f\u6b63\u6539\u53d8\u4e86\u884c\u4e3a\u60ef\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                \u4f20\u7edf\u559d\u6c34\u5e94\u7528\u9677\u5165\u4e86\u4e00\u4e2a\u53ef\u60b2\u7684\u5185\u5377\uff1a\u70ab\u9177\u52a8\u753b\u3001\u7cbe\u81f4\u7d2f\u3001\u8f6f\u6027\u63a8\u9001\u2014\u2014\u6700\u7ec8\u4e0d\u8fc7\u662f\u7528\u6237\u624b\u673a\u91cc\u82b1\u54e8\u7684\u201c\u5ffd\u89c6\u6309\u94ae\u201d\u3002Drink Your Water \u7684\u53ef\u8d35\u4e4b\u5904\u5728\u4e8e\uff0c\u5b83\u6b8b\u5fcd\u5730\u62c6\u7a7f\u4e86\u6211\u4eec\u5bf9\u81ea\u5f8b\u7684\u5e7b\u8c61\uff1a\u4f60\u4e0d\u7f3a\u63d0\u9192\uff0c\u4f60\u7f3a\u7684\u662f\u4e0d\u5f97\u4e0d\u505a\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7528\u6444\u50cf\u5934\u4f5c\u4e3a\u9a8c\u8bc1\u624b\u6bb5\uff0c\u4e0d\u662f\u4e3a\u4e86\u201c\u730e\u5947\u201d\uff0c\u800c\u662f\u91cd\u6784\u4e86\u884c\u4e3a\u95ed\u73af\u4e2d\u7684\u4e24\u4e2a\u5173\u952e\u8282\u70b9\uff1a\u6d88\u9664\u201c\u6577\u884d\u5f0f\u54cd\u5e94\u201d\uff08\u4e0d\u60f3\u559d\u65f6\u5173\u95ed\u901a\u77e5\uff09\u548c\u9632\u6b62\u201c\u8bb0\u5fc6\u5f0f\u9020\u5047\u201d\uff08\u4e8b\u540e\u8865\u5f55\uff09\u3002\u628a\u201c\u6211\u8981\u559d\u6c34\u201d\u4ece\u8ba4\u77e5\u4efb\u52a1\u964d\u7ef4\u6210\u673a\u68b0\u6444\u50cf\u5934\u626b\u63cf\u2014\u2014\u8fd9\u6b63\u662f\u884c\u4e3a\u8bbe\u8ba1\u5b66\u91cc\u4ee3\u4ef7\u6700\u5c0f\u7684\u5f3a\u5236\u529f\u80fd\u3002\n            <\/p>\n<p class=\"ai-content\">\n                4\u79cd\u5f3a\u5ea6\u6a21\u5f0f\uff08\u5c24\u5176\u201cUnhinged\u201d\u6a21\u5f0f\uff09\u8bf4\u660e\u4ea7\u54c1\u5f00\u53d1\u8005\u6e05\u695a\u4e0d\u540c\u7528\u6237\u5b58\u5728\u81ea\u63a7\u529b\u68af\u5ea6\uff0c\u7ed9\u4e88\u4e86\u9636\u68af\u5f0f\u4ecb\u5165\u7a7a\u95f4\u3002\u800c\u201c\u65e0\u5b58\u50a8\u3001\u5b9e\u65f6\u672c\u5730\u68c0\u6d4b\u201d\u7684\u9690\u79c1\u58f0\u660e\u5219\u806a\u660e\u5730\u5316\u89e3\u4e86\u6444\u50cf\u5934\u7c7b\u5de5\u5177\u6700\u5927\u7684\u4fe1\u4efb\u969c\u788d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u98ce\u9669\u540c\u6837\u5b58\u5728\uff1a\u6444\u50cf\u5934\u9a8c\u8bc1\u6784\u7b51\u4e86\u7565\u5fae\u7684\u201c\u884c\u52a8\u6469\u64e6\u201d\uff0c\u7528\u6237\u53ef\u80fd\u5728\u538b\u529b\u4e0b\u9010\u6e10\u75b2\u52b3\uff0c\u51fa\u73b0\u201c\u5f00\u6444\u50cf\u5934\u4f46\u5c0f\u53e3\u62bf\u201d\u5f0f\u7684\u534a\u9020\u5047\uff1b\u800c\u957f\u671f\u4f9d\u8d56\u9006\u53cd\u5fc3\u7406\u9a71\u52a8\uff0c\u4e00\u65e6\u4e60\u60ef\u56fa\u5316\u540e\uff0c\u8fd9\u79cd\u201c\u5f3a\u5236\u673a\u5236\u201d\u53ef\u80fd\u53d8\u5f97\u5197\u4f59\u751a\u81f3\u4ee4\u4eba\u62b5\u89e6\u3002\u4ea7\u54c1\u5e94\u63d0\u524d\u89c4\u5212\u4ece\u201c\u5f3a\u4ed6\u5f8b\u201d\u5411\u201c\u5f31\u4ed6\u5f8b\u201d\u7684\u5e73\u6ed1\u8fc7\u6e21\u8def\u5f84\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4e00\u53e5\u8bdd\u603b\u7ed3\uff1a\u5b83\u4e0d\u662f\u8ba9\u4f60\u89c9\u5f97\u201c\u559d\u6c34\u771f\u597d\u201d\u7684\u6e29\u67d4APP\uff0c\u800c\u662f\u8ba9\u4f60\u5728\u6444\u50cf\u5934\u524d\u6ca1\u6cd5\u8bf4\u201c\u4e0d\u201d\u7684\u8bda\u5b9e\u76d1\u7763\u5458\u3002\u5bf9\u4e8e\u6bcf\u4e00\u4e2a\u81ea\u5632\u201c\u559d\u6c34\u5065\u5fd8\u75c7\u60a3\u8005\u201d\u7684\u4eba\u800c\u8a00\uff0c\u8fd9\u53ef\u80fd\u662f\u4f60\u79bb\u771f\u6b63\u201c\u559d\u4e0a\u6c34\u201d\u6700\u8fd1\u7684\u4e00\u6b21\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\">Drink Your Water<\/span>\n                <\/div>\n<div class=\"comment-content\">Drink Your Water is not a passive tracker. It&#8217;s not a gamified fish. It&#8217;s accountability with a camera and actual proof. You get a prompt \u2192 You go get water \u2192 You drink it on camera. No suggestions. No polite nudges. Just camera-based sip verification, with 4 intensity modes, and a privacy-first design. Stop thinking about water. Go drink it.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I like the no-bullshit attitude here. Finally a water app that forces real accountability instead of fake streaks and cute animations.<\/p>\n<p>You actually have to drink on camera when prompted.<\/p>\n<p>Quick question: How do you handle privacy? Is the footage stored locally or deleted immediately after verification?<\/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\/@hsr88\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@hsr88<\/a>&nbsp;Thanks!! This is what it&#8217;s all about. Please give it a try and let me know how you like it! I promise you 2-5 days of use it&#8217;ll turn into muscle memory.<\/p>\n<\/p>\n<p>Privacy is on the top of our mind. There is no storing of any footage at all. The feed opens up the camera, makes the detection in realtime locally, and then the feed gets cut leaving no back traces at all. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Like most of us, I had a folder full of habit apps I&#8217;d stopped opening and reminders I&#8217;d trained myself to dismiss without thinking. The notification would fire. I&#8217;d close it. Nothing would change.<\/p>\n<p>That&#8217;s the loop I kept finding myself in, and why I built Drink Your Water.<br \/>Passive reminders don&#8217;t change behavior. Accountability loops do. So instead of another tracker, I built something that actually closes the loop:<\/p>\n<p>\u2192 You get a notification turned into a countdown<br \/>\u2192 You go get water<br \/>\u2192 You drink it on camera<br \/>\u2192 The app confirms it happened<\/p>\n<p>That&#8217;s it. That&#8217;s the whole thing.<\/p>\n<p>The front-facing camera verification was the key design decision. Just enough friction to make the action real without making it annoying:<\/p>\n<p>You can&#8217;t fake it<br \/>You can&#8217;t dismiss it<br \/>You either did it or you didn&#8217;t<\/p>\n<p>Start on a normal mode first. Then try Unhinged and report back.<\/p>\n<p>Happy to answer anything about the behavioral design, camera verification, how onboarding works, or why your kidneys deserve better.<\/p>\n<p>Ask away.<\/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>I&#8217;ve deleted more habit apps than I&#8217;ve ever used consistently.<\/p>\n<\/p>\n<p>The pattern is always the same \u2192 reminder fires \u2192 I snooze \u2192 I forget \u2192 I feel bad for a day \u2192 I download a new app.<\/p>\n<p>Drink Your Water breaks that loop in the dumbest-smartest way possible.<\/p>\n<\/p>\n<p>You have to drink on camera. That&#8217;s it. There&#8217;s no way to fake it, no way to dismiss it and move on.<\/p>\n<\/p>\n<p>I tried the normal mode first. Then Unhinged.<\/p>\n<\/p>\n<p>Unhinged got me.<\/p>\n<\/p>\n<p>If you&#8217;ve ever ignored 47 hydration reminders in a single day (guilty), this one is actually different. Give it a shot.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@alexcloudstar\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alexcloudstar<\/a>&nbsp;Thank you!!! This means the world to me. Hopefully this is the app that you keep on your phone and keeps you actually accountable! <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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<\/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-05-24 PH\u70ed\u699c | 2026-05-24 #1 Stitc [&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-232","post","type-post","status-publish","format-standard","hentry","category-producthunt"],"_links":{"self":[{"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/posts\/232","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=232"}],"version-history":[{"count":0,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/posts\/232\/revisions"}],"wp:attachment":[{"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/media?parent=232"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/categories?post=232"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/tags?post=232"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}