如何在 Github 上获得 1000 star?

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

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

背景

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

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

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

截图显示了关于如何获取1000个星星的建议,包括提高项目质量、主动宣传、参与开源社区等方法。

image.png

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

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

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

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

勇敢迈出第一步

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

能拔脓就是好膏药。

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

开源都可以做些什么?

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

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

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

  • 好医生自动学习考试 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 徽章可以提高你项目的专业性(看起来)。

image.png

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

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

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

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

image.png

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

如何推广?

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

酒香也怕巷子深。

star-history-2025318.png

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

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

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

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

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

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

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

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

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

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

维护好你的社区

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

image.png

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

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

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

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

image.png

坚持下去

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

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

image.png

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/35972.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

汽车机械钥匙升级一键启动的优点

汽车机械钥匙升级一键启动的优点主要包括: 便捷性:一键启动功能的引入极大地提升了用车便捷性。车主无需翻找钥匙,只需在车辆感应范围内轻触启动键,即可轻松发动汽车。 安全性:移动管家专车专用一键启动系统配备了防…

[QT]深入理解Qt中的信号与槽机制

文章目录 信号与槽1. 信号和槽概述信号的本质槽的本质说明 2. 信号和槽的使用2.1 连接信号和槽2.2 查看内置信号和槽2.3 通过 Qt Creator 生成信号槽代码 3. 自定义信号和槽3.1 基本语法3.2 带参数的信号和槽**示例1:重载信号槽****示例2:信号槽参数列表…

Axure设计之下拉多选框制作教程C(中继器)

利用Axure制作下拉多选器组件可以极大地提升原型制作的效率和效果。以下是基于你提供的详细步骤的详细指导,帮助你在Axure中实现一个功能完善、高保真且可复用的下拉多选器组件。 一、案例预览 预览地址:https://pghy0i.axshare.com 实现效果包括&#…

STC89C52单片机学习——第25节: [11-1]蜂鸣器

写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难,但我还是想去做! 本文写于:2025.03.18 51单片机学习——第25节: [11-1]蜂鸣器 前言开发板说明引用解答和科普一、蜂鸣器…

Linux上的`i2c-tools`工具集的详细介绍;并利用它操作IMX6ULL的I2C控制器进而控制芯片AP3216C读取光照值和距离值

IC-Tools 工具集介绍 i2c-tools 是 Linux 下用于 IC 设备调试 的用户空间工具集(你也可以把它看成是一个库,类似于之前自己用过的触摸屏库tslib库、FreeType矢量字符库),它提供了一系列命令行工具,可以扫描、读取、写入 IC 设备,…

《CircleCI:CircleCI:解锁软件开发持续集成(CI)和持续部署(CD)高效密码》:此文为AI自动生成

《CircleCI:CircleCI:解锁软件开发持续集成(CI)和持续部署(CD)高效密码》:此文为AI自动生成 一、CircleCI 初印象 在当今软件开发的快节奏赛道上,持续集成(CI&#xff0…

LinuX---Shell脚本创建和执行

概述: 它是一个命令行解释器,接收应用程序/用户命令,然后调用操作系统内核。 Shell还是一个功能强大的编程语言,易编写、易调试、灵活性强。 Linux提供的Shell解析器有 atguiguubuntu:~$ cat /etc/shells # /etc/shells: valid …

再学:Solidity数据类型

目录 1.uint:无符号整型 2.引用类型 3.数组 4.注意gas的消耗 ​编辑 5.映射 1.uint:无符号整型 注意能容纳的最大值和最小值 2.引用类型 值类型赋值 相当于 拷贝 若拷贝开销过大,可以考虑引用类型。 memory:只存在于函数内部…

Docker Desktop配置国内镜像源教程

在使用 Docker 时,由于默认镜像源在国外,经常会遇到下载速度慢、连接超时等问题。本文将详细介绍如何在 Windows 系统中为 Docker 配置国内镜像源,以提升镜像拉取速度。 常用国内镜像源 https://docker.1ms.run清华镜像源 https://docker.m…

C#中SerialPort 的使用

最近在学习C#的SerialPort ,关于SerialPort 的使用,做如下总结: 1.可以通过函数System.IO.Ports.SerialPort.GetPortNames() 将获得系统所有的串口名称。C#代码如下: string[] sPorts SerialPort.GetPortNames(); foreach(stri…

深度学习 Deep Learning 第2章 线性代数

深度学习 第2章 线性代数 线性代数是深度学习的语言。 张量操作是神经网络计算的基石,矩阵乘法是前向传播的核心,范数约束模型复杂度,而生成空间理论揭示模型表达能力的本质。 本章介绍线性代数的基本内容,为进一步学习深度学习做…

EDID读取学习

简介 Video BIOS可以被认为是一个具有独立硬件抽象层的操作系统。它不会阻止或监视操作系统、应用程序或设备驱动程序对硬件的直接访问。虽然不推荐,但一些DOS应用程序确实可以改变基本的硬件设置,而根本不需要通过视频BIOS。大多数现代应用程序和操作系统都避免直接使用硬件…

基于SpringBoot的在线拍卖系统

摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…

Android audio(8)-native音频服务的启动与协作(audiopolicyservice和audioflinger)

音频策略的构建 1、概述 2、AudiopolicyService 2.1 任务 2.2 启动流程 2.2.1 加载audio_policy.conf(xml)配置文件 2.2.2 初始化各种音频流对应的音量调节点 2.2.3 加载audio policy硬件抽象库 2.2.4设置输出设备 ps:audiopatch流程简介 2.2.5打开输出设…

Springdoc 全部注解一文解释清楚

文章目录 **1. 核心注解****Tag-Class类上** **2. 方法级别注解****Operation-方法描述****ApiResponse 和 ApiResponses-方法的返回结果** **3. 参数相关注解****Parameter-方法参数****Parameters方法参数(单个)** **4. 实体模型相关注解****Schema-描…

Git的基本指令

一、回滚 1.git init 在项目文件夹中打开bash生成一个.git的子目录,产生一个仓库 2.git status 查看当前目录下的所有文件的状态 3.git add . 将该目录下的所有文件提交到暂存区 4.git add 文件名 将该目录下的指定文件提交到暂存区 5.git commit -m 备注信…

通过qemu仿真树莓派系统调试IoT固件和程序

通过qemu仿真树莓派系统调试IoT固件和程序 本文将介绍如何使用 QEMU 模拟器在 x86 架构的主机上运行 Raspberry Pi OS(树莓派操作系统)。我们将从下载镜像、提取内核和设备树文件,到启动模拟环境,并进行一些常见的操作&#xff0…

DeepSeek大模型在政务服务领域的应用

DeepSeek大模型作为国产人工智能技术的代表,近年来在政务服务领域的应用呈现多点开花的态势。通过多地实践,该技术不仅显著提升了政务服务的效率与智能化水平,还推动了政府治理模式的创新。以下从技术应用场景、典型案例及发展趋势三个维度进…

【HarmonyOS Next之旅】DevEco Studio使用指南(三)

目录 1 -> 一体化工程迁移 1.1 -> 自动迁移 1.2 -> 手动迁移 1.2.1 -> API 10及以上历史工程迁移 1.2.2 -> API 9历史工程迁移 1 -> 一体化工程迁移 DevEco Studio从 NEXT Developer Beta1版本开始,提供开箱即用的开发体验,将SD…

FPGA中级项目4——DDS实现

FPGA中级项目4——DDS实现 DDS简介 DDS(直接数字频率合成器,Direct Digital Frequency Synthesis)是一种基于数字信号处理技术的频率合成方法,广泛应用于通信、雷达、仪器仪表等领域。在 FPGA中实现 DDS 具有灵活性高、集成度强、…