V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
djyde
V2EX  ›  程序员

开发一个浏览器插件在第三天卖出 1000 元

  djyde ·
djyde · 271 天前 · 9668 次点击
这是一个创建于 271 天前的主题,其中的信息可能已经有所发展或是发生改变。

原文在我的独立博客: https://lutaonan.com/blog/my-extension-sold-1k-yuan/

写下这篇文章是我的插件 Notepal 发布的第三天,目前收获了几十名付费用户,在这短短几天已经有 5000 多条微信读书笔记被同步到 Readwise, flomo 或 Obsidian 中。

(28 号没有数据是因为那天出了事故,日志没有进来。)

很感谢点进这篇文章的你没有因为 1000 元是个小数目所以选择无视,这个数目确实很小,它甚至没有很多程序员坐在办公室待一天赚得多,但「有人愿意购买」的意义远比数目的大小对目前的我来说意义更大,而且我在开发和上线整个过程中学习到了不少,也实践了不少我读的一些关于 start a business 的书,我发现在亲身经历了这个过程后,再重读这些书,体会更加深刻,所以我很想在这篇文章和大家分享我学到的,以及我所采用的一些方法论。

最初的需求

我在差不多半年前因为想把微信读书的笔记同步到笔记软件 Readwise, 所以写了一个很简单的网站( Notepal 的前身),可以把微信读书 App 里复制出来的笔记,解析成自定义的格式,也可以解析成 Readwise 能实别的 csv 格式。

虽然这种方式还是有点繁琐,而且 csv 格式其实很不稳定,很容易被笔记里的一些字符导致导入失败,但在此之前我想基本没有人可以这么「自动化」地做到这件事了。

我把它发布到了 V2EX, 写了点介绍,并且代码是开源的。

但是,在当时,我隐约觉得这个需求会有人愿意买单,因为我相信绝对不止我一个微信读书和 Readwise 的共同用户有这个需求。但我当时刚好在读 Sahil Lavingia 的 The minimalist entrepreneur 这本书(在接下来的内容我会多次提起这本书),里面有一个让我感触很大的观点—— start with community, 创业从社区开始。

什么意思呢,如果你觉得你能解决一个很多人都有的需求,首先要做的不是急着做软件做产品,而是先找到这群人,在这个群体里帮助他们。

所以当我隐约认为我能解决一部分人的需求且他们有可能为此付费时,我做了一件和开发完全没有关系的事——建用户群,然后放到网站上,我希望把有这个需求的人先聚集起来,等有一天我把这个工具做得比较稳定的时候,有一个卖出去的机会。

后来加进群的一共 50 多个人,这些人其实也没怎么说过话,有些人提了一些使用问题,然后群就基本死了。

大部份的人反馈的问题都是 csv 出问题,这个问题很难解决,我觉得如果要稳定,必须通过调用微信读书的接口,拿到 json 格式的笔记,然后通过 API 同步到 readwise. 所以我一直想把这个需求用浏览器插件来解决,我在群里也提了一句「我准备写一个浏览器插件」,但是也没人理。

于是我就把开发插件的事情搁置了。

转折,冷启动

从这个工具发布一直过了半年,突然有位推友发了一条推,对我这个工具表达了感谢:

这不足以让我惊讶,最让我惊讶的是这条推的数据:113 转推 6 引用 373 喜欢次数 237 书签。

这让我有了动力去把我曾经想实现的插件写出来,我决定先快速做一个 MVP, 只要实现在微信读书页面展示有笔记的书,并且用 Readwsie 的 API 一键同步笔记,最后展示同步到 Readwise 后的笔记。

为什么要这么做?因为我需要做一个「半冷启动」,我知道把插件打磨到可以上线并收费的工作量不算小,但我需要做一个流畅的视频,来展现这个 idea, 并且是一个真实的实现。把这颗小石头抛出来,看能引起多大的水花。

把视频发出来后,引起了不少的回复:

这时我决定要做出来一个真正值得被这些人购买的产品,解决他们的需求,让他们心甘情愿地因为产品解决的问题和体验而买单。

从冷启动到正式上线

在写正式的产品前,我问自己一个问题,做到什么程度可以发布第一个版本。我心中的答案是这样的:

  1. 为了尽快上线,只做同步到 Readwise 的功能
  2. 上线 day one 就要开始收费,可以提供免费试用,但一定要有收费入口
  3. 体验一定要最直接——填 API token -> 选书 -> 同步 -> 查看同步到 Readwise 的笔记,一气呵成
  4. 要记录一些非隐私日志,例如同步笔记的量,错误日志

尽快发布

第一点,很多人肯定会觉得,Readwise 这么小众,同时用微信读书和 Readwise 的更小众,会不会太少人用了。这是正确的判断,但是我认为我的当务之急是把产品 ship 出来,解决我能真实看到的那不到 10 个人的需求,看能不能从如此利基(niche)的圈子赚到钱,再谈扩张用户量(而且我很快在后面的版本支持了 flomo 和 obsidian )。

Day One 就要收费

第二点,有人会说,这么小众的需求,真的能赚到钱吗?我认为,可以,但看你是想赚大钱还是小钱,小众需求难赚大钱,但越小众的人越愿意付费。我已经对这个产品有了预期——我不认为这是能赚大钱的产品,我对这个产品的目标是:解决小部分人的需求,让他们为产品提供的价值付费。

为什么要赚钱?其实我大可以免费发布,我也完全不能靠这个产品吃饭。但和多年前的我不一样,我现在觉得「用户掏钱买你的产品」是验证你的产品价值最有用的方法,无论是便宜还是贵,即使是 1 块钱,就和免费完全有不同的意义。就像打德州扑克,用你真实的钱打和用游戏币打完全是两回事

既然要收费,就有两个问题:一是收多少,二是怎么收。

收多少的问题,首先有两个选择,一次性买断和订阅制。不过像这样的产品,我觉得理智的人都不会觉得适合订阅制。谁会为了一个低频需求订阅一个插件?

如果是买断,多少钱合适呢?我没有做什么调研,就拍脑袋觉得 30 块是个不高也不低的价格,而且是一次性收费。如果用户觉得好用,还是比较大概率选择购买的。

最难的问题其实是怎么收,尤其是这个产品面向的是国内的用户。众所周知,国内的付费渠道接入门槛是相当高的。可能做这个插件也就几天的事,但接入收费渠道就要几周。这是不能接受的。就像 Paul Garahm 说的:Do things that don't scale.

为此我想了很久,于是想出了一个办法。这也是在 The minimalist entrepreneur 这本书受到 Sahil Lavingia 的启发,他说 Gumroad 第一个版本是他自己每个月手动给 creator 发钱的。

我大受震撼,我想到,我这个产品,能不能卖得出还是个问题,即使能卖,也不可能卖很多,很频繁地交易,我何不像路边滩一样挂个收款码解决呢,只是我把收款码放到一个「购买页面」而已。

于是有了这个购买页面

但是,即使我能通过收款码收钱,那如何和我的插件联动,在用户付钱后解锁功能呢。我想到最传统的软件售卖方式——卖激活码,用户通过付款码值钱备注邮箱,当我收到款后,往他邮箱发送激活码,就完成了。

流程有了,但激活码怎么来?没有办法,这个还是要自己写点代码。我花了半个小时,用 Next.js + PostgreSQL 写了一个最简单的激活码生成和验证的 API service.

激活码机制也有了,但手动发激活码还是麻烦。所以我用写了一个「快捷指令」,只要填邮箱发到我的激活码 API service, 就会自动完成从创建激活码到发送邮件一整个步骤。虽然还是手动,但我的工作就变成了收到钱,运行「快捷指令」填邮箱。

<video src="https://gbstatic.djyde.com/uPic/qmrhmf.mp4" controls="true"></video>

读到这里,读者应该可以深刻地体会到,Paul Garahm 据说的 Do things that don't scale 是什么意思了。我觉得在做产品的时候,一定要瞄准最重要的事情——你给客户提供的价值是什么,而不要在其它地方花太多的精力,在这些地方甚至可以先手动做一些事情,在成功了之后再把他自动化,而不是一开始就自动化。

读者应该看过一个 meme 图,一个 ATM 机,其实背后是一个人手工把钱塞出来。这个图有点搞笑,但这是一个完美的 Do things don't scale 的例子,客户需要的是拿钱,用户并不关心你背后是多简单或多复杂的流程。新产品上线,最重要的是解决客户的问题,而不是怎么解决得比较优雅。很多工程师很容易陷入一种「自动化」的诱惑,想把一切都做得最自动化,然后忽略了真正在解决的是什么问题。

自动化可以做也必须做,但不是从 day one 就开始做。

用户体验

对于体验,我在上文从冷启动的视频到上线版本都强调了「查看同步到 Readwise 」的笔记,很多人可能觉得这是一个可做可不做的功能,而且这是一个从技术上来说非常简单的功能。但我觉得这是整个产品最重要的 aha moment, 我要让用户能看到笔记一键就被放到了笔记软件里面的样子,而不是只是提示同步成功,让他自己去笔记软件查。这个体验,做和不做在技术上没多大区别,但对于体验来说是有天壤之别的。

<video src="https://notepal.randynamic.org/flomo.mp4" controls="true"></video>

记录日志

记录日志也相当重要,尤其是错误日志,在上线以后,有一些我自己的场景没有 cover 到的 case, 都通过用户反馈然后我看错误日志成功解决了。另外,行为日志也蛮重要,可以看到自己的产品有没有被使用,使用的量有多大,从而帮助自己做一些产品决策,也是一种对自己的激励。

上线,卖出去

如果是以前的我,我一定会有一种迷思,认为产品发布上线后,就等着她被传播,如果运气好,被大 v 传播,就有流量,就能变现,如果运气不好,可能就是没人有这个需求,这个产品就失败了。

但读完 The minimalist entrepreneur (我又提到这本书了),我对销售有了很不一样的理解。书里提到,大部分的产品,头 100 个付费用户是一个一个谈来的,只有用户足够多以后,才会出现口口相传的情况。而且广告是没用的(如果不是一个以流量为核心的产品)。

Eventually strangers will buy your product, but mostly because your customers are spreading the gospel of your business and product, not because they saw an ad. But it will take time to get there. It’s not something you hit on day one.

所以我这次上线没有被动地等待,而是主动出击,在互联网上搜索关键词,找到和我有一样需求的人,评论和私信他们,告诉他们我也有一样的需求,并且做了一个十分方便的插件,请他们试一试。

刚开始这样做的时候,我还是有点羞耻,觉得自己是在互联网上发布垃圾广告,但客观来说,我是作为有同样需求的人,分享我自己做出来的可以解决他们需求的工具,好像也不算垃圾广告。而且让我惊喜的是,很多人回复都很友善,并且感谢或最终购买了我做的产品。

这也让我想到,做产品,首先要想的不是怎么做,而是卖给谁。这是最重要的问题。如果连自己都不知道目标用户,又谈何 marketing 呢?

总结

一口气写了很多,从发布上线到现在其实也才三天,其中有一天还发生了一些事故,但还是给我自己上了很重要的一课,相信我分享出来的这些也能给大家一些启发。

虽然赚的不是什么大钱,但这对我来说是非常有意义的一次体验。就像我在博客的首页写的,小时候我的理想是改变世界,现在长大了,发现能做出用户愿意付费的有为用户提供价值的产品已经很不容易了。这是我第一个发布的付费产品,而且还收获了愿意付费的一些用户。我读了很多关于创业、产品、用户体验、营销的书,等这一刻已经等了很久了。

第一次听到到账 30 元的通知的那种激动,我想会是一辈子都不会忘记的。在厂里拿 30k, 代表我面试表现还不错,也能写出公司愿意付钱的代码,但卖产品拿 30 块,代表我洞悉了需求、直面了市场(这是说出来简单,但做的时候很难的事)、为付费用户解决了问题。

非常感谢这些用户,这对我来说是很大的激励。谨以此文作为我对大家的回报。

64 条回复    2023-09-29 21:21:28 +08:00
pggcharles
    1
pggcharles  
   271 天前
meshell
    2
meshell  
   271 天前
怎样才能成为您这样的大牛../😭
cruzzz
    3
cruzzz  
   271 天前
太顶了!
BeijingBaby
    4
BeijingBaby  
   271 天前
👍,整个想法落地的过程不错,有很多人都是陷入了一些些细节问题,忽略了产品的核心东西。
楼主的分享值得借鉴。
hfJ433
    5
hfJ433  
   271 天前
可以上发卡,自动发兑换码,不用快捷指令
zzbd
    6
zzbd  
   271 天前
每个人都或多或少有些类似的自动化需求,但不是每个人都愿意去寻找解决办法,更别说自己亲自去实现
wonderfulcxm
    7
wonderfulcxm  
   271 天前 via iPhone
学习了
Tdy95
    8
Tdy95  
   271 天前
关于付费那块,发卡+1 ,在国内做软件服务收费真是很头疼的一个问题。

我自己写了个 node 服务验证、生成激活码 ,人工只要补充一下激活码就好了。

PS:发卡要部署在海外服务器上。
djyde
    9
djyde  
OP
   271 天前
@hfJ433
@Tdy95

确实没了解到「发卡」这种东西,请问有推荐的吗
hamsterbase
    10
hamsterbase  
   271 天前
@djyde

我用的是面包多,支持支付宝和微信收款, 有 API 。

国外用的是 paddle , 也是有 API
cosmain
    11
cosmain  
   271 天前
中文推圈好窄, 图里的尽是关注的人。
sakujo
    12
sakujo  
   271 天前
写的很好
0o0O0o0O0o
    13
0o0O0o0O0o  
   271 天前 via iPhone
写得很好
Saito
    14
Saito  
   271 天前
@djyde License Keys 是一种很经典的支付策略,Lemon Squeezy 和 Paddle 都有。

https://docs.lemonsqueezy.com/api/license-keys
djyde
    15
djyde  
OP
   271 天前
@Saito 这个我知道,但是 fee 太高了,我觉得我这个东西卖不了很多,所以不需要承担这个 fee
Saito
    16
Saito  
   271 天前
@djyde 嗯,理解,光 50 cent 每笔就挺贵的。
readwise MAU 超过 200w ,很多人基于 readwise 打造个人知识管理平台,这里再发觉一下的话应该还是有机会的。而且因为 readwise 本身是付费的,所以再这个之上再做产品收费大家的付费习惯不用重新培养。
在 Twitter 见证从别人宣传到你 build in public 的整个过程,很棒,行动力满分!👍
hfJ433
    17
hfJ433  
   271 天前
@djyde 独角数卡 https://github.com/assimon/dujiaoka

我也没自己搭过,知道有这个而已
djyde
    18
djyde  
OP
   271 天前
@Saito #16 谢谢,我也常听你的节目,哈哈。
Saito
    19
Saito  
   271 天前
@djyde 💖
djyde
    20
djyde  
OP
   271 天前
@Saito #19 期待有天能做出能谈得上 MRR 的产品然后上你们节目🤣
Saito
    21
Saito  
   271 天前
@djyde 先预约一个串台,一起把科技类播客🍰做大。你们 代码之外 节目也很棒,做到了我们没做到的露脸。😂
Chingim
    22
Chingim  
   271 天前
👍🏻
再说说事故就更好了
djyde
    23
djyde  
OP
   271 天前
@Chingim 千言万语一句话,做宣传前不要动代码。尤其是发布在需要审核的平台的产品。
nixum
    24
nixum  
   271 天前
居然能在这看到有用 readwise 的! readwise 确实小众,一开始我们也很担心回不了本,但也算是一种尝试,我永远记得收到第一条用户付费的消息是多么激动!
我们也是做的类似的工具,实现微信同步文章到 readwise 的功能,后续也有计划接入其他第三方笔记的计划,一开始也是决定需要付费,主要是我们服务器和企业微信的 API 也有成本,现在上线了一个多月,流水还没有你的多哈哈哈,推广好难
zxhy
    25
zxhy  
   271 天前   ❤️ 1
几年前也做过微信笔记导出到剪切板的插件,支持 markdown 等几种格式。不过是免费的,用户量大概有 1000 左右。后来因为微信读书界面会检测第三方插件,提示用户隐私问题。为了避免一些法律问题(虽然一开始就在界面上说明了),后来就主动下线了。
iorilu
    26
iorilu  
   271 天前
支持下个人开发者

收费可用 独脚数卡, 我现在就用这个

现在想搞个海外支付方式, 有推荐的吗

我需要有个回调, 根据用户 email 发送注册码, 不是那种提前生成一堆码随便发那种
dayuzhu
    27
dayuzhu  
   271 天前
可以加油
moonrailgun
    28
moonrailgun  
   271 天前
太强了,我什么时候才能变成和 dalao 一样可以靠自己产品赚钱的开发者
opentrade
    29
opentrade  
   271 天前
好的,响应楼主的号召,打破心里魔咒,看看这里有没有我的前一百个客户,RustDesk 远程桌面自建服务器专业版,https://rustdesk.com/docs/zh-cn/self-host/pro/
Tdy95
    30
Tdy95  
   271 天前
@djyde #9 独角、acg-faka 都可以。我使用的是 acg-faka ,宝塔一装,非常方便。

收费方面我申请了微信商家收费二维码,可以支持 PC 扫码支付。
unspring
    31
unspring  
   271 天前 via Android
确实与其寻找目标用户,不如创造目标用户,创造需求
baolongqishi
    32
baolongqishi  
   271 天前
👍🏻
godwinma
    33
godwinma  
   271 天前
赞!!!
Orenoid
    34
Orenoid  
   269 天前
太酷了
EyebrowsWhite
    35
EyebrowsWhite  
   269 天前 via iPhone
感谢分享
notot
    36
notot  
   269 天前
写的真牛逼
slqcode
    37
slqcode  
   269 天前
欣赏有想法、有行动力的人!
meters
    38
meters  
   269 天前
非常非常敬佩你,我之前写了一个微博备份的插件,最开始完全佛系滴帮助了一些早期用户,后来发现有人在闲鱼上把插件按转包卖到 100 块的时候,才想起来是可以走收费的。

你描述的过程我都趟过一遍,没想到你是通过捷径来发码的哈哈哈,我是在用户完全成功使用完功能之后,有一个赞赏的二维码。

陆陆续续也收到很多很多的感谢和回馈,你的方法感觉更流程化,祝越来越好。
enuenena
    39
enuenena  
   269 天前
写得很好,博客也很棒。
garyxi24
    40
garyxi24  
   269 天前
楼主很赞,但我突然想到,做这种第三方插件,会有什么法务问题吗
maxbon
    41
maxbon  
   269 天前
学到了
ares951753
    42
ares951753  
   269 天前
文章写的很好。那本书还没有中译版么,搜了圈没看到有卖的。
mango88
    43
mango88  
   269 天前
很🐂
kerb15
    44
kerb15  
   269 天前
点赞收藏
pual
    45
pual  
   269 天前 via iPhone
感谢分享
Leo666666
    46
Leo666666  
   269 天前
听《代码之外》认识到楼主,没想到文章写的也很好
bogun
    47
bogun  
   269 天前
赞,楼主写的很好
qingyin741
    48
qingyin741  
   269 天前
这里面的图片很好看哎,怎么弄的啊
binge921
    49
binge921  
   269 天前
我觉得 1000 元很牛了
jwt123
    50
jwt123  
   269 天前
最小可行性产品
zsk425
    51
zsk425  
   269 天前
不知道有没有国产的 Indie Hackers ,这个文章非常适合发到这样的平台。楼主的案例很棒,学习了
banyancheung
    52
banyancheung  
   269 天前
牛逼
elevioux
    53
elevioux  
   269 天前
感谢分享,收获良多
fueen
    54
fueen  
   269 天前
太顶了
fyxtc
    55
fyxtc  
   268 天前
上线 3 天 1000 作为个人项目简直不要太牛好吗
fzls
    56
fzls  
   268 天前
厉害了,很有行动力
CoCoMcRee
    57
CoCoMcRee  
   268 天前
棒棒的, 向你学习
raysonlu
    58
raysonlu  
   268 天前
抛开 3 天时间这个因素,34 个人购买,这已经跑赢很多付费插件了
qqjt
    59
qqjt  
   268 天前
厉害
wannaforever532
    60
wannaforever532  
   268 天前
楼主的配图是用什么在线工具制作的呢?很漂亮啊
codespots
    61
codespots  
   268 天前
@zsk425 有啊,我们的 w2solo.com 楼主已经发了
1044523901
    62
1044523901  
   268 天前
很强
zsk425
    63
zsk425  
   268 天前
@codespots 多谢,我去关注一下
GOgoX
    64
GOgoX  
   210 天前
太棒了,感谢分享宝贵的经历!
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2696 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 33ms · UTC 11:03 · PVG 19:03 · LAX 04:03 · JFK 07:03
Developed with CodeLauncher
♥ Do have faith in what you're doing.