{"id":211,"date":"2026-05-04T12:12:35","date_gmt":"2026-05-04T04:12:35","guid":{"rendered":"https:\/\/ph.listeningo.cn\/index.php\/2026\/05\/04\/2026-05-03\/"},"modified":"2026-05-04T12:12:35","modified_gmt":"2026-05-04T04:12:35","slug":"2026-05-03","status":"publish","type":"post","link":"https:\/\/ph.listeningo.cn\/index.php\/2026\/05\/04\/2026-05-03\/","title":{"rendered":"PH\u70ed\u699c | 2026-05-03"},"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-03<\/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-03<\/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\/ZVGW24KQL2TDTF\" class=\"app-title\">Radar<\/a><\/p>\n<div class=\"one-liner\">The missing open-source Kubernetes UI<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">319<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Radar \u662f\u4e00\u4e2a\u5f00\u6e90\u3001\u672c\u5730\u4f18\u5148\u7684 Kubernetes UI\uff0c\u901a\u8fc7\u5b9e\u65f6\u62d3\u6251\u3001\u8d44\u6e90\u7ba1\u7406\u3001Helm\/GitOps \u96c6\u6210\u548c AI \u4ee3\u7406\u63a5\u53e3\uff0c\u89e3\u51b3\u4e86\u5de5\u7a0b\u5e08\u9700\u8981\u5728\u591a\u4e2a\u7ec8\u7aef\u3001\u4eea\u8868\u76d8\u548c\u4e91\u63a7\u5236\u53f0\u95f4\u5207\u6362\u624d\u80fd\u5b8c\u6210\u65e5\u5e38\u96c6\u7fa4\u64cd\u4f5c\u7684\u5272\u88c2\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\/81fa1e6d-4cb5-4a35-9c89-af9ce8573cb9.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/4416408b-913e-43db-85ce-27dffe9ac457.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/1f8779fd-0668-478f-931c-f82cf8e701b0.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/266d02ee-7f15-4de8-a775-734e8e96a10e.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/cc0816d9-feae-4197-b50b-c74f06e3097b.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Open Source<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">GitHub<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u5f00\u6e90<\/span><br \/>\n            <span class=\"tag\">Kubernetes UI<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u4f18\u5148<\/span><br \/>\n            <span class=\"tag\">\u5bb9\u5668\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">Helm<\/span><br \/>\n            <span class=\"tag\">GitOps<\/span><br \/>\n            <span class=\"tag\">\u96c6\u7fa4\u5ba1\u8ba1<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u65f6\u6d41\u91cf<\/span><br \/>\n            <span class=\"tag\">AI \u4ee3\u7406<\/span><br \/>\n            <span class=\"tag\">MCP<\/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\u96c6\u7fa4\u5ba1\u8ba1\uff0831\u9879\u68c0\u67e5\uff09\u5e26\u6765\u7684\u6548\u7387\u63d0\u5347\uff0c\u4f46\u5e0c\u671b\u652f\u6301\u81ea\u5b9a\u4e49\u68c0\u67e5\u6ce8\u5165\u3002\u53e6\u4e00\u6838\u5fc3\u5173\u6ce8\u70b9\u56f4\u7ed5MCP\u7684\u6743\u9650\u8fb9\u754c\uff0c\u56e2\u961f\u56de\u5e94\u5176\u975e\u7834\u574f\u6027\u8bbe\u8ba1\uff08\u53ea\u8bfb+\u53ef\u63a7\u64cd\u4f5c\uff09\u5e76\u901a\u8fc7RBAC\u7ee7\u627f\u7528\u6237\u6743\u9650\u3002\u4e5f\u6709\u7528\u6237\u79f0\u8d5e\u5355\u4e8c\u8fdb\u5236\u90e8\u7f72\u6d88\u9664\u4e86\u5e73\u53f0\u56e2\u961f\u5ba1\u6279\u7684\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                Radar \u7684\u51fa\u73b0\uff0c\u672c\u8d28\u4e0a\u662f Kubernetes \u5de5\u5177\u94fe\u201c\u4e00\u4f53\u5316\u754c\u9762\u201d\u8fd9\u4e00\u8001\u95ee\u9898\u7684\u65b0\u89e3\uff0c\u4f46\u5b83\u7684\u5dee\u5f02\u5316\u4e0d\u5728\u529f\u80fd\u53e0\u52a0\uff0c\u800c\u5728\u67b6\u6784\u54f2\u5b66\u3002\u5f53\u524d\u5e02\u573a\u4e0a\u7684\u5f00\u6e90\u81ea\u5efa\u65b9\u6848\uff0c\u8981\u4e48\u662f\u91cd\u5ba2\u6237\u7aef\uff08Lens\/FreeLens\uff09\uff0c\u8981\u4e48\u662f\u6d45\u5c42\u770b\u677f\uff08Headlamp\uff09\uff0c\u8981\u4e48\u662f\u7ec8\u7aef\u7c98\u6027\u5de5\u5177\uff08k9s\uff09\uff0c\u800c SaaS \u65b9\u6848\u5219\u8981\u6c42\u8d26\u6237\u3001\u8282\u70b9\u8ba1\u4ef7\u548c\u4fe1\u4efb\u6388\u6743\u3002Radar \u9009\u62e9\u7684\u8def\u5f84\u662f\u201c\u672c\u5730\u4f18\u5148\u3001\u5355\u4e8c\u8fdb\u5236\u3001\u96f6\u8d26\u6237\u201d\uff0c\u8fd9\u7cbe\u51c6\u51fb\u4e2d\u4e86\u4e24\u4e2a\u75db\u70b9\uff1a\u4e00\u662f\u5e73\u53f0\u56e2\u961f\u4e0e\u4e1a\u52a1\u5f00\u53d1\u4e4b\u95f4\u7684\u4fe1\u4efb\u9e3f\u6c9f\u2014\u2014\u90e8\u7f72\u4e00\u4e2a\u96c6\u7fa4\u5185\u5de5\u5177\u5f80\u5f80\u9700\u8981\u6f2b\u957f\u7684\u5ba1\u6279\u6d41\u7a0b\uff0c\u800c\u672c\u5730 kubeconfig \u8ba9\u5de5\u7a0b\u5e08\u83b7\u5f97\u5373\u65f6\u53ef\u89c1\u6027\uff1b\u4e8c\u662f\u8fd0\u7ef4\u590d\u6742\u5ea6\u7684\u611f\u77e5\u95e8\u69db\u2014\u2014\u5c06\u5b9e\u65f6\u6d41\u91cf\u3001Helm diff\u3001\u6210\u672c\u6d1e\u5bdf\u3001\u5b89\u5168\u5ba1\u8ba1\u7b49\u6e10\u8fdb\u5f0f\u6df1\u5ea6\u529f\u80fd\u6574\u5408\u8fdb\u540c\u4e00UI\uff0c\u964d\u4f4e\u4e86\u4ece\u65b0\u624b\u5230\u4e13\u5bb6\u95f4\u7684\u8ba4\u77e5\u8dc3\u8fc1\u6210\u672c\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u503c\u5f97\u5173\u6ce8\u7684\u662f MCP\uff08Model Context Protocol\uff09\u7684\u5f15\u5165\u3002\u8fd9\u4e0d\u662f\u70ab\u8000\u6280\u672f\uff0c\u800c\u662f\u4e3a Kubernetes \u64cd\u4f5c\u8d4b\u4e88\u4e86\u4e00\u4e2a\u53ef\u88ab AI \u4ee3\u7406\u5b89\u5168\u8c03\u7528\u7684\u62bd\u8c61\u5c42\u3002\u901a\u8fc7\u975e\u7834\u574f\u6027\u8bbe\u8ba1\u548c RBAC \u7ee7\u627f\uff0cRadar \u5b9e\u9645\u4e0a\u521b\u5efa\u4e86\u4e00\u4e2a\u201c\u5b89\u5168\u4e14\u53ef\u7f16\u7a0b\u7684\u8fd0\u7ef4\u63a5\u53e3\u201d\uff0c\u8fd9\u5c06\u53ef\u80fd\u6539\u53d8\u8fd0\u7ef4\u4eba\u5458\u4e0e AI \u534f\u4f5c\u7684\u6a21\u5f0f\uff1aAI \u4e0d\u518d\u662f\u53ea\u8bfb\u52a9\u624b\uff0c\u800c\u662f\u80fd\u5728\u6743\u9650\u8fb9\u754c\u5185\u6267\u884c\u91cd\u542f\u3001\u6269\u7f29\u5bb9\u7b49\u64cd\u4f5c\u3002\u8fd9\u79cd\u8bbe\u8ba1\u6bd4\u76f4\u63a5\u7528 kubectl + LLM \u7684\u65b9\u6848\u66f4\u53ef\u63a7\uff0c\u4e5f\u66f4\u63a5\u8fd1\u4f01\u4e1a\u7ea7\u91c7\u7eb3\u7684\u524d\u63d0\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4e0d\u8fc7\uff0cRadar \u7684\u4ef7\u503c\u4ecd\u9762\u4e34\u73b0\u5b9e\u8003\u9a8c\u2014\u2014\u5f53\u96c6\u7fa4\u89c4\u6a21\u589e\u957f\u3001\u6d89\u53ca\u591a\u79df\u6237\u9694\u79bb\u548c\u590d\u6742\u7f51\u7edc\u7b56\u7565\u65f6\uff0c\u5355\u4e8c\u8fdb\u5236\u6a21\u5f0f\u662f\u5426\u80fd\u7ef4\u6301\u6027\u80fd\u800c\u4e0d\u9000\u5316\uff1f\u81ea\u5b9a\u4e49\u5ba1\u8ba1\u89c4\u5219\u7684\u7f3a\u5931\u3001\u6838\u5fc3\u529f\u80fd\uff08\u5982\u65e5\u5fd7\u805a\u5408\u3001\u544a\u8b66\u89c4\u5219\u7ba1\u7406\uff09\u5bf9\u539f\u6709\u5de5\u5177\u7684\u4f9d\u8d56\u662f\u5426\u4f1a\u6210\u4e3a\u4e0b\u4e00\u6b21\u201c\u7248\u672c\u5272\u88c2\u201d\uff1f\u4ee5\u53ca\uff0c\u5728 Kubernetes \u751f\u6001\u5df2\u6709\u5927\u91cf\u5934\u90e8\u5546\u4e1a\u4ea7\u54c1\uff08\u5982 Datadog\u3001Grafana\uff09\u6df1\u5ea6\u5e03\u5c40\u7684\u80cc\u666f\u4e0b\uff0cRadar \u7684\u793e\u533a\u9a71\u52a8\u529b\u80fd\u5426\u652f\u6491\u8d77\u957f\u671f\u8fed\u4ee3\u7684\u91ce\u5fc3\uff1f\u8fd9\u4e9b\u90fd\u662f\u9700\u8981\u6301\u7eed\u89c2\u5bdf\u7684\u53d8\u91cf\u3002\u603b\u4f53\u6765\u8bf4\uff0c\u5b83\u662f\u4e00\u6b3e\u5c11\u89c1\u7684\u3001\u517c\u5177\u8bbe\u8ba1\u7f8e\u611f\u4e0e\u5de5\u7a0b\u5224\u65ad\u529b\u7684\u5f00\u6e90\u4ea7\u54c1\uff0c\u4f46\u8ddd\u79bb\u201c\u66ff\u4ee3\u6240\u6709\u73b0\u6709\u5de5\u5177\u201d\u7684\u76ee\u6807\uff0c\u8fd8\u6709\u4e00\u6bb5\u624e\u5b9e\u7684\u8865\u5168\u4e4b\u8def\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\">Radar<\/span>\n                <\/div>\n<div class=\"comment-content\">Radar brings your Kubernetes workflows into one fast, open-source UI: real-time topology, resources, events, Helm, GitOps, live traffic flows, security &#038; best-practice checks, image filesystem inspection, and MCP for AI agents. Run it locally as a single binary or self-host it in-cluster with RBAC + OIDC \u2014 no account, agents, or cloud required.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey PH \ud83d\udc4b Eyal, Roy, and Nadav here &#8211; the team behind Radar. We also build Skyhook, YC W23.<\/p>\n<p>We&#8217;ve wanted a better Kubernetes UI for a long time. kubectl is powerful, but day-to-day cluster work still ends up split across terminals, dashboards, Helm, Argo\/Flux, cloud consoles, and log tools.<\/p>\n<p>The existing options all have tradeoffs. Lens lost the OSS trust that made people love it. FreeLens is a welcome fork, but still carries the same heavy Electron desktop model. Headlamp is useful, but shallow once you want deeper operations &#8211; Helm, GitOps, traffic, audits. k9s is excellent if you live in the terminal, but not everyone does. And the SaaS tools often price by node and ask for a work email before they let you look at your own cluster.<\/p>\n<\/p>\n<p>So we built the Kubernetes UI we wanted: fast, local-first, open source, and not locked behind an account. We quietly shipped it a couple of months ago. The community took it past 1.4k GitHub stars and gave us way more feedback than we expected, so we kept shipping. Today is the proper launch.<\/p>\n<\/p>\n<p>What&#8217;s in it:<\/p>\n<p>&#8211; Topology with real ownership chains, not force-directed spaghetti<\/p>\n<p>&#8211; Live event stream across all resources using Kubernetes watches, not polling<\/p>\n<p>&#8211; Helm release management with diff\/rollback + native Argo CD \/ Flux sync<\/p>\n<p>&#8211; Live traffic flows via Hubble\/Cilium, Caretta, or Istio<\/p>\n<p>&#8211; Cost insights via OpenCost &#8211; auto-detected per namespace, workload, and node<\/p>\n<p>&#8211; Cluster audit &#8211; 31 checks across security, reliability, and efficiency<\/p>\n<p>&#8211; Image filesystem viewer &#8211; read container files in the UI, no exec, no pull<\/p>\n<p>&#8211; Built-in MCP server &#8211; point Cursor or Claude at your cluster<\/p>\n<p>Plus first-class integrations for 20+ popular K8s tools &#8211; Argo Rollouts, Karpenter, KEDA, cert-manager, Trivy, Kyverno, Velero, Knative, and more.<\/p>\n<p>Single Go binary. Apache 2.0. No account required. No usage tracking. No cloud dependency.<\/p>\n<p>Site: <a href=\"https:\/\/radarhq.io\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/radarhq.io<\/a><\/p>\n<p>Repo: <a href=\"https:\/\/github.com\/skyhook-io\/radar\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/github.com\/skyhook-io\/radar<\/a><\/p>\n<p>Discord: <a href=\"https:\/\/radarhq.io\/community\/chat\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/radarhq.io\/community\/chat<\/a><\/p>\n<p>Also yes, we cared about making it beautiful. K8s tools don&#8217;t have to look like punishment.<\/p>\n<p>Would love your feedback &#8211; what&#8217;s missing, what breaks, what we got wrong. We&#8217;re here all day.<\/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\/@nadav_erell\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@nadav_erell<\/a>&nbsp;Finally! k9s is still my go-to, but as you said, most people may want a real GUI. 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<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>a cluster audit with 31 checks across security and reliability is a massive value-add for day-to-day ops. we usually run separate trivy or kyverno reports, so having that integrated into the primary ui workflow is a huge time-saver. does the audit allow for custom check injection? <a href=\"https:\/\/www.producthunt.com\/@nadav_erell\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"nadav_erell\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@nadav_erell<\/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\/@vikramp7470\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@vikramp7470<\/a>&nbsp;Thanks! Not yet, but definitely something we can consider.<br \/>If you have any specific checks you think are missing that could be very fast to add, we tried to balance and not go overboard spamming too many, so real things don&#8217;t get lost in the noise.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Looks very useful, sharing it with my 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\/@surya_oruganti1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@surya_oruganti1<\/a>&nbsp;thank you! Would love to get their 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\">Was actually just looking for sth like this. Was about to build an internal shoddy version, this will do!<\/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\/@jalcantara\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jalcantara<\/a>&nbsp;You deserve better than shoddiness \ud83d\ude42 <br \/>We basically built this because none of the existing options really did what we wanted well enough. Surprising that this is the case for k8s in 2026.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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 &#8211; gave it a star! good luck!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@nikolas_dimitroulakis\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@nikolas_dimitroulakis<\/a>&nbsp;thank you, much appreciated!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Local-first with zero cluster-side installation is the right call. When I was scaling an engineering org from 15 to 120, the biggest friction with K8s tooling was always the chicken-and-egg problem: you need cluster access to install the tool that helps you understand the cluster. Having this run as a single binary using existing kubeconfig means any engineer can get visibility without needing platform team approval first. That alone probably saves a week of onboarding time per new infrastructure hire.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@avrisimon\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@avrisimon<\/a>&nbsp;\ud83c\udfaf<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The MCP-for-AI-agents piece is the most interesting bit and the existing comments haven&#8217;t poked at it. What can an agent actually do via Radar&#8217;s MCP \u2014 read-only stuff (describe pods, fetch events, summarise an outage), or destructive ops (kubectl delete, rollout restart)? That boundary decides whether anyone runs this against a prod cluster.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@sounak_bhattacharya\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sounak_bhattacharya<\/a>&nbsp;Hi, Roy from the Radar team here. Good question!<\/p>\n<p>We had your considerations in mind when building it. Boundary is &#8220;non-destructive by design.&#8221; No delete, no force-uninstall, no &#8211;cascade=orphan.<\/p>\n<p><strong>Reads:<\/strong> dashboard, resources, topology, events, pod \/ workload logs, changes timeline, Helm releases. Outputs are minified and secret-scrubbed (Secret .data never returned, env values redacted, logs scrubbed for token shapes).<\/p>\n<p><strong>Writes<\/strong> are a curated, non-destructive set: restart \/ scale \/ rollback workloads, trigger \/ suspend cronjobs, sync \/ reconcile GitOps, cordon \/ drain nodes, and apply_resource with dry_run. Nothing that deletes.<\/p>\n<p>The other half is RBAC. Calls go through K8s with the user&#8217;s identity (impersonation in OIDC \/ proxy mode, the agent&#8217;s ServiceAccount otherwise), so the agent inherits exactly your perms &#8211; a 403 from K8s is a 403 from MCP. And in OSS, MCP listens on loopback only.<\/p>\n<p>Full breakdown at \/features\/mcp.<\/p>\n<p>Would love to hear your feedback on this approach &#8211; and if you&#8217;ve got ideas for where the boundary should sit differently, very open to it.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#2<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/BLAIC7M7XUPFXD\" class=\"app-title\">PandaProbe<\/a><\/p>\n<div class=\"one-liner\">open source agent engineering platform<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">302<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>PandaProbe \u662f\u4e00\u6b3e\u5f00\u6e90\u7684\u667a\u80fd\u4f53\u5de5\u7a0b\u5e73\u53f0\uff0c\u4e13\u4e3a\u89e3\u51b3 AI Agent \u5728\u751f\u4ea7\u73af\u5883\u4e2d\u96be\u4ee5\u8ffd\u8e2a\u3001\u8bc4\u4f30\u3001\u76d1\u63a7\u548c\u8c03\u8bd5\u7684\u75db\u70b9\uff0c\u5e2e\u52a9\u5f00\u53d1\u8005\u5c06\u884c\u4e3a\u53ef\u89c1\u6027\u4ece\u201c\u672c\u5730\u8dd1\u5f97\u901a\u201d\u63d0\u5347\u5230\u201c\u5b8c\u5168\u7406\u89e3\u751f\u4ea7\u72b6\u6001\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\/a7151496-8ff7-4e8f-9e5a-1e11ea5358c6.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/9ba9f12c-7188-41c4-9339-80fc7a884661.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/35799d25-c7fb-4095-8ac1-3acb8c1857a2.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/a01c889d-706e-41fa-a036-70cf48d98e9a.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/a9efe1a9-48eb-434b-b7ea-41eeab94aa0d.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\/c3af2ede-6970-44e8-a0b8-70b2072dc49a.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/iWekqsZC1Xk\"><source src=\"https:\/\/youtu.be\/iWekqsZC1Xk\" 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\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">GitHub<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI Agent\u89c2\u6d4b<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90<\/span><br \/>\n            <span class=\"tag\">\u667a\u80fd\u4f53\u8c03\u8bd5<\/span><br \/>\n            <span class=\"tag\">\u8ffd\u8e2a\u4e0e\u8bc4\u4f30<\/span><br \/>\n            <span class=\"tag\">\u751f\u4ea7\u76d1\u63a7<\/span><br \/>\n            <span class=\"tag\">LLM\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u8d28\u91cf\u8bc4\u4f30<\/span><br \/>\n            <span class=\"tag\">\u53ef\u89c2\u6d4b\u6027<\/span><br \/>\n            <span class=\"tag\">\u5de5\u7a0b\u5e73\u53f0<\/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\u8be5\u5e73\u53f0\u5728\u8c03\u8bd5\u957f\u65f6\u81ea\u6cbbAgent\u3001\u5e94\u5bf9\u8f68\u8ff9\u7ea7\u8d28\u91cf\u6f02\u79fb\u65b9\u9762\u7684\u4ef7\u503c\u3002\u6838\u5fc3\u5173\u6ce8\u70b9\u96c6\u4e2d\u4e8e\uff1a\u662f\u5426\u652f\u6301\u81ea\u5b9a\u4e49\u8ffd\u8e2a\u539f\u59cbAPI\u8c03\u7528\u3001\u5982\u4f55\u4ee5\u4f4e\u6210\u672c\uff08\u5f02\u6b65\/\u91c7\u6837\uff09\u5904\u7406\u4e3b\u89c2\u8d28\u91cf\u6ed1\u5761\u4e0e\u8f68\u8ff9\u7ea7\u8bc4\u4f30\u7684\u5177\u4f53\u65b9\u6cd5\uff0c\u4ee5\u53ca\u4e0eLangSmith\u7b49\u5de5\u5177\u7684\u5dee\u5f02\u5316\u5b9a\u4f4d\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                PandaProbe\u5207\u4e2d\u7684\u786e\u5b9e\u662f\u5f53\u524dAgent\u5de5\u7a0b\u5316\u7684\u201c\u786c\u6838\u201d\u76f2\u533a\u2014\u2014\u5927\u591a\u6570\u5e73\u53f0\u4ecd\u505c\u7559\u5728\u63d0\u793a\u8bcd\u65e5\u5fd7\u7ea7\u522b\uff0c\u800c\u751f\u4ea7\u73af\u5883\u7684Agent\u5931\u8d25\u6a21\u5f0f\u5f80\u5f80\u662f\u8de8\u65f6\u95f4\u3001\u8de8\u5de5\u5177\u7684\u8f68\u8ff9\u7ea7\u9000\u5316\u3002\u521b\u59cb\u4eba\u5c06\u5b66\u672f\u8bba\u6587\uff08TRACER\uff09\u76f4\u63a5\u8f6c\u5316\u4e3a\u4ea7\u54c1\u67b6\u6784\uff0c\u9009\u62e9\u4ece\u201c\u5b8c\u6574\u4f1a\u8bdd\u89c2\u6d4b\u201d\u800c\u975e\u201c\u5355\u8f6e\u95ee\u7b54\u201d\u5207\u5165\uff0c\u6709\u5f88\u5f3a\u7684\u7406\u8bba\u5148\u53d1\u4f18\u52bf\u3002\u4f46\u503c\u5f97\u6ce8\u610f\u7684\u662f\uff0c\u8be5\u8d5b\u9053\u5df2\u6709LangSmith\u3001Langfuse\u7b49\u6210\u719f\u73a9\u5bb6\uff0c\u5b83\u4eec\u4e5f\u6b63\u4ece\u65e5\u5fd7\u5411\u201c\u667a\u80fd\u4f53\u89c2\u6d4b\u201d\u6f14\u8fdb\u3002PandaProbe\u5f00\u6e90+\u4e91\u5316\u7684\u53cc\u8f68\u6a21\u5f0f\u867d\u80fd\u964d\u4f4e\u8bd5\u7528\u95e8\u69db\uff0c\u4f46\u771f\u6b63\u7684\u62a4\u57ce\u6cb3\u5728\u4e8e\uff1a\u5b83\u80fd\u5426\u8ba9\u201c\u8bc4\u4f30\u6210\u672c\u4f4e\u4e8e\u63a8\u7406\u6210\u672c\u201d\u4ee5\u53ca\u201c\u8f68\u8ff9\u7ea7\u8bc4\u4f30\u7ed3\u679c\u5177\u5907\u53ef\u64cd\u4f5c\u7684\u91cd\u73b0\u6027\u201d\u2014\u2014\u5426\u5219\u6781\u5bb9\u6613\u6ca6\u4e3a\u4e00\u4e2a\u6f02\u4eae\u7684\u76d1\u63a7\u4eea\u8868\u76d8\u3002\u6b64\u5916\uff0c\u7528\u6237\u5bf9MCP\u3001\u81ea\u5b9a\u4e49API\u8ffd\u8e2a\u7684\u652f\u6301\u9700\u6c42\u8bc1\u660e\u4e86\u5176\u201c\u6df7\u5408\u67b6\u6784\u201d\u6218\u7565\u7684\u6b63\u786e\u6027\uff0c\u4f46\u8fd9\u610f\u5473\u7740\u5de5\u7a0b\u96c6\u6210\u6210\u672c\u4f1a\u9661\u589e\u3002\u603b\u7684\u6765\u8bf4\uff0cPandaProbe\u65b9\u5411\u6b63\u786e\uff0c\u4f46\u8981\u5728\u6fc0\u70c8\u7ade\u4e89\u4e2d\u7acb\u8db3\uff0c\u5fc5\u987b\u8bc1\u660e\u81ea\u5df1\u7684\u8bc4\u4f30\u4f53\u7cfb\u548c\u4f4e\u6210\u672c\u65b9\u6848\u4e0d\u4ec5\u4ec5\u662f\u8425\u9500\u8bdd\u672f\uff0c\u800c\u662f\u80fd\u771f\u6b63\u53d6\u4ee3\u5f00\u53d1\u8005\u7684\u201c\u4eba\u5de5\u770b\u65e5\u5fd7\u201d\u82e6\u529b\u6d3b\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\">PandaProbe<\/span>\n                <\/div>\n<div class=\"comment-content\">PandaProbe is an open-source agent engineering platform that gives you deep observability into AI agent applications. Use it to trace, evaluate, monitor and debug your AI agents in development and production.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>\ud83d\udc4b Hey Product Hunt!<\/p>\n<p>I\u2019m Sina, founder of PandaProbe.<\/p>\n<\/p>\n<p>Building AI agents is getting easier, but understanding and trusting them in production is still hard.<\/p>\n<p>Once agents start calling LLMs, tools, APIs, MCPs, and sub-agents, logs aren\u2019t enough anymore. You need to see what happened, why it failed, whether quality regressed, and how reliable the system is across full sessions.<\/p>\n<\/p>\n<p>PandaProbe is my attempt to solve this: an<strong> open-source agent engineering platform<\/strong> for tracing, evaluation, monitoring, and debugging AI agent applications.<\/p>\n<\/p>\n<p>The goal is simple: help developers move from \u201cit works on my laptop\u201d to \u201cI understand production behavior, can measure quality, and continuously improve it.\u201d<\/p>\n<p><strong>What PandaProbe provides<\/strong><\/p>\n<p>\ud83d\udd0e Trace \u2014 capture full agent executions as sessions, traces, and spans across LLMs, tools, agents, and custom logic.<br \/>\ud83d\udcca Evaluate \u2014 score traces and sessions using mission-critical, agent-specific metrics.<br \/>\u23f1\ufe0f Monitor \u2014 schedule recurring evaluations to automatically validate new traces and sessions in production.<br \/>\ud83d\udcc8 Analytics \u2014 track performance, cost, latency, errors, and quality trends over time.<br \/>\ud83d\udee0\ufe0f Open source + cloud \u2014 use the open-source core on GitHub or run PandaProbe in the cloud.<\/p>\n<p><strong>Who it\u2019s for<\/strong><\/p>\n<p>\ud83e\uddd1\u200d\ud83d\udcbb AI engineers \u2014 debug agent behavior across LLMs, tools, and workflows.<br \/>\ud83c\udfd7\ufe0f Platform teams \u2014 monitor quality, regressions, and reliability in production.<br \/>\ud83d\udd2c Builders experimenting with agents \u2014 understand failures and iterate faster.<br \/>\ud83d\ude80 Startups \u2014 add observability and evaluation before things become unmanageable.reason about.<\/p>\n<p><strong>Quick links<\/strong><\/p>\n<p>GitHub: <a href=\"https:\/\/github.com\/chirpz-ai\/pandaprobe\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/github.com\/chirpz-ai\/pandaprobe<\/a><\/p>\n<p>Docs: <a href=\"https:\/\/docs.pandaprobe.com\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/docs.pandaprobe.com<\/a><\/p>\n<p>Cloud: <a href=\"https:\/\/www.pandaprobe.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/www.pandaprobe.com\/<\/a><\/p>\n<\/p>\n<p>I\u2019ll be here all day answering questions and collecting feedback.<\/p>\n<p>If you\u2019re building agents today, what\u2019s the hardest part to debug or evaluate?<\/p>\n<\/p>\n<p>Thanks for checking it out \ud83d\ude4f<br \/>\u2014 Sina<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>4<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Handling state and debugging for long-running autonomous agents is usually a nightmare, so having an open-source platform to standardize that workflow is huge. I can definitely see myself using PandaProbe to self-host my agent evaluation pipeline to keep sensitive client data entirely local. I am really curious to hear if you currently support custom tracing for raw API calls instead of just the standard frameworks.<\/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\/@y_taka\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@y_taka<\/a>&nbsp;Really appreciate that \u2014 and yes, democratizing observability and enabling teams to keep sensitive workflows fully self-hosted were big motivations behind making PandaProbe open source from day one.<\/p>\n<p>And absolutely: we support custom tracing beyond standard frameworks. Alongside native integrations, PandaProbe also provides manual instrumentation APIs and decorators, so you can trace raw API calls, internal services, custom orchestration layers, or essentially any part of your agent workflow you want visibility into.<\/p>\n<p>A lot of teams end up with hybrid architectures, so supporting low-level custom instrumentation was important for us early on.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Evaluation is the hardest part of this whole space and most platforms hand-wave it. The failure mode that actually bites in production isn&#8217;t crashes or schema errors. It&#8217;s slow drift in subjective quality (voice, classification accuracy, output style) that only shows up when a human reads 50 outputs in a row. How does PandaProbe handle that in practice? LLM-as-judge with custom rubrics, human-in-loop on a held-out set, embedding-distance from a golden corpus, or something else? And how do you stop eval cost from outpacing inference cost when you&#8217;re re-judging every trace?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@vincentf\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@vincentf<\/a>&nbsp;This is actually one of the core motivations behind PandaProbe.<\/p>\n<p>A lot of evaluation systems today focus on isolated outputs, but in production we kept seeing failures emerge as trajectory-level drift: looping, degraded tool grounding, coordination breakdowns, subtle quality regression, output-style drift, etc. The model can still sound confident locally while the overall session quality quietly collapses.<\/p>\n<p>That led directly to a research paper I recently published called TRACER (Trajectory Risk Aggregation for Critical Episodes in Agentic Reasoning). The core idea is evaluating uncertainty and failure at the trajectory\/session level rather than the individual response level.<\/p>\n<p>That research became a major foundation for PandaProbe\u2019s evaluation system and heavily shaped how we think about observability and longitudinal agent evaluation.<\/p>\n<p>On the cost side, we\u2019re also very conscious about evals becoming more expensive than inference. PandaProbe supports async and sampled evaluations, composable metrics, and lightweight structural trajectory signals so teams don\u2019t have to run expensive judge models on every trace.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Great pain to tackle, Sina. Good luck.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@ardalan2 thanks for your support Ardalan. happy to hear your feedback if you adopt the platform.<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Really nice work. The gap between &#8220;it ran&#8221; and &#8220;I understand what happened&#8221; is enormous for agents and nobody&#8217;s solved it cleanly yet. Rooting for you!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@igorsorokinua\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@igorsorokinua<\/a>&nbsp;Really appreciate that and I completely agree. That gap becomes painfully obvious once agents start interacting with tools, memory, APIs, and other agents in production.<\/p>\n<p>A big part of PandaProbe\u2019s vision is making agent behavior actually inspectable (like traditional software engineering) and understandable instead of feeling like a black box.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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 and thanks for using mcp-use \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\/@pederzh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@pederzh<\/a>&nbsp;thanks for the support Luigi. I&#8217;m a big fan of mcp-use \ud83d\ude42<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Congrats on another great product going live! does it support MCP tool tracing natively or do you have to instrument those calls manually?<\/div>\n<div class=\"comment-actions\">\n<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\/@kate_ramakaieva\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@kate_ramakaieva<\/a>&nbsp;Thanks for the support, Kate! Great question.<\/p>\n<p>If you\u2019re using one of our supported integrations for frameworks like LangGraph, CrewAI, and others, MCP tool calls are automatically captured and traced out of the box.<\/p>\n<p>For custom agent architectures or internal tooling, we also provide lightweight manual instrumentation via decorators, so you can trace virtually any function, tool call, or workflow step in your agent logic.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Where does PandaProbe sit relative to LangSmith, Langfuse, and Helicone? They all claim &#8220;agent observability&#8221; but mean very different things underneath \u2014 some are basically prompt loggers, others actually trace tool-call DAGs. Curious which problem you decided was the real one.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/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\/UYBGFPMMHGEL7A\" class=\"app-title\">Huddle01 VMs<\/a><\/p>\n<div class=\"one-liner\">Virtual Machines for Your Agents<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">296<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>\u901a\u8fc7\u96c6\u6210MCP\u534f\u8bae\uff0c\u7528\u6237\u53ef\u76f4\u63a5\u5728Claude\u3001Cursor\u7b49AI\u52a9\u624b\u7684\u804a\u5929\u754c\u9762\u4e2d\u4e00\u952e\u521b\u5efa\u3001\u914d\u7f6e\u548c\u7ba1\u7406\u865a\u62df\u673a\uff0c\u5927\u5e45\u964d\u4f4e\u57fa\u7840\u8bbe\u65bd\u5efa\u8bbe\u7684\u6280\u672f\u95e8\u69db\u548c\u64cd\u4f5c\u65f6\u95f4\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\/34e696e4-58ee-4f36-9ef4-a14f2fddad70.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/5d01d491-fc20-4821-a6fc-56878b0614b4.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/849df79b-b12c-436d-8806-f094b1ab23ac.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\/9dd39380-9baf-4970-9a7e-b2f0c8ef69c7.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=Mpp3Oh6HSOA\"><source src=\"https:\/\/www.youtube.com\/watch?v=Mpp3Oh6HSOA\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">Development<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u4e91\u8ba1\u7b97<\/span><br \/>\n            <span class=\"tag\">MCP\u534f\u8bae<\/span><br \/>\n            <span class=\"tag\">AI\u57fa\u7840\u8bbe\u65bd<\/span><br \/>\n            <span class=\"tag\">\u865a\u62df\u4e3b\u673a<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u4f4e\u4ee3\u7801\u90e8\u7f72<\/span><br \/>\n            <span class=\"tag\">\u667a\u80fd\u8fd0\u7ef4<\/span><br \/>\n            <span class=\"tag\">\u6309\u79d2\u8ba1\u8d39<\/span><br \/>\n            <span class=\"tag\">DevTools<\/span><br \/>\n            <span class=\"tag\">\u65e0\u9650\u5236\u6d41\u91cf<\/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\u201cAI\u804a\u5929\u63a7\u5236\u865a\u62df\u673a\u201d\u7684\u4fbf\u6377\u6027\u8868\u793a\u8ba4\u53ef\uff08\u5982\u8282\u7701\u65f6\u95f4\u3001\u9002\u5408\u591aAgent\u7cfb\u7edf\uff09\u3002\u6838\u5fc3\u7591\u8651\u96c6\u4e2d\u5728\uff1a\u8ba4\u8bc1\u4e0e\u82b1\u9500\u63a7\u5236\uff08Agent\u5faa\u73af\u5bfc\u81f4\u8d44\u6e90\u6d6a\u8d39\uff09\u3001GPU\u5b9e\u4f8b\u652f\u6301\u3001\u51b7\u542f\u52a8\u901f\u5ea6\u3001\u4ee5\u53ca\u914d\u7f6e\u9519\u8bef\u5e26\u6765\u7684\u6210\u672c\u98ce\u9669\u3002\u540c\u65f6\u6709\u7528\u6237\u8be2\u95ee\u4e0eRailway\u7b49\u73b0\u6709\u65b9\u6848\u7684\u6027\u4ef7\u6bd4\u5bf9\u6bd4\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                Huddle01 VMs\u6253\u52a8\u5e02\u573a\u7684\u5e76\u975e\u6280\u672f\u7a81\u7834\uff0c\u800c\u662f\u4ea4\u4e92\u8303\u5f0f\u7684\u9769\u65b0\u3002\u5b83\u5c06\u4e91\u57fa\u7840\u8bbe\u65bd\u7684\u201c\u914d\u7f6e\u5165\u53e3\u201d\u4ece\u4e13\u4e1a\u63a7\u5236\u53f0\u8f6c\u79fb\u5230\u4e86\u81ea\u7136\u8bed\u8a00\u754c\u9762\uff0c\u76f4\u63a5\u54cd\u5e94\u4e86AI\u5f00\u53d1\u8005\u7684\u6838\u5fc3\u75db\u70b9\uff1a\u5199\u4ee3\u7801\u7684\u80fd\u529b\u6709\u4e86\uff0c\u4f46\u90e8\u7f72\u548c\u8fd0\u7ef4\u4f9d\u65e7\u662f\u201c\u8ba4\u77e5\u65ad\u5c42\u201d\u3002\u5176MCP\u539f\u751f\u5c5e\u6027\u662f\u5f53\u524dAI\u5de5\u4f5c\u6d41\u4e2d\u7684\u7a00\u7f3a\u8d44\u4ea7\uff0c\u5c24\u5176\u9002\u5408\u201cVibe Coding\u201d\u540e\u8fc5\u901f\u6784\u5efa\u540e\u7aef\u670d\u52a1\u7684\u573a\u666f\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u4ea7\u54c1\u9762\u4e34\u53cc\u91cd\u8003\u9a8c\u3002\u5176\u4e00\uff0c\u4fe1\u4efb\u95e8\u69db\u9ad8\u3002\u7528\u6237\u7684\u8bc4\u8bba\u7cbe\u51c6\u70b9\u51fa\u98ce\u9669\uff1aAgent\u5931\u63a7\u5faa\u73af\u3001\u914d\u7f6e\u5931\u8bef\u5bfc\u81f4\u8d39\u7528\u98d9\u5347\uff0c\u4ee5\u53ca\u51b7\u542f\u52a8\u5ef6\u8fdf\u662f\u5426\u4fb5\u8680\u6309\u79d2\u8ba1\u8d39\u7684\u4f18\u52bf\u3002\u8fd9\u8981\u6c42Huddle01\u4e0d\u4ec5\u63d0\u4f9bAPI\uff0c\u66f4\u9700\u5185\u7f6e\u9884\u7b97\u9501\u3001\u6c99\u7bb1\u6d4b\u8bd5\u4e0e\u5f02\u6b65\u786e\u8ba4\u673a\u5236\uff0c\u5426\u5219\u201c\u4fbf\u5229\u6027\u201d\u4f1a\u53cd\u566c\u4e3a\u201c\u707e\u96be\u6027\u4f53\u9a8c\u201d\u3002\u5176\u4e8c\uff0c\u5dee\u5f02\u5316\u62a4\u57ce\u6cb3\u5c1a\u6d45\u3002AWS Lightsail\u3001DigitalOcean\u7b49\u7ade\u54c1\u540c\u6837\u53ef\u88abMCP\u5de5\u5177\u94fe\u8c03\u7528\uff0cHuddle01\u7684\u201c70%\u4fbf\u5b9c\u201d\u53ea\u80fd\u4f5c\u4e3a\u77ed\u671f\u83b7\u5ba2\u624b\u6bb5\u3002\u957f\u671f\u4ef7\u503c\u53d6\u51b3\u4e8e\uff1a\u80fd\u5426\u6c89\u6dc0\u4e3aAI Agents\u7684\u201cInfra-as-a-Dialogue\u201d\u6807\u51c6\uff0c\u5e76\u4ece\u5355\u6b21\u521b\u5efa\u6f14\u8fdb\u4e3a\u53ef\u7f16\u6392\u7684\u81ea\u52a8\u5316\u8fd0\u7ef4\u7ba1\u9053\uff0c\u771f\u6b63\u8ba9AI\u63a5\u7ba1\u6210\u672c\u4f18\u5316\u3001\u6269\u5c55\u4e0e\u8d44\u6e90\u56de\u6536\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4e00\u53e5\u8bdd\u603b\u7ed3\uff1a\u8fd9\u662f\u4e00\u4e2a\u806a\u660e\u7684\u201c\u5165\u53e3\u7ea7\u201d\u4ea7\u54c1\uff0c\u5207\u4e2d\u4e86AI\u57fa\u7840\u8bbe\u65bd\u7684\u6469\u64e6\u70b9\u3002\u4f46\u9769\u547d\u6027\u4f53\u9a8c\u9700\u4ee5\u6781\u81f4\u7684\u6210\u672c\u53ef\u89c6\u6027\u4e0e\u5b89\u5168\u951a\u70b9\u4e3a\u4ee3\u4ef7\uff0c\u5426\u5219\u53ea\u4f1a\u6210\u4e3a\u9ad8\u7ea7\u73a9\u5bb6\u7684\u73a9\u5177\uff0c\u800c\u975e\u5927\u4f17\u5f00\u53d1\u8005\u7684\u751f\u4ea7\u529b\u57fa\u77f3\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\">Huddle01 VMs<\/span>\n                <\/div>\n<div class=\"comment-content\">Huddle01 Cloud allows you to spin up a Virtual Machine (VM) from your favourite AI assistant now! The MCP server lets you control your infrastructure setup on Huddle01 just by chatting. Works with Claude, Cursor, Antigravity, or anywhere you can set up MCPs. Your virtual machines come with Unlimited Ingress, Per-second billing, and Unthrottled NVMe Storage.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Product Hunt!<\/p>\n<\/p>\n<p>I am Ayush, founder of Huddle01 Cloud. Virtual Machines are an essential when it comes to taking your website or applications online. In last few months, developers and non-devs have been building their applications using AI assistants. Anyone who is not familiar with tech has to spend a lot of time reading through docs to setup their Virtual Machines to get the website published.&nbsp;<\/p>\n<p>So we decided to fix that.&nbsp;<\/p>\n<p>Huddle01\u2019s MCP server allows you to access the Virtual Machines from your AI Assistants like Claude Code, Cursor, Antigravity and any tools that support MCPs. You just need to install the server with one line of code and then your chat can handle everything else.&nbsp;<\/p>\n<p>With this:<\/p>\n<ul>\n<li>\n<p>Beginners and non-developers can setup Virtual Machine instances from their AI assistant chats.<\/p>\n<\/li>\n<li>\n<p>Developers and Builders can setup their agents to auto-deploy instances for the apps that agents create.<\/p>\n<\/li>\n<li>\n<p>Check the already running instances and info about VMs without visiting the dashboard.<\/p>\n<\/li>\n<\/ul>\n<p>Huddle01 Virtual Machines come with dedicated AMD EPYC vCPUs, NVME storage and unlimited egress across global regions.&nbsp;<\/p>\n<p>Why Huddle01 VMs for your agents?<\/p>\n<ul>\n<li>\n<p>MCP native: We\u2019re the first VM provider that allow you or the agents to just write in the chat and get the infra live.&nbsp;<\/p>\n<\/li>\n<li>\n<p>You don\u2019t pay any brand tax. Just pay for what you use with no egress markup. This makes Huddle01 almost 70% cheaper than other hyper scalers.&nbsp;<\/p>\n<\/li>\n<li>\n<p>Only three steps setup an then you can get VMs by chatting anytime.&nbsp;<\/p>\n<\/li>\n<\/ul>\n<p>How to use:&nbsp;<\/p>\n<ul>\n<li>\n<p>Just go to <a href=\"http:\/\/get.huddle01.com\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">get.huddle01.com<\/a> and copy the code<\/p>\n<\/li>\n<li>\n<p>Paste it in your Claude Code terminal, Cursor, Antigravity or any tool.&nbsp;<\/p>\n<\/li>\n<li>\n<p>Run it and you\u2019re ready to get deploying from the chat&nbsp;<\/p>\n<\/li>\n<\/ul>\n<p>If you\u2019re building your first python project and don\u2019t want to configure everything manually or you have a multi-agent system working that self deploys everything, Huddle01 has got you covered.&nbsp;<\/p>\n<p>You can leave feedback or ask questions to us in our Discord too.&nbsp;<\/p>\n<p>It\u2019s time to get deploying with Huddle01 (<a href=\"http:\/\/huddle01.com\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">huddle01.com<\/a>).&nbsp;<\/p>\n<p>We\u2019re here the whole day to answer all your questions!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>17<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ranjan3118\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ranjan3118<\/a>&nbsp;Huddle01 MCP feels like the way forward on how Cloud Products should feel like, everything will move MCP native going forward<\/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\">@itsomg This new workflow will save so much time for everyone!<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ranjan3118\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ranjan3118<\/a>&nbsp;Huddle looks like a great step up to conventional coding assistants.<\/p>\n<\/p>\n<p>Thinking about security first, how does the MCP server handle authentication? If my agent goes into a loop, are there spending limits I can set to prevent token usage surprises?<\/p>\n<\/p>\n<p>Also, does it have access to root directories or we can create a VM\/sandbox for it?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on shipping!! Always exciting to see infra innovation happening.<\/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\">@roopreddy yup!! infrastructure is the next unlock for AI ans agents in general <\/p>\n<p>Excited to see what people build with it<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">@roopreddy thank you! we appreciate the support<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">@roopreddy Thank you so much, Roop! Excited to get your feedback!<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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 your launch! I&#8217;m not very knowledgeable about virtual machines or why I would need one. My current workflow to publish my vibe coded apps is Antigravity =&gt; Github =&gt; Vercel. That seems pretty straightforward and simple.<\/p>\n<\/p>\n<p>What use case are you solving that can&#8217;t be done with my workflow?<\/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\/@peterclaridge\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@peterclaridge<\/a>&nbsp;Hey Peter thats an awesome workflow, but as your apps will move to a more mature stage you will need a Backend server to Host your websites, your backend server and much more!!<\/p>\n<p>We see people say deploying from discord bots to major analytics servers on VMs and easily configuring it using MCPs<\/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\">Congrats on the launch<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@german_merlo1 Thank you!<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@german_merlo1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@german_merlo1<\/a>&nbsp;Thank you so much! <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Congratsss guys \ud83d\udd25<\/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\">@suhasmotwani thanks suhas<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">@suhasmotwani thank you suhas!<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">@suhasmotwani Thank you, Suhas! \ud83d\ude42<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I&#8217;ve faced this problem myself, being confused about deploying side projects or getting my agent to do it. It&#8217;s been incredible to see the team ship this in such a short time.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@otodidakt_20 The devs are crazy shippers!<\/div>\n<div class=\"comment-actions\">\n<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>Is there support for GPU instances as well? <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@zerotox yes GPU instances are alo natively supported &#8211; we took the concept from Perplexity to use CLI under MCP to expend its capabilities <\/p>\n<p>And our hudl cli always had these commands<\/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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Nice! But how do you ensure cost control if agents keep spinning up instances automatically? \ud83d\ude05<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\">@iamanantgupta lol thats for sure was an issue with older models &#8211; but recent models have become very capable with skills about handle these waste provisions<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>We had so much fun building VMs for Agents. Excited to see how people use it to deploy their 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\">@krupali_trivedi MCPs are such an awesome hack to increase your shipping speed and decrease the time spent in spinning up VMs!<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Per-second billing only matters if spin-up is also fast \u2014 what&#8217;s the cold-start time for a vanilla Ubuntu image, and does it stay flat as the image gets heavier (e.g. with a 2GB Docker layer baked in)? The economics break the moment startup is 90 seconds and I&#8217;m paying for warm-up.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">I was wondering if I deploy from an assistant, how can I manage the configurations? What if the configurations used by AI end up charging me more?<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">I\u2019m launching a Discord bot soon, would this be a good alternative to what I\u2019m currently using, which is railway?<\/div>\n<div class=\"comment-actions\">\n<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\">@billchirico will be super easy and much cheaper to use Huddle<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@billchirico\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@billchirico<\/a>&nbsp;Would be awesome to get your feedback, Bill! In terms of cost, it would be way more economical. In terms of speed, it will be much faster. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/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\/E6MJDUCJLULH23\" class=\"app-title\">Mockin 2.0<\/a><\/p>\n<div class=\"one-liner\">Ultimate career toolkit for UX\/UI &#038; Product designers<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">255<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Mockin 2.0 \u662f\u4e00\u6b3e\u4e13\u4e3aUX\/UI\u4e0e\u4ea7\u54c1\u8bbe\u8ba1\u5e08\u6253\u9020\u7684\u6c42\u804c\u5168\u6d41\u7a0b\u5de5\u5177\uff0c\u901a\u8fc7\u4e0a\u4f20\u7b80\u5386\u83b7\u53d6\u771f\u5b9e\u5e02\u573a\u53cd\u9988\uff0c\u63d0\u524d\u8bc6\u522b\u5e76\u4fee\u590d\u62db\u8058\u73af\u8282\u4e2d\u7684\u6f5c\u5728\u98ce\u9669\uff0c\u4ece\u800c\u63d0\u5347\u9762\u8bd5\u9080\u7ea6\u7387\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\/fd638970-660e-496e-a6ae-38e94a10687f.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/f4536928-e487-4343-a424-ee3ce69ccf1b.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/2202c765-5691-4cff-aea6-6c6ce428ca42.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/dd73ff73-9927-47fa-83d1-e60a80d8c04c.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\">Hiring<\/span><br \/>\n            <span class=\"tag\">Education<\/span><br \/>\n            <span class=\"tag\">Career<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u6c42\u804c\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">UX\/UI\u8bbe\u8ba1<\/span><br \/>\n            <span class=\"tag\">\u4ea7\u54c1\u8bbe\u8ba1<\/span><br \/>\n            <span class=\"tag\">\u7b80\u5386\u4f18\u5316<\/span><br \/>\n            <span class=\"tag\">\u9762\u8bd5\u51c6\u5907<\/span><br \/>\n            <span class=\"tag\">\u62db\u8058\u53cd\u9988<\/span><br \/>\n            <span class=\"tag\">\u804c\u4e1a\u53d1\u5c55<\/span><br \/>\n            <span class=\"tag\">\u4ea7\u54c1\u730e\u624b<\/span><br \/>\n            <span class=\"tag\">\u8bbe\u8ba1\u5e08\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\u53cd\u9988\u6c42\u804c\u4e2d\u201c\u6c89\u9ed8\u62d2\u7edd\u201d\u662f\u6700\u5927\u75db\u70b9\uff0c\u671f\u5f85Mockin\u80fd\u7cbe\u51c6\u5b9a\u4f4d\u5177\u4f53\u73af\u8282\u7684\u5931\u8d25\u539f\u56e0\u3002\u6709\u7528\u6237\u8be2\u95ee\u662f\u5426\u8986\u76d6\u5176\u4ed6\u5c97\u4f4d\uff0c\u56e2\u961f\u56de\u5e94\u5df2\u8003\u8651\u6269\u5c55\u3002\u8fd8\u6709\u7528\u6237\u5efa\u8bae\u589e\u52a0\u767d\u677f\u9762\u8bd5\u4e0e\u6c42\u804c\u4fe1\u7ec3\u4e60\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                Mockin 2.0\u6293\u4f4f\u4e86\u5f53\u524d\u8bbe\u8ba1\u62db\u8058\u5e02\u573a\u4e2d\u4e00\u4e2a\u6781\u5176\u5201\u94bb\u4f46\u771f\u5b9e\u7684\u75db\u70b9\uff1a\u6c42\u804c\u8005\u88ab\u6dd8\u6c70\u65f6\u5f80\u5f80\u5f97\u4e0d\u5230\u4efb\u4f55\u6709\u610f\u4e49\u7684\u53cd\u9988\u3002\u7edd\u5927\u591a\u6570\u6c42\u804c\u5de5\u5177\u505a\u7684\u662f\u201c\u8868\u9762\u629b\u5149\u201d\u2014\u2014\u5e2e\u4f60\u6539\u7b80\u5386\u3001\u7ec3\u9762\u8bd5\u3001\u8c08\u85aa\u8d44\uff0c\u4f46\u8fd9\u4e9b\u9526\u4e0a\u6dfb\u82b1\u7684\u52a8\u4f5c\uff0c\u5982\u679c\u9009\u9519\u4e86\u8d5b\u9053\u6216\u8e29\u4e2d\u4e86\u67d0\u4e9b\u9690\u5f62\u7684\u62db\u8058\u7ea2\u7ebf\uff0c\u4e00\u5207\u90fd\u662f\u767d\u8d39\u3002Mockin\u7684\u4ef7\u503c\u5728\u4e8e\u5b83\u4e0d\u505a\u201c\u7f8e\u5316\u8005\u201d\uff0c\u800c\u662f\u505a\u201c\u8bca\u65ad\u5668\u201d\u3002\u5b83\u4e0d\u5e2e\u4f60\u6da6\u8272\u4f5c\u54c1\u96c6\uff0c\u800c\u662f\u544a\u8bc9\u4f60\u4e3a\u4ec0\u4e48\u4f60\u7684\u4f5c\u54c1\u96c6\u5728HR\u773c\u91cc\u503c\u4e0d\u4e86\u9762\u8bd5\u673a\u4f1a\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u4ea7\u54c1\u5e95\u5c42\u903b\u8f91\u770b\uff0cMockin 2.0\u8d4c\u5bf9\u4e86\u4e24\u4e2a\u5173\u952e\u70b9\u3002\u4e00\u662f\u201c\u884c\u4e1a\u5782\u76f4\u201d\u3002\u901a\u7528\u6c42\u804c\u5de5\u5177\u6c38\u8fdc\u65e0\u6cd5\u7406\u89e3UX\/UI\u8bbe\u8ba1\u5e08\u7279\u6709\u7684\u201c\u4f5c\u54c1\u96c6\u53d9\u4e8b+\u6848\u4f8b\u7814\u7a76+\u4ea7\u54c1\u601d\u7ef4\u201d\u8fd9\u4e00\u5957\u590d\u6742\u7684\u8bc4\u4ef7\u4f53\u7cfb\u3002Mockin\u4e4b\u6240\u4ee5\u6562\u4ece\u6700\u96be\u7684UX\/UI\u9886\u57df\u5207\u5165\uff0c\u6b63\u662f\u56e0\u4e3a\u5b83\u6709\u80fd\u529b\u5c06\u6666\u6697\u4e0d\u660e\u7684\u5e02\u573a\u6807\u51c6\u8f6c\u5316\u4e3a\u53ef\u64cd\u4f5c\u7684\u6807\u5c3a\u3002\u4e8c\u662f\u201c\u6d41\u7a0b\u5168\u6808\u201d\u3002\u5b83\u4e0d\u662f\u53ea\u89e3\u51b3\u7b80\u5386\u4e00\u4e2a\u95ee\u9898\uff0c\u800c\u662f\u8986\u76d6\u4e86\u4ece\u7b80\u5386\u5230HR\u7b5b\u9009\u3001\u518d\u5230\u9762\u8bd5\u3001\u6848\u4f8b\u7814\u7a76\u7b49\u6574\u4e2a\u6f0f\u6597\u3002\u6c42\u804c\u4e0d\u662f\u5355\u70b9\u6218\u5f79\uff0c\u800c\u662f\u4e00\u6761\u9501\u94fe\uff0cMockin\u8bd5\u56fe\u5835\u4f4f\u6bcf\u4e00\u4e2a\u53ef\u80fd\u5bfc\u81f4\u65ad\u88c2\u7684\u73af\u8282\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4e0d\u8fc7\uff0c\u5371\u9669\u4e5f\u5728\u4e8e\u6b64\u3002\u201c\u7ed9\u51fa\u53cd\u9988\u201d\u548c\u201c\u5e2e\u52a9\u6539\u5584\u201d\u4e4b\u95f4\u6709\u4e00\u6761\u5de8\u5927\u7684\u9e3f\u6c9f\u3002\u5982\u679cMockin\u7684\u8bca\u65ad\u53ea\u80fd\u544a\u8bc9\u4f60\u201c\u4f60\u7684\u4f5c\u54c1\u96c6\u53d9\u4e8b\u4e0d\u591f\u5f3a\u201d\uff0c\u4f46\u65e0\u6cd5\u63d0\u4f9b\u5177\u4f53\u7684\u91cd\u6784\u8def\u5f84\u6216\u6848\u4f8b\u6545\u4e8b\u6846\u67b6\uff0c\u90a3\u5b83\u672c\u8d28\u4e0a\u8fd8\u662f\u6362\u4e86\u4e2a\u9a6c\u7532\u7684\u201c\u6c89\u9ed8\u62d2\u7edd\u201d\u3002\u6b64\u5916\uff0c\u56e2\u961f\u6210\u5458\u81ea\u66dd\u6709\u5f3a\u70c8\u8bbe\u8ba1\u80cc\u666f\uff0c\u8fd9\u51b3\u5b9a\u4e86\u5176\u5bf9\u975e\u8bbe\u8ba1\u89d2\u8272\u7684\u6269\u5c55\u4e0d\u4f1a\u8f7b\u677e\u3002\u4e00\u65e6\u5f00\u59cb\u8986\u76d6PM\u3001\u5de5\u7a0b\u7b49\u5176\u4ed6\u804c\u80fd\uff0c\u4ea7\u54c1\u5c06\u88ab\u8feb\u7a00\u91ca\u5176\u6700\u5b9d\u8d35\u7684\u4e13\u4e1a\u6df1\u5ea6\u3002Mockin\u7684\u672a\u6765\u4e0d\u5728\u4e8e\u505a\u201c\u5927\u201d\uff0c\u800c\u5728\u4e8e\u628aUX\/UI\u8fd9\u4e00\u4ea9\u4e09\u5206\u5730\u5228\u5230\u522b\u4eba\u8fdb\u4e0d\u6765\u7684\u7a0b\u5ea6\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Mockin 2.0<\/span>\n                <\/div>\n<div class=\"comment-content\">We once hit #1 Product of the Day with voice interviews. Now we\u2019re back with a complete UX\/UI career toolkit. Upload your CV. Get real feedback. Land your next UX\/UI job.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hi Product Hunt \ud83d\udc4b<\/p>\n<p>I\u2019m Egor, co-founder of Mockin.<\/p>\n<p>In the 9 months since our last launch here, the design job market got even harder. <br \/>After speaking with more than 60 designers, one pattern became impossible to ignore. Strong skills do not guarantee interviews. People get filtered out at every stage, often without understanding why.<\/p>\n<p>Resume.<br \/>Portfolio.<br \/>Recruiter screen.<br \/>Hiring manager interview.<br \/>Case study.<\/p>\n<p>One weak point is enough to lose momentum, and usually the only feedback you get is silence.<\/p>\n<p>That is exactly why we built Mockin 2.0.<\/p>\n<p>We turned Mockin into a tool that helps UX\/UI and Product Designers see real hiring risks early, fix them before real interviews, and prepare across the full job search funnel based on real expectations from the market.<\/p>\n<p>I\u2019d love for you to try it and tell us what feels strongest, weakest, or still missing.<\/p>\n<p>Thank you<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>10<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@egor_krasnoperov congrats on the launch. I\u2019ll share your product with my designer friends \ud83d\udc4c\u263a\ufe0f<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Product Hunt community! We significantly improved our app since the last launch. Appreciate your feedback on the updates and Mockin itself \u2665\ufe0f <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>4<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Thanks to the team for a great job!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>4<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Andrey &amp; team are awesome and always ship delightful products!!<\/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\/@suleimenov\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@suleimenov<\/a>&nbsp;thank you for your kind words Arman<\/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\/@suleimenov\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@suleimenov<\/a>&nbsp;thanks \ud83d\ude4c<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats with launch! So, now all the features to land a next job is inside?<\/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\/@islam_midov\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@islam_midov<\/a>&nbsp;looks like we&#8217;re packed! But we were thinking of the cover letter<\/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\/@islam_midov\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@islam_midov<\/a>&nbsp;thanks so much! Almost \ud83d\ude42 <br \/>We\u2019re also considering adding whiteboard interview practice and cover letters next. So stay tuned!<\/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>Guys that&#8217;s great for designers! Will you go to other roles? <\/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\/@and_bayleaf\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@and_bayleaf<\/a>&nbsp;great question! It&#8217;s on our radar. Just wanted to make sure we did a great job for at least one role<\/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>a only &#8216;feedback you get is silence&#8217; line is the most painful part of the 2026 job market. You can have a world-class portfolio, but if you\u2019re failing at the recruiter screen without knowing why, you\u2019re just spinning your wheels. Excited to see how Mockin identifies those specific hiring risks before they turn into rejections. Support on the launch, <a href=\"https:\/\/www.producthunt.com\/@lipkovskiy\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"lipkovskiy\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@lipkovskiy<\/a> Egor<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p> <a href=\"https:\/\/www.producthunt.com\/@vikramp7470\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@vikramp7470<\/a>&nbsp;thanks a lot for the support! Really appreciate it.<br \/>And if you try Mockin, let me know what we can improve.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Great product<\/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\/@madalina_barbu\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@madalina_barbu<\/a>&nbsp;thank you<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hi, congrats for your launch.  Why did you started with the UI\/UX niche. Any user feed back or based on personal evidance ? I used to have a very similar idea but for other roles. UI \/ UX designers are the hardest role to start with I guess.<\/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\/@ozgurds\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ozgurds<\/a>&nbsp;thanks for your question!<\/p>\n<p>There are a few reasons. First, this is where I have the strongest expertise. For the last 9 years, I\u2019ve been involved in hiring designers, interviewing candidates, reviewing portfolios, and also going through hiring processes myself. So I\u2019ve seen this pain from both sides.<\/p>\n<p>Second, UX\/UI and Product Designers have a very specific hiring funnel. It\u2019s not only about a resume. It\u2019s also about portfolio quality, case study storytelling, product thinking, visual craft, communication, and interview confidence.<\/p>\n<p>So yes, designers are probably not the easiest niche to start with. But that\u2019s exactly why we started here. A generic career tool doesn\u2019t really understand this process well enough.<\/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\">Congratulation with the release guys!<\/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\/@aleksanadr_lavrinenko\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aleksanadr_lavrinenko<\/a>&nbsp;thank you Alex! And appreciate your support<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congratulations. And happy product launch. <a href=\"https:\/\/www.producthunt.com\/@lipkovskiy\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"lipkovskiy\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@lipkovskiy<\/a> <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>awesome launch, congrats!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Most career-prep tools double down on the polish layer \u2014 portfolios, mock interviews, salary scripts \u2014 and skip the actual high-leverage decision, which is which role to take in the first place. I&#8217;m an Accredited Financial Counselor and the most common thing I counsel new grads on is the &#8220;safe offer vs. the role that builds the skill stack&#8221; tradeoff \u2014 the comp gap usually closes within a year if the second role is right. Curious \u2014 are designers showing up to Mockin pre-offer to make that call, or mostly post-offer for prep?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\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\/NESYCJRHZWGZSB\" class=\"app-title\">Rosentic<\/a><\/p>\n<div class=\"one-liner\">Catch when coding agents break each other before merge<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">163<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Rosentic\u5728AI\u7f16\u7a0b\u4ee3\u7406\u5e76\u884c\u5f00\u53d1\u65f6\uff0c\u901a\u8fc7\u8de8\u5206\u652f\u4ee3\u7801\u7ed3\u6784\u5206\u6790\uff0c\u5728\u5408\u5e76\u524d\u68c0\u6d4b\u51fa\u5355\u4e00PR\u68c0\u67e5\u65e0\u6cd5\u53d1\u73b0\u7684\u8bed\u4e49\u4e0d\u517c\u5bb9\u95ee\u9898\u2014\u2014\u89e3\u51b3\u201c\u5404\u81ea\u6d4b\u8bd5\u901a\u8fc7\u3001\u5408\u5e76\u540e\u5d29\u6e83\u201d\u7684\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/49ae034f-6fee-4b0e-895b-b38e952eb392.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/e504e241-0d04-446a-a559-909bc807fd5f.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/f0b4b44e-81ff-42cf-bc33-14812da5ed4c.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/3b7c2f5a-a5cc-4500-9547-c663e2482ff9.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/ed471bd4-c255-4af4-9af1-49b767793548.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\/d02c5f17-7e65-4d04-85de-d2534ceb37c4.gif?auto=format\" data-video-url=\"https:\/\/www.loom.com\/share\/8f6b415cdac046aa8f1ef0b8a5a237e4\"><source src=\"https:\/\/www.loom.com\/share\/8f6b415cdac046aa8f1ef0b8a5a237e4\" 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\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u4ee3\u7406\u51b2\u7a81\u68c0\u6d4b<\/span><br \/>\n            <span class=\"tag\">\u8de8\u5206\u652f\u517c\u5bb9\u6027\u5206\u6790<\/span><br \/>\n            <span class=\"tag\">\u4ee3\u7801\u7ed3\u6784\u5206\u6790<\/span><br \/>\n            <span class=\"tag\">\u8bed\u4e49\u51b2\u7a81<\/span><br \/>\n            <span class=\"tag\">\u786e\u5b9a\u6027\u5206\u6790<\/span><br \/>\n            <span class=\"tag\">CI\u589e\u5f3a<\/span><br \/>\n            <span class=\"tag\">\u5408\u5e76\u524d\u68c0\u6d4b<\/span><br \/>\n            <span class=\"tag\">\u65e0\u6a21\u578b\u8c03\u7528<\/span><br \/>\n            <span class=\"tag\">GitHub Actions<\/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\u201c\u8bed\u4e49\u5c42\u51b2\u7a81\u201d\u800c\u975e\u6587\u672c\u51b2\u7a81\u7684\u68c0\u6d4b\u673a\u5236\uff08@avrisimon\uff09\uff0c\u5f00\u53d1\u8005\u660e\u786e\u56de\u5e94\u57fa\u4e8e\u7b26\u53f7\u7ea7\u7ed3\u6784\u5339\u914d\u3001\u4e0d\u4f9d\u8d56LLM\uff1b\u7528\u6237\u8d28\u7591\u8bef\u62a5\u5904\u7406\u80fd\u529b\uff08@necipreis\uff09\uff0c\u56de\u5e94\u79f0\u4ec5\u6807\u8bb0\u63a5\u53e3\u4e0d\u517c\u5bb9\uff0c\u4fa7\u5199\u6548\u5e94\u6682\u4e0d\u5904\u7406\uff1b\u53e6\u6709\u7528\u6237\u8d5e\u8d4f\u201c\u786e\u5b9a\u6027\u5206\u6790\u201d\u7684\u627f\u8bfa\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                Rosentic\u5207\u4e2d\u4e86\u4e00\u4e2a\u56e0AI\u4ee3\u7406\u6cdb\u6ee5\u800c\u6025\u5267\u653e\u5927\u7684\u88c2\u7f1d\u2014\u2014\u5f53\u591a\u4e2a\u7f16\u7801Agent\u540c\u65f6\u4f5c\u4e1a\u65f6\uff0c\u4f20\u7edfCI\u7684\u201c\u5355\u5206\u652f\u9a8c\u8bc1\u201d\u65b9\u6cd5\u8bba\u5f7b\u5e95\u5931\u6548\u3002\u4ea7\u54c1\u771f\u6b63\u7684\u806a\u660e\u4e4b\u5904\u5728\u4e8e\u653e\u5f03\u4e86\u82b1\u54e8\u65b9\u6848\uff1a\u4e0d\u7528LLM\u7cca\u5f04\uff08\u907f\u514d\u5e7b\u89c9\u548c\u4e0d\u786e\u5b9a\u6027\uff09\uff0c\u4e0d\u91cd\u65b0\u53d1\u660e\u6587\u672c\u5408\u5e76\uff08\u4fe1\u4efbGit\uff09\uff0c\u76f4\u51fb\u201c\u8bed\u4e49\u517c\u5bb9\u6027\u201d\u8fd9\u4e00\u5173\u952e\u7a7a\u9699\u3002\u672c\u8d28\u4e0a\u662f\u201c\u8de8\u5206\u652f\u4f9d\u8d56\u56fe\u5206\u6790\u5668\u201d\uff0c\u901a\u8fc7\u89e3\u6790\u4ee3\u7801\u7ed3\u6784\u4e2d\u7684\u7b26\u53f7\u5951\u7ea6\uff08\u51fd\u6570\u7b7e\u540d\u3001\u8def\u7531\u3001\u63a5\u53e3\u5b9a\u4e49\u7b49\uff09\uff0c\u5728\u5408\u5e76\u524d\u5c31\u9884\u5224\u5404\u5206\u652f\u662f\u5426\u4e92\u76f8\u4f24\u5bb3\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u8bc4\u8bba\u533a\u7684\u4e92\u52a8\u770b\uff0c\u7f57\u68ee\u8482\u514b\u5bf9\u81ea\u8eab\u80fd\u529b\u8303\u56f4\u7684\u58f0\u660e\u76f8\u5f53\u514b\u5236\u2014\u2014\u805a\u7126\u201c\u7ed3\u6784\u5951\u7ea6\u201d\u800c\u4e3b\u52a8\u5ffd\u7565\u6587\u672c\u51b2\u7a81\u548c\u526f\u4f5c\u7528\u53d8\u66f4\uff0c\u8fd9\u975e\u5e38\u4e13\u4e1a\uff0c\u4e5f\u51cf\u5c11\u4e86\u8bef\u62a5\u9884\u671f\u7ba1\u7406\u538b\u529b\u3002\u4f46\u8fd9\u4e5f\u610f\u5473\u7740\u5176\u68c0\u6d4b\u8986\u76d6\u9762\u6709\u9650\uff1a\u65e5\u5fd7\u3001\u914d\u7f6e\u3001\u8d44\u6e90\u58f0\u660e\u7b49\u975e\u7ed3\u6784\u5316\u53d8\u66f4\u7684\u8fde\u9501\u53cd\u5e94\u65e0\u6cd5\u6355\u83b7\u3002\u5bf9\u4e8e\u771f\u6b63\u590d\u6742\u7684\u591a\u4ee3\u7406\u534f\u8c03\u573a\u666f\uff08\u5982\u516d\u4e03\u4e2a\u5206\u652f\u4ea4\u53c9\u4fee\u6539\u6570\u636e\u5e93Schema\u548c\u5bf9\u5e94\u67e5\u8be2\u65b9\u6cd5\uff09\uff0c\u8fd9\u4e2a\u5de5\u5177\u4ecd\u7136\u53ea\u80fd\u5f53\u7b2c\u4e00\u9053\u7b5b\u7f51\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ea7\u54c1\u7684\u5546\u4e1a\u903b\u8f91\u53ef\u4fe1\uff1a\u5b89\u88c5\u8f7b\u91cf\uff08YAML+60\u79d2\uff09\uff0c\u4e0d\u4e0a\u4f20\u4ee3\u7801\uff08\u672c\u5730\u8fd0\u884c\uff09\uff0c\u65e0\u8d26\u5355\u9677\u9631\u3002\u4f46\u95ee\u9898\u5728\u4e8e\u2014\u2014\u4ec5\u9760\u4e00\u4e2aGitHub Action\u63d2\u4ef6\u5efa\u7acb\u62a4\u57ce\u6cb3\u5f88\u96be\uff0c\u4e00\u65e6GitHub\u5b98\u65b9\u6216\u5927\u578b\u5de5\u7a0b\u5e73\u53f0\uff08\u5982Bitbucket\u3001GitLab\uff09\u4e0b\u573a\u505a\u539f\u751f\u8de8\u5206\u652f\u517c\u5bb9\u5206\u6790\uff0cRosentic\u5c31\u5c06\u9762\u4e34\u529f\u80fd\u540c\u8d28\u5316\u98ce\u9669\u3002\u53e6\u5916\uff0c\u5bf9\u4e8e\u5f88\u591a\u56e2\u961f\u800c\u8a00\uff0c\u201c\u5408\u5e76\u4e4b\u524d\u624b\u52a8\u68c0\u67e5\u6240\u6709\u6d3b\u8dc3\u5206\u652f\u95f4\u7684\u517c\u5bb9\u6027\u201d\u53ef\u80fd\u672c\u8eab\u5c31\u4e0d\u662f\u9ad8\u9891\u9700\u6c42\uff0c\u9664\u975e\u4ee3\u7406\u6570\u91cf\u771f\u6b63\u89c4\u6a21\u5316\uff0830+\u5e76\u884cPR\uff09\u3002\u53e3\u53f7\u80fd\u5413\u4eba\u5230CEO\u8033\u6839\u5b50\u53d1\u8f6f\uff0c\u4f46\u4f7f\u7528\u6df1\u5ea6\u9700\u8981\u56e2\u961f\u6210\u719f\u5ea6\u914d\u5408\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4e00\u53e5\u8bdd\u8f9b\u8fa3\u603b\u7ed3\uff1a**\u5b83\u89e3\u51b3\u7684\u662f\u201cAI\u591a\u7ebf\u7a0b\u94fa\u5f00\u5de5\u7a0b\u540e\u201d\u5de5\u7a0b\u5e08\u7684\u7b2c\u4e94\u5c42\u5730\u72f1\uff0c\u800c\u771f\u6b63\u5730\u72f1\u662f\u2014\u2014\u591a\u6570\u56e2\u961f\u76ee\u524d\u624d\u521a\u8d70\u5230\u7b2c\u4e8c\u5c42\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\">Rosentic<\/span>\n                <\/div>\n<div class=\"comment-content\">Rosentic checks every PR against every other open PR before merge. When coding agents work in parallel, they break each other in ways no single-PR tool catches. Rosentic catches it. Deterministic analysis. Same scan, same result, every time. Most scans come back clean. That means you&#8217;re clear to merge. Runs on your infrastructure. One YAML file, no signup, 60-second install.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Product Hunt \ud83d\udc4b. I&#8217;m Laramie. Nearly 20 years in tech. By day I run technical partnerships. By night I build with Claude Code and Codex on the same repo.<\/p>\n<\/p>\n<p>Here&#8217;s what I kept running into: both agents write good code. Both PRs pass CI. Then they merge and break main. CI checks one branch at a time. Git merges text, not logic. Nobody checks whether the branches are compatible with each other.<\/p>\n<\/p>\n<p>With agent orchestration tools shipping weekly and PR volume exploding, this is only getting worse.<\/p>\n<\/p>\n<p>So I built Rosentic.<\/p>\n<\/p>\n<p>It checks every PR against every other active branch before merge. Deterministic. Same scan, same result, every time.<\/p>\n<\/p>\n<p>Most scans come back clean. That means you&#8217;re clear to merge. When something fires, you catch it before production does.<\/p>\n<\/p>\n<p>150+ repos scanned. Real conflicts found and fixed by maintainers. One YAML file, no signup, 60-second install.<\/p>\n<\/p>\n<p>What&#8217;s the messiest merge conflict you or your team has dealt with lately?<\/p>\n<p><a href=\"https:\/\/github.com\/marketplace\/actions\/rosentic-cross-branch-compatibility-check\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/github.com\/marketplace\/actions\/rosentic-cross-branch-compatibility-check<\/a><\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>9<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This is solving a problem that&#8217;s about to hit every engineering team at scale. When I was CTO running 120 engineers, merge conflicts between humans were already one of our biggest velocity killers &#8211; now multiply that by AI agents working in parallel across the same codebase. The hard part isn&#8217;t detecting the textual conflict &#8211; it&#8217;s catching the semantic breaks where two agents make changes that individually pass tests but together introduce subtle regressions. Curious how you&#8217;re handling that semantic layer versus pure git-level conflicts?<\/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\">@avrisimon Hey Avri great question. We don\u2019t touch textual conflicts at all. Git already catches those. Rosentic analyzes the code structure on your own infrastructure and checks whether changes on one branch are compatible with what\u2019s happening on other branches. So if one branch changes a function signature and another branch still calls the old version, we flag it with the exact file, line, and why it breaks.<\/p>\n<p>120 engineers, I can only imagine how many branches were in flight. That must have been rough even before agents.\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b!<\/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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>&#8220;Deterministic analysis&#8221; is the line that earns trust here \u2014 what&#8217;s the actual technique? AST-level diff, type-graph reachability, an SMT solver, something else? Asking because &#8220;deterministic&#8221; in this space sometimes means &#8220;we wrap an LLM and average,&#8221; and the value is very different depending on which one it is.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@sounak_bhattacharya No LLM anywhere in the engine. We parse the code structure, extract the symbols that matter, and do exact structural matching across branches. Same repo state, same result, every time. No averaging, no inference, no model calls. Every finding comes with the exact proof of why two changes are incompatible.\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/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. Narrow but useful problem. Curious how you handle false positives when two PRs touch the same surface for legitimately different reasons (e.g. coordinated multi-agent refactors). That&#8217;s been the trickiest part of PR-conflict detection in our orchestration work.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@necipreis The engine checks whether the actual usage is compatible, not just whether the same code was touched. If two agents both change the same function but the callers still match, it comes back clean. When it does flag something, it shows exactly why so you can decide fast.<\/p>\n<p>It\u2019s not perfect and we\u2019re always tuning. If you run it and see something off, I\u2019d love the feedback.\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b<\/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=\"reply-item\">\n<div class=\"reply-content\">@necipreis That\u2019s a great edge case. Right now we focus on the structural contracts \u2013 signatures, routes, schemas. Side-effect changes like metrics or logging that don\u2019t show up in the function interface are outside scope today. We\u2019d love to hear what you find when you run it. Those kinds of real-world cases are exactly what helps us figure out where to go next.\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#6<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/PNNXDUHUX6DVVV\" class=\"app-title\">Aximote In-Car App<\/a><\/p>\n<div class=\"one-liner\">The fitness tracker for your car<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">134<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Aximote \u662f\u4e00\u6b3e\u65e0\u9700\u989d\u5916\u786c\u4ef6\u7684\u8f66\u8f7d\u6570\u636e\u5206\u6790\u5e94\u7528\uff0c\u901a\u8fc7\u5728 Android Automotive \u4eea\u8868\u76d8\u4e0a\u5b9e\u65f6\u53cd\u9988\u884c\u7a0b\u3001\u80fd\u8017\u3001\u6548\u7387\u7b49\u6570\u636e\uff0c\u89e3\u51b3\u8f66\u4e3b\u5bf9\u8f66\u8f86\u201c\u9ed1\u7bb1\u201d\u72b6\u6001\u7684\u4e0d\u900f\u660e\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\/29c44db6-6a8c-409d-b4fc-b4c96b8faab7.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/bc33387d-597a-4660-8fb9-1df32bd44208.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/d51eec25-c222-4df4-ba6e-8a310d7873c4.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/bfee7e3a-2a19-4ec4-ad5f-96410212c35c.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\">Cars<\/span><br \/>\n            <span class=\"tag\">Electric Cars<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u8f66\u8f7d\u5206\u6790<\/span><br \/>\n            <span class=\"tag\">\u9a7e\u9a76\u6570\u636e<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u65f6\u53cd\u9988<\/span><br \/>\n            <span class=\"tag\">\u80fd\u8017\u76d1\u6d4b<\/span><br \/>\n            <span class=\"tag\">\u5145\u7535\u6d1e\u5bdf<\/span><br \/>\n            <span class=\"tag\">\u884c\u7a0b\u8ffd\u8e2a<\/span><br \/>\n            <span class=\"tag\">Android Automotive<\/span><br \/>\n            <span class=\"tag\">\u8f66\u8054\u7f51<\/span><br \/>\n            <span class=\"tag\">\u65e0\u786c\u4ef6\u65b9\u6848<\/span><br \/>\n            <span class=\"tag\">Strava for cars<\/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>EV\u8f66\u4e3b\u80af\u5b9a\u5176\u89e3\u51b3\u4e86\u80fd\u8017\u6210\u672c\u4e0d\u900f\u660e\u7684\u95ee\u9898\uff0c\u5e76\u5f3a\u8c03\u4eea\u8868\u76d8\u76f4\u663e\u6bd4\u624b\u673aApp\u66f4\u5b89\u5168\u4fbf\u6377\u3002\u7528\u6237\u5173\u5fc3\u6570\u636e\u6240\u6709\u6743\u53ca\u8de8\u8f66\u8f86\u8fc1\u79fb\uff0c\u5efa\u8bae\u589e\u52a0CSV\u5bfc\u51fa\uff08\u5df2\u652f\u6301\uff09\u3002\u53e6\u6709\u4eba\u5e0c\u671b\u52a0\u5165\u5192\u9669\u6a21\u5f0f\u63a8\u8350\u98ce\u666f\u8def\u7ebf\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Aximote \u7684\u5207\u5165\u70b9\u8db3\u591f\u7cbe\u51c6\u2014\u2014\u7528\u8f6f\u4ef6\u4ee3\u66ffOBD\u786c\u4ef6\uff0c\u76f4\u51fbAndroid Automotive\u7cfb\u7edf\u539f\u751f\u5e94\u7528\u7a7a\u767d\u3002\u5176\u201c\u8f66\u8f86\u5065\u8eab\u8ffd\u8e2a\u5668\u201d\u7684\u5b9a\u4f4d\uff0c\u672c\u8d28\u4e0a\u662f\u5c06\u9a7e\u63a7\u4f53\u9a8c\u6570\u636e\u5316\u3001\u6e38\u620f\u5316\uff0c\u4ece\u6a21\u7cca\u611f\u77e5\u5347\u7ea7\u4e3a\u53ef\u91cf\u5316\u53cd\u9988\u3002\u8fd9\u79cd\u8bbe\u8ba1\u5bf9\u8ffd\u6c42\u7cbe\u7ec6\u5316\u80fd\u8017\u7ba1\u7406\u7684EV\u8f66\u4e3b\u5c24\u5176\u6709\u5438\u5f15\u529b\uff0c\u4e5f\u662f\u907f\u5f00\u4f20\u7edfOBD\u517c\u5bb9\u6027\u5751\u7684\u806a\u660e\u9009\u62e9\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u51b7\u9759\u6765\u770b\uff0c\u76ee\u524d\u4ea7\u54c1\u4ecd\u6709\u4e24\u4e2a\u5173\u952e\u74f6\u9888\uff1a\u4e00\u662f\u4f9d\u8d56Android Automotive\u751f\u6001\uff0c\u800c\u8be5\u7cfb\u7edf\u7684\u88c5\u673a\u91cf\u8fdc\u672a\u8fbe\u5230\u4e3b\u6d41\uff0c\u7528\u6237\u89c4\u6a21\u53d7\u9650\uff1b\u4e8c\u662f\u6570\u636e\u4ef7\u503c\u951a\u70b9\u6a21\u7cca\u2014\u2014\u201c\u77e5\u9053\u80fd\u8017\u201d\u548c\u201c\u6539\u5584\u9a7e\u9a76\u4e60\u60ef\u201d\u4e4b\u95f4\uff0c\u7f3a\u4e4f\u95ed\u73af\u7684\u6fc0\u52b1\u6216\u6307\u5bfc\u673a\u5236\uff0c\u957f\u671f\u7559\u5b58\u53ef\u80fd\u9762\u4e34\u6311\u6218\u3002\u7528\u6237\u8bc4\u8bba\u4e2d\u7684\u6570\u636e\u8fc1\u79fb\u548c\u5bfc\u51fa\u8bc9\u6c42\u4e5f\u63d0\u793a\uff1a\u8fd9\u7c7b\u5de5\u5177\u5bb9\u6613\u6ca6\u4e3a\u4e00\u6b21\u6027\u72b6\u6001\u68c0\u67e5\u5668\uff0c\u800c\u975e\u6301\u7eed\u7684\u4e92\u52a8\u793e\u533a\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u6807\u699c\u201cStrava for cars\u201d\u662f\u4e2a\u8bf1\u4eba\u7684\u613f\u666f\uff0c\u4f46\u4ece\u6570\u636e\u805a\u5408\u5230\u793e\u533a\u5171\u5efa\uff0c\u9700\u8981\u7684\u662f\u6a2a\u5411\u517c\u5bb9\u6027\uff08\u517c\u5bb9\u71c3\u6cb9\u8f66\u3001\u975eAAOS\u8f66\u578b\uff09\u548c\u7eb5\u5411\u793e\u4ea4\u9a71\u52a8\u529b\uff08\u6392\u884c\u699c\u3001\u6311\u6218\u8d5b\u3001\u8def\u7ebf\u5171\u4eab\uff09\u3002\u76ee\u524dAximote\u66f4\u50cf\u4e00\u4e2a\u7cbe\u7f8e\u7684\u6570\u636e\u4eea\u8868\u76d8\uff0c\u8ddd\u79bb\u771f\u6b63\u7684\u9a7e\u9a76\u793e\u4ea4\u5e73\u53f0\u8fd8\u6709\u4e00\u6bb5\u8def\u3002\u82e5\u80fd\u5c3d\u5feb\u6253\u901a\u8de8\u54c1\u724c\u6570\u636e\u6807\u51c6\u3001\u52a0\u5165\u9a7e\u9a76\u884c\u4e3a\u8bc4\u5206\u548c\u793e\u533a\u6392\u884c\uff0c\u5176\u4ece\u201c\u5de5\u5177\u201d\u8dc3\u8fc1\u4e3a\u201c\u5e73\u53f0\u201d\u7684\u6f5c\u529b\u624d\u53ef\u80fd\u5151\u73b0\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Aximote In-Car App<\/span>\n                <\/div>\n<div class=\"comment-content\">Aximote turns your car into a transparent, data-driven system. Our new Android Automotive in-car app gives drivers real-time feedback on trips, efficiency, speed, consistency, energy use, charging, and costs, without OBD hardware. It is like a fitness tracker for your car, built directly into the dashboard.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hi Product Hunt,<\/p>\n<p>We are excited to launch the Aximote In-Car App, our first step toward making vehicle data understandable, useful, and fun directly inside the car.<\/p>\n<p>\ud83d\ude97 What is Aximote?<\/p>\n<p>Aximote is a driving analytics platform that turns your vehicle data into real-time insights. With our new Android Automotive in-car app, drivers can see feedback directly in the dashboard, including trip tracking, efficiency, speed, consistency, energy use, charging, and cost-related insights.<\/p>\n<p>\ud83e\udde9 What problem are we solving?<\/p>\n<p>Modern cars generate a huge amount of data, but most drivers only get access to a tiny fraction of it. OEM apps usually show basic status information, while deeper questions remain unanswered. How efficient was this trip really? What driving habits increased consumption? How much did charging or refueling actually cost? How does one trip compare to another?<br \/>\nFor many drivers, the car still feels like a black box. We want to change that.<\/p>\n<p>\u2699\ufe0f Why did we build it this way?<\/p>\n<p>Existing solutions often rely on OBD dongles, manual exports, or third-party integrations. We wanted a more native and software-only approach. Android Automotive OS gave us the opportunity to bring analytics directly into the car, without requiring extra hardware, while working across manufacturers instead of being limited to a single brand.<\/p>\n<p>\ud83d\udd2e Where are we heading?<\/p>\n<p>We want Aximote to become the community layer for driving data: a kind of Strava for cars. Drivers should be able to compare efficiency, consistency, charging behavior, and real-world performance across trips, routes, and vehicles, independent of the manufacturer.<\/p>\n<p>\ud83d\ude4c We would love your feedback<\/p>\n<p>We are especially curious to hear from EV drivers, Android Automotive users, and anyone who has ever wished their car explained itself better.<\/p>\n<p>What would you want to understand better about your car or your driving behavior?<\/p>\n<p>\u2014 The Aximote team<\/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<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>as an ev driver, the &#8216;black box&#8217; feeling is real. manufacturer apps are notoriously bad at showing the actual cost-per-trip vs energy loss. being able to see energy use and charging insights directly on the dashboard instead of a phone app is a huge safety and ux win. <a href=\"https:\/\/www.producthunt.com\/@laurenz_hinterholzer\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"laurenz_hinterholzer\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@laurenz_hinterholzer<\/a> <\/p>\n<\/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\/@priya_kushwaha1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@priya_kushwaha1<\/a>&nbsp;thanks a lot, totally agree on that.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Quick question on data ownership: if I switch cars in 3 years, can I take trip history with me, or does it stay tied to that specific vehicle? And any plan for CSV export for mileage tax write-offs? Niche use case but it tends to be the thing that converts hobby users into paying ones.<\/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\/@sweepbase\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sweepbase<\/a>&nbsp;hi! Currently you can see the trip history per vehicle in the app but you can have multiple vehicles as well.<\/p>\n<p>CSV export is already on board andwe are open for format suggestions \ud83d\ude42<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Innovative idea \u2013&nbsp;I haven&#8217;t seen something like this on PH before. \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! <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Love the concept mate&#8230; Wish this was part of Google Maps. I&#8217;ll absolutely give it a try on iOS. <br \/>1 tiny feedback on the website. I&#8217;d recommend adding a QR scanner on the bottom right of the website. <\/p>\n<p>This would make it easier for folks on desktop to download the app.<\/p>\n<p>Best of luck <a href=\"https:\/\/www.producthunt.com\/@laurenz_hinterholzer\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"laurenz_hinterholzer\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@laurenz_hinterholzer<\/a>  <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@richard_andrews4\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@richard_andrews4<\/a>&nbsp;thanks appreciate 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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Awesome idea! Would be great if you could add some kind of adventure mode for those who love driving but want an alternative \/ more scenic route for their regular routes. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\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\/6P6QSNOLYCEMOA\" class=\"app-title\">IsraelVC<\/a><\/p>\n<div class=\"one-liner\">The cleanest Israeli VC map ever built<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">30<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>IsraelVC\u662f\u4e00\u6b3e\u4e3a\u4ee5\u8272\u5217\u521d\u521b\u751f\u6001\u6253\u9020\u7684\u7cbe\u9009\u98ce\u6295\u673a\u6784\u76ee\u5f55\uff0c\u5e2e\u52a9\u521b\u59cb\u4eba\u4e0e\u6295\u8d44\u8005\u5728\u4fe1\u606f\u5608\u6742\u7684\u5e02\u573a\u4e2d\u5feb\u901f\u627e\u5230\u6d3b\u8dc3\u3001\u771f\u5b9e\u7684\u98ce\u6295\u57fa\u91d1\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\/a92d2bce-6b6c-41a1-afac-0582f0077de6.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/e5211808-3e8c-4d93-90f4-0526007de6d9.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/f6fd2dac-51b1-41ef-a5d7-1337105101a8.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\">Investing<\/span><br \/>\n            <span class=\"tag\">Venture Capital<\/span><br \/>\n            <span class=\"tag\">Database<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u4ee5\u8272\u5217\u521b\u6295<\/span><br \/>\n            <span class=\"tag\">\u98ce\u6295\u76ee\u5f55<\/span><br \/>\n            <span class=\"tag\">\u521d\u521b\u516c\u53f8\u6570\u636e\u5e93<\/span><br \/>\n            <span class=\"tag\">\u6295\u8d44\u4eba\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u7cbe\u9009\u57fa\u91d1<\/span><br \/>\n            <span class=\"tag\">\u751f\u6001\u5bfc\u822a<\/span><br \/>\n            <span class=\"tag\">\u521b\u4e1a\u8d44\u6e90<\/span><br \/>\n            <span class=\"tag\">\u65e0\u4ed8\u8d39\u5899<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u65f6\u66f4\u65b0<\/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\u80af\u5b9a\u4ea7\u54c1\u201c\u7cbe\u7b80\u201d\u4e86\u4ee5\u8272\u5217\u521b\u4e1a\u751f\u6001\u3002\u521b\u59cb\u4eba\u5f3a\u8c03\u89e3\u51b3\u201c\u4fe1\u53f7\u201d\u800c\u975e\u201c\u53ef\u89c1\u6027\u201d\u95ee\u9898\uff0c\u5e76\u9f13\u52b1\u793e\u533a\u8d21\u732e\u7f3a\u5931\u57fa\u91d1\u6216\u4fee\u6b63\u65e7\u4fe1\u606f\uff0c\u4ee5\u4fdd\u6301\u76ee\u5f55\u7684\u9c9c\u6d3b\u4e0e\u51c6\u786e\u3002\u5f53\u524d\u4e3aV1\u7248\u672c\uff0c\u671f\u5f85\u66f4\u591a\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                IsraelVC\u7684\u201c\u5e72\u51c0\u201d\u5e76\u975e\u4e00\u53e5\u7a7a\u8bdd\uff0c\u5b83\u76f4\u51fb\u4e86\u4e00\u4e2a\u6838\u5fc3\u77db\u76fe\uff1a\u4ee5\u8272\u5217\u79d1\u6280\u751f\u6001\u4ece\u4e0d\u7f3a\u5173\u6ce8\u5ea6\uff0c\u7f3a\u7684\u662f\u5728\u6cdb\u6ee5\u4fe1\u606f\u4e2d\u63d0\u53d6\u6709\u6548\u4fe1\u53f7\u7684\u6548\u7387\u3002\u521b\u59cb\u4eba\u62e5\u670920\u5e74\u884c\u4e1a\u89c2\u5bdf\u4e0e10\u5e74\u6295\u8d44\u7ecf\u9a8c\uff0c\u8fd9\u8ba9\u4ed6\u80fd\u7cbe\u51c6\u533a\u5206\u201c\u6d3b\u5316\u77f3\u201d\u4e0e\u201c\u50f5\u5c38\u57fa\u91d1\u201d\uff0c\u6bd4\u90a3\u4e9b\u81ea\u52a8\u6293\u53d6\u7684\u6570\u636e\u5e93\u66f4\u5177\u5fc3\u667a\u5224\u65ad\u529b\u3002\u6ca1\u6709\u4ed8\u8d39\u5899\u3001\u6ca1\u6709\u82b1\u54e8\u4ea4\u4e92\uff0c\u800c\u662f\u628a\u4f53\u9a8c\u538b\u5230\u201c\u641c\u7d22-\u6d4f\u89c8-\u8054\u7cfb\u201d\u8fd9\u4e00\u6781\u7b80\u95ed\u73af\uff0c\u80cc\u540e\u662f\u5bf9\u521b\u59cb\u4eba\u65f6\u95f4\u6210\u672c\u7684\u6df1\u523b\u7406\u89e3\u2014\u2014\u4ed6\u4eec\u4e0d\u9700\u8981\u53e6\u4e00\u4e2a\u201c\u770b\u8d77\u6765\u5f88\u5927\u201d\u7684\u6570\u636e\u5e93\uff0c\u800c\u662f\u9700\u8981\u4e00\u5f20\u201c\u6b64\u523b\u8be5\u6572\u8c01\u7684\u95e8\u201d\u7684\u6d3b\u5730\u56fe\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u98ce\u9669\u4e5f\u5f88\u660e\u663e\uff1a\u6b64\u7c7b\u793e\u533a\u9a71\u52a8\u76ee\u5f55\u6781\u6613\u9677\u5165\u201c\u7ef4\u62a4\u71b5\u589e\u201d\u3002\u5373\u4fbf\u5f53\u524d\u662fV1\uff0c\u82e5\u7f3a\u4e4f\u6301\u7eed\u7684\u6570\u636e\u5ba1\u6838\u673a\u5236\u548c\u89c4\u6a21\u5316\u8fd0\u8425\uff0c\u968f\u7740\u6761\u76ee\u81a8\u80c0\uff0c\u7b5b\u9009\u8d28\u91cf\u4f1a\u8fc5\u901f\u6ed1\u5761\u3002\u76ee\u524d\u9760\u521b\u59cb\u4eba\u4eba\u8109\u548c\u7528\u6237\u4f17\u5305\u6765\u4fdd\u9c9c\uff0c\u957f\u671f\u770b\uff0c\u80fd\u5426\u5f15\u5165\u7c7b\u4f3c\u201c\u6d3b\u8dc3\u5ea6\u8bc4\u7ea7\u201d\u201c\u6295\u8d44\u8005\u6700\u8fd1\u8f6e\u6b21\u8bb0\u5f55\u201d\u7b49\u52a8\u6001\u4fe1\u53f7\uff0c\u5c06\u51b3\u5b9a\u5b83\u662f\u6210\u4e3a\u5e38\u9752\u5de5\u5177\u8fd8\u662f\u53c8\u4e00\u4efd\u8fc7\u65f6\u7684\u901a\u8baf\u5f55\u3002\u6b64\u5916\uff0c\u4ea7\u54c1\u76ee\u524d\u5b8c\u5168\u4f9d\u8d56\u4ee5\u8272\u5217\u5730\u57df\u6027\u53d9\u4e8b\uff0c\u5bb9\u6613\u5728\u8de8\u5883\u6216\u975e\u7eaf\u4ee5\u8272\u5217\u6807\u7684\u7684\u521b\u4e1a\u8005\u4e2d\u6d41\u5931\u7528\u6237\u3002\u4e00\u53e5\u8bdd\uff1a\u8fd9\u662f\u4e00\u628a\u7cbe\u51c6\u7684\u745e\u58eb\u519b\u5200\uff0c\u4f46\u80fd\u5426\u5347\u7ea7\u4e3a\u5de5\u5177\u7bb1\uff0c\u8fd8\u770b\u540e\u7eed\u8fed\u4ee3\u7684\u6df1\u5ea6\u4e0e\u901f\u5ea6\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">IsraelVC<\/span>\n                <\/div>\n<div class=\"comment-content\">IsraelVC is a clean, curated directory of venture capital funds investing in Israeli startups. The goal is simple: make the Israeli venture ecosystem easier to navigate for founders, investors, and anyone tracking the market.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Long time Product Hunter, but first time I&#8217;ve posted in a while&#8230; I&#8217;m happy to share the launch of israelvc.com. <\/p>\n<p>After 20+ years of writing about the Israeli tech ecosystem and 10+ years of investing in Israeli startups, I\u2019ve finally built something for our ecosystem.<\/p>\n<p>When I started VC Cafe in 2005, the challenge was visibility. Today, it\u2019s the opposite.<\/p>\n<p>We don\u2019t have a visibility problem.<\/p>\n<p>We have a signal problem.<\/p>\n<p>Founders are navigating a more complex, noisy, and fast-moving market than ever, yet still relying on outdated spreadsheets, fragmented databases, and guesswork to figure out who to talk to.<\/p>\n<p>So I built something simple: A curated, no-fluff, no-paywall directory of active VCs, CVCs, and micro-VCs investing in Israel.<\/p>\n<p>A few things that make it different:<br \/>\n&#8211; Curated, not scraped (real, active investors)<br \/>\n&#8211; Fast and simple to use<br \/>\n&#8211; Open and accessible to everyone<\/p>\n<p>This has actually been a long time coming&#8230; I bought the domain back in 2007 (!), but only recently had the tools (and push) to finally build it properly.<\/p>\n<p>This is very much V1, and I\u2019d love your help shaping it:<br \/>\n&#8211; Missing a fund? Add it<br \/>\n&#8211; Spot outdated info? Fix it<br \/>\n&#8211; Have ideas? Send them my way<\/p>\n<p>If you\u2019re a founder, I hope this saves you serious time.<br \/>\nIf you\u2019re an investor, make sure you\u2019re represented properly.<\/p>\n<p>Explore it here: <a href=\"https:\/\/www.israelvc.com\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/www.israelvc.com<\/a><\/p>\n<p>Feedback and ideas on how to make it more useful are much appreciated \ud83d\ude4f<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ediggs\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ediggs<\/a>&nbsp;Awesome! Startup nation just got a little more streamlined \ud83d\udcaa\ud83d\ude09\ud83c\uddee\ud83c\uddf1<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#8<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/QHSRXBRJVSCNSE\" class=\"app-title\">TinyLottie<\/a><\/p>\n<div class=\"one-liner\">Smart Lottie optimization for high-performance SaaS.<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">18<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>TinyLottie \u662f\u4e00\u6b3e\u96f6\u4e0a\u4f20\u3001\u7eaf\u6d4f\u89c8\u5668\u7aef\u7684 Lottie \u52a8\u753b\u667a\u80fd\u538b\u7f29\u5de5\u5177\uff0c\u5e2e\u52a9\u8bbe\u8ba1\u5e08\u548c\u5f00\u53d1\u8005\u5728\u4fdd\u6301\u9ad8\u6027\u80fd\u7684\u540c\u65f6\uff0c\u5c06\u52a8\u753b\u6587\u4ef6\u4f53\u79ef\u51cf\u5c11\u9ad8\u8fbe 98%\uff0c\u89e3\u51b3 SaaS \u4ea7\u54c1\u56e0\u52a8\u753b\u8d44\u6e90\u8fc7\u5927\u5bfc\u81f4\u52a0\u8f7d\u7f13\u6162\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\/d0ef218c-d485-4680-ba79-b7feabcd1a0f.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/415bc571-7c8b-45e9-9b02-e768ebd9c51f.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/9c80857b-2e88-48c1-a201-84232beba522.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\/0916139f-427c-4225-ba79-42b0e9c662f2.gif?auto=format\" data-video-url=\"https:\/\/www.loom.com\/share\/e8ee431375e94ada9e992e668f822e2a\"><source src=\"https:\/\/www.loom.com\/share\/e8ee431375e94ada9e992e668f822e2a\" 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\">SaaS<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Lottie\u538b\u7f29<\/span><br \/>\n            <span class=\"tag\">\u52a8\u753b\u4f18\u5316<\/span><br \/>\n            <span class=\"tag\">dotLottie<\/span><br \/>\n            <span class=\"tag\">\u6d4f\u89c8\u5668\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u524d\u7aef\u6027\u80fd<\/span><br \/>\n            <span class=\"tag\">SaaS\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u6587\u4ef6\u538b\u7f29<\/span><br \/>\n            <span class=\"tag\">\u8bbe\u8ba1\u5e08\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u65e0\u635f\u538b\u7f29<\/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\u96c6\u4e2d\u5728\u538b\u7f29\u8d28\u91cf\u548c\u539f\u7406\u4e0a\u3002\u6709\u7528\u6237\u56e0\u5e94\u7528\u4f53\u79ef\u9650\u5236\u5f03\u7528Lottie\uff0c\u8be2\u95ee\u662f\u5426\u5b58\u5728\u753b\u8d28\u635f\u5931\uff1b\u53e6\u6709\u7528\u6237\u8ffd\u95ee\u201c98%\u538b\u7f29\u7387\u201d\u662f\u4f9d\u8d56\u5750\u6807\u91cf\u5316\u3001\u5220\u51cf\u5173\u952e\u5e27\u8fd8\u662f\u8f6c\u4e3a\u4e8c\u8fdb\u5236\u683c\u5f0f\uff0c\u5e76\u6307\u51fa\u4e0d\u540c\u6280\u672f\u8def\u7ebf\u4e0b\u89c6\u89c9\u4fdd\u771f\u5ea6\u5dee\u5f02\u660e\u663e\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                TinyLottie \u5728 Product Hunt \u4e0a\u4ee5\u201cAI \u4e00\u5468\u6413\u51fa\u201d\u7684\u6545\u4e8b\u5438\u5f15\u4e86\u773c\u7403\uff0c\u4f46\u5176\u6838\u5fc3\u4ef7\u503c\u5728\u4e8e\u7cbe\u51c6\u5207\u4e2d\u4e86\u524d\u7aef\u6027\u80fd\u548c\u52a8\u753b\u4e30\u5bcc\u6027\u4e4b\u95f4\u957f\u671f\u5b58\u5728\u7684\u77db\u76fe\u300218 \u7968\u548c\u5be5\u5be5\u8bc4\u8bba\u4e0e\u5176\u5ba3\u4f20\u7684\u201c98%\u538b\u7f29\u201d\u5671\u5934\u5f62\u6210\u5fae\u5999\u53cd\u5dee\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u6280\u672f\u89d2\u5ea6\u770b\uff0c\u7528\u6237\u5bf9\u201c98%\u538b\u7f29\u7387\u201d\u7684\u8d28\u7591\u975e\u5e38\u5173\u952e\u3002\u5982\u679c\u4ec5\u662f\u8def\u5f84\u5750\u6807\u91cf\u5316\u548c\u5173\u952e\u5e27\u5220\u51cf\uff0c\u90a3\u5b83\u4e0e\u5e02\u9762\u4e0a\u5b58\u5728\u591a\u5e74\u7684 SVG \u7cbe\u7b80\u5de5\u5177\u65e0\u5f02\uff0c\u4e14\u5fc5\u7136\u4f34\u968f\u8089\u773c\u53ef\u89c1\u7684\u89c6\u89c9\u964d\u7ea7\uff1b\u82e5\u662f\u771f\u6b63\u8f6c\u5316\u4e3a dotLottie \u7684\u4e8c\u8fdb\u5236\u683c\u5f0f\uff0c\u5219\u786e\u5b9e\u662f\u884c\u4e1a\u7ea7\u522b\u7684\u8fdb\u6b65\uff0c\u4f46\u5f53\u524d\u7f3a\u4e4f\u900f\u660e\u5ea6\u3002\u66f4\u503c\u5f97\u8b66\u60d5\u7684\u662f\uff0c\u201c\u96f6\u4e0a\u4f20\u3001\u7eaf\u6d4f\u89c8\u5668\u201d\u867d\u6709\u9690\u79c1\u5356\u70b9\uff0c\u5374\u4e5f\u610f\u5473\u7740\u538b\u7f29\u7b97\u6cd5\u53d7\u9650\u4e8e\u5ba2\u6237\u7aef\u7b97\u529b\uff0c\u9762\u5bf9\u590d\u6742\u7684\u9010\u5e27 Lottie \u6587\u4ef6\uff0c\u5176\u5904\u7406\u6548\u7387\u548c\u6548\u679c\u90fd\u5b58\u7591\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u6b64\u5916\uff0c\u8be5\u4ea7\u54c1\u4f9d\u8d56\u201cvibe-coding\u201d\uff08AI \u751f\u6210\u4ee3\u7801\uff09\u5b8c\u6210\uff0c\u8fd9\u89e3\u91ca\u4e86 UI \u7f8e\u89c2\u4f46\u903b\u8f91\u6df1\u5ea6\u4e0d\u8db3\u7684\u73b0\u72b6\u3002\u4f5c\u4e3a\u4e00\u6b3e\u9700\u8981\u6781\u81f4\u4f18\u5316\u7b97\u6cd5\u7684\u5de5\u5177\uff0c\u975e\u4e13\u4e1a\u624b\u5199\u7684\u538b\u7f29\u903b\u8f91\u5728\u74f6\u9888\u573a\u666f\u4e0b\u7684\u7a33\u5b9a\u6027\u582a\u5fe7\u3002\u5bf9\u4e8e\u4e25\u8083\u7684 SaaS \u56e2\u961f\uff0c\u5b83\u6216\u8bb8\u662f\u4e00\u4e2a\u5feb\u901f\u9a8c\u8bc1\u7684\u521d\u6b65\u65b9\u6848\uff0c\u4f46\u82e5\u8981\u771f\u6b63\u66ff\u4ee3\u6210\u719f\u7684 LottieFiles \u6216\u624b\u52a8\u538b\u7f29\u6d41\u7a0b\uff0c\u8fd8\u9700\u8981\u516c\u5f00\u66f4\u8be6\u5c3d\u7684\u6280\u672f\u57fa\u51c6\u6d4b\u8bd5\u548c\u6781\u7aef\u6848\u4f8b\u4e0b\u7684\u8d28\u91cf\u5bf9\u6bd4\u3002\u5426\u5219\uff0c\u8fd9\u4e2a\u201c98%\u201d\u66f4\u50cf\u662f\u4e00\u4e2a\u6570\u5b66\u6e38\u620f\uff0c\u800c\u975e\u5de5\u7a0b\u7a81\u7834\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\">TinyLottie<\/span>\n                <\/div>\n<div class=\"comment-content\">Optimize and compress Lottie (JSON) and dotLottie animations up to 98% instantly. Zero uploads, 100% private in-browser tool for designers and developers.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Damnnnnn. I&#8217;m working on an app called Habit Doom.<br \/>I moved away from Lottie animations cause I needed to keep the app size less than 50 MB.<br \/>Will give it a try. Is there no quality loss on compression?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\">Hi Product Hunt community! \ud83d\udc4b<\/p>\n<p>I&#8217;m Emir, a product designer and developer obsessed with clean interfaces and high performance.<\/p>\n<p>I built TinyLottie to solve a personal pain point which is the struggle of balancing rich Lottie animations with web speed. This project is also a personal milestone for me because it was entirely vibe-coded using AI agents in just one week!<\/p>\n<p>We\u2019ve even added a Global Leaderboard to see how much data our community is saving in real-time. I\u2019d love to hear your feedback, see your names on the leaderboard, and answer any questions you have.<\/p>\n<p>Special Gift for Hunters: Use the code PH20 for a special discount on our Pro plan!<\/p>\n<p>Let&#8217;s make the web faster, one Lottie at a time. \u26a1<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>98% compression on Lottie JSON \u2014 is the technique mostly path\/coordinate quantization, dropping redundant keyframes, or actually re-encoding to dotLottie&#8217;s binary format? The answer matters because each of those has a different visual-fidelity trade-off, and &#8220;up to 98%&#8221; is the kind of number that&#8217;s true on a specific shape of input.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#9<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/QRNZYWQUSOZA5D\" class=\"app-title\">Vfoli<\/a><\/p>\n<div class=\"one-liner\">Publish your venture portfolio<\/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>Vfoli\u8ba9\u521b\u4e1a\u8005\u6216\u6295\u8d44\u4eba\u53ea\u9700\u7c98\u8d34\u4e00\u4e2a\u94fe\u63a5\uff0cAI\u5373\u53ef\u81ea\u52a8\u751f\u6210\u4e13\u4e1a\u7684\u9879\u76ee\u7ec4\u5408\u5c55\u793a\u9875\u9762\uff0c\u89e3\u51b3\u201c\u4f5c\u54c1\u96c6\u603b\u662f\u96f6\u6563\u3001\u66f4\u65b0\u6162\u3001\u6ca1\u4eba\u770b\u201d\u7684\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/6da0873d-29cf-47fc-8467-7af6d8bb27a0.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/1a12a3e3-a4f8-49e4-a39d-b2baa497b3f0.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/afb86708-03a9-4cf0-9f77-0a77b2e3ef57.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/7ecdd72b-72be-4523-98a9-c3cfbe25bde7.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/14cae3c2-98d8-4cfe-88c5-29bdc66ebfbc.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/a76888de-eb67-4b11-990a-7a47454b8a90.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b99b14a8-39df-4156-89c0-d89fedc0e887.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b01941fe-4a31-47d6-836e-4dd2ca84daca.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/e2c14e2a-b101-4ea9-b6b5-a1beebd7060f.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/f5e81347-62ac-4872-8142-2a130313caed.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/594c7670-ea6d-4dca-b264-4bb3e802ade0.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/82a734ce-8433-4f9a-a1a2-a128d78a1cd1.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\">Venture Capital<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u521b\u4e1a\u9879\u76ee\u7ec4\u5408\u5c55\u793a<\/span><br \/>\n            <span class=\"tag\">AI\u81ea\u52a8\u751f\u6210\u9875\u9762<\/span><br \/>\n            <span class=\"tag\">\u6295\u8d44\u4eba\u4f5c\u54c1\u96c6<\/span><br \/>\n            <span class=\"tag\">\u521b\u4e1a\u8005\u4f5c\u54c1\u96c6<\/span><br \/>\n            <span class=\"tag\">\u94fe\u63a5\u8f6c\u9875\u9762<\/span><br \/>\n            <span class=\"tag\">\u9879\u76ee\u66f4\u65b0<\/span><br \/>\n            <span class=\"tag\">\u4f5c\u54c1\u96c6\u5206\u6790<\/span><br \/>\n            <span class=\"tag\">\u9879\u76ee\u53d1\u73b0<\/span><br \/>\n            <span class=\"tag\">\u5929\u4f7f\u6295\u8d44\u5c55\u793a<\/span><br \/>\n            <span class=\"tag\">\u98ce\u9669\u6295\u8d44\u5c55\u793a<\/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\u80af\u5b9a\u201c\u7c98\u8d34\u94fe\u63a5\u5373\u751f\u6210\u201d\u7684\u6f14\u793a\u6548\u679c\uff0c\u4f46\u8d28\u7591\u5176\u8fb9\u754c\uff1a\u5f53\u9879\u76ee\u5904\u4e8e\u9690\u8eab\u6a21\u5f0f\u3001\u53ea\u6709AngelList\/LinkedIn\u9875\u9762\uff0c\u6216\u516c\u53f8\u591a\u6b21\u8f6c\u578b\u65f6\uff0c\u662f\u5426\u4ecd\u80fd\u201c\u4e00\u952e\u5b8c\u6210\u201d\u800c\u975e\u9700\u8981\u5927\u91cf\u624b\u52a8\u4fee\u6b63\u3002\u8fd9\u66b4\u9732\u51faAI\u5bf9\u4e0d\u540c\u6570\u636e\u6e90\u7684\u517c\u5bb9\u6027\u98ce\u9669\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                Vfoli\u7684\u201c\u7c98\u8d34\u5373\u751f\u6210\u201d\u65e0\u7591\u5207\u4e2d\u4e86\u521b\u59cb\u4eba\/\u6295\u8d44\u4eba\u201c\u5c55\u793a\u96f6\u6563\u8d44\u4ea7\u201d\u7684\u75d2\u70b9\u2014\u2014\u628a\u53d1\u5e03\u95e8\u69db\u964d\u5230\u6781\u81f4\uff0c\u8fd9\u662f\u4ea7\u54c1\u7b2c\u4e00\u773c\u7684\u4ef7\u503c\u3002\u4f46\u8bc4\u8bba\u533a\u7684\u8d28\u7591\u624d\u662f\u771f\u5200\uff1a\u771f\u6b63\u51b3\u5b9a\u4ea7\u54c1\u547d\u8fd0\u7684\uff0c\u4e0d\u662fDemo\u6709\u591a\u987a\u6ed1\uff0c\u800c\u662f\u5f53\u8f93\u5165\u53d8\u5f97\u201c\u810f\u201d\u65f6\uff0cAI\u7684\u9c81\u68d2\u6027\u6709\u591a\u5f3a\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u672c\u8d28\u770b\uff0cVfoli\u505a\u7684\u4e0d\u662f\u201c\u5efa\u7ad9\u5de5\u5177\u201d\uff0c\u800c\u662f\u201c\u4fe1\u606f\u8d44\u4ea7\u91cd\u5851\u5668\u201d\u3002\u5b83\u5c06\u6563\u843d\u4e8eNotion\u3001LinkedIn\u3001\u516c\u53f8\u5b98\u7f51\u7684\u788e\u7247\u4fe1\u606f\uff0c\u63d0\u70bc\u6210\u4e00\u5957\u7ed3\u6784\u5316\u3001\u53ef\u66f4\u65b0\u3001\u53ef\u8ffd\u8e2a\u7684\u53d9\u4e8b\u3002\u8fd9\u5957\u53d9\u4e8b\u5bf9\u521b\u59cb\u4eba\u7684\u4ef7\u503c\u662f\u201c\u65f6\u95f4\u6362\u53ef\u4fe1\u5ea6\u201d\u2014\u2014\u8fc7\u53bb\u8017\u8d39\u6570\u5c0f\u65f6\u624b\u52a8\u642d\u5efa\u9875\u9762\uff0c\u73b0\u5728\u4e00\u5206\u949f\u5b8c\u6210\uff1b\u5bf9\u6295\u8d44\u4eba\u7684\u4ef7\u503c\u5219\u662f\u201c\u4ece\u9759\u6001\u5ea6\u91cf\u5230\u52a8\u6001\u76d1\u63a7\u201d\u2014\u2014\u81ea\u5e26\u66f4\u65b0\u4e0e\u5206\u6790\u529f\u80fd\uff0c\u8ba9portfolio\u4e0d\u518d\u662f\u4e00\u4e2a\u201c\u6b7b\u94fe\u63a5\u201d\uff0c\u800c\u662f\u4e00\u4e2a\u6d3b\u7684\u8d44\u4ea7\u770b\u677f\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u95ee\u9898\u7684\u81f4\u547d\u70b9\u5728\u4e8e\uff1a\u591a\u4e2a\u9879\u76ee\u3001\u591a\u6b21\u8f6c\u578b\u3001\u9690\u8eab\u72b6\u6001\u2014\u2014\u8fd9\u7c7b\u590d\u6742\u5b9e\u4f53\u6070\u6070\u662f\u521b\u59cb\u4eba\u4e0e\u6295\u8d44\u4eba\u6700\u9700\u8981\u9ad8\u6548\u5c55\u793a\u7684\u8d44\u4ea7\uff0c\u5374\u4e5f\u662f\u7ed3\u6784\u5316\u96be\u5ea6\u6700\u9ad8\u7684\u3002\u82e5AI\u53ea\u80fd\u5b8c\u7f8e\u5904\u7406\u90a3\u4e9b\u5df2\u7ecf\u6709\u5b8c\u6574\u5b98\u7f51\u7684\u201c\u5e72\u51c0\u9879\u76ee\u201d\uff0c\u800c\u9762\u5bf9AngelList\u8fd9\u7c7b\u534a\u7ed3\u6784\u5316\u6570\u636e\u53cd\u800c\u51fa\u9519\uff0c\u90a3\u4ea7\u54c1\u5c31\u6ca6\u4e3a\u201c\u9526\u4e0a\u6dfb\u82b1\u201d\u800c\u975e\u201c\u96ea\u4e2d\u9001\u70ad\u201d\u3002\u5bf9\u4e8e\u65e9\u671f\u521b\u4e1a\u8005\u800c\u8a00\uff0c\u5f88\u591a\u9879\u76ee\u6070\u6070\u5904\u4e8e\u201c\u53ea\u6709\u4e00\u6761\u65e7Twitter\u94fe\u63a5\u6216\u4e00\u4e2a\u8fc7\u671fNotion\u201d\u7684\u72b6\u6001\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u771f\u6b63\u7684\u62a4\u57ce\u6cb3\uff0c\u4e0d\u5728\u4e8eAI\u9996\u5c4f\u751f\u6210\u7684\u60ca\u8273\uff0c\u800c\u5728\u4e8e\u540e\u7eed\u7f16\u8f91\u7684\u4fbf\u6377\u5ea6\u3001\u5bf9\u975e\u6807\u6570\u636e\u7684\u5bb9\u9519\u7387\uff0c\u4ee5\u53ca\u201cExplore Feed\u201d\u80fd\u5426\u771f\u6b63\u4e3a\u6c89\u9ed8\u7684\u957f\u5c3e\u7ec4\u5408\u5e26\u6765\u51b7\u542f\u52a8\u6d41\u91cf\u3002\u5982\u679cVfoli\u80fd\u8bc1\u660e\u81ea\u5df1\u5728\u201c\u810f\u6570\u636e\u201d\u4e0b\u4e5f\u80fd20\u79d2\u5185\u751f\u6210\u4e00\u4e2a\u53ef\u7528\u7684\u3001\u65e0\u9700\u5927\u4fee\u7684\u9875\u9762\uff0c\u5e76\u628a\u5206\u53d1\u505a\u5f97\u6bd4\u4f20\u7edf\u4f5c\u54c1\u96c6\u66f4\u5e7f\uff0c\u5b83\u5c31\u4e0d\u53ea\u662f\u4e00\u4e2a\u6548\u7387\u5de5\u5177\uff0c\u800c\u662f\u65b0\u7684\u521b\u4e1a\u4fe1\u7528\u57fa\u7840\u8bbe\u65bd\u3002\u5426\u5219\uff0c\u5b83\u53ea\u662f\u4e00\u4ef6\u597d\u7528\u7684\u6838\u8eab\u5165\u95e8\u7ea7\u5916\u5957\uff0c\u7ec8\u7a76\u96be\u4ee5\u8d62\u5f97\u6295\u8d44\u4eba\/\u521b\u59cb\u4eba\u771f\u6b63\u9ad8\u9891\u7684\u5fe0\u5b9e\u4f7f\u7528\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\">Vfoli<\/span>\n                <\/div>\n<div class=\"comment-content\">Paste a link. Get a portfolio. Vfoli&#8217;s AI builds the entire page around your venture for founders showing what they&#8217;ve built and investors showing what they&#8217;ve backed. Updates, analytics, and discovery built in.<\/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 the maker of Vfoli, and this one started from a frustration I think a lot of you will recognize.<\/p>\n<p>Every time someone asked &#8220;what are you working on?&#8221; or &#8220;what have you backed?&#8221;, I&#8217;d send a different link. A Notion doc for one project. A landing page for another. A LinkedIn post buried somewhere for the third.<\/p>\n<p>I kept telling myself I&#8217;d build a proper portfolio &#8220;this weekend.&#8221;<br \/>\nI never did.<br \/>\nThe blank page was the problem. So I built Vfoli to remove it entirely.<\/p>\n<p>How it works:<\/p>\n<p>\u2728 Paste a link to your venture. That&#8217;s it.<br \/>\nThe AI pulls the details, writes the copy, and builds the page around it. From blank to published in about a minute.<\/p>\n<p>\ud83d\ude80 Built specifically for ventures &#8211; not a generic page builder. Every layout is designed for showing what you&#8217;ve built or backed.<\/p>\n<p>\ud83d\udce3 Updates keep it alive &#8211; post a quick note when something ships or hits a milestone. No more portfolios that quietly died in 2023.<\/p>\n<p>\ud83d\udcca Analytics on every venture &#8211; see who&#8217;s actually viewing your work. Genuinely useful when fundraising, hiring, or sourcing deals.<\/p>\n<p>\ud83d\udd2d Explore feed for discovery &#8211; your portfolio doesn&#8217;t just sit there. The right people can find it.<\/p>\n<p>Who it&#8217;s for:<br \/>\nFounders with more than one project. Angel investors and VCs who want a cleaner way to show their portfolio.<br \/>\nOperators who do both. Anyone who&#8217;s been meaning to build a portfolio for months and never quite got around to it.<\/p>\n<p>It&#8217;s free, paste one link and see what comes out the other side. <\/p>\n<p>I&#8217;d genuinely love your feedback. If something looks weird, breaks, or is missing, tell me. I&#8217;m here.<\/p>\n<p>Huge thanks to everyone who tested early versions and helped shape this \ud83d\ude4f<\/p>\n<p>Gil<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Paste-a-link \u2192 portfolio is a great demo, but the interesting question is where it breaks. What happens with a stealth-mode startup that has no website, a portfolio entry that&#8217;s only on AngelList\/LinkedIn, or a company that pivoted three times? Trying to figure out whether this is genuinely &#8220;one click&#8221; or &#8220;one click, then 20 minutes of cleanup.&#8221;<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/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\/BNSCZOGGVVVRKJ\" class=\"app-title\">Deskboard<\/a><\/p>\n<div class=\"one-liner\">Turn your PC folders into visual boards<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">14<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Deskboard\u5c06\u7535\u8111\u6587\u4ef6\u5939\u8f6c\u5316\u4e3a\u53ef\u89c6\u5316\u770b\u677f\uff0c\u8ba9\u7b14\u8bb0\u3001\u6587\u4ef6\u3001\u5c0f\u90e8\u4ef6\u540c\u5904\u4e00\u5ba4\uff0c\u89e3\u51b3\u684c\u9762\u6742\u4e71\u65e0\u5e8f\u3001\u6587\u4ef6\u4e0e\u4efb\u52a1\u5272\u88c2\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\/b6a22340-0566-476b-9f63-22223beba896.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/9e5303cb-833a-4346-98df-006d8243693b.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/e47bf362-8fd0-4f3f-94e8-812bd6bde7ad.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/330549a7-1c2e-4c66-9da4-91952369e049.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\">Notes<\/span><br \/>\n            <span class=\"tag\">Wallpaper<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u6587\u4ef6\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u53ef\u89c6\u5316\u770b\u677f<\/span><br \/>\n            <span class=\"tag\">\u684c\u9762\u6574\u7406<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u540c\u6b65<\/span><br \/>\n            <span class=\"tag\">\u4e2a\u4eba\u4eea\u8868\u76d8<\/span><br \/>\n            <span class=\"tag\">Windows\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u6548\u7387\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u4e3b\u9898\u5b9a\u5236<\/span><br \/>\n            <span class=\"tag\">\u6587\u4ef6\u56fe\u6807<\/span><br \/>\n            <span class=\"tag\">\u5f85\u529e\u6e05\u5355<\/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\u80af\u5b9a\u4ea7\u54c1\u5bf9\u201c\u6563\u4e71\u684c\u9762\u201d\u7684\u5b9e\u7528\u6027\uff0c\u6307\u51fa\u65e0\u9700\u6539\u53d8\u6587\u4ef6\u7ed3\u6784\u5373\u53ef\u4f7f\u7528\u3002\u540c\u65f6\u5173\u6ce8Mac\/Linux\u7248\u672c\uff1b\u4e5f\u6709\u7528\u6237\u9884\u60f3\u5176\u5bf9\u4e8e\u6574\u7406\u672a\u5f52\u6863\u6587\u4ef6\u7684\u5e2e\u52a9\u3002\u666e\u904d\u4ee5\u6b63\u9762\u53cd\u9988\u4e3a\u4e3b\uff0c\u671f\u5f85\u60ca\u559c\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                Deskboard\u7684\u521b\u610f\u5728\u4e8e\u5bf9\u201c\u751f\u4ea7\u529b\u201d\u7684\u91cd\u65b0\u5b9a\u4e49\u2014\u2014\u5b83\u4e0d\u518d\u5f3a\u8feb\u7528\u6237\u8fc1\u5c31\u4e8e\u4e00\u4e2a\u5168\u65b0\u7684\u7ba1\u7406\u903b\u8f91\uff0c\u800c\u662f\u628a\u201c\u6587\u4ef6\u5939\u201d\u8fd9\u4e2a\u6700\u539f\u59cb\u3001\u7528\u6237\u6700\u719f\u6089\u7684\u6570\u5b57\u5bb9\u5668\uff0c\u76f4\u63a5\u5305\u88c5\u6210\u53ef\u4ea4\u4e92\u7684\u201c\u7a7a\u95f4\u201d\u3002\u8fd9\u79cd\u201c\u5c31\u5730\u6539\u9020\u201d\u7684\u601d\u8def\uff0c\u964d\u4f4e\u4e86\u5de5\u5177\u91c7\u7528\u7684\u5fc3\u7406\u95e8\u69db\u300214\u4e2a\u6295\u7968\u8bf4\u660e\u5b83\u5904\u4e8e\u6781\u65e9\u671f\uff0c\u4f46\u8bc4\u8bba\u533a\u7684\u79ef\u6781\u53cd\u9988\u9a8c\u8bc1\u4e86\u75db\u70b9\u5b58\u5728\uff1a\u5f88\u591a\u7528\u6237\u684c\u9762\u786e\u5b9e\u6df7\u4e71\uff0c\u4e14\u538c\u5026\u4e86\u5728Finder\u548c\u4efb\u52a1\u7ba1\u7406App\u4e4b\u95f4\u53cd\u590d\u8df3\u8f6c\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u5176\u4ef7\u503c\u5e76\u975e\u65e0\u61c8\u53ef\u51fb\u3002\u4ea7\u54c1\u672c\u8d28\u662f\u5bf9\u6587\u4ef6\u5939\u7684\u201c\u76ae\u80a4\u5316+\u8f7b\u4ea4\u4e92\u589e\u5f3a\u201d\uff0c\u5e76\u672a\u6539\u53d8\u6587\u4ef6\u7cfb\u7edf\u6df1\u5c42\u7684\u7ec4\u7ec7\u903b\u8f91\u3002\u8fd9\u610f\u5473\u7740\uff0c\u5f53\u7528\u6237\u6587\u4ef6\u5939\u7ed3\u6784\u672c\u8eab\u5c31\u4e00\u56e2\u7cdf\u65f6\uff0c\u6f02\u4eae\u770b\u677f\u53ea\u662f\u201c\u91d1\u7389\u5176\u5916\u201d\u3002\u6b64\u5916\uff0c\u540c\u6b65\u4f9d\u8d56\u4e8e\u201c\u5b9e\u9645\u6587\u4ef6\u201d\uff0c\u82e5\u51fa\u73b0\u5927\u91cf\u4e34\u65f6\u6587\u4ef6\u3001\u8de8\u8bbe\u5907\u540c\u6b65\u9700\u6c42\uff0c\u6216\u6587\u4ef6\u88ab\u5916\u90e8\u7a0b\u5e8f\u4fee\u6539\uff0c\u770b\u677f\u7684\u72b6\u6001\u7ef4\u62a4\u5c06\u6210\u4e3a\u8d1f\u62c5\u3002\u5b83\u66f4\u9002\u5408\u201c\u5b58\u6863\u5f0f\u201d\u6216\u201c\u9879\u76ee\u5f0f\u201d\u7684\u6587\u4ef6\u5939\u7ba1\u7406\uff0c\u800c\u975e\u9ad8\u9891\u53d8\u52a8\u7684\u4e34\u65f6\u5de5\u4f5c\u6d41\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u771f\u6b63\u503c\u5f97\u8b66\u60d5\u7684\uff0c\u662f\u201c\u88c5\u9970\u6027\u201d\u4e0e\u201c\u751f\u4ea7\u529b\u201d\u4e4b\u95f4\u7684\u5e73\u8861\u3002Music Player\u3001\u4e2a\u6027\u5316\u4e3b\u9898\u3001\u52a8\u753b\u58c1\u7eb8\u7b49\u529f\u80fd\u867d\u6709\u8da3\uff0c\u4f46\u82e5\u55a7\u5bbe\u593a\u4e3b\uff0c\u5bb9\u6613\u6ca6\u4e3a\u53c8\u4e00\u4e2a\u201c\u82b1\u4e86\u4e09\u5c0f\u65f6\u7f8e\u5316\u5374\u4ec0\u4e48\u4e8b\u90fd\u6ca1\u505a\u201d\u7684\u6570\u5b57\u73a9\u5177\u3002\u4ea7\u54c1\u771f\u6b63\u7684\u62a4\u57ce\u6cb3\uff0c\u5e94\u662f\u786e\u4fdd\u201c\u770b\u677f\u4ea4\u4e92\u201d\u80fd\u6bd4\u539f\u751f\u6587\u4ef6\u7ba1\u7406\u5668\u66f4\u9ad8\u6548\u5730\u9009\u4e2d\u3001\u9884\u89c8\u3001\u64cd\u4f5c\u6587\u4ef6\uff0c\u5e76\u8ba9Todo\u4e0e\u6587\u4ef6\u5f62\u6210\u539f\u5b50\u7ea7\u7684\u5173\u8054\uff0c\u800c\u975e\u4ec5\u4ec5\u662f\u89c6\u89c9\u4e0a\u7684\u5806\u780c\u3002\u76ee\u524d\u770b\uff0c\u5b83\u66f4\u50cf\u662f\u4e00\u5242\u9488\u5bf9\u201c\u684c\u9762\u7126\u8651\u75c7\u201d\u7684\u5b89\u6170\u5242\uff0c\u662f\u836f\u8fd8\u662f\u7cd6\uff0c\u53d6\u51b3\u4e8e\u540e\u7eed\u5bf9\u6587\u4ef6\u64cd\u4f5c\u6548\u7387\u7684\u7cbe\u6df1\u6253\u78e8\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Deskboard<\/span>\n                <\/div>\n<div class=\"comment-content\">Deskboard transforms your folders into personal spaces where your notes live right next to your files. Customise your board with various themes &#038; decorations, custom file icons, animated wallpapers, widgets like Music Player and To-do list, etc. The best part? Everything remains local and synced with your actual files.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Where do the hundreds of random files I haven&#8217;t filed away yet live then?? \ud83d\ude42 Seriously, I can definitely use this for my complete mess of a desktop. 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\/@channelscout\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@channelscout<\/a>&nbsp;Thanks. It can be really helpful when working with files scattered around! The best part is, you don&#8217;t need to change anything. Just open the existing folder with Deskboard, and you are done<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This looks like a messsss!!! In a good way&#8230;<br \/>Just like my mind \ud83d\ude05 Need something like this for my Mac.<\/p>\n<p>&#8230;.<br \/>Anyway, best of luck <a href=\"https:\/\/www.producthunt.com\/@divyesh\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"divyesh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@divyesh<\/a>  Rooting for you \ud83c\udf40<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@richard_andrews4\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@richard_andrews4<\/a>&nbsp;Thanks a lot! Versions for Mac and Linux are in work. Will update soon<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>All your work eventually happens in files and folders. So instead of relying on other apps to keep track of your notes and tasks, why not turn your folders into a personal dashboard? A sticky note placed right next to your file will never be forgotten.<\/p>\n<p>But it isn&#8217;t just a productivity tool. You can also design and decorate aesthetic boards that track your life or turn it into the coolest launcher for games. <\/p>\n<\/p>\n<p>There&#8217;s something special for everyone, whether you are a developer, gamer, student, or professional.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\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\">#11<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/OEJFXWYZEVYBML\" class=\"app-title\">Uncluttr &#8211; Clean up your tabs<\/a><\/p>\n<div class=\"one-liner\">The tab bar was never meant for 80+ tabs. Let AI organize it<\/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>Uncluttr \u662f\u4e00\u6b3e\u5782\u76f4\u4fa7\u8fb9\u680f\u6807\u7b7e\u9875\u7ba1\u7406\u5de5\u5177\uff0c\u5229\u7528AI\u81ea\u52a8\u6309\u9879\u76ee\u6216\u4e3b\u9898\u5206\u7ec4\uff0c\u5e76\u6302\u8d77\u4e0d\u6d3b\u8dc3\u6807\u7b7e\u4ee5\u91ca\u653e\u5185\u5b58\uff0c\u4e13\u4e3a\u89e3\u51b3\u6d4f\u89c8\u5668\u6253\u5f0080+\u6807\u7b7e\u9875\u540e\u6742\u4e71\u65e0\u7ae0\u3001\u5185\u5b58\u7206\u6ee1\u3001\u627e\u56de\u56f0\u96be\u7684\u75db\u70b9\u800c\u8bbe\u8ba1\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\/288008f8-baf0-4e5b-928b-1b6f13deb555.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\/041067fb-fe64-455b-aaef-a6ef485163f9.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\/cb612c6c-7bde-4eff-891c-4279c679a0cc.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\/d37aaeb2-42f6-4c65-aaf1-823f38c183b5.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\/1390e7e8-5f23-452f-8ffe-7cf3ce0c5d17.jpeg?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">User Experience<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u6807\u7b7e\u9875\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">AI\u5206\u7ec4<\/span><br \/>\n            <span class=\"tag\">\u5782\u76f4\u4fa7\u8fb9\u680f<\/span><br \/>\n            <span class=\"tag\">\u5185\u5b58\u4f18\u5316<\/span><br \/>\n            <span class=\"tag\">\u6d4f\u89c8\u5668\u6269\u5c55<\/span><br \/>\n            <span class=\"tag\">\u6548\u7387\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u5de5\u4f5c\u6d41\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u6807\u7b7e\u9875\u6302\u8d77<\/span><br \/>\n            <span class=\"tag\">Chrome\u63d2\u4ef6<\/span><br \/>\n            <span class=\"tag\">\u91cd\u590d\u6807\u7b7e\u53bb\u91cd<\/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\u79f0\u8d5e\u5176AI\u5206\u7ec4\u548c\u6302\u8d77\u529f\u80fd\uff0c\u8ba4\u4e3a\u5b83\u6bd4\u540c\u7c7b\u5de5\u5177\u66f4\u8d34\u5408\u5b9e\u9645\u5de5\u4f5c\u6d41\u3002\u6838\u5fc3\u9700\u6c42\u5305\u62ec\uff1a\u652f\u6301Firefox\u6d4f\u89c8\u5668\uff08\u5f00\u53d1\u8005\u79f0\u82e5\u547c\u58f0\u9ad8\u4f1a\u4f18\u5148\u5904\u7406\uff09\u3001\u8de8\u8bbe\u5907\u540c\u6b65\uff08\u5c24\u5176\u662f\u624b\u673a\u7aef\uff0c\u5f00\u53d1\u8005\u8868\u793a\u5c06\u4f5c\u4e3a\u4ed8\u8d39\u8ba1\u5212\u4e0b\u4e00\u6b65\u5f00\u53d1\uff09\u3002\u53e6\u5916\u6709\u7528\u6237\u53cd\u9988\u5c4f\u5e55\u5171\u4eab\u65f6\u6807\u7b7e\u96be\u4ee5\u5b9a\u4f4d\uff0c\u671f\u5f85\u66f4\u667a\u80fd\u7684\u641c\u7d22\u548c\u6574\u7406\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Uncluttr \u5728\u201c\u6807\u7b7e\u9875\u7ba1\u7406\u201d\u8fd9\u4e2a\u5df2\u663e\u62e5\u6324\u7684\u8d5b\u9053\u4e0a\uff0c\u627e\u5230\u4e86\u4e00\u6761\u6709\u5dee\u5f02\u5316\u7684\u8def\u2014\u2014\u5b83\u6ca1\u6709\u505c\u7559\u5728\u201c\u63d0\u4f9b\u4e00\u4e2a\u4fa7\u8fb9\u680f\u201d\u6216\u201c\u624b\u52a8\u5206\u7c7b\u201d\u7684\u8001\u5957\u8def\uff0c\u800c\u662f\u5c06AI\u5206\u7ec4\u4f5c\u4e3a\u6838\u5fc3\u5356\u70b9\uff0c\u8bd5\u56fe\u4ece\u201c\u88ab\u52a8\u6574\u7406\u201d\u8f6c\u5411\u201c\u4e3b\u52a8\u7406\u89e3\u7528\u6237\u5de5\u4f5c\u6d41\u201d\u3002\u8fd9\u662f\u5176\u771f\u6b63\u7684\u4ef7\u503c\u6240\u5728\uff1aAI\u4e0d\u518d\u662f\u9526\u4e0a\u6dfb\u82b1\uff0c\u800c\u662f\u89e3\u51b3\u7528\u6237\u201c\u6253\u5f0060+\u6807\u7b7e\u540e\u8fde\u627e\u90fd\u627e\u4e0d\u5230\u201d\u8fd9\u4e00\u573a\u666f\u4e0b\u552f\u4e00\u53ef\u884c\u7684\u65b9\u6848\u3002\u624b\u52a8\u5206\u7ec4\u5728\u51e0\u5341\u4e2a\u6807\u7b7e\u9762\u524d\u662f\u5f92\u52b3\u7684\uff0c\u53ea\u6709AI\u80fd\u6301\u7eed\u3001\u81ea\u52a8\u5730\u7ef4\u6301\u79e9\u5e8f\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u51b7\u9759\u6765\u770b\uff0c\u8fd9\u6b3e\u4ea7\u54c1\u76ee\u524d\u9762\u4e34\u7684\u6311\u6218\u4e0d\u5c0f\u3002\u9996\u5148\uff0c13\u4e2a\u6295\u7968\u6570\u8868\u660e\u5b83\u4ecd\u5904\u4e8e\u6781\u65e9\u671f\uff0c\u53e3\u7891\u79ef\u7d2f\u548c\u7528\u6237\u57fa\u6570\u90fd\u5f88\u8584\u5f31\u3002\u5176\u6b21\uff0cAI\u5206\u7ec4\u7684\u80fd\u529b\u5230\u5e95\u6709\u591a\u201c\u667a\u80fd\u201d\uff1f\u80fd\u5426\u533a\u5206\u201c\u540c\u4e00\u9879\u76ee\u4e0b\u4e0d\u540c\u5b50\u4efb\u52a1\u201d\u7684\u5fae\u5999\u5dee\u5f02\uff0c\u800c\u4e0d\u662f\u7b80\u5355\u6309\u57df\u540d\u5f52\u7c7b\uff1f\u4e00\u65e6\u7528\u6237\u53d1\u73b0AI\u5206\u7ec4\u53ea\u662f\u201c\u628aGoogle Docs\u5f52\u4e3a\u4e00\u7ec4\uff0cJIRA\u5f52\u4e3a\u4e00\u7ec4\u201d\u8fd9\u79cd\u8868\u9762\u529f\u592b\uff0c\u7c98\u6027\u5c31\u4f1a\u8fc5\u901f\u4e0b\u964d\u3002\u518d\u8005\uff0c\u4ea7\u54c1\u76ee\u524d\u4f9d\u8d56Chrome\u751f\u6001\uff0cFirefox\u652f\u6301\u7f3a\u5931\uff0c\u800c\u8de8\u8bbe\u5907\u540c\u6b65\uff08\u5c24\u5176\u662f\u624b\u673a\uff09\u662f\u5de5\u4f5c\u6d41\u7528\u6237\u521a\u9700\uff0c\u540e\u8005\u8fd8\u88ab\u653e\u5728\u4e86\u4ed8\u8d39\u8ba1\u5212\u91cc\u2014\u2014\u5728\u7528\u6237\u8fd8\u6ca1\u5f62\u6210\u6df1\u5ea6\u4f9d\u8d56\u524d\u5c31\u8c08\u4ed8\u8d39\uff0c\u53ef\u80fd\u4e3a\u65f6\u8fc7\u65e9\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5f00\u53d1\u8005Ciprian\u7684\u771f\u8bda\u548c\u4eb2\u529b\u4eb2\u4e3a\u503c\u5f97\u80af\u5b9a\uff0c\u4f46\u4ed6\u7684\u56de\u590d\u4e2d\u201c\u5982\u679c\u66f4\u591a\u4eba\u8981\u6c42\u624d\u505aFirefox\u201d\u4e5f\u66b4\u9732\u4e86\u8d44\u6e90\u6709\u9650\u3001\u9760\u53cd\u9988\u9a71\u52a8\u7684\u88ab\u52a8\u7b56\u7565\u3002Uncluttr\u50cf\u4e00\u628a\u7cbe\u81f4\u7684\u745e\u58eb\u519b\u5200\uff0c\u4f46\u53ea\u6709\u5728\u7528\u6237\u5df2\u7ecf\u88ab\u201c80+\u6807\u7b7e\u9875\u7684\u707e\u96be\u201d\u6298\u78e8\u5230\u5fcd\u65e0\u53ef\u5fcd\u65f6\uff0c\u624d\u4f1a\u89c9\u5f97\u5b83\u4e0d\u53ef\u6216\u7f3a\u3002\u5bf9\u4e8e\u666e\u901a\u7528\u6237\uff0c\u5b83\u53ef\u80fd\u53ea\u662f\u4e00\u4e2a\u201c\u80fd\u7701\u70b9\u5185\u5b58\u201d\u7684\u5c0f\u5de5\u5177\u3002\u5efa\u8bae\u5f00\u53d1\u8005\u5728AI\u5206\u7ec4\u7684\u201c\u667a\u80fd\u611f\u201d\u548c\u8de8\u5e73\u53f0\u540c\u6b65\u4e0a\u7ee7\u7eed\u7838\u91cd\u91d1\uff0c\u5426\u5219\u5f88\u5bb9\u6613\u88abOneTab\u3001Sidewise\u7b49\u5df2\u6709\u4e00\u5b9a\u7528\u6237\u57fa\u6570\u7684\u7ade\u54c1\u6a21\u4eff\u6216\u538b\u5236\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\">Uncluttr &#8211; Clean up your tabs<\/span>\n                <\/div>\n<div class=\"comment-content\">You have too many tabs open right now. You know it, your RAM knows it, your fan knows it. Uncluttr replaces the tab bar with a vertical sidebar and uses AI to group your tabs automatically, by project, topic or domain. Inactive tabs get suspended to free memory. Everything persists during crashes and restarts.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Looks cool, got support for firefox?<\/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\/@const_in\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@const_in<\/a>&nbsp;Thanks! Not yet, there are a couple of things to fix over there but if more people ask for it I&#8217;ll prioritize<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Such a cool extension. For someone that has tens of tabs open at all time for a variety of tasks, I love that I don&#8217;t have to switch to an entire different browser (which means loosing mobile sync and potentially other feature) just to modernize my tab situation.  Keeping tabs manually organized gets out of control too quick to be a feasible option, and the suspend feature on top of that is (unfortunately) perfect for the modern web<\/p>\n<p>\u2764\ufe0f<\/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\/@adrian_pascu3\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@adrian_pascu3<\/a>&nbsp;Thanks for the nice comment! This is exactly why I made this. Also glad you like the suspend feature, I also like using it a lot<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This is amazing. I\u2019ve just tried this for the first time and after trying countless tab managers this is the only one that works for me. Great job!<\/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\">@vladzinca Thank you Vlad, glad you found this useful! Let me know if you encoujter any issues so I can help!<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey everyone, Ciprian here, the developer of <strong>Uncluttr<\/strong>!<\/p>\n<p>This is the first time I ever make a personal product public. For a long time I struggled with having too many tabs open.<br \/>I would close all of them and in 6 hours max I would get back to <strong>60+ tabs<\/strong>.<\/p>\n<p>About a year ago I started building my own solution,<strong> a vertical sidebar tab manager with AI grouping<\/strong>, so I&#8217;d never have to manually organize my tabs again.<\/p>\n<p>Why not use an existing one? I tried. Most tab managers are built to be generic. AI changes that, it learns how you work and organizes tabs around your actual workflow, not a one-size-fits-all system.<\/p>\n<p>After using it daily for months, I realized this could work for others too. So I put in the extra work to make it public.<\/p>\n<p><strong>What you get for free:<\/strong><\/p>\n<ul>\n<li>\n<p>vertical sidebar<\/p>\n<\/li>\n<li>\n<p>unlimited workspaces and groups<\/p>\n<\/li>\n<li>\n<p>tab suspension to save memory<\/p>\n<\/li>\n<li>\n<p>tab search<\/p>\n<\/li>\n<li>\n<p>deduplication<\/p>\n<\/li>\n<li>\n<p>no account needed, all data stays in your browser.<\/p>\n<\/li>\n<li>\n<p>a couple of AI groupings, enough to get a taste of it&#8217;s power<\/p>\n<\/li>\n<\/ul>\n<p>To celebrate the launch, I&#8217;m offering <strong>the first 6 months free on the yearly plan<\/strong> with promo code <strong>PH50<\/strong>.<\/p>\n<\/p>\n<p>I&#8217;m actively building this and your feedback directly shapes what comes next. What would your dream tab manager do that nothing on the market does today?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Nice one!<\/p>\n<\/p>\n<p>In my day to day work as an analyst, I have lots of tabs open (easily 30+ just for JIRA, plus several others for documentation and research). Needless to say sometimes I get overwhelmed. Imagine when I share my screen and I can&#8217;t find some tickets&#8230;<\/p>\n<\/p>\n<p>I am looking forward to the cross-device synching. When I&#8217;m away from my desk, my phone basically becomes my laptop.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@bogdan_george_dragomir\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@bogdan_george_dragomir<\/a>&nbsp;Thank you George!<\/p>\n<p>Cross device syncing will probably be the next feature to come to the paid plan. Not sure how well it will work with mobile devices, but I&#8217;ll look into it <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#12<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/QYUXNAEOWIRVZJ\" class=\"app-title\">Iconstack: MCP-Native Icon Search<\/a><\/p>\n<div class=\"one-liner\">Semantic search + MCP + API. 50k icons. Always free.<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">11<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>IconStack\u901a\u8fc7\u8bed\u4e49\u641c\u7d22\u4e0eMCP\u652f\u6301\uff0c\u5c0650,000+\u56fe\u6807\u5e93\u7edf\u4e00\u4e3a\u5355\u4e00\u63a5\u53e3\uff0c\u89e3\u51b3\u4e86\u5f00\u53d1\u8005\u5728\u4e0d\u540c\u56fe\u6807\u7f51\u7ad9\u95f4\u9891\u7e41\u5207\u6362\u3001\u547d\u540d\u6df7\u4e71\u3001\u65e0\u6cd5\u88abAI\u5de5\u5177\u76f4\u63a5\u8c03\u7528\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\/ec882a18-0cdf-4a5b-af93-fe7bc4341fd2.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/2181286b-7ea1-4d98-883c-cdeadf3b3755.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/f0ecc1d4-c654-4de9-b610-1998e216eaa7.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\">Icons<\/span><br \/>\n            <span class=\"tag\">Development<\/span><br \/>\n            <span class=\"tag\">Design resources<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u56fe\u6807\u641c\u7d22<\/span><br \/>\n            <span class=\"tag\">\u8bed\u4e49\u641c\u7d22<\/span><br \/>\n            <span class=\"tag\">MCP\u96c6\u6210<\/span><br \/>\n            <span class=\"tag\">API<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u8bbe\u8ba1\u5e08\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">AI\u539f\u751f<\/span><br \/>\n            <span class=\"tag\">\u514d\u8d39\u56fe\u6807\u5e93<\/span><br \/>\n            <span class=\"tag\">\u56fe\u6807\u7edf\u4e00\u7ba1\u7406<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u5bf9\u7edf\u4e00\u56fe\u6807\u5e93\u548c\u8bed\u4e49\u641c\u7d22\u529f\u80fd\u8868\u793a\u8d5e\u8d4f\uff0c\u7279\u522b\u63d0\u53caMCP\u652f\u6301\u5728AI\u5f00\u53d1\u73af\u5883\u4e2d\u7684\u4fbf\u6377\u6027\u3002\u4e3b\u8981\u5efa\u8bae\u662f\u5e0c\u671b\u672a\u6765\u80fd\u5f15\u5165\u66f4\u591a\u56fe\u6807\u5e93\uff0c\u5e76\u5173\u6ce8API\u7684\u7075\u6d3b\u4f7f\u7528\u573a\u666f\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                IconStack\u7684\u4ef7\u503c\u4e0d\u5728\u201c\u96c6\u621050K\u56fe\u6807\u201d\u8fd9\u4e2a\u6570\u5b57\u672c\u8eab\uff0c\u800c\u5728\u4e8e\u5b83\u7cbe\u51c6\u6355\u6349\u4e86\u73b0\u4ee3\u5f00\u53d1\u5de5\u4f5c\u6d41\u4e2d\u4e00\u4e2a\u88ab\u957f\u671f\u5ffd\u89c6\u7684\u65ad\u5c42\uff1aAI\u7f16\u7801\u5de5\u5177\uff08Cursor\u3001Claude\u7b49\uff09\u7684\u5feb\u901f\u8fed\u4ee3\uff0c\u8ba9\u201c\u5728\u7f16\u8f91\u5668\u5185\u5b8c\u6210\u4e00\u5207\u201d\u6210\u4e3a\u521a\u9700\uff0c\u4f46\u56fe\u6807\u8fd9\u79cd\u9ad8\u9891\u4f46\u7410\u788e\u7684\u8d44\u6e90\u4ecd\u505c\u7559\u5728\u201c\u6253\u5f00\u6d4f\u89c8\u5668\u2192\u7ffb\u627e\u2192\u590d\u5236\u2192\u7c98\u8d34\u201d\u7684\u539f\u59cb\u9636\u6bb5\u3002MCP\uff08Model Context Protocol\uff09\u652f\u6301\u7684\u5f15\u5165\uff0c\u672c\u8d28\u4e0a\u662f\u5728AI\u4ee3\u7406\u548c\u8bbe\u8ba1\u5e08\/\u5f00\u53d1\u8005\u7684\u754c\u9762\u4e4b\u95f4\u67b6\u8bbe\u4e86\u4e00\u6761\u5373\u65f6\u7684\u8bed\u4e49\u901a\u9053\uff0c\u8ba9AI\u80fd\u76f4\u63a5\u6839\u636e\u201c\u4e00\u4e2a\u8868\u793a\u2018\u8bbe\u7f6e\u2019\u7684\u9f7f\u8f6e\u56fe\u6807\u201d\u8fd9\u79cd\u81ea\u7136\u8bed\u8a00\u6307\u4ee4\u8fd4\u56de\u8d44\u6e90\uff0c\u8fd9\u624d\u662f\u771f\u6b63\u7684\u201cAI\u539f\u751f\u201d\u4f53\u9a8c\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u8fd0\u8425\u7b56\u7565\u770b\uff0c\u5168\u9759\u6001\u3001\u96f6\u6210\u672c\u67b6\u6784\u914d\u5408\u201c\u6c38\u4e45\u514d\u8d39\u201d\u627f\u8bfa\uff0c\u663e\u793a\u8fd9\u662f\u4e00\u6b3e\u6781\u7b80\u4e3b\u4e49\u4ea7\u7269\u2014\u2014\u6ca1\u6709\u6570\u636e\u5e93\u3001\u6ca1\u6709\u5546\u4e1a\u5316\u538b\u529b\uff0c\u4e5f\u5c31\u6ca1\u6709\u7528\u6237\u9501\u5b9a\u7684\u52a8\u673a\u3002\u521b\u59cb\u4ebaDeepak\u4ee5\u72ec\u7acb\u9ed1\u5ba2\u8eab\u4efd\u505a\u4e86\u5de8\u5934\u4e0d\u613f\u505a\u7684\u5c0f\u4e8b\uff0c\u4f46\u8fd9\u4ef6\u5c0f\u4e8b\u6070\u597d\u5361\u5728\u201c\u5de5\u5177\u94fe\u788e\u7247\u5316\u201d\u7684\u901a\u7528\u75db\u70b9\u4e0a\u3002\u552f\u4e00\u98ce\u9669\u662f\uff0c\u968f\u7740\u4f7f\u7528\u91cf\u6fc0\u589e\uff0cAPI\u67e5\u8be2\u7684\u7a33\u5b9a\u6027\u4e0e\u54cd\u5e94\u901f\u5ea6\u80fd\u5426\u4fdd\u6301\u514d\u8d39\u7ea7\u6c34\u5e73\uff1f\u6b64\u5916\uff0c\u8bed\u4e49\u641c\u7d22\u7684\u8d28\u91cf\u9ad8\u5ea6\u4f9d\u8d56\u5e95\u5c42\u5411\u91cf\u5316\u6a21\u578b\u7684\u7cbe\u5ea6\uff0c\u5982\u679c\u51fa\u73b0\u8bed\u4e49\u504f\u5dee\uff0c\u4f1a\u76f4\u63a5\u7834\u574f\u201c\u65e0\u9700\u77e5\u9053\u7cfb\u7edf\u540d\u79f0\u201d\u7684\u6838\u5fc3\u627f\u8bfa\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u603b\u7684\u6765\u8bf4\uff0cIconStack\u4e0e\u5176\u8bf4\u662f\u4e00\u4e2a\u56fe\u6807\u641c\u7d22\u5de5\u5177\uff0c\u4e0d\u5982\u8bf4\u662f\u201cAI\u65f6\u4ee3\u7684\u56fe\u6807\u8d44\u6e90\u4e2d\u95f4\u5c42\u201d\u2014\u2014\u5b83\u5728\u7f16\u8f91\u5668\u7684AI Agent\u548c\u56fe\u6807\u6570\u636e\u5e93\u4e4b\u95f4\uff0c\u505a\u4e86\u4e00\u6b21\u8f7b\u91cf\u4f46\u5173\u952e\u7684\u89e3\u8026\u3002\u5bf9\u4e8e\u4efb\u4f55\u91cd\u89c6\u5f00\u53d1\u6d41\u4e0d\u88ab\u4e2d\u65ad\u7684\u7528\u6237\uff0c\u5b83\u503c\u5f97\u88ab\u52a0\u5165\u5de5\u4f5c\u6d41\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\">Iconstack: MCP-Native Icon Search<\/span>\n                <\/div>\n<div class=\"comment-content\">IconStack is the icon library built for how modern developers and designers workflow. 50,000+ icons from 15+ libraries; unified, semantic, and AI-native. \u2192 Semantic search: find icons by meaning, not system names \u2192 MCP support: your AI agent queries icons directly in-editor \u2192 API access: programmatic access for tools and pipelines \u2192 Always free. No account. No paywall. Forever. One search. Every library. Built to last.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey PH \ud83d\udc4b Deepak here. <\/p>\n<p>I run a UI\/UX studio and build AI tools on the side as an indie hacker.<\/p>\n<p>IconStack started as a personal frustration. Switching between icon sites mid-build is a genuine flow killer. Wrong names, fragmented libraries, no API.<br \/>\nA 2014 experience in a 2026 workflow.<\/p>\n<p>So I unified 53,000+ icons from 15+ libraries and built the search layer they always deserved. It already pulls ~15,000 visitors a day organically. Clearly I wasn&#8217;t the only one frustrated.<\/p>\n<p>Two things I&#8217;m most proud of:<br \/>\nSemantic search: you shouldn&#8217;t need to know an icon&#8217;s system name. Just describe what you need and it finds it.<br \/>\nMCP support: your AI agent can now query icons directly inside Cursor, Windsurf, or Claude. No tab switching. Icons land right in your code.<\/p>\n<p>Fully static, costs near-zero to run, and stays free permanently. No account, no paywall, no plans to change that. And I&#8217;ll keep adding more libraries over time, so drop a comment if yours is missing.<\/p>\n<p>Would love to know what you&#8217;d do with the API too. Roast it, break it, ship with it.<\/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<\/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\/CSD2BSJSGFKULU\" class=\"app-title\">Blurts-Voice to Any Task App<\/a><\/p>\n<div class=\"one-liner\">Speak your chaos. Blurts turns it into tasks.<\/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>Blurts \u662f\u4e00\u6b3e\u4e13\u4e3a\u201c\u8111\u5b50\u4e00\u56e2\u4e71\u9ebb\u65f6\u201d\u8bbe\u8ba1\u7684\u8bed\u97f3\u8f6c\u4efb\u52a1\u5de5\u5177\uff0c\u7528\u6237\u53ea\u9700\u8bf4\u51fa\u6df7\u6742\u7684\u5ff5\u5934\uff0cAI \u4f1a\u81ea\u52a8\u6e05\u7406\u8d58\u8bcd\u3001\u62c6\u5206\u60f3\u6cd5\u3001\u8bc6\u522b\u65e5\u671f\u5e76\u540c\u6b65\u5230 Notion\u3001Google Tasks \u7b49\u5e38\u7528\u5de5\u5177\uff0c\u89e3\u51b3\u201c\u60f3\u8bb0\u5f55\u4f46\u6ca1\u624b\u6253\u5b57\u3001\u8bb0\u4e0b\u6765\u540e\u8fd8\u5f97\u624b\u52a8\u6574\u7406\u201d\u7684\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/231238e5-0e37-4bcc-be18-fdc6b721d3d8.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/9c97cd9d-3345-4abf-a60c-aabe85200c4c.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/2b77b67c-9c68-422c-9bdf-21a15c222d6b.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/c8378fd9-8f89-47b1-a3e5-029ce06ab5cf.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/72631f9d-6602-4170-8393-621b8e0b8438.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\/172ab5e5-be17-4654-8653-85b3ef7a7547.octet-stream?auto=format\" data-video-url=\"https:\/\/www.loom.com\/share\/a3571ba216f1407ea9120ad9f1206957\"><source src=\"https:\/\/www.loom.com\/share\/a3571ba216f1407ea9120ad9f1206957\" 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\">iOS<\/span><br \/>\n            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/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\u53efBlurts\u89e3\u51b3\u201c\u8bf4\u51fa\u5373\u6574\u7406\u201d\u7684\u6838\u5fc3\u4ef7\u503c\uff0c\u5c24\u5176\u79f0\u8d5e\u65e5\u671f\u8bc6\u522b\u529f\u80fd\uff08\u201c\u8fde\u4eca\u5929\u661f\u671f\u51e0\u90fd\u4e0d\u77e5\u9053\u201d\uff09\u3002\u9ad8\u7ea7\u7528\u6237\u63d0\u51fa\u201c\u53d1\u6cc4\u6a21\u5f0f\uff08Vent Mode\uff09\u201d\u9700\u6c42\uff1a\u5e0c\u671b\u6709\u65f6\u53ea\u8bb0\u5f55\u60c5\u7eea\/\u5e9f\u8bdd\uff0c\u4e0d\u5f3a\u8f6c\u4efb\u52a1\u3002\u5236\u4f5c\u65b9\u5df2\u5c06\u5176\u5217\u5165\u8def\u7ebf\u56fe\uff0c\u663e\u793a\u51fa\u5bf9\u975e\u4efb\u52a1\u573a\u666f\u7684\u8ba4\u53ef\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                Blurts \u7684\u4ef7\u503c\u4e0d\u5728\u201c\u591a\u4e86\u4e00\u4e2aAI\u52a9\u624b\u201d\uff0c\u800c\u5728\u4e8e\u5b83\u505a\u51fa\u4e86\u4e00\u4e2a\u91cd\u8981\u7684\u4ea7\u54c1\u8bbe\u8ba1\u5224\u65ad\uff1a**\u4eba\u7c7b\u5728\u771f\u5b9e\u751f\u6d3b\u4e2d\uff0c\u4efb\u52a1\u662f\u6df7\u5728\u810f\u8bdd\u3001\u7262\u9a9a\u548c\u5c3f\u5e03\u4e4b\u95f4\u7684**\u3002\u5e02\u9762\u4e0a\u7edd\u5927\u591a\u6570\u4efb\u52a1\u7ba1\u7406\u5de5\u5177\u5047\u5b9a\u7528\u6237\u662f\u7406\u6027\u7684\u3001\u6709\u7a7a\u95f2\u7684\u3001\u80fd\u7cbe\u786e\u8868\u8fbe\u610f\u56fe\u7684\u2014\u2014\u8fd9\u672c\u8eab\u5c31\u662f\u4e00\u79cd\u7cbe\u82f1\u4e3b\u4e49\u7684\u50b2\u6162\u3002\n            <\/p>\n<p class=\"ai-content\">\n                Blurts \u7684\u806a\u660e\u4e4b\u5904\u5728\u4e8e\uff0c\u5b83\u6ca1\u6709\u53bb\u6311\u6218\u201c\u5982\u4f55\u8ba9\u7528\u6237\u66f4\u81ea\u5f8b\u201d\u8fd9\u4e2a\u65e0\u89e3\u9898\uff0c\u800c\u662f\u627f\u8ba4\u201c\u7528\u6237\u5c31\u662f\u4f1a\u5728\u5927\u8111\u53d1\u61f5\u65f6\u4e22\u51fa\u5783\u573e\u8bdd\u201d\uff0c\u7136\u540e\u53ea\u505a\u4e00\u4ef6\u4e8b\u60c5\uff1a**\u5728\u5783\u573e\u91cc\u7b5b\u51fa\u91d1\u5b50**\u3002\u5b83\u4e0d\u8981\u6c42\u7528\u6237\u5148\u60f3\u6e05\u695a\u518d\u8bf4\u8bdd\uff0c\u800c\u662f\u8ba9\u7528\u6237\u5148\u8bf4\u8bdd\uff0c\u7136\u540e\u518d\u7531\u673a\u5668\u53bb\u60f3\u6e05\u695a\u2014\u2014\u8fd9\u662f\u884c\u4e3a\u8def\u5f84\u4e0a\u98a0\u8986\u6027\u7684\u8f6c\u53d8\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u4ece\u4ea7\u54c1\u89d2\u5ea6\u770b\uff0c\u76ee\u524d10\u4e2a\u6295\u7968\u548c\u4ec5\u6709\u76843\u6761\u8bc4\u8bba\uff0c\u8bf4\u660e\u5b83\u4ecd\u5728\u65e9\u671f\u9a8c\u8bc1\u9636\u6bb5\u3002\u6700\u5927\u7684\u9690\u60a3\u662f\uff1a**\u201c\u6df7\u4e71\u201d\u56fa\u7136\u662f\u771f\u5b9e\u573a\u666f\uff0c\u4f46\u201c\u6df7\u4e71\u201d\u662f\u5426\u9ad8\u9891\u5230\u80fd\u8ba9\u7528\u6237\u5f62\u6210\u65b0\u7684\u4e60\u60ef\uff1f** \u7528\u6237\u53ef\u80fd\u5728\u5934\u4e09\u6b21\u8bd5\u7528\u65f6\u611f\u5230\u723d\uff0c\u4f46\u540e\u671f\u5982\u679c\u53d1\u73b0\u201c\u8bf4\u51fa\u53bb\u7684\u5e9f\u8bdd\u201d\u5e76\u672a\u771f\u6b63\u51cf\u5c11\u51b3\u7b56\u8d1f\u62c5\u2014\u2014\u6bd4\u5982\u4efb\u52a1\u62c6\u5206\u540e\u4f9d\u7136\u9700\u8981\u624b\u52a8\u8c03\u4f18\u5148\u7ea7\u3001\u8de8\u5de5\u5177\u540c\u6b65\u4ecd\u6709\u9519\u4f4d\u2014\u2014\u90a3\u4e48\u65b0\u9c9c\u611f\u5c31\u4f1a\u5feb\u901f\u6d88\u9000\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u6b64\u5916\uff0c\u4ec5\u51ed\u8bed\u97f3\u6e05\u7406+\u65e5\u671f\u8bc6\u522b\uff0c\u5f88\u96be\u5f62\u6210\u8db3\u591f\u7684\u58c1\u5792\u3002\u7c7b\u4f3cSiri\u3001Google Assistant\u7b49\u5df2\u7ecf\u5177\u5907\u57fa\u7840\u7684\u4efb\u52a1\u8bc6\u522b\u80fd\u529b\uff0cBlurts \u7684\u62a4\u57ce\u6cb3\u53ea\u80fd\u662f**\u5bf9\u201c\u975e\u7ed3\u6784\u5316\u8bed\u97f3\u201d\u7684\u6e05\u6d17\u7cbe\u5ea6**\uff0c\u4ee5\u53ca\u5728\u8fd9\u4e2a\u5782\u76f4\u573a\u666f\u91cc\u7528\u6237\u7c98\u6027\u7684\u517b\u6210\u3002\u5982\u679c\u80fd\u63d0\u524d\u505a\u597d\u201c\u53d1\u6cc4\u6a21\u5f0f\u201d\u8fd9\u7c7b\u60c5\u7eea\u51fa\u53e3\uff0c\u5e76\u914d\u5408\u201c\u5b9a\u671f\u56de\u987e\/\u81ea\u52a8\u751f\u6210\u5468\u62a5\u201d\u7684\u95ed\u73af\uff0c\u624d\u4f1a\u4ece\u201c\u597d\u7528\u7684\u5de5\u5177\u201d\u8fdb\u5316\u4e3a\u201c\u8ba9\u7528\u6237\u79bb\u4e0d\u5f00\u7684\u7cfb\u7edf\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4e00\u53e5\u8bdd\u9510\u8bc4\uff1a**\u53ef\u60dc\u53ea\u670910\u7968\uff0c\u4f46\u65b9\u5411\u5bf9\u4e86\u597d\u8fc7\u6267\u884c\u5b8c\u7f8e\u3002**\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Blurts-Voice to Any Task App<\/span>\n                <\/div>\n<div class=\"comment-content\">Blurts uses AI to sift through the mess and find the gold. It strips filler words, creates tasks, assigns dates, and syncs everything to your tools automatically. Built by a husband-and-wife team with a baby, full-time jobs, and zero time to write down tasks.<\/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>Blurts started as a tool I desperately needed for myself.<\/p>\n<p>I\u2019m a full-time software engineer, real estate property manager, and mom to a one-year-old daughter. My brain generates \u201cdon\u2019t forget to do X\u201d thoughts at the worst possible moments &#8211; while holding the baby, in a meeting, fighting a diaper change, walking between rooms, or too sleep-deprived to remember what I was doing in the first place.<\/p>\n<p>And the problem is: I almost never have one clean thought at a time.<\/p>\n<p>It\u2019s usually four thoughts tangled together:<\/p>\n<p>\u201cFix the leak, push the PR, buy diapers, and reschedule the dentist to next Tuesday.\u201d<\/p>\n<p>I tried voice memos. They captured the chaos, but they didn\u2019t organize anything. Then I had to come back later, listen through everything, and turn the recording into actual tasks myself.<\/p>\n<p>I tried notes and to-do apps too, but they expected me to stop, type clearly, choose the right place, pick the right fields, and organize everything manually. By the time I finished capturing one thing, I had usually forgotten the next one.<\/p>\n<p>So my husband and I built Blurts.<\/p>\n<p>Not as a shiny \u201cAI productivity platform,\u201d but as a simple way to get messy thoughts out of your head before they disappear.<\/p>\n<p>\ud83c\udf99\ufe0f <strong>Speak naturally<\/strong><br \/>Tap one button and say everything at once. Ramble, pause, repeat yourself, use filler words \u2014 no need to sound organized.<\/p>\n<p>\ud83e\uddf9 <strong>Blurts cleans up the word soup<\/strong><br \/>It strips out the filler, separates mixed thoughts, and turns them into clean tasks.<\/p>\n<p>\ud83d\udcc6 <strong>It understands dates from what you said<\/strong><br \/>If you say \u201cnext Tuesday\u201d or \u201ctomorrow morning,\u201d Blurts pulls that out and adds the right timing.<\/p>\n<p>\ud83d\udd01 <strong>It works with the tools you already use<\/strong><br \/>Blurts checks the structure of your existing tool and suggests fields like category, priority, status, effort, or whatever properties you already have set up.<\/p>\n<p>Right now, Blurts integrates with Notion, Google Tasks, Google Calendar, Apple Reminders, and Apple Calendar.<\/p>\n<p>That\u2019s it. No complicated setup. No big dashboard to manage. Just speak, pocket your phone, and go back to what you were doing.<\/p>\n<p>This is built by a husband and wife in the margins between full-time jobs, nap schedules, bedtime routines, and all the tiny life admin tasks that never seem to end.<\/p>\n<p>I built Blurts because I needed something that could keep up with real life &#8211; not the calm, organized version of life, but the messy one.<\/p>\n<p>If you\u2019ve ever said \u201cI\u2019ll remember that later\u201d and then absolutely did not, I\u2019d love to hear:<\/p>\n<p>Where do you usually remember tasks at the worst possible time?<\/p>\n<p>And what tool do you wish was easier to use by voice?<\/p>\n<p>Thanks for checking out Blurts \ud83e\udde1<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">love that it&#8217;s smart enough to know when next Tuesday is because I barely even know what date today is<\/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\/@gene_lo\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@gene_lo<\/a>&nbsp;haha the maker curse: building things so we don&#8217;t have to remember things \ud83d\ude05<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>&#8220;Speak your chaos&#8221; is the right frame \u2014 the verbalization is the hard part, not the to-do list. I counsel clients on money and the same pattern shows up: the avoidance loop breaks the moment someone says &#8220;I have $40K in credit card debt&#8221; out loud rather than circling it silently for a week. Have you thought about a vent mode that captures the dump without converting any of it to tasks? Sometimes the tasks come later \u2014 after the unload does the actual work.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@justin_huynh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@justin_huynh<\/a>&nbsp;the $40K example is so good &#8211; that&#8217;s exactly it. the act of saying it out loud is already doing something, before any system touches it.<\/p>\n<p>vent mode is something I&#8217;ve thought about but haven&#8217;t built yet. right now everything gets converted, which is probably wrong for certain moments. sometimes the thought just needs to exist without becoming a task.<\/p>\n<p>adding this to the roadmap for real &#8211; thank you for framing it this clearly.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/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\/4MPFMVRVVTFIKZ\" class=\"app-title\">PostGun<\/a><\/p>\n<div class=\"one-liner\">Build, remix and post on every social network<\/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>PostGun\u662f\u4e00\u4e2a\u96c6\u5185\u5bb9\u521b\u4f5c\u3001\u667a\u80fd\u4e8c\u521b\u4e0e\u4e00\u952e\u5206\u53d1\u4e8e\u4e00\u4f53\u7684\u8de8\u5e73\u53f0\u793e\u4ea4\u5a92\u4f53\u7ba1\u7406\u5de5\u5177\uff0c\u5e2e\u52a9\u521b\u4f5c\u8005\u6446\u8131\u5728\u591a\u4e2a\u8bbe\u8ba1\u3001\u6392\u671f\u548c\u53d1\u5e03\u5e94\u7528\u95f4\u53cd\u590d\u8df3\u8f6c\u7684\u7e41\u7410\u6d41\u7a0b\uff0c\u5b9e\u73b0\u201c\u4e00\u6b21\u6784\u5efa\uff0c\u968f\u5904\u53d1\u5e03\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\/a6b782ef-671d-41ab-9678-67b03c6bc9e6.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/3142be06-5a4f-4e7b-be60-0f57ff042239.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/2d4b4210-9805-43f9-8dc7-92da0fe35597.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/9fd2f09a-f8e6-48b3-bd59-d3f1f3ae8078.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/1e06d8d7-527e-4620-b4a4-c727ec038780.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\/4cd7a855-3014-491d-a81d-7ba1fb2ec7de.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=CLNc5VPeqzw\"><source src=\"https:\/\/www.youtube.com\/watch?v=CLNc5VPeqzw\" 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\">Social Media<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u793e\u4ea4\u5a92\u4f53\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u5185\u5bb9\u521b\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u8de8\u5e73\u53f0\u53d1\u5e03<\/span><br \/>\n            <span class=\"tag\">\u4e8c\u521b\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u89c6\u9891\u7f16\u8f91<\/span><br \/>\n            <span class=\"tag\">\u6392\u7248\u8bbe\u8ba1<\/span><br \/>\n            <span class=\"tag\">\u6392\u671f\u65e5\u5386<\/span><br \/>\n            <span class=\"tag\">\u4e00\u952e\u5206\u53d1<\/span><br \/>\n            <span class=\"tag\">TikTok<\/span><br \/>\n            <span class=\"tag\">Instagram<\/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\u521b\u610f\uff0c\u4f46\u62c5\u5fe7\u201c\u4e8c\u521b\u201d\u529f\u80fd\u6613\u5bfc\u81f4\u5185\u5bb9\u540c\u8d28\u5316\uff1b\u540c\u65f6\u6307\u51fa\u5355\u4e00\u5185\u5bb9\u5728\u4e0d\u540c\u5e73\u53f0\u8868\u73b0\u4e0d\u540c\uff0c\u5efa\u8bae\u589e\u52a0\u81ea\u52a8\u9002\u914d\u5404\u5e73\u53f0\u8bed\u5883\u7684\u6539\u5199\u529f\u80fd\u3002\u7528\u6237\u8fd8\u8be2\u95ee\u4e86\u4e0e\u540c\u7c7b\u4ea7\u54c1Post Bridge\u7684\u5dee\u5f02\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                PostGun\u7684\u5b9a\u4f4d\u7cbe\u51c6\u5730\u51fb\u4e2d\u4e86\u591a\u5e73\u53f0\u521b\u4f5c\u8005\u4e00\u4e2a\u771f\u5b9e\u4f46\u5e38\u88ab\u5ffd\u89c6\u7684\u75db\u70b9\u2014\u2014\u4e0d\u662f\u201c\u53d1\u4e0d\u51fa\u53bb\u201d\uff0c\u800c\u662f\u201c\u505a\u4e0d\u51fa\u6765\u201d\u3002\u5b83\u5de7\u5999\u5730\u5c06\u8bbe\u8ba1\u753b\u5e03\u3001\u70ed\u95e8\u5185\u5bb9\u4e8c\u521b\u548c\u53d1\u5e03\u65e5\u5386\u7194\u4e8e\u4e00\u7089\uff0c\u8bd5\u56fe\u7f1d\u5408\u4ece\u7075\u611f\u5230\u5206\u53d1\u7684\u65ad\u88c2\u94fe\u6761\u3002\u201c\u4e8c\u521b\u201d\u529f\u80fd\u662f\u5176\u6700\u5c16\u9510\u7684\u6b66\u5668\uff0c\u4e5f\u6700\u5371\u9669\uff1a\u5b83\u964d\u4f4e\u4e86\u5185\u5bb9\u751f\u4ea7\u7684\u95e8\u69db\uff0c\u5374\u53ef\u80fd\u5c06\u521b\u4f5c\u8005\u63a8\u5411\u201c\u642c\u8fd0\u5f0f\u521b\u4f5c\u201d\u7684\u60ac\u5d16\u3002\u5982\u679cPostGun\u4ec5\u63d0\u4f9b\u4e00\u4e2a\u5feb\u901f\u5438\u775b\u7684\u5de5\u5177\uff0c\u7528\u6237\u5f88\u5feb\u4f1a\u53d1\u73b0\uff0c\u6240\u6709\u4eba\u90fd\u5728\u201c\u62c6\u89e3\u201d\u540c\u4e00\u6279\u7206\u6b3e\uff0c\u6700\u7ec8\u5bfc\u81f4\u5185\u5bb9\u5ba1\u7f8e\u7684\u7a84\u5316\u548c\u5e73\u53f0\u7b97\u6cd5\u7684\u964d\u6743\u3002\u771f\u6b63\u7684\u4ef7\u503c\u58c1\u5792\u5728\u4e8e\u80fd\u5426\u63d0\u4f9b\u6df1\u5ea6\u7684\u201c\u5e73\u53f0\u8bed\u5883\u9002\u914d\u201d\u2014\u2014\u4e0d\u4ec5\u4ec5\u662f\u683c\u5f0f\u7684\u88c1\u526a\uff0c\u66f4\u662f\u53d9\u4e8b\u8282\u594f\u3001\u89c6\u89c9\u98ce\u683c\u4e43\u81f3\u793e\u4ea4\u793c\u4eea\u7684\u81ea\u52a8\u8f6c\u6362\u3002\u76ee\u524d9\u7968\u7684\u652f\u6301\u5ea6\u663e\u793a\u5176\u4ecd\u5904\u4e8e\u65e9\u671f\u9a8c\u8bc1\u671f\uff0c\u7528\u6237\u5bf9\u201c\u539f\u521b\u6027\u201d\u7684\u8d28\u7591\u6070\u6070\u662f\u5176\u4ea7\u54c1\u8fed\u4ee3\u7684\u9ec4\u91d1\u8def\u6807\u3002PostGun\u9700\u8981\u8b66\u60d5\u53d8\u6210\u53e6\u4e00\u4e2a\u66f4\u5feb\u7684\u5185\u5bb9\u901f\u98df\u673a\uff0c\u800c\u5e94\u8fdb\u5316\u4e3a\u4e00\u4e2a\u66f4\u5177\u667a\u80fd\u5224\u65ad\u529b\u7684\u201c\u521b\u610f\u53c2\u8c0b\u201d\uff0c\u5c06\u201cremix\u201d\u4e0a\u5347\u4e3a\u4e00\u79cd\u53ef\u5b66\u4e60\u7684\u521b\u4f5c\u7b56\u7565\uff0c\u800c\u975e\u7b80\u5355\u7684\u590d\u5236\u7c98\u8d34\u3002\u5426\u5219\uff0c\u5b83\u7ec8\u5c06\u88ab\u81ea\u5df1\u7684\u6548\u7387\u6240\u5f15\u53d1\u7684\u540c\u8d28\u5316\u6d2a\u6d41\u6df9\u6ca1\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\">PostGun<\/span>\n                <\/div>\n<div class=\"comment-content\">Creating for every platform means jumping between Canva, a scheduler, y 5 different apps, designing once and reuploading everywhere. PostGun gives you a built-in canvas to build posts, a remix tool to turn viral content into your own, and one-click publishing to TikTok, Instagram, YouTube and more, all from a single calendar. Build it once. Remix the rest. Post everywhere.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey everyone, really excited to finally share PostGun with you today.<br \/>This is one of the projects from my challenge of building 24 startups in 12 months, and honestly it&#8217;s one I&#8217;ve been wanting to build for a long time.<br \/>I built this because my own content workflow was driving me crazy. For every post I wanted to publish, I had to design it in Canva, download the file, open a scheduler, reupload it, write captions for each network one by one, and somehow keep track of what was going where. By the time anything went live, I had already lost the energy I started with.<br \/>The thing is, scheduling was never my real problem. The hard part has always been building posts that actually look native to each platform. Most tools out there only solve the scheduling side, so I wanted something where the creation, the remix and the publishing all happen in the same place.<br \/>PostGun started as a simple post composer. Then I added a built-in canvas, because flipping between tabs to design killed my flow every time. After that came the remix feature, which lets you take any viral post and rebuild it into your own in a couple of clicks. That part actually changed how I think about content, because most great posts are really just smart remixes of something that already worked. Finally I connected the whole thing to TikTok, Instagram, YouTube and the rest, so you can ship across every platform from a single calendar.<br \/>The idea behind PostGun is simple: build once, remix the rest, post everywhere.<br \/>I&#8217;d love to hear what you think, what feels missing, and which platforms you&#8217;d like to see next. Every piece of feedback genuinely shapes where this goes from here.<br \/>Thanks for taking the time to check 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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@pasho\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@pasho<\/a>&nbsp;Congrats on the launch! Very nice product. <\/p>\n<\/p>\n<p>I&#8217;m curious &#8211; how does it compare against Post Bridge (<a href=\"https:\/\/www.post-bridge.com\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/www.post-bridge.com<\/a>) by Jack Friks, which does the same overall? <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@pasho\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@pasho<\/a>&nbsp;Congrats on the launch. The remix idea is interesting but feels like it could easily turn into low-effort copycat content if everyone\u2019s pulling from the same viral posts. I\u2019d probably worry about everything starting to look the same after a while. How much control do I actually have to make it feel original instead of just slightly tweaked?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@pasho\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@pasho<\/a>&nbsp;It&#8217;s really interesting; it&#8217;s a good tool.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Love the concept in general but perhaps in my experience over the last few months what works on 1 platform rarely works on another. Instagram carousels that work are generally different from LinkedIn presentations that get engagement. Is there a way the same content can be rephrased and worked automatically for each platform? What do you think?<\/p>\n<p>Anyway, best of luck <a href=\"https:\/\/www.producthunt.com\/@pasho\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"pasho\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@pasho<\/a> Rooting for 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<\/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\/XEQCADB4VDXD76\" class=\"app-title\">Posting Machine AI<\/a><\/p>\n<div class=\"one-liner\">Turn your LinkedIn into a sales pipeline for B2B founders<\/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>Posting Machine AI \u5e2e\u52a9B2B\u521b\u59cb\u4eba\u5c06Slack\u4e2d\u7684\u771f\u5b9e\u5bf9\u8bdd\u81ea\u52a8\u8f6c\u5316\u4e3aLinkedIn\u5e16\u5b50\u8349\u7a3f\uff0c10\u5206\u949f\u5373\u53ef\u6279\u51c6\u4e00\u5468\u5185\u5bb9\uff0c\u628a\u6ce8\u610f\u529b\u8f6c\u5316\u4e3a\u6e29\u70ed\u7684\u9500\u552e\u7ebf\u7d22\uff0c\u800c\u975e\u51b7\u51b0\u51b0\u7684\u7fa4\u53d1\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\/496921e7-cf54-4b74-9e6d-9f1dbb3c521e.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/e8b61c73-04df-4a91-8a22-d97f6f5e1e5c.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/6cd05eb7-4ab4-425e-93f2-eb39c8be0a12.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/fdd04dc2-a513-4811-ab03-b52ea4f4b839.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/21c835b0-d1e9-48a1-8af8-9f93c71b9397.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\/3a971e55-f654-4b76-be22-d4b1b990a500.gif?auto=format\" data-video-url=\"https:\/\/www.loom.com\/share\/67f71c6672064c8dbf0b1d19fb533e26\"><source src=\"https:\/\/www.loom.com\/share\/67f71c6672064c8dbf0b1d19fb533e26\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Sales<\/span><br \/>\n            <span class=\"tag\">Marketing<\/span><br \/>\n            <span class=\"tag\">LinkedIn<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">B2B\u9500\u552e<\/span><br \/>\n            <span class=\"tag\">LinkedIn\u8425\u9500<\/span><br \/>\n            <span class=\"tag\">\u521b\u59cb\u4eba\u9500\u552e<\/span><br \/>\n            <span class=\"tag\">Slack\u96c6\u6210<\/span><br \/>\n            <span class=\"tag\">AI\u5185\u5bb9\u751f\u6210<\/span><br \/>\n            <span class=\"tag\">\u793e\u4ea4\u9500\u552e<\/span><br \/>\n            <span class=\"tag\">\u5185\u5bb9\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">\u9500\u552e\u7ebf\u7d22\u6316\u6398<\/span><br \/>\n            <span class=\"tag\">\u7528\u6237\u4e92\u52a8\u5206\u6790<\/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\u8d5e\u8d4f\u4eceSlack\u6293\u53d6\u4fe1\u53f7\u7684\u521b\u610f\uff0c\u8ba4\u4e3a\u201c\u4e09\u9009\u4e00\u201d\u7684\u56de\u590d\u9009\u9879\u4e0d\u9519\u3002\u4f46\u63d0\u51fa\u6838\u5fc3\u7591\u95ee\uff1a\u975eSlack\u7528\u6237\u5982\u4f55\u81ea\u52a8\u5316LinkedIn\u4e92\u52a8\uff1f\u5e76\u5e0c\u671b\u652f\u6301\u5728\u89e3\u51b3\u7279\u5b9a\u95ee\u9898\u7684\u5e16\u5b50\u4e0b\u8bc4\u8bba\u3002\u5b98\u65b9\u56de\u5e94\u79f0\u8be5\u529f\u80fd\u6682\u672a\u5217\u5165\u8def\u7ebf\u56fe\uff0c\u4f46\u4f1a\u8003\u8651\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                Posting Machine AI\u7684\u5207\u5165\u53e3\u5f88\u806a\u660e\u2014\u2014\u5b83\u6ca1\u6709\u6389\u8fdb\u201c\u5e2e\u521b\u59cb\u4eba\u5199\u7206\u6b3e\u6587\u201d\u7684\u5185\u5377\u9677\u9631\uff0c\u800c\u662f\u7cbe\u51c6\u89e3\u51b3\u4e86B2B\u521b\u59cb\u4eba\u4e0e\u4f17\u4e0d\u540c\u7684\u95ee\u9898\uff1a\u4e0d\u662f\u7f3a\u4e4f\u5185\u5bb9\uff0c\u800c\u662f\u7f3a\u4e4f\u5c06\u65e5\u5e38\u5de5\u4f5c\u4e2d\u7684\u9ad8\u4ef7\u503c\u4fe1\u53f7\uff08\u5ba2\u6237\u6d1e\u5bdf\u3001\u4ea7\u54c1\u51b3\u7b56\u3001\u5185\u90e8\u4e89\u8bba\uff09\u7cfb\u7edf\u5316\u53d8\u73b0\u7684\u673a\u5236\u3002\u75db\u70b9\u6293\u5f97\u51c6\uff0c\u201c\u4fe1\u53f7\u6355\u83b7\u201d\u6bd4\u201c\u5185\u5bb9\u751f\u6210\u201d\u66f4\u5177\u62a4\u57ce\u6cb3\u6548\u5e94\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u4ea7\u54c1\u76ee\u524d\u7684\u6838\u5fc3\u5c40\u9650\u5728\u4e8e\u5bf9Slack\u7684\u8fc7\u5ea6\u4f9d\u8d56\u3002\u4ece\u8bc4\u8bba\u4e2d\u53ef\u77e5\uff0c\u4e0d\u5c11\u7528\u6237\uff08\u5c24\u5176\u975eSlack\u91cd\u5ea6\u4f7f\u7528\u8005\uff09\u671f\u5f85\u7684\u662f\u66f4\u5e7f\u6cdb\u7684LinkedIn\u81ea\u52a8\u5316\u80fd\u529b\uff0c\u6bd4\u5982\u9488\u5bf9\u70ed\u95e8\u95ee\u9898\u81ea\u52a8\u751f\u6210\u8bc4\u8bba\u3001\u4e3b\u52a8\u4e92\u52a8\u7b49\u3002\u800c\u56de\u590d\u79f0\u201c\u6682\u4e0d\u5728\u8def\u7ebf\u56fe\u201d\uff0c\u66b4\u9732\u4e86\u65e9\u671f\u4ea7\u54c1\u7684\u91ce\u5fc3\u4e0d\u591f\u5927\u3002\u53ea\u505a\u201cSlack\u2192LinkedIn\u201d\u7684\u5355\u5411\u7ba1\u9053\uff0c\u4f1a\u8ba9\u5de5\u5177\u6ca6\u4e3a\u201c\u53d1\u5e16\u6548\u7387\u5668\u201d\uff0c\u800c\u975e\u771f\u6b63\u7684\u201c\u4eba\u8109\u9500\u552e\u5f15\u64ce\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u771f\u6b63\u7684\u4ef7\u503c\u5728\u4e8e\u80fd\u5426\u4ece\u201c\u53d1\u5e16\u52a9\u624b\u201d\u8fdb\u5316\u6210\u201c\u667a\u80fd\u9500\u552e\u4ee3\u7406\u201d\uff1a\u4e0d\u4ec5\u8981\u5e2e\u4f60\u751f\u6210\u5185\u5bb9\uff0c\u8fd8\u8981\u5e2e\u4f60\u9009\u62e9\u8ddf\u8c01\u4e92\u52a8\u3001\u5728\u54ea\u4e2a\u8bdd\u9898\u4e0b\u7559\u4e0b\u75d5\u8ff9\u3001\u5982\u4f55\u5c06\u70b9\u8d5e\u8f6c\u5316\u4e3a\u79c1\u4fe1\u3002\u5982\u679c\u53ea\u662f\u7701\u4e8610\u5206\u949f\u6392\u7248\u65f6\u95f4\uff0c\u5f88\u96be\u8bf4\u670d\u521b\u59cb\u4eba\u4e3a\u6b64\u4ed8\u8d39\u3002\u672a\u6765\u65b9\u5411\u5e94\u662f\uff1a\u5185\u5bb9\uff08\u4eceSlack\uff09\u2192 \u5206\u53d1\uff08\u5230LinkedIn\uff09\u2192 \u4e92\u52a8\uff08\u4e3b\u52a8\u51fa\u51fb\uff09\u2192 \u8f6c\u5316\uff08\u79c1\u4fe1\u5f52\u56e0\uff09\u7684\u5168\u95ed\u73af\u7cfb\u7edf\uff0c\u5426\u5219\u59cb\u7ec8\u53ea\u662f\u534a\u6210\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\">Posting Machine AI<\/span>\n                <\/div>\n<div class=\"comment-content\">Posting Machine helps B2B founders build LinkedIn pipeline without adding hours to their week. Approve a week of posts in 10 minutes, all drafted from real conversations already happening in your Slack. Then see exactly who&#8217;s engaging and turn that attention into warm conversations \u2014 not cold outreach.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">We built Posting Machine because founders don\u2019t have a post content problem. They have a capture problem.<\/p>\n<p>The best raw material is already sitting in Slack: customer insights, product decisions, sharp opinions, lessons from calls, internal debates. But by the weekend, it\u2019s buried.<\/p>\n<p>Most AI writing tools ask you to start from a blank prompt. Ghostwriters are expensive and need constant context transfer. We wanted something closer to the way founders already work: react to a useful Slack thread, let the system find the signal, turn it into LinkedIn drafts, and approve in minutes.<\/p>\n<p>This is an early product, please don&#8217;t hesitate to let us know what you think!<\/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>Hey Product Hunt \ud83d\udc4b<\/p>\n<\/p>\n<p>We\u2019re building <strong>Posting Machine<\/strong> to help B2B founders turn LinkedIn into a founder-led sales channel.<\/p>\n<\/p>\n<p>It helps founders draft posts from Slack, improve content with analytics, and turn engagement into outreach opportunities.<\/p>\n<\/p>\n<p>We have a promo code for Product Hunt users. Comment below or message us if you\u2019d like to try it.<\/p>\n<\/p>\n<p>Would love to hear your feedback, questions, or anything you think we should improve.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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 3 options before committing to a message or reply is good!!!<br \/>But I want to create posts and comment on existing posts that have a problem I&#8217;m trying to solve on LinkedIn.<br \/>I&#8217;m not a slack user but I want to automate my LinkedIn engagement. Is that part of your roadmap?<\/p>\n<\/p>\n<p>Best of luck guys <a href=\"https:\/\/www.producthunt.com\/@ian_hsiao\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"ian_hsiao\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ian_hsiao<\/a>  <a href=\"https:\/\/www.producthunt.com\/@hank_wu_1999\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"hank_wu_1999\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@hank_wu_1999<\/a> <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@hank_wu_1999\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@hank_wu_1999<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@richard_andrews4\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@richard_andrews4<\/a>&nbsp;hey Richard! We\u2019re aiming to help B2B founders do founder-led sales; that\u2019s not currently on our road map but we will consider it! Can you share more about the goal for automating link in engagement?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#16<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/OO3ERK2XAZU42C\" class=\"app-title\">Tambr<\/a><\/p>\n<div class=\"one-liner\">Turn any story into a multi-voice audiobook<\/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>Tambr\u53ef\u5c06\u4efb\u610f\u6587\u672c\uff08\u5c0f\u8bf4\u3001\u5267\u672c\u3001\u540c\u4eba\u7b49\uff09\u8f6c\u5316\u4e3a\u591a\u89d2\u8272\u6709\u58f0\u4e66\uff0c\u901a\u8fc7AI\u81ea\u52a8\u4e3a\u6bcf\u4e2a\u89d2\u8272\u5206\u914d\u72ec\u7279\u55d3\u97f3\uff0c\u89e3\u51b3\u4f20\u7edfTTS\uff08\u6587\u672c\u8f6c\u8bed\u97f3\uff09\u5bf9\u8bdd\u751f\u786c\u3001\u7f3a\u4e4f\u6c89\u6d78\u611f\u7684\u6838\u5fc3\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/bbeffe3e-8e22-467c-bbc8-5ad6809b1d47.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/75d5368b-49a2-4985-a8d4-17cc9a02b9bd.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/96c19352-76e1-49d8-8dc6-d9ca4943dfd2.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\">eBook Reader<\/span><br \/>\n            <span class=\"tag\">Books<\/span><br \/>\n            <span class=\"tag\">Audio<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u6709\u58f0\u4e66<\/span><br \/>\n            <span class=\"tag\">\u591a\u89d2\u8272\u8bed\u97f3<\/span><br \/>\n            <span class=\"tag\">\u6587\u672c\u8f6c\u8bed\u97f3<\/span><br \/>\n            <span class=\"tag\">\u89d2\u8272\u914d\u97f3<\/span><br \/>\n            <span class=\"tag\">\u6c89\u6d78\u5f0f\u9605\u8bfb<\/span><br \/>\n            <span class=\"tag\">\u5c0f\u8bf4\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u521b\u610f\u5199\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u97f3\u9891\u5236\u4f5c<\/span><br \/>\n            <span class=\"tag\">AI\u8bed\u97f3\u5408\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\u79f0\u8d5e\u64cd\u4f5c\u7b80\u5355\u3001\u5165\u95e8\u5f15\u5bfc\u76f4\u89c2\uff1b\u4f46\u4e3b\u8981\u56f0\u60d1\u5728\u4e8e\u65e0\u6cd5\u81ea\u4e3b\u8c03\u6574\u89d2\u8272\u58f0\u97f3\uff0c\u671f\u5f85\u540e\u7eed\u7248\u672c\u589e\u52a0\u8bed\u97f3\u9009\u62e9\u529f\u80fd\u3002\u5236\u4f5c\u4eba\u5df2\u786e\u8ba4\u4e0b\u4e00\u7248\u5c06\u52a0\u5165\u58f0\u97f3\u5b9a\u5236\u9009\u9879\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                Tambr\u5207\u4e2d\u4e86\u4e00\u4e2a\u7cbe\u51c6\u4e14\u88ab\u4f4e\u4f30\u7684\u9700\u6c42\u2014\u2014\u8ba9\u201c\u542c\u6545\u4e8b\u201d\u771f\u6b63\u50cf\u201c\u770b\u6545\u4e8b\u201d\u4e00\u6837\u6709\u89d2\u8272\u8fa8\u8bc6\u5ea6\u3002\u5f53\u524d\u5927\u591a\u6570TTS\u5de5\u5177\u8981\u4e48\u662f\u673a\u68b0\u7684\u5355\u4e00\u4eba\u58f0\u6717\u8bfb\uff0c\u8981\u4e48\u9700\u8981\u7e41\u7410\u7684\u624b\u52a8\u6807\u8bb0\u548c\u914d\u97f3\u7d20\u6750\uff0cTambr\u7528\u201c\u81ea\u52a8\u63a8\u65ad\u5e74\u9f84\/\u6027\u522b\/\u5730\u57df\u201d\u7684\u903b\u8f91\uff0c\u628a\u7528\u6237\u64cd\u4f5c\u538b\u7f29\u5230\u7c98\u8d34\u6216\u4e0a\u4f20\u4e00\u6b65\uff0c\u8fd9\u662f\u5178\u578b\u7684\u201c\u964d\u7ef4\u4f53\u9a8c\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f469\u7968\u7684\u521d\u59cb\u6570\u636e\u4e5f\u66b4\u9732\u4e86\u4e24\u4e2a\u5173\u952e\u95ee\u9898\uff1a\u4e00\u662f\u5782\u76f4\u573a\u666f\u592a\u7a84\uff08\u9488\u5bf9\u6587\u5b66\u4e0e\u540c\u4eba\u5708\uff09\uff0c\u8fd9\u610f\u5473\u7740\u5546\u4e1a\u5929\u82b1\u677f\u53ef\u80fd\u53d7\u9650\uff1b\u4e8c\u662f\u5f53\u524d\u7248\u672c\u201c\u65e0\u6cd5\u624b\u52a8\u8c03\u97f3\u201d\u4f1a\u5bfc\u81f4\u4e13\u4e1a\u7528\u6237\uff08\u5982\u521b\u4f5c\u8005\uff09\u611f\u5230\u5931\u63a7\u2014\u2014\u867d\u7136AI\u63a8\u65ad\u5f88\u9177\uff0c\u4f46\u7528\u6237\u5bf9\u201c\u89d2\u8272\u58f0\u97f3\u201d\u7684\u60f3\u8c61\u5f80\u5f80\u65e0\u6807\u51c6\u7b54\u6848\uff0c\u9700\u8981\u7cbe\u7ec6\u63a7\u5236\u6743\u3002\u5236\u4f5c\u4eba\u627f\u8bfa\u7684\u201cvoice selection\u201d\u5982\u679c\u4e0d\u80fd\u63d0\u4f9b\u8db3\u591f\u7684\u81ea\u7531\u5ea6\u548c\u8c03\u4f18\u9009\u9879\uff08\u4f8b\u5982\u60c5\u7eea\u3001\u8bed\u901f\u3001\u65b9\u8a00\u5f3a\u5ea6\uff09\uff0c\u5f88\u53ef\u80fd\u6ca6\u4e3a\u9e21\u808b\u9884\u8bbe\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u53e6\u5916\uff0c\u4ece\u4ea7\u54c1\u903b\u8f91\u770b\uff0cTambr\u9690\u542b\u7684\u6700\u5927\u4ef7\u503c\u53ef\u80fd\u662f\u201c\u7248\u6743\u8f6c\u5316\u884d\u751f\u54c1\u901a\u9053\u201d\u2014\u2014\u4e00\u65e6AI\u80fd\u6279\u91cf\u5316\u3001\u9ad8\u8d28\u91cf\u5730\u5c06\u5c0f\u8bf4\u3001\u5267\u672c\u751a\u81f3\u8349\u7a3f\u8f6c\u5316\u4e3a\u5206\u89d2\u8272\u6709\u58f0\u4e66\uff0c\u5b83\u5b9e\u9645\u4e0a\u5728\u964d\u4f4e\u97f3\u9891\u51fa\u7248\u7269\u5236\u4f5c\u7684\u51c6\u5165\u95e8\u69db\uff0c\u8fd9\u624d\u662f\u5bf9\u97f3\u9891\u5185\u5bb9\u4f9b\u5e94\u94fe\u7684\u6f5c\u5728\u98a0\u8986\u3002\u4f46\u76ee\u524d\u5b83\u66f4\u50cf\u4e00\u4e2a\u201c\u6709\u8da3\u7684\u73a9\u5177\u201d\uff0c\u8981\u6210\u4e3a\u201c\u53ef\u9760\u7684\u5de5\u5177\u201d\uff0c\u4ecd\u9700\u89e3\u51b3\u89d2\u8272\u4e00\u81f4\u6027\u3001\u957f\u6587\u672c\u4e0a\u4e0b\u6587\u8bb0\u5fc6\u7b49\u96be\u9898\u3002\u4e00\u53e5\u8bdd\uff1a\u521b\u610f\u5f88\u597d\uff0c\u4f46\u522b\u8ba9\u201c\u81ea\u52a8\u201d\u53d8\u6210\u201c\u5355\u8c03\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\">Tambr<\/span>\n                <\/div>\n<div class=\"comment-content\">Tambr turns any story into a multi-voice audiobook. Paste, upload, or link anything and each character gets their own voice, so dialogue actually sounds real. Perfect for stories, novels, fanfiction, scripts, and more.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hi friends! \ud83d\udc4b<br \/>\nI\u2019m Caroline, one of the makers behind Tambr. <\/p>\n<p>I built Tambr because I\u2019ve always wanted to feel like I was inside the stories I was reading\u2014but most audio tools make dialogue sound robotic.<\/p>\n<p>Tambr turns any text into a multi-voice audiobook. Paste, upload, or link anything, and each character gets their own voice\u2014we infer things like age, gender, and region so it actually feels real.<\/p>\n<p>Would love for you to try it out and share any feedback. Thanks \u2764\ufe0f<\/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>I downloaded the app.<\/p>\n<p>Super easy UX but I didn&#8217;t understand how to change the voices.<\/p>\n<p>Love the simple onboarding.<\/p>\n<p>Best of luck <a href=\"https:\/\/www.producthunt.com\/@caroline_zhu1\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"caroline_zhu1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@caroline_zhu1<\/a> Rooting for you \u2728<\/p>\n<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/26d17dd8-9a37-45dc-8daa-3c2d6d61fc73.png?auto=compress&amp;codec=mozjpeg&amp;cs=strip&amp;auto=format\" style=\"max-width: 100%\"><\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@richard_andrews4\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@richard_andrews4<\/a>&nbsp;thanks Richard!! Voice selection coming in the next update, appreciate the kind feedback \u2728<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\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\/AZFBOXSHAX7PN7\" class=\"app-title\">today, a small planet \u2014 earth day<\/a><\/p>\n<div class=\"one-liner\">A 2-minute space for quiet reflection and connection.<\/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>\u4e00\u6b3e\u6781\u7b80\u7684\u9759\u5fc3\u5de5\u5177\uff0c\u5728\u82b1\u6708\u591c\u7b49\u81ea\u7136\u8282\u70b9\u5f15\u5bfc\u7528\u6237\u201c\u60f3\u5ff5\u4e00\u4e2a\u4eba\u201d\uff0c\u901a\u8fc72\u5206\u949f\u7684\u6c89\u601d\u4e0e\u4e92\u52a8\u97f3\u753b\uff0c\u7f13\u89e3\u65e5\u5e38\u7684\u6d6e\u8e81\u4e0e\u5b64\u72ec\u611f\uff0c\u63d0\u4f9b\u7247\u523b\u5185\u5fc3\u5b81\u9759\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\/b707f610-cd5f-4305-b74d-0168de203ad7.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/8002b46a-3d8e-442a-bc11-a82302457d32.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/eafe0081-684c-47d7-bcaa-f85c16c680a1.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/5a298973-faa3-4ad6-9170-c80836f6b319.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Music<\/span><br \/>\n            <span class=\"tag\">Meditation<\/span><br \/>\n            <span class=\"tag\">Spirituality<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u8d5e\u8d4f\u754c\u9762\u8bbe\u8ba1\u3001\u97f3\u6548\u4e0e\u52a8\u753b\u7684\u7528\u5fc3\uff0c\u8ba4\u4e3a\u5b83\u5e26\u6765\u4e86\u201c\u5239\u90a3\u6539\u53d8\u4e16\u754c\u201d\u7684\u4f53\u9a8c\u3002\u4f46\u8bc4\u8bba\u5747\u4e3a\u6b63\u9762\u53cd\u9988\uff0c\u672a\u63d0\u5177\u4f53\u95ee\u9898\u6216\u6539\u8fdb\u5efa\u8bae\uff0c\u7f3a\u4e4f\u5b9e\u8d28\u6027\u6279\u5224\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                \u8fd9\u6b3e\u4ea7\u54c1\u662f\u5178\u578b\u7684\u201c\u5c0f\u800c\u7f8e\u201d\u60c5\u611f\u5b9e\u9a8c\uff0c\u5b83\u4ee5Kenshi Yonezu\u7684\u6b4c\u66f2\u4e3a\u7075\u611f\uff0c\u5c06\u4e2a\u4eba\u521b\u4f5c\u4e0e\u516c\u4f17\u60c5\u7eea\u8282\u70b9\uff08\u82b1\u6708\u591c\u3001\u5730\u7403\u65e5\uff09\u5de7\u5999\u7f1d\u5408\u3002\u5176\u6838\u5fc3\u4ef7\u503c\u5e76\u975e\u529f\u80fd\u521b\u65b0\uff0c\u800c\u662f\u63d0\u4f9b\u4e00\u79cd\u201c\u88ab\u5141\u8bb8\u5b89\u9759\u201d\u7684\u4eea\u5f0f\uff1a\u4e00\u53e5\u201c\u60f3\u5ff5\u4e00\u4e2a\u4eba\u201d\u7684\u63d0\u95ee\uff0c\u914d\u5408\u65cb\u8f6c\u5730\u7403\u4e0e\u80cc\u666f\u97f3\uff0c\u7cbe\u51c6\u51fb\u4e2d\u4e86\u90fd\u5e02\u4eba\u666e\u904d\u7684\u60c5\u611f\u532e\u4e4f\u2014\u2014\u4e0d\u662f\u7f3a\u5de5\u5177\uff0c\u800c\u662f\u7f3a\u4e00\u4e2a\u8ba9\u60c5\u7eea\u5408\u6cd5\u964d\u843d\u7684\u5bb9\u5668\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u51b7\u9759\u770b\uff0c\u5b83\u66f4\u50cf\u4e00\u4e2a\u6570\u5b57\u6807\u672c\u800c\u975e\u6210\u719f\u4ea7\u54c1\u3002\u6295\u7968\u4ec58\u7968\uff0c\u8bc4\u8bba\u5168\u90e8\u662f\u521b\u4f5c\u8005\u672c\u4eba\u7684\u6df1\u60c5\u56de\u590d\u800c\u975e\u771f\u5b9e\u7684\u7b2c\u4e09\u65b9\u5ba2\u8bc9\uff0c\u663e\u793a\u51fa\u9879\u76ee\u5c1a\u5904\u4e8e\u6781\u65e9\u671f\u7684\u5f00\u53d1\u8005\u81ea\u55e8\u9636\u6bb5\u3002\u4ea7\u54c1\u51e0\u4e4e\u4e0d\u89e3\u51b3\u4efb\u4f55\u5b9e\u9645\u95ee\u9898\uff0c\u4e5f\u65e0\u6cd5\u5f62\u6210\u6301\u7eed\u4f7f\u7528\u4e60\u60ef\u2014\u20142\u5206\u949f\u7684\u8bbe\u5b9a\u51b3\u5b9a\u4e86\u5b83\u662f\u4e00\u6b21\u6027\u7684\u60c5\u7eea\u6d9f\u6f2a\uff0c\u800c\u975e\u957f\u671f\u966a\u4f34\u3002\u4f5c\u4e3a\u7c89\u4e1d\u5411\u7684\u827a\u672f\u9879\u76ee\uff0c\u5b83\u8db3\u591f\u771f\u8bda\uff1b\u4f46\u4f5c\u4e3a\u201c\u4ea7\u54c1\u201d\uff0c\u5b83\u7f3a\u4e4f\u7528\u6237\u7559\u5b58\u7684\u57fa\u7840\uff08\u65e0\u65e5\u8bb0\u3001\u65e0\u63d0\u9192\u3001\u65e0\u793e\u4ea4\u5206\u4eab\uff09\uff0c\u5546\u4e1a\u4ef7\u503c\u8d8b\u8fd1\u4e8e\u96f6\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u771f\u6b63\u503c\u5f97\u5173\u6ce8\u7684\uff0c\u662f\u8fd9\u79cd\u201c\u5fae\u5c0f\u800c\u660e\u786e\u7684\u60c5\u611f\u5207\u5165\u70b9\u201d\u5bf9\u72ec\u7acb\u5f00\u53d1\u8005\u7684\u542f\u53d1\uff1a\u5728\u6cdb\u6ee5\u7684\u6548\u7387\u5de5\u5177\u4e2d\uff0c\u6562\u4e8e\u4e3a\u60c5\u7eea\u505a\u51cf\u6cd5\u53cd\u800c\u80fd\u8131\u9896\u800c\u51fa\u3002\u4f46\u82e5\u60f3\u4ece\u201c\u70b9\u8d5e\u201d\u8d70\u5411\u201c\u4ed8\u8d39\u201d\uff0c\u56e2\u961f\u8fd8\u9700\u8865\u4e0a\u7528\u6237\u884c\u4e3a\u95ed\u73af\u7684\u8bbe\u8ba1\u2014\u2014\u6bd4\u5982\u8ba9\u201c\u60f3\u5ff5\u201d\u53ef\u88ab\u8bb0\u5f55\u3001\u88ab\u56de\u770b\uff0c\u751a\u81f3\u8ba9\u4e0d\u540c\u7528\u6237\u7684\u201c\u7247\u523b\u201d\u4ea7\u751f\u8fde\u63a5\uff0c\u5426\u5219\u6ce8\u5b9a\u662f\u53c8\u4e00\u5ea7\u5b64\u72ec\u7684\u6708\u4e0b\u706f\u706b\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\">today, a small planet \u2014 earth day<\/span>\n                <\/div>\n<div class=\"comment-content\">Tonight is the Flower Moon \u2014 May&#8217;s full moon, named for the blossoms that bloom under its light. I built this small app to mark the day. This is a personal fan tribute, inspired by &#8220;Spinning Globe&#8221; (\u5730\u7403\u5100) \u2014 a song by Japanese artist Kenshi Yonezu for Studio Ghibli&#8217;s The Boy and the Heron. It\u2019s a quiet tool designed not to change the world, but to soften the way we meet our own ordinary days. How it works: The app asks one quiet question: &#8220;Think of someone.&#8221; That&#8217;s all. Thank You.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">The moment you thought of someone, even briefly, changes the world.&#8221;<\/p>\n<p>Listen to my story\u2193<br \/>\n<a href=\"https:\/\/soundcloud.com\/27qkoaxar2i6\/app310\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/soundcloud.com\/27qkoaxar&#8230;<\/a><\/p>\n<p>Made with quiet hands in Japan. I hope this provides a moment of peace for your heart on this Flower Moon night.<br \/>\nYou can read more about the story behind this app and listen to my a cappella performance in my Medium article here:<br \/>\n<a href=\"https:\/\/medium.com\/p\/d0e5f534b7f3\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/medium.com\/p\/d0e5f534b7f3<\/a><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Thanks a million, Liviu Chita! I\u2019m so glad you enjoyed the globe and the soundscape. All of you encouragement and Kenshi Yonezu\u2019s music are the two pillars that support my work. Best of luck to you too! \ud83c\udf0d\u2728<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>Thank you so much,David! I\u2019m incredibly moved by your kind upvoted. Your support, along with the music of Kenshi Yonezu, is what keeps me going and inspires my creativity every day. It means the world to me that you noticed the details like the sound and animations!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>Thank you for the amazing feedback\u3001Richard! I put a lot of heart into the intentionality of this project. My creative journey is fueled by supporters like you and the profound music of Kenshi Yonezu. Knowing that the globe and sound resonated with you gives me so much energy to keep building!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Such a beautiful website!!!!<\/p>\n<p>Love the intentionality behind the interactions.<\/p>\n<p>Loved the globe animation. It&#8217;s a chefs kiss.<\/p>\n<p>Even the background sound it heavy.<\/p>\n<\/p>\n<p>Best of luck mate!!! Rooting for you \ud83c\udf0e<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\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\/SNXUJPXZIGLQY2\" class=\"app-title\">Graphloom<\/a><\/p>\n<div class=\"one-liner\">The home for Etsy sellers &#8211; AI images + listings in 60s<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">7<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Graphloom\u4e13\u4e3aEtsy\u5356\u5bb6\u6253\u9020\uff0c\u80fd\u572860\u79d2\u5185\u5c06\u4ea7\u54c1\u7167\u7247\u8f6c\u4e3a\u5de5\u4f5c\u5ba4\u7ea7AI\u56fe\u50cf\uff0c\u5e76\u81ea\u52a8\u751f\u6210\u5b8c\u6574\u5546\u54c1\u5217\u8868\uff0c\u89e3\u51b3\u5c0f\u5356\u5bb6\u65e0\u529b\u627f\u62c5\u4e13\u4e1a\u6444\u5f71\u8d39\u7528\u7684\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/1d53f5a1-2581-4730-9d76-24e9d1a4b6db.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/6b0c3acf-fde0-4407-a7ac-d1faae19f023.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/62bc8d30-2b7f-42ba-b5cf-fe76c65f4a65.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/5ae6fec4-d76c-483d-a3fa-dc3528ac85ca.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/3ae09d23-bfc5-4121-8b43-7066c2df467d.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\/eb339f87-2346-4631-8e66-5da490047ce2.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/0V1YGcwD0q0\"><source src=\"https:\/\/youtu.be\/0V1YGcwD0q0\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">E-Commerce<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u56fe\u50cf\u751f\u6210<\/span><br \/>\n            <span class=\"tag\">Etsy\u5356\u5bb6\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u5546\u54c1\u6444\u5f71<\/span><br \/>\n            <span class=\"tag\">\u5217\u8868\u751f\u6210\u5668<\/span><br \/>\n            <span class=\"tag\">\u7535\u5546\u89c6\u89c9\u4f18\u5316<\/span><br \/>\n            <span class=\"tag\">\u4f4e\u6210\u672c\u521b\u4e1a<\/span><br \/>\n            <span class=\"tag\">\u80cc\u666f\u66ff\u6362<\/span><br \/>\n            <span class=\"tag\">\u4ea7\u54c1\u8425\u9500<\/span><br \/>\n            <span class=\"tag\">\u81ea\u52a8\u5316\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">FLUX Kontext<\/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\u4ebaAmit\u5f3a\u8c03\u4e86\u4ea7\u54c1\u9488\u5bf9Etsy\u5356\u5bb6\u7684\u4e13\u4e1a\u6027\u548c\u4f4e\u6210\u672c\u3002\u7528\u6237\u8be2\u95ee\u80fd\u5426\u9009\u62e9\u4e0e\u5e97\u94fa\u73b0\u6709\u98ce\u683c\u5339\u914d\u7684\u80cc\u666f\u6216\u6837\u5f0f\uff0c\u521b\u59cb\u56e2\u961f\u56de\u5e94\u652f\u6301\u81ea\u5b9a\u4e49\u98ce\u683c\u6216\u8f93\u5165\u63d0\u793a\u8bcd\uff0c\u5e76\u63d0\u793a\u7f51\u7ad9\u6709\u5b8c\u6574\u89c6\u9891\u6f14\u793a\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Graphloom\u7cbe\u51c6\u5207\u5165\u4e86\u4e00\u4e2a\u5c0f\u800c\u75db\u7684\u7f1d\u9699\u5e02\u573a\uff1aEtsy\u624b\u5de5\u5356\u5bb6\u5bf9\u4e13\u4e1a\u56fe\u7247\u7684\u9700\u6c42\u4e0e\u9ad8\u6602\u6444\u5f71\u6210\u672c\u4e4b\u95f4\u7684\u5de8\u5927\u9e3f\u6c9f\u3002\u5176\u6838\u5fc3\u4ef7\u503c\u4e0d\u5728\u4e8eAI\u56fe\u50cf\u6280\u672f\u7684\u9886\u5148\uff08FLUX Kontext\u4fdd\u6301\u4ea7\u54c1\u4e00\u81f4\u6027\u662f\u57fa\u7840\u80fd\u529b\uff09\uff0c\u800c\u5728\u4e8e\u5bf9Etsy\u751f\u6001\u7684\u6df1\u5ea6\u8026\u5408\u2014\u2014\u5c06\u201c\u51fa\u7247\u201d\u4e0e\u201c\u4e0a\u67b6\u201d\u4e24\u4e2a\u5173\u952e\u52a8\u4f5c\u538b\u7f29\u572860\u79d2\u5185\uff0c\u5e76\u76f4\u63a5\u4ea7\u51fa\u5e73\u53f0\u6240\u9700\u7684\u6807\u9898\u3001\u6807\u7b7e\u3001\u63cf\u8ff0\uff0c\u8fd9\u662f\u901a\u7528\u578bAI\u56fe\u50cf\u5de5\u5177\u96be\u4ee5\u6bd4\u62df\u7684\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u76ee\u524d7\u7968\u7684\u4f4e\u70ed\u5ea6\u6697\u793a\u5176\u65e9\u671f\u9636\u6bb5\u5c1a\u5728\u51b7\u542f\u52a8\u3002\u4ea7\u54c1\u771f\u6b63\u7684\u62a4\u57ce\u6cb3\u4e0d\u5728\u4e8e\u201c\u964d\u4ef7\u201d\uff0c\u800c\u5728\u4e8e\u80fd\u5426\u6301\u7eed\u89e3\u51b3\u5356\u5bb6\u201c\u98ce\u683c\u4e00\u81f4\u6027\u201d\u548c\u201c\u6279\u91cf\u5316\u7ba1\u7406\u201d\u7684\u8fdb\u9636\u9700\u6c42\u2014\u2014\u7528\u6237\u5173\u4e8e\u201c\u5339\u914d\u5e97\u94fa\u98ce\u683c\u201d\u7684\u63d0\u95ee\u5df2\u63ed\u793a\u8fd9\u4e00\u70b9\u3002\u6b64\u5916\uff0c$4\/\u6708\u7684\u5b9a\u4ef7\u867d\u7136\u4f4e\u5ec9\uff0c\u5374\u53ef\u80fd\u9677\u5165\u201c\u5de5\u5177\u66ff\u4ee3\u201d\u800c\u975e\u201c\u589e\u503c\u670d\u52a1\u201d\u7684\u9677\u9631\u3002\u5982\u679c\u80fd\u5c06AI\u751f\u6210\u7684\u56fe\u7247\u6570\u636e\u53cd\u54fa\u7ed9\u5356\u5bb6\uff08\u4f8b\u5982\u5206\u6790\u54ea\u79cd\u98ce\u683c\u8f6c\u5316\u7387\u66f4\u9ad8\uff09\uff0c\u6216\u6784\u5efa\u793e\u533a\u5185\u7684\u98ce\u683c\u6a21\u677f\u5171\u4eab\uff0cGraphloom\u624d\u80fd\u4ece\u4e00\u4e2a\u201c\u7701\u94b1\u7684\u5de5\u5177\u201d\u8fdb\u5316\u4e3a\u201c\u5e2e\u5356\u5bb6\u8d5a\u94b1\u7684\u5e73\u53f0\u201d\u3002\u5426\u5219\uff0c\u9762\u5bf9Canva\u3001Midjourney\u7b49\u5de8\u5934\u5728\u7535\u5546\u9886\u57df\u7684\u6e17\u900f\uff0c\u5176\u751f\u5b58\u7a7a\u95f4\u5c06\u505c\u7559\u5728\u5bf9\u4ef7\u683c\u6781\u5ea6\u654f\u611f\u7684\u957f\u5c3e\u7528\u6237\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\">Graphloom<\/span>\n                <\/div>\n<div class=\"comment-content\">We built Graphloom for one reason: Etsy sellers deserve professional product photos &#8211; not just the ones who can afford a $200 photographer. \ud83d\uddbc\ufe0f WHAT IT DOES: Upload your product photo \u2192 get studio-quality images + a complete Etsy listing generator in under 60 seconds.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey PH community! \ud83d\ude4f<\/p>\n<p>I&#8217;m Amit, maker of Graphloom.<\/p>\n<p>Quick story: I was talking to Etsy sellers and kept hearing<br \/>\nthe same thing &#8211; &#8220;My products are great but my photos look<br \/>\namateur.&#8221; A professional photoshoot was $200+. Way too<br \/>\nexpensive for most handmade sellers.<\/p>\n<p>That&#8217;s why I built Graphloom.<\/p>\n<p>\ud83d\udd25 What makes us different from generic AI tools:<br \/>\n\u2192 FLUX Kontext AI keeps your EXACT product (not just similar)<br \/>\n\u2192 Built specifically for Etsy &#8211; not a generic image tool<br \/>\n\u2192 Listing generator included (title + 13 tags + description)<br \/>\n\u2192 $4\/month to start &#8211; cheaper than one coffee<\/p>\n<p>\ud83c\udf81 For PH community: Use code PRODUCTHUNT for 30% off<\/p>\n<p>I&#8217;m here all day to answer questions. What would you want<br \/>\nto see next? Background remover? Bulk generation? Let me know! \ud83d\udc47<\/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>Can you choose a style or background that matches a shop\u2019s existing vibe?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\">@karimbenkeroum you can choose style or write custom prompt, watch full video<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">@karimbenkeroum The video is provided on the website.<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#19<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/CHUWGJV33EB7H3\" class=\"app-title\">bouncy<\/a><\/p>\n<div class=\"one-liner\">Tiny Rust headless browser for scraping.<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>bouncy\u662f\u4e00\u6b3e\u8f7b\u91cf\u7ea7Rust\u65e0\u5934\u6d4f\u89c8\u5668\uff0c\u4e13\u4e3a\u9700\u8981\u5904\u7406JavaScript\u6e32\u67d3\u9875\u9762\u7684\u7f51\u9875\u6293\u53d6\u4efb\u52a1\u800c\u751f\uff0c\u5728Playwright\uff08\u81c3\u80bf\u3001\u4f9d\u8d56\u591a\uff09\u548ccurl\uff08\u65e0\u6cd5\u5904\u7406\u52a8\u6001\u5185\u5bb9\uff09\u4e4b\u95f4\u63d0\u4f9b\u4e86\u4e00\u4e2a\u4f4e\u8d44\u6e90\u6d88\u8017\u3001\u9ad8\u542f\u52a8\u901f\u5ea6\u7684\u4e2d\u95f4\u65b9\u6848\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\/f377946c-da3c-463a-9eb9-338c21ccf64c.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\/2c30c204-3b9b-4b5b-9fe9-c28d2ca4c1d7.gif?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">GitHub<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u7f51\u9875\u6293\u53d6<\/span><br \/>\n            <span class=\"tag\">\u65e0\u5934\u6d4f\u89c8\u5668<\/span><br \/>\n            <span class=\"tag\">Rust<\/span><br \/>\n            <span class=\"tag\">\u547d\u4ee4\u884c\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">MCP\u670d\u52a1\u5668<\/span><br \/>\n            <span class=\"tag\">Playwright\u66ff\u4ee3<\/span><br \/>\n            <span class=\"tag\">\u8f7b\u91cf\u7ea7<\/span><br \/>\n            <span class=\"tag\">\u5355\u4e8c\u8fdb\u5236<\/span><br \/>\n            <span class=\"tag\">V8\u5f15\u64ce<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u5f00\u53d1\u8005\uff08\u4ea7\u54c1\u4f5c\u8005\uff09\u5728\u8bc4\u8bba\u4e2d\u89e3\u91ca\u4e86\u6784\u5efa\u52a8\u673a\uff1a\u73b0\u6709\u65b9\u6848\uff08Playwright\/curl\uff09\u5728\u201c\u53ea\u6293\u53d6\u5c11\u91cf\u52a8\u6001\u5185\u5bb9\u201d\u7684\u573a\u666f\u4e0b\u90fd\u8fc7\u4e8e\u7b28\u91cd\u6216\u4e0d\u8db3\u3002\u4ea7\u54c1\u5b9a\u4f4d\u4e3a\u4e24\u8005\u7684\u4e2d\u95f4\u5730\u5e26\uff0c\u5f3a\u8c03\u4f53\u79ef\u5c0f\uff0810-21MB\uff09\u3001\u542f\u52a8\u5feb\uff08~30ms\uff09\u3001\u652f\u6301CDP\u534f\u8bae\u4ee5\u4fbf\u4f5c\u4e3aPlaywright\u7684\u540e\u7aef\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                bouncy\u5e76\u975e\u53c8\u4e00\u4e2a\u201c\u66f4\u597d\u7684Playwright\u201d\uff0c\u5b83\u7684\u806a\u660e\u4e4b\u5904\u6070\u6070\u5728\u4e8e\u627f\u8ba4Playwright\u548ccurl\u90fd\u6709\u5176\u9002\u7528\u8303\u56f4\uff0c\u5e76\u7cbe\u51c6\u5207\u5165\u4e24\u8005\u4e4b\u95f4\u7684\u201c\u8fb9\u7f18\u5730\u5e26\u201d\u3002\u5bf9\u4e8e\u9700\u8981\u9891\u7e41\u3001\u5c0f\u6279\u91cf\u6293\u53d6JS\u6e32\u67d3\u9875\u9762\u7684\u573a\u666f\uff08\u5982\u76d1\u63a7\u5355\u9875\u9762\u72b6\u6001\u53d8\u5316\u3001\u63d0\u53d6\u5c11\u91cf\u5143\u6570\u636e\u3001\u4e3aLLM\u63d0\u4f9bMCP\u63a5\u53e3\uff09\uff0c\u5b83\u7684\u4ef7\u503c\u662f\u98a0\u8986\u6027\u7684\uff1a10MB\u7ea7\u522b\u7684\u5355\u4e8c\u8fdb\u5236\u300130ms\u7684\u51b7\u542f\u52a8\uff0c\u610f\u5473\u7740\u4f60\u53ef\u4ee5\u50cf\u7528curl\u4e00\u6837\u6beb\u65e0\u5fc3\u7406\u8d1f\u62c5\u5730\u5728\u811a\u672c\u7ba1\u9053\u91cc\u8c03\u7528\u5b83\uff0c\u800c\u4e0d\u5fc5\u8003\u8651\u590d\u6742\u7684Node\u73af\u5883\u548c\u5e9e\u5927\u7684Chromium\u5b9e\u4f8b\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5b83\u7684\u771f\u6b63\u4ef7\u503c\u5728\u4e8e\u201c\u53bb\u91cd\u201d\u3002\u201cown DOM, embedded V8, HTTP client\u201d\u8868\u660e\u5b83\u4ece\u6839\u672c\u4e0a\u780d\u6389\u4e86\u5bf9\u5b9e\u9645\u6d4f\u89c8\u5668\u5e03\u5c40\u548c\u6e32\u67d3\u80fd\u529b\u7684\u4f9d\u8d56\uff0c\u53ea\u4fdd\u7559\u4e86JS\u6267\u884c\u548cHTML\u89e3\u6790\u3002\u8fd9\u79cd\u6781\u81f4\u7684\u201c\u6700\u5c0f\u53ef\u7528\u201d\u8bbe\u8ba1\uff0c\u6070\u597d\u89e3\u51b3\u4e86Playwright\u751f\u6001\u4e2d\u201c\u4e3a\u4e86\u62ff\u4e00\u4e2a\u6807\u9898\u800c\u542f\u52a8\u6574\u5957\u6d4f\u89c8\u5668\u6e32\u67d3\u5f15\u64ce\u201d\u7684\u8352\u8c2c\u6d6a\u8d39\u3002\u53e6\u5916\uff0c\u5bf9Chrome DevTools Protocol\u7684\u652f\u6301\u53ef\u8c13\u795e\u6765\u4e4b\u7b14\uff0c\u8fd9\u8ba9\u5b83\u4e0d\u662f\u4e00\u4e2a\u5b64\u7acb\u5de5\u5177\uff0c\u800c\u662f\u80fd\u65e0\u7f1d\u878d\u5165\u73b0\u6709Playwright\/puppeteer\u5de5\u4f5c\u6d41\u7684\u540e\u7aef\u66ff\u6362\uff0c\u964d\u4f4e\u4e86\u6280\u672f\u5207\u6362\u6210\u672c\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u5fc5\u987b\u6307\u51fa\u5176\u6f5c\u5728\u5c40\u9650\u3002\u780d\u6389\u5e03\u5c40\u548c\u6e32\u67d3\u610f\u5473\u7740\u5b83\u65e0\u6cd5\u5904\u7406\u90a3\u4e9b\u4e25\u91cd\u4f9d\u8d56CSS\u52a8\u753b\u3001Canvas\u6216\u590d\u6742DOM\u91cd\u6392\u7684\u52a8\u6001\u751f\u6210\u5185\u5bb9\u3002\u5bf9\u4e8e\u90a3\u4e9b\u9700\u8981\u622a\u56fe\u3001\u6e32\u67d3\u7279\u5b9a\u56fe\u7247\u5c3a\u5bf8\u6216\u6267\u884c\u590d\u6742\u4ea4\u4e92\u7684\u573a\u666f\uff0cbouncy\u5c06\u65e0\u80fd\u4e3a\u529b\u3002\u5b83\u5de7\u5999\u4f46\u7edd\u975e\u4e07\u80fd\uff0c\u5982\u679c\u672a\u6765\u6709\u91ce\u5fc3\u6311\u6218\u5b8c\u6574\u6d4f\u89c8\u5668\u6027\u80fd\uff0c\u53ef\u80fd\u4f1a\u9677\u5165\u96be\u5ea6\u9677\u9631\u3002\u5bf9\u4e8e\u5176\u5f53\u524d\u5b9a\u4f4d\u2014\u2014\u4e00\u4e2a\u201c\u6700\u597d\u7684curl\u66ff\u4ee3\u54c1\u201d\u548c\u201c\u6700\u8f7b\u7684Playwright\u540e\u7aef\u201d\uff0cbouncy\u662f\u7280\u5229\u7684\uff0c\u4f46\u5f00\u53d1\u8005\u9700\u8981\u6e05\u9192\u8ba4\u77e5\u5b83\u7684\u8fb9\u754c\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\">bouncy<\/span>\n                <\/div>\n<div class=\"comment-content\">bouncy is a web scraper. Tiny, fast, ships as a single binary \u2014 no Node, no Chrome, no Python to install. Point it at a URL and get back the HTML, the visible text, or every link on the page. If the page only renders properly with JavaScript, bouncy will run the JavaScript too. Use it from the command line like curl, or drop it in as a Playwright backend.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Why I built bouncy<\/p>\n<p>Every time I needed to scrape a JS-rendered page, the choice was: spin up Playwright (200+ MB per page, ~1s cold start, Node + Chromium) or fall back to curl + regex (fast, breaks on anything dynamic). For most jobs (fetch a page, extract a title, run one tiny snippet of JS) both felt wrong.<\/p>\n<p>So I built bouncy. A tiny Rust headless browser: 10-21 MB per page, ~30 ms cold start with V8, ships as a single binary. No Chromium, no Node runtime. Has its own DOM, embedded V8, HTTP client, and HTML extractor, all separately usable as crates if you only need one part.<\/p>\n<p>It also speaks the Chrome DevTools Protocol, so Playwright \/ puppeteer-core can drive it as a drop-in for the cases where you don&#8217;t need real layout or paint. Plus an MCP server so Claude \/ Cursor \/ any MCP client can scrape with it natively.<\/p>\n<p>If you&#8217;ve ever wished there was a middle ground between Playwright and curl, this is it.<\/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\">#20<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/ZZPLO74XDXKMIU\" class=\"app-title\">NYC Street Cleaning<\/a><\/p>\n<div class=\"one-liner\">The traffic light for NYC alternate-side parking<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>NYC Street Cleaning \u662f\u4e00\u6b3e\u6781\u7b80\u7684\u7ebd\u7ea6\u8def\u8fb9\u505c\u8f66\u6362\u8fb9\u6e05\u626b\u63d0\u9192\u5de5\u5177\uff0c\u901a\u8fc7\u7ea2\u7eff\u706f\u5f0f\u989c\u8272\u5361\u7247\uff0c\u8ba9\u8f66\u4e3b\u5728\u505c\u8f66\u4f4d\u4e0a\u5373\u523b\u5224\u65ad\u662f\u5426\u9700\u8981\u632a\u8f66\uff0c\u5f7b\u5e95\u89e3\u51b3\u201c\u6362\u8fb9\u505c\u8f66\u201d\u89c4\u5219\u7e41\u7410\u3001\u7f5a\u5355\u9891\u53d1\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\/974ef46c-4680-413b-bba2-ba0687337c61.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/9dc9e3b4-02ce-488c-b729-00936b398914.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/d66f2ae5-fac0-4a43-9efb-e47c861f60e5.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/718f5925-4232-4a8d-b3ad-85847260862a.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/0e8ad1e0-c7b3-4d43-9857-8e7ba80d60ab.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\">Cars<\/span><br \/>\n            <span class=\"tag\">Maps<\/span><br \/>\n            <span class=\"tag\">GPS<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u7ebd\u7ea6\u505c\u8f66<\/span><br \/>\n            <span class=\"tag\">\u6362\u8fb9\u505c\u8f66<\/span><br \/>\n            <span class=\"tag\">ASP<\/span><br \/>\n            <span class=\"tag\">\u4ea4\u901a\u7f5a\u5355<\/span><br \/>\n            <span class=\"tag\">\u6781\u7b80\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u57ce\u5e02\u5b9e\u7528\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u65f6\u63d0\u9192<\/span><br \/>\n            <span class=\"tag\">\u4ea4\u901a\u6570\u636e<\/span><br \/>\n            <span class=\"tag\">iOS<\/span><br \/>\n            <span class=\"tag\">\u514d\u8d39\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\u4ebaKip\u5206\u4eab\u5f00\u53d1\u52a8\u673a\uff08\u5e74\u65364\u5f20\u7f5a\u5355\uff09\u4e0e\u6280\u672f\u7ec6\u8282\uff08\u8857\u533a\u7ea7\u7cbe\u5ea6\u3001340k\u6807\u8bc6\u89e3\u6790\u3001\u53cc\u65f6\u95f4\u8868\u300130+\u5929\u6682\u505c\u8bc6\u522b\u3001\u667a\u80fd\u63a8\u9001\uff09\u3002\u8bc4\u8bba\u4e3b\u8981\u662f\u5bf9\u4ea7\u54c1\u7684\u8ba4\u53ef\u4e0e\u529f\u80fd\u8be2\u95ee\uff0c\u65e0\u8d1f\u9762\u53cd\u9988\uff0cAndroid\u7528\u6237\u671f\u5f85\u767b\u53f0\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                \u8fd9\u4e2a\u4ea7\u54c1\u672c\u8d28\u662f\u5bf9\u201c\u4fe1\u606f\u8fc7\u8f7d\u201d\u7684\u4e00\u79cd\u53cd\u5411\u62b5\u6297\u3002\u7ebd\u7ea6\u8d85\u8fc7130\u4e07\u8f66\u4e3b\u6bcf\u5929\u90fd\u9700\u8981\u9762\u5bf9\u5bc6\u5bc6\u9ebb\u9ebb\u7684\u6e05\u626b\u65f6\u95f4\u8868\u3001\u8282\u5047\u65e5\u6682\u505c\u548c\u5e02\u653f\u7a81\u53d1\u901a\u77e5\uff0c\u800c\u51e0\u4e4e\u6240\u6709\u7ade\u54c1\u8981\u4e48\u7528\u4ed8\u8d39\u5899\u81ea\u65ad\u751f\u8def\uff0c\u8981\u4e48\u7528\u8bbe\u8ba1\u5806\u53e0\u628a\u7b80\u5355\u7b54\u6848\u85cf\u8fdb\u4e09\u5c42\u83dc\u5355\u3002Kip \u4ece\u81ea\u5df1\u201c\u5e74\u65364\u5f20\u7f5a\u5355\u201d\u7684\u79c1\u75db\u51fa\u53d1\uff0c\u505a\u51fa\u4e86\u4e00\u4e2a\u53cd\u5e38\u8bc6\u4f46\u6781\u5ea6\u597d\u7528\u7684APP\u2014\u2014\u53ea\u5728\u5c4f\u5e55\u4e0a\u663e\u793a\u201c\u7ea2\u3001\u7eff\u3001\u9ec4\u201d\u4e09\u4e2a\u989c\u8272\u3002\u8fd9\u65e2\u662f\u529f\u80fd\u8bbe\u8ba1\uff0c\u4e5f\u662f\u6218\u7565\u9009\u62e9\uff1a\u7528\u6237\u60f3\u8981\u7684\u4e0d\u518d\u662f\u66f4\u591a\u6570\u636e\uff0c\u800c\u662f\u88ab\u89e3\u8bfb\u540e\u7684\u552f\u4e00\u7b54\u6848\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ea7\u54c1\u4ef7\u503c\u4e0d\u5728\u4e8e\u6280\u672f\u591a\u590d\u6742\uff08\u867d\u7136\u89e3\u679034\u4e07\u6761\u8857\u533a\u6807\u8bc6\u300115\u5206\u949f\u5237\u65b0\u6682\u505c\u6570\u636e\u786e\u5b9e\u4e0d\u7b80\u5355\uff09\uff0c\u800c\u5728\u4e8e\u5b83\u5b8c\u7f8e\u754c\u5b9a\u4e86\u201c\u4ec0\u4e48\u662f\u597d\u5de5\u5177\u7684\u622a\u6b62\u7ebf\u201d\u2014\u2014\u544a\u8bc9\u4f60\u73b0\u5728\u8be5\u4e0d\u8be5\u52a8\uff0c\u4e00\u5206\u949f\u540e\u5c31\u6d88\u5931\u3002\u8fd9\u79cd\u8bbe\u8ba1\u54f2\u5b66\u5728\u8d85\u5927\u57ce\u5e02\u516c\u5171\u670d\u52a1\u9886\u57df\u6781\u5176\u7a00\u7f3a\uff1a\u4e0d\u505a\u5168\u80fd\u7ba1\u5bb6\uff0c\u53ea\u505a\u8def\u53e3\u4fe1\u53f7\u706f\u3002AI\u9510\u8bc4\u8ba4\u4e3a\uff0c\u5982\u679c\u56e2\u961f\u80fd\u575a\u6301\u201c\u4e0d\u81a8\u80c0\u201d\u539f\u5219\uff08\u4e0d\u52a0\u5730\u56fe\u3001\u4e0d\u52a0\u8ba1\u8d39\u5668\u3001\u4e0d\u52a0\u5e7f\u544a\u9a9a\u6270\uff09\uff0c\u5b83\u5c06\u6210\u4e3a\u7ebd\u7ea6\u5e02\u653f\u670d\u52a1\u7c7b\u5e94\u7528\u7684\u73b0\u8c61\u7ea7\u6807\u6746\uff0c\u5176\u4ef7\u503c\u8fdc\u8d85\u4eca\u65e56\u7968\u6240\u80fd\u4ee3\u8868\u3002\u771f\u6b63\u7684\u8106\u5f31\u70b9\u5728\u4e8e\uff1a\u5355\u9760\u4e00\u4e2a\u9690\u79c1\u7b56\u7565\u7684\u9690\u85cf\u5e7f\u544a\u4f4d\u80fd\u5426\u7ef4\u6301\u514d\u8d39+\u65e0\u6570\u636e\u6c89\u6dc0\u7684\u751f\u5b58\u6a21\u578b\u3002\u8fd9\u6216\u8bb8\u662f\u6240\u6709\u201c\u6781\u7b80\u4e3b\u4e49\u516c\u5171\u5de5\u5177\u201d\u90fd\u65e0\u6cd5\u7ed5\u5f00\u7684\u7ec8\u6781\u62f7\u95ee\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\">NYC Street Cleaning<\/span>\n                <\/div>\n<div class=\"comment-content\">Tap the app, see green, yellow, or red. StreetCleaning reads the signs on your block and tells you whether to move your car right now. Suspension-aware, push reminders the night before, free forever. Built for the 1.3M New Yorkers who park on the street.<\/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 \u2014 I&#8217;m Kip, founder of NYC StreetCleaning.<\/p>\n<p>I built this after collecting four ASP tickets in a single year. Every existing &#8220;NYC parking&#8221; app either crashed, asked for $9.99 a month, or buried the answer behind three taps and a paywall. I just wanted a green light or a red light \u2014 &#8220;do I need to move my car right now, or not.&#8221;<\/p>\n<p>So that&#8217;s the whole app. One screen. One color.<\/p>\n<p>A few things that took longer than expected and might be interesting to other<br \/>\nmakers here:<\/p>\n<p>\u2022 Block-level precision. The city&#8217;s open data gives you sign locations as<br \/>\n  raw geometry \u2014 no &#8220;this side of the street between X and Y.&#8221; We had to merge<br \/>\n  ~340k sign records, snap them to block faces, and build a parser that<br \/>\n  understands phrases like &#8220;TUES THURS 11:30AM-1PM EXCEPT SUN&#8221; plus the broom<br \/>\n  glyph. Worth it \u2014 every other ASP app gets this wrong on dual-schedule blocks.<\/p>\n<p>\u2022 Suspension-aware &#8220;you&#8217;re safe.&#8221; NYC issues 30+ suspension days a year<br \/>\n  (religious holidays, snow, mayoral orders). Telling someone they&#8217;re safe<br \/>\n  when there&#8217;s a fresh snow suspension you missed is the worst-possible bug,<br \/>\n  so we re-check the official feed every 15 minutes before showing green.<\/p>\n<p>\u2022 Push that doesn&#8217;t suck. Night-before + morning-of, snoozable, and silent<br \/>\n  on suspension days. No &#8220;engagement&#8221; pings.<\/p>\n<p>It&#8217;s free forever \u2014 funded by a single banner that&#8217;s hidden when the status<br \/>\ncard is visible (we never block the answer).<\/p>\n<p>iOS only for now. Android is on the roadmap if there&#8217;s demand \u2014 if you&#8217;re<br \/>\non Android and would use this, drop a comment below and I&#8217;ll send you a TestFlight-style<br \/>\nbeta when it lands.<\/p>\n<p>Question for you: if you&#8217;ve ever used a hyperlocal city utility app<br \/>\n(parking, transit, bins, alternate routes), what&#8217;s the one thing the makers<br \/>\ngot wrong? I&#8217;d love to not repeat it. \ud83d\ude4f<\/p>\n<p>\u2014 Kip<\/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<\/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-03 PH\u70ed\u699c | 2026-05-03 #1 Radar [&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-211","post","type-post","status-publish","format-standard","hentry","category-producthunt"],"_links":{"self":[{"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/posts\/211","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=211"}],"version-history":[{"count":0,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/posts\/211\/revisions"}],"wp:attachment":[{"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/media?parent=211"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/categories?post=211"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/tags?post=211"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}