這不是一篇教你用AI寫程式的文章。這是一篇關於如何用AI重新定義你的能力邊界的實戰復盤。
最近一週,我的朋友圈和串流媒體被兩種內容刷屏:
焦慮是真實的。但我想說一句可能會得罪人的話:
大部分人的焦慮,都是"看別人做"帶來的,而不是"自己做"帶來的。
當你真正動手用AI做一個完整產品的時候,你會發現:AI確實很強,但它還遠沒有強到能獨立完成任何事情。它需要你告訴它做什麼,需要你判斷它做得對不對,需要你把零散的能力串成一個可運行的系統。
所以我做了一個實驗:用3天時間,一個人,從0開始,做一個能收錢的AI產品。
不是Demo,不是概念驗證,是一個真正上線、真正打通付費流程,完整的商業產品。
具體時間分配:
這篇文章是完整的復盤。
先說產品是什麼:「第N個我」—— Prompt 文生圖工具。
官網地址:www.nthme.org/
用戶上傳一張照片,選擇一個"世界線",AI生成一張那個平行宇宙裡的你。

市面上的AI頭像產品,大多走兩條路:

這些是競品,想搶他們的流量,卷價格對個人開發者來說永遠是下策;卷功能嗎?都是套殼AI文生圖,誰也別笑話誰。就只能卷新意了,網站有沒有讓人眼前一亮,或者自成一套體系的文化(但這也很玄學,我還在摸索中)。
說完產品出發思路,現在來談談錢。
這個產品的商業模式,本質上是一個非常經典的 “信息差 + 技術降維"(Arbitrage + Wrapper)模型。”
在中國市場,這被叫做"套殼站"——但我更願意稱之為"場景化AI工具"。
套殼站是簡單的API轉發,沒有產品設計,沒有使用者體驗,就是把別人的能力包一層皮賣出去。
場景化AI工具是在套殼的基礎上,解決一個具體問題。
你想想,對於絕大多數中國用戶來說:
這兩者加起來,構成了巨大的付費意願。
我做的事情,就是吃掉這兩層成本:
本質上,我們是中間商(Reseller),不只這個產品,任何AI工具只要你不是研究模型的開發者,你都是中間商。
但中間商不是貶義詞。
淘寶賣家是中間商,滴滴司機是中間商,你公司的銷售也是中間商。中間商的底層價值是『降低交易摩擦』。
我的價值就是:技術降維 + 場景化封裝。
把一個"需要懂技術才能用"的能力,變成"打開網頁就能用"的產品。
這件事能賺多少錢?不知道。但我知道,願意為"發一張不一樣的朋友圈"付費的人,遠比願意學Prompt的人多得多。
我見過太多獨立開發者的項目死在"功能太多"上。
不是沒做完,是做了太多。每個功能都是60分,合在一起就是一坨不可用的東西。有程式碼潔癖、有完美主義情節沒錯,但是如果你要想做一個商業產品,很顯然你需要全面的考量。

所以我給自己定了一個規則:MVP只保留能完成"付費閉環"的功能。
什麼是付費閉環?用戶進來 → 產生價值 → 願意付錢 → 支付成功。
任何不在這條鏈路上的功能,全部砍掉。
砍掉的:
保留的:
你可能會說:生成歷史不重要嗎?用戶可能想回看啊。
重要,但不是Day 1重要。
如果用戶連第一次生成都不願意付費,那生成歷史有什麼意義?
MVP的核心是驗證一件事:有沒有人願意為這個產品付錢。其他都是驗證之後的事。
獨立開發者最稀缺的資源是時間。所以技術選型的核心標準只有一個:用最少的時間,搭建一個可運行的系統。
這是我的選擇:
| 需求 | 選擇 | 為什麼 |
|---|---|---|
| 框架 | Next.js 14 | App Router + API Routes,前後端一把梭 |
| 樣式 | Tailwind CSS | 不用寫CSS文件,不用起類名 |
| 資料庫 | PostgreSQL + Prisma | 類型安全,遷移方便,Vercel Postgres免費 |
| 認證 | NextAuth.js | 10分鐘搞定登錄註冊 |
| 部署 | Vercel | Git push即部署,零運維 |
| AI | Nano Banana API | 穩定,便宜,按量付費 |
你可能注意到,這套技術棧幾乎全是"開箱即用"型的。
沒有自己寫驗證邏輯,沒有自己配CI/CD,沒有自己管伺服器。
這不是偷懶,這是槓桿。
2022年了,這些輪子已經有人造好了,而且造得比你自己造的好10倍。你的時間應該花在"只有你能做"的事情上——產品設計、使用者體驗、商業邏輯。
基礎設施?讓別人來。
NextAuth.js 是我用過最省心的認證庫。
整個登錄系統,包括:
代碼量:1個配置文件 + 1個Prisma Schema。
// auth.ts 核心配置
export const authOptions: NextAuthOptions = {
providers: [
CredentialsProvider({
name: 'credentials',
credentials: {
email: { label: 'Email', type: 'email' },
password: { label: 'Password', type: 'password' },
},
async authorize(credentials) {
// 驗證邏輯
},
}),
GoogleProvider({
clientId: process.env.GOOGLE_CLIENT_ID!,
clientSecret: process.env.GOOGLE_CLIENT_SECRET!,
}),
],
// ... 其他配置
};
一個踩坑點:Credentials Provider 的 session 處理。
NextAuth預設的session只包含很少的用戶資訊。如果你用資料庫存用戶,需要在callbacks裡手動把userId塞進去:
callbacks: {
async jwt({ token, user }) {
if (user) token.id = user.id;
return token;
},
async session({ session, token }) {
if (session.user) session.user.id = token.id as string;
return session;
},
},
就這麼多。10分鐘,登錄系統搞定。一個Google郵箱登錄,一個基礎的帳號密碼登錄 + 一個註冊;

積分系統聽起來簡單:用戶充錢 → 加積分 → 生成圖片 → 扣積分。
但魔鬼在細節裡。
問題1:扣積分和生成圖片,誰先誰後?
錯誤做法:先生成圖片,成功後再扣積分。
正確做法:先扣積分,失敗後再退回。
// 伪代碼
await deductCredits(userId, cost); // 先扣
try {
const image = await generateImage(prompt);
return image; // 成功,積分已扣
} catch (error) {
await refundCredits(userId, cost); // 失敗,退回
throw error;
}
問題2:如何防止訂單重複處理?
愛發電的Webhook可能會重複發送。如果不做幂等處理,用戶可能被多次加積分。
解決方案:用 afdianOrderId 做唯一鍵。
// 檢查訂單是否已處理
const existing = await prisma.transaction.findFirst({
where: { afdianOrderId: orderId },
});
if (existing) {
return { ec: 200, em: 'Already processed' };
}
問題3:免費額度怎麼設計?
新用戶應該能免費試用,否則付費轉化無從談起。
我的設計:註冊即送 10 積分(夠生成2次),每日簽到送 2 積分(不夠生成1次,但累積2天可以)。
PS:簽到功能還沒實現哈,後續加上,很快
這個數字是刻意的:
積分系統的本質是信任系統:用戶相信付了錢就能用,你相信用戶不會薅走你的服務。
技術問題都好解決,最難的是收錢。
作為個人開發者,你會撞上這些牆:
我的解決方案:愛發電

愛發電是一個創作者贊助平台,個人可以直接使用,費率合理(約6%),支持Webhook回調(很重要,充值成功的回調就靠它)。
集成流程:
關鍵技巧:用戶的郵箱從哪來?
愛發電的訂單信息不包含用戶郵箱,只有贊助者的愛發電暱稱。怎麼和你資料庫里的用戶對應上?
我的做法:讓用戶在愛發電的"留言"字段填寫自己的註冊郵箱。
// 從留言中提取郵箱
const emailMatch = order.remark?.match(
/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/
);
const email = emailMatch?.[0]?.toLowerCase();
不夠優雅?確實。但MVP階段,能跑通比優雅更重要。
未來可以升級為:
MVP的哲學:先有再好。 愛發電只是一個你用來測試用戶付費意願 + 前期市場驗證的低成本工具
PS:問題發現,愛發電支付鏈路不同,目前只能用微信

UI(User Interface,使用者介面)是「產品的外觀與交互載體」
UX(User Experience,使用者體驗)是「使用者使用產品的完整感受與效率」。
首先,我們需要糾正一個工程師常見的誤區。
很多開發者覺得“設計”是玄學,或者是設計師的事,與程式碼無關。
大謬!設計是產品的一部分,而且是使用者最先感知到的部分。
你的架構再優雅,使用者不關心;你的演算法再先進,使用者看不見。使用者第一眼看到的就是UI,而第一印象決定了他們是掏錢還是關閉網頁。在這裡,我要拋出一個更露骨的觀點:對於獨立產品而言,UI的作用不是“好看”,而是“顯得值錢”。
我們的目標用戶是誰?是那些為了發朋友圈、發小紅書願意付費的人。這群人不懂技術,也不關心你用了什麼模型。他們只看一件事:這個產品看起來牛不牛逼?
如果你的UI看起來像個Bootstrap拼湊的學生作業,用戶潛意識會覺得:“這玩意兒生成的圖能好嗎?5塊錢我都嫌多。” 如果你的UI看起來像個黑科技實驗室,用戶會覺得:“哇,這個系統好高級,生成的圖肯定不一樣。50塊錢?值!”
所以我給「第 N 個我」定的視覺基調是:Steins;Gate(命運石之門) × Cyberpunk 2077 × Neo-Brutalist。
有人問:“為什麼不選永遠不會出錯的 Apple Style(極簡白/磨砂玻璃)?”
這涉及到底層邏輯的選擇:Content is King(內容為王)。
我的產品不是一個“修圖工具”,而是一個“科幻引擎”。蘋果的設計語言太冷靜了,無法承載“穿越平行宇宙”的瘋狂感。我需要的是躁動、电流和不確定性。

一開始我試過Vibe Coding的藍紫配色(漸層紫、霓虹藍那一套)。但做出來發現一個問題:太像廉價的詐騙頁了。 那種配色現在已經爛大街,用戶一看就覺得:"又是什麼割韭菜的東西。"
於是我換了方向:電光綠(Acid Green)+ 終端風格。效果立刻不一樣了:
這種"硬核感"營造出一種"實驗室出品"的稀缺感。
二進位雨(BinaryRain組件):
單間距字體(monospace):
微動效 (Micro-interaction):
還有很多小巧思就不贅述了,可以自己點擊看看
在設計文案時,我制定了一條鐵律:嚴禁出現‘用戶’、‘購買’、‘生成’這三個詞。
我構建了一套「觀測者敘事」體系。
這不僅僅是為了酷,這是基礎的商業心理學。
當“花39塊錢買個會員”變成了“為超弦引擎注入能量以解鎖高維權限”時,用戶的心理賬戶 (Mental Accounting) 就發生了轉移:
在這個新賬戶里,用戶的付費意願是極高的,價格敏感度是極低的。
結論:產品即敘事。每一個按鈕、每一行文案,都在構建那個平行宇宙。這就是審美的商業價值——它讓用戶覺得“這個東西值這個價”。
國際化很重要,國際化很重要,國際化很重要,重要的事情說3遍
在開發初期,我就堅定地把 i18n(國際化) 列為 P0級需求,而不是“有空再做”的錦上添花。這背後不是為了顯得高大上,而是基於一個赤裸裸的商業邏輯:地理套利 (Geo-Arbitrage)。
作為獨立開發者,我們的肉身或許被禁錮在某個具體的時空坐標,但我們的代碼和產品可以在光纖中自由穿梭。
這是一個簡單的數學題,也是個殘酷的現實:
在國內,讓用戶掏出 ¥19.9 可能需要你寫500字的文案、做3張精美的海報,還得應對“能不能便宜點”的客服諮詢,甚至面臨被舉報的風險。
而在北美或歐洲市場,$9.99 (約¥72) 對用戶來說僅僅是“一杯星巴克 + 小費”的價格。
國內的C端工具類產品市場早已是一片紅海,同質化競爭導致價格戰頻發(Race to the bottom)。
而通過i18n,我們將戰場轉移到了全球(市場擴大)。雖然全球競爭也激烈,但你的創意總會帶你殺出重圍!
當你的收入來源不僅限於人民幣,而是包含了美元、歐元、日元時,你的個人財務系統就具備了極強的抗脆弱性。
你不再依賴單一市場的經濟周期。哪怕某個區域的支付渠道暫時波動,全球各地的“觀測員”依然在源源不斷地為你的終端注入能源。
| 維度 | 國內市場 (CNY) | 全球市場 (USD/EUR) |
|---|---|---|
| 決策阻力 | 高 (習慣免費/破解) | 低 (習慣訂閱/付費) |
| 收入倍率 | 1x (基準) | 7x ~ 8x (地理套利) |
| 競爭態勢 | 極度內卷 (紅海) | 審美差異化 (藍海) |
一句話總結:
i18n 不是簡單的翻譯,它是獨立開發者實現“賺美元,花人民幣”這一終極夢想的入場券,也是將個人影響力輻射至全球的必經之路。
注意,i18n不只是翻譯。它強迫你思考:
比如"建立糾纏"這個按鈕,直譯是"Create Entanglement"。但英文用戶會覺得莫名其妙。
最終我用的是"Establish Link"——保留了"建立連接"的意思,丟掉了"量子糾纏"的梗。
翻譯不是對照詞典,是重新創作。 技術實現上,我用的是最樸素的方案:文件級i18n。
lib/i18n/
├── locales/
│ ├── zh-CN.ts // 中文
│ └── en-US.ts // 英文
├── context.ts // React Context
└── types.ts // 類型定義
沒有用next-intl或i18next這些庫,因為項目規模不需要。簡單的Context + TypeScript類型約束就夠了。
未來做SEO的時候,可能需要多語言URL(/en/showcase vs /zh/showcase)。但MVP階段,瀏覽器語言檢測 + 手動切換就夠用了。
以前部署一個網站,過程是:買伺服器 -> 裝 Nginx -> 配域名 -> 申請 SSL 證書 -> 寫 CI/CD 腳本……
現在?
完了。
自動CI/CD、自動HTTPS、自動CDN、自動預覽部署。這就是現代獨立開發的“基建紅利”。
你的時間和精力,應該100%放在產品本身。
然而,當我興奮地把生成的 xxx.vercel.app 鏈接發給國內的朋友時,得到的反饋卻是:“打不開”、“連接重置”。
原因很簡單:*.vercel.app 這個後綴在國內因為眾所周知的原因,DNS污染嚴重,基本處於不可用狀態。
要解決這個問題,不能依賴Vercel分配的免費域名,必須綁定自定義域名。以下是我的實戰配置(踩坑)總結:
app.yourdomain.com)。cname.vercel-dns.com。結論:只要配置了自定義域名 + 正確的CNAME,國內用戶就能通過優選線路流暢訪問你的“量子觀測站”,無需梯子。
MVP (Minimum Viable Product) 上線了,然後呢?
很多獨立開發者容易在這裡迷失,陷入兩個極端:
在我的邏輯里,上線不是結束,而是“觀測”的開始。
正確的姿勢是:根據真實反饋,對抗熵增,增量迭代。
我給自己制定了一個嚴格的“三步走”戰略,嚴禁跨階段開發:
Phase 1: 奇點點火 (V1.0 Current)
潛台詞:只要能跑通“生成->滿意->付費”這一個循環,其他的都不重要。
Phase 2: 體驗補完 (V1.1 Planning)
Phase 3: 維度擴張 (V2.0 Vision)
請注意這個順序:先有付費用戶,再加功能。
因為沒有用戶反饋的功能開發,本質上是一種“自嗨” (Self-High)。你坐在螢幕前以為用戶需要“暗黑模式”或“社交分享”,但數據可能會告訴你,他們只想要一個“一鍵高清放大”按鈕。
最好的產品經理不是你,是你的用戶。
不要去猜宇宙的形狀,去聽觀測員發回的信號。聽他們的,改代碼,然後再次發布。
寫到這裡,回頭看那個最初萦繞在每個人心頭的問題:AI時代,開發者會被取代嗎?
我的答案是:不會,但會被重新定義。
在過去,開發者的價值錨點是 "How" —— 你會不會寫代碼?你會不會優化演算法?
而在今天,開發者的價值錨點轉移到了 "What" & "Why" —— 你知不知道要做什麼?你知不知道為什麼而做?
代碼只是工具,是連接現實與數字的橋樑。