作为程序员,Github 是第一个绕不开的网站。我们每天都在上面享受着开源带来的便利,我相信很多同学也想自己做一个开源项目,从而获得大家的关注。然而,理想很丰满,现实却是开发了很久的项目仍然无人问津。

最近,我的一个项目获得了超过 1000 star 的成绩,我认为这是一个重要的里程碑。这个项目已耗时 5 个月,起初我并未预料到会获得如此多的支持。在本文中,我将分享本次项目的经验,祝愿大家也能早日拥有第一个 1000 star 的项目。

背景

几个月前,我在写作时突然冒出一个想法:为什么每次写作都要四处查阅资料?这些内容在写作前明明已经反复论证过,写作只是一个总结过程而已,问题究竟出在哪里?

究其原因,是没有形成良好的记录习惯。研究某项技术时,频繁地复制粘贴、切换应用会严重影响思路。即使快速记录,写作时面对凌乱的记录,也会导致查找困难,效率低下。此外,记忆力衰退也是一个因素,很多事情只能记住流程,无法记住细节。

因此,我打算开发一个小工具来快速记录这些内容。最初的想法是通过截图记录,然后利用 OCR 识别图片中的文本,最后在写作时,通过 AI 的能力整理识别后的文本。在后续版本中,我又增加了 Markdown 编辑器,使得记录与写作的流程完全打通。这个思路也受到了大量支持者的欢迎。如果有兴趣,可以试用一下 NoteGen

做开源项目可以获得什么?

无数大佬都在各自领域默默奉献,才有了今天飞速发展的局面,我们都是站在巨人的肩膀上,在开源的世界里添砖加瓦。做开源的好处有很多:

  1. 获得关注,这是一种很特殊的情绪价值。
  2. 学到技术,既然要做为何不尝试一下新的技术?
  3. 规范开发的流程,提高了写作和交流能力。
  4. 建立个人品牌,获得人脉关系,职业发展机会。
  5. 等等...

GitHub 作为程序员的技术名片,你在 Github 的一切贡献都将会成为简历的亮点。我曾经在面试时收到了大量重复的简历,无非是用了某某框架、某某组件库,爱岗敬业之类的话术,如果这时你的简历上出现了参与过某些开源项目,拥有多少 star,你就会在这堆简历中脱颖而出。

勇敢迈出第一步

无论你想在开源项目中获得什么,首先要做的就是迈出第一步。要知道,每个人都是从小白逐步成长起来的,但你需要有迈出第一步的勇气,不要顾虑自己的代码是否写得不好,功能是否强大。只要能解决某个问题,就可以着手去做。先做出第一版,走通流程,后续可以逐步去完善它。

能拔脓就是好膏药。

请无视那些只会站着嘲讽的人,他们可能会说你在重复造轮子。即使你在重复造轮子,你也应该做一些特别的轮子,即使只是轮毂变了一些样子,你也可以吸引到一些忠实的用户。

开源都可以做些什么?

在 Github 上你可以看到各类的仓库,几乎你能想到的这里都可以找得到,在做之前可以去搜索一下,看一下别人是如何做的。如果你还不清楚自己要做什么,我在这提供一些方向供大家参考:

  1. 开发 app,这类其实很容易收获到大量的关注,因为大家可以直接下载安装包即可体验,不需要复杂的环境搭建,我做的就是独立开发三件套之一的笔记,再不济也可以去做高仿 app,也可以收获一些想学习开发技术的用户关注。
  2. 框架、插件、组件库类,这也是经常被喷重复造轮子的,其中框架和组件库其实很难做得起来,他们真正的运用在实际工作中,大家不会轻易去变动。
  3. 后台解决方案,这类开源项目也有很多,不乏获得几万 star 的项目,想做好这一点,需要你拥有丰富的实际工作经验。
  4. 写作,我认为写作也是一种开源,将你的经验分享给大家。
  5. Awesome... 这类通常需要持续对业内关注,通常要在经营上去花时间。
  6. ...

能做的还有很多,比如我这些年也做过很多小工具:

  • 好医生自动学习考试 Chrome 插件,给我媳妇开发的浏览器插件,她是护士,每年被在线学习搞得很痛苦,花几百块就可以不用学,在我的研究下,发现了网站一些很弱智的漏洞,直接做到了视频秒学和自动考试的功能。
  • 掘金小号管理平台,我自己偶尔会写写文章分享,但是一年可能也憋不出几篇文章,有的时候写完感觉又没人给点赞,就想自己给自己点,然后用 nest.js 写了后端,pupppeteer 实现了爬虫,当时研究破解滑块验证码在知乎写了一个回答《滑块验证码能被机器破解么?》,居然得到了 1k+ 赞。但是由于注册小号太麻烦,也不敢给自己点赞怕被封号,后来直接开源了,不过也没见到有人用。(大家都很正直嘛)
  • VS Code 翻译插件,这个我自己用了好多年了,有几个同事被我安利也在用,当时弄的是动态获取 token ,所以无需配置就可以用。但是最近发现不能用了,我也没空去管他。
  • VS Code 摸鱼插件,平时总看头条,直接开发了个在 vscode 中看头条的插件,后来也是闲麻烦,直接光明正大摸鱼了。
  • 前端脚手架,我职业成长的见证,技术从最开始的 gulp 到后来的 webpack 、vite ,从 jquery 到 vue3 ,但是现在又更多好用的脚手架可用,我已经不需要它了。

生活中处处充满了需求,你将它做出来,可能就会有人去用。

参与开源项目也是一条不错的道路,我在 uni-app 团队待过几个月,跟着几个大佬也学到了很多。

如何经营?

此时,你已经开发完成第一版,觉得不错,发布了第一个 release,发现还是无人问津,因为开源不仅是公开你的代码,你要检查一下是否这几项还没有做?

  1. README.md,请完善它,这是你项目的门户,任何用户看到空荡荡的介绍都会失去继续下去的兴趣。你应该在这里写清介绍、特性、使用方式等等。
  2. About,它在页面的右上角,请完善 Description 和 Topices,这样可以更加容易让大家搜索到你的仓库。
  3. 建立官网和文档,大家基本没有查看源码或自行摸索去使用的耐心。

小技巧,README 徽章可以提高你项目的专业性(看起来)。

这里可以清洗的展示项目构建通过,当前版本号,软件状态(alpha 指开发的早期阶段),下载量,维护频率。

另外就是演示,没有什么比图片或视频更能吸引人的了。

从此就会有零星的用户访问你的仓库,如果你戳到了他的痛点,他就会留下 star。

你可以通过 Insights -> traffic 来查看每天有多少用户访问,这些用户来自于哪里。

可以看到最多的是一个来自于 v2ex 的论坛,这就是我要继续讲的话题。

如何推广?

经过你的不懈努力,你觉得项目已经非常好用,但是只有获得了几个 star,其中还有几个是你朋友的支持。此时你应该做的是去推广它们,谁会去注意暴风中的那一片树叶呢?

酒香也怕巷子深。

可以看到 NoteGen 项目初期 star 涨速非常缓慢,因为这段时间我没有去做任何推广,完全是靠自然流量。

直到 2025 年春节前夕,我发现有几个大 V 通过微博、twitter 等平台宣传了我的项目,实现了一波 star 飞速增长,此后,也陆陆续续一些小博主或媒体在发,但是几乎没什么流量。没了大 V 加持,我的流量很快就落下来了,随后我开始了在各种技术社区论坛推荐我的项目。

这里我介绍一下我平时推广的社区:

  1. 掘金,自从字节接手之后,质量已经远不如从前,大家很难分到流量,充斥着各种 AI 水文和自家产品的广告,有 CSDN 那味了。
  2. 知乎,你可以将自己的开发经验或将自己的产品发布在某些问题下,流量会比掘金好很多。

再后来我发现论坛才是推广的好地方,可以得到更高的曝光量:

  1. LINUX DO 这是一个新兴的社区,进来你就会看到《请不要把互联网上的戾气带来这里!》的置顶帖,所以这里人都非常友善,即使你的项目不是很优秀,大家也不会对你阴阳怪气,你可以放心大胆地发。
  2. V2EX 访问它需要梯子,而且现在的邀请码比较难搞,花钱都不一定有人卖,这是个绝对专业的社区,里面有很多大佬,如果你不怕被嘲讽可以在这里发一波试试。

你可以选择自己常用的社区,一般老账号总也可以获得更高的流量吧。

请注意,大家不要水贴,也不要过于频繁的去发,避免大家产生厌恶。如果你写作能力不错,我建议还是去写一些开发过程中的技术总结,夹带项目地址,这样也可以获得一些流量,算软广吧,至少可以让有这方面需求的人能学习到一些知识。

另一种获得流量的方式:噱头

这里说的噱头请不要做标题党,例如 《一大早起来,看到 GitHub 让我立遗嘱?》,大家喜闻乐见,觉得很有意思,顺便就给了 star。

维护好你的社区

通常情况下,你的用户会通过 issues 向你提供建议或提交 bug,这里是一个健康的开源项目最重要的环节。

你可以为每一条 issue 添加标签,以记录你未来将如何处理他们。积极的去处理每一条 issue,尤其是 bug,你应该去感谢这些无偿帮你测试的人,尽量将其解决,然后 close。

提建议的人很多,但是无需盲目遵从,你可以开通 discussions,更加方便的让大家去讨论如何去实现这些功能。也可以建立粉丝群...

如果有人给你提交 PR,那么恭喜你,他们不但喜欢你的项目,而且还愿意与你一起完善它。

在这里我要感谢一下他们几位:

坚持下去

什么事情都不是一蹴而就的。

做开源需要的就是时间和耐心,独立去做一个项目相当于在一个人成立了一家公司,所有的事都压在你一个人的头上,你可能需要做产品、设计、开发、测试、运维、运营、客服、文案、策划等等...

仅开发这一项,我在这几个月的时间就提交了 600 次代码,实际上,开发我认为只占了整个项目 1/5 时间,剩下的大多数用于产品的设计与推广。

我本身不是一个独立开发者,我都是利用工作时的摸鱼时间来进行开源项目的推进,并且下班回家还要带娃,所以支撑我去做这个事情完全是因为兴趣使然,我会利用工作中的空闲时间进行开发,在带娃时思考如何去做。

开源这件事很难赚钱,完全是为爱发电,所以我希望大家尊重每一个开源项目。

如何在 Github 上获得 1000 star?的更多相关文章

  1. 如何在 Github 上发现优秀的开源项目?

    之前发过一系列有关 GitHub 的文章,有同学问了,GitHub 我大概了解了,Git 也差不多会使用了,但是还是搞不清 GitHub 如何帮助我的工作,怎么提升我的工作效率? 问到点子上了,Git ...

  2. 关于如何在github上创建团队开发环境

    今天想写个如何在github上创建团队开发环境的博客.送给那些还不知道如何在github上创建团队开发环境的开发人员. 1.首先,当然你要有个github的账号.具体怎么注册我这里就不说了.可以上gi ...

  3. Github上的1000多本免费电子书重磅来袭!

    Github上的1000多本免费电子书重磅来袭!   以前 StackOverFlow 也给出了一个免费电子书列表,现在在Github上可以看到时刻保持更新的列表了. 瞥一眼下面的书籍分类目录,你就能 ...

  4. 如何在github上提交pr

    如何在github上提交pr 1.fork开源的代码到自己的远程仓库 2.clone自己的仓库到本地电脑 3.与源代码的github仓库建立新的连接 git remote add upstream h ...

  5. 如何在github上部署自己的前端项目

    很多时候我们想需要一个地址就可以访问自己的前端作品, 但是注册一个服务器和域名是需要花钱,很多小伙伴都不愿意, 其实这种前端静态页面github就可以帮我们预览其效果,而且只要在有网的情况下都可以访问 ...

  6. Pull Request的正确打开方式(如何在GitHub上贡献开源项目)

    Pull Request的正确打开方式(如何在GitHub上贡献开源项目) GitHub的官方帮助如下: Fork A Repo: https://help.github.com/articles/f ...

  7. 如何在GitHub上大显身手?

    推荐一篇良许大佬的文章,如何在github上大显身手.拥有自己的github,且有所贡献,这是一件很有意义的的事情,在面试上也是加分项哦,赶紧搞起来. 转载至http://uee.me/aHAfN 这 ...

  8. 如何在 GitHUb 上使用 gitbook 发布一本在线书籍

    如何在 GitHUb 上使用 gitbook 发布一本在线书籍 ebook / pdf refs https://docs.gitbook.com/integrations/github xgqfrm ...

  9. 如何在 GitHub 上高效阅读源码?

    原文链接: 如何在 GitHub 上高效阅读源码? 之前听说过一个故事,一个领导为了提高团队战斗力,把团队成员集中起来,搞封闭开发,重点还是在没有网的条件下. 结果就是一个月过去了,产出基本为零. 我 ...

  10. 【博客】如何在Github上创建博客

    [博客]如何在Github上创建博客 1. 安装nodejs windows安装npm教程--nodejs 2. 安装hexo npm install -g hexo-cli 3. 搭建博客 $ he ...

随机推荐

  1. 即时通讯技术文集(第29期):IM开发技术合集(Part2) [共18篇]

    为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第29 期. [- 1 -] 谈谈移动端 IM 开发中登录请求的优化 [链接] http://w ...

  2. 百度高效研发实战训练营-Step4

    百度高效研发实战训练营-Step4 4.1 代码检测规则:Java案例详解 以Java的案例进行代码检查规则解释,代码检测规则可以分为以下十类: 4.1.1 源文件规范 该类规范,主要为从文件名.文件 ...

  3. Linux 压缩命令集合

    01. tar格式 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!) 02. gz格式 解压1:gunzi ...

  4. Solution -「NOI 2017」「洛谷 P3822」整数

    \(\mathscr{Description}\)   Link.   初始有整数 \(x=0\), 给出 \(n\) 次操作, 每次操作为 \(x\gets x+a\cdot2^b\) 或询问 \( ...

  5. CDS标准视图:催款级别分配 I_DunningLevelDistribution

    视图名称:催款级别分配 I_DunningLevelDistribution 视图类型:参数视图 视图代码: 点击查看代码 @AbapCatalog.sqlViewName: 'IFIDUNLVLDI ...

  6. nginx平台初探-1

    初探nginx架构(100%) 众所周知,nginx性能高,而nginx的高性能与其架构是分不开的.那么nginx究竟是怎么样的呢?这一节我们先来初识一下nginx框架吧. nginx在启动后,在un ...

  7. AVX512

    最近接触到SIMD编码,就不可避免的查到了AVX指令集,两者有什么关系呢,了解一下? 问:AVX是什么? 答:是一套指令集 下面具体看: AVX 以下内容主要转载自:AVX指令集是什么?它的应用又有哪 ...

  8. Django项目实战:解除跨域限制

    Django项目实战:解除跨域限制 在Web开发中,跨域资源共享(CORS)是一个重要的安全特性,它限制了网页只能与其同源的服务器进行交互.然而,在开发过程中,我们经常需要前端(如Vue.js.Rea ...

  9. AI-接入

    前言 前面已经申请了模型,并且通过测试已经可以访问使用了,本篇的接入还是使用Ollama,前面我们已经可以在命令行终端能够进行交互了,现在将AI接入到代码中: 准备 作为一名Neter这里使用的是.n ...

  10. MinIO笔记

    MinIO (网站 https://min.io/) 是开源的对象存储项目, 用Go实现, 支持Linux环境, 客户端支Java,Python,Javacript, Go等语言. 在分布式项目中, ...