如何在 Github 上获得 1000 star?
作为程序员,Github 是第一个绕不开的网站。我们每天都在上面享受着开源带来的便利,我相信很多同学也想自己做一个开源项目,从而获得大家的关注。然而,理想很丰满,现实却是开发了很久的项目仍然无人问津。
最近,我的一个项目获得了超过 1000 star 的成绩,我认为这是一个重要的里程碑。这个项目已耗时 5 个月,起初我并未预料到会获得如此多的支持。在本文中,我将分享本次项目的经验,祝愿大家也能早日拥有第一个 1000 star 的项目。
背景
几个月前,我在写作时突然冒出一个想法:为什么每次写作都要四处查阅资料?这些内容在写作前明明已经反复论证过,写作只是一个总结过程而已,问题究竟出在哪里?
究其原因,是没有形成良好的记录习惯。研究某项技术时,频繁地复制粘贴、切换应用会严重影响思路。即使快速记录,写作时面对凌乱的记录,也会导致查找困难,效率低下。此外,记忆力衰退也是一个因素,很多事情只能记住流程,无法记住细节。
因此,我打算开发一个小工具来快速记录这些内容。最初的想法是通过截图记录,然后利用 OCR 识别图片中的文本,最后在写作时,通过 AI 的能力整理识别后的文本。在后续版本中,我又增加了 Markdown 编辑器,使得记录与写作的流程完全打通。这个思路也受到了大量支持者的欢迎。如果有兴趣,可以试用一下 NoteGen。


做开源项目可以获得什么?
无数大佬都在各自领域默默奉献,才有了今天飞速发展的局面,我们都是站在巨人的肩膀上,在开源的世界里添砖加瓦。做开源的好处有很多:
- 获得关注,这是一种很特殊的情绪价值。
- 学到技术,既然要做为何不尝试一下新的技术?
- 规范开发的流程,提高了写作和交流能力。
- 建立个人品牌,获得人脉关系,职业发展机会。
- 等等…
GitHub 作为程序员的技术名片,你在 Github 的一切贡献都将会成为简历的亮点。我曾经在面试时收到了大量重复的简历,无非是用了某某框架、某某组件库,爱岗敬业之类的话术,如果这时你的简历上出现了参与过某些开源项目,拥有多少 star,你就会在这堆简历中脱颖而出。
勇敢迈出第一步
无论你想在开源项目中获得什么,首先要做的就是迈出第一步。要知道,每个人都是从小白逐步成长起来的,但你需要有迈出第一步的勇气,不要顾虑自己的代码是否写得不好,功能是否强大。只要能解决某个问题,就可以着手去做。先做出第一版,走通流程,后续可以逐步去完善它。
能拔脓就是好膏药。
请无视那些只会站着嘲讽的人,他们可能会说你在重复造轮子。即使你在重复造轮子,你也应该做一些特别的轮子,即使只是轮毂变了一些样子,你也可以吸引到一些忠实的用户。
开源都可以做些什么?
在 Github 上你可以看到各类的仓库,几乎你能想到的这里都可以找得到,在做之前可以去搜索一下,看一下别人是如何做的。如果你还不清楚自己要做什么,我在这提供一些方向供大家参考:
- 开发 app,这类其实很容易收获到大量的关注,因为大家可以直接下载安装包即可体验,不需要复杂的环境搭建,我做的就是独立开发三件套之一的笔记,再不济也可以去做高仿 app,也可以收获一些想学习开发技术的用户关注。
- 框架、插件、组件库类,这也是经常被喷重复造轮子的,其中框架和组件库其实很难做得起来,他们真正的运用在实际工作中,大家不会轻易去变动。
- 后台解决方案,这类开源项目也有很多,不乏获得几万 star 的项目,想做好这一点,需要你拥有丰富的实际工作经验。
- 写作,我认为写作也是一种开源,将你的经验分享给大家。
- Awesome… 这类通常需要持续对业内关注,通常要在经营上去花时间。
- …
能做的还有很多,比如我这些年也做过很多小工具:
- 好医生自动学习考试 Chrome 插件,给我媳妇开发的浏览器插件,她是护士,每年被在线学习搞得很痛苦,花几百块就可以不用学,在我的研究下,发现了网站一些很弱智的漏洞,直接做到了视频秒学和自动考试的功能。
- 掘金小号管理平台,我自己偶尔会写写文章分享,但是一年可能也憋不出几篇文章,有的时候写完感觉又没人给点赞,就想自己给自己点,然后用 nest.js 写了后端,pupppeteer 实现了爬虫,当时研究破解滑块验证码在知乎写了一个回答《滑块验证码能被机器破解么?》,居然得到了 1k+ 赞。但是由于注册小号太麻烦,也不敢给自己点赞怕被封号,后来直接开源了,不过也没见到有人用。(大家都很正直嘛)
- VS Code 翻译插件,这个我自己用了好多年了,有几个同事被我安利也在用,当时弄的是动态获取 token ,所以无需配置就可以用。但是最近发现不能用了,我也没空去管他。
- VS Code 摸鱼插件,平时总看头条,直接开发了个在 vscode 中看头条的插件,后来也是闲麻烦,直接光明正大摸鱼了。
- 前端脚手架,我职业成长的见证,技术从最开始的 gulp 到后来的 webpack 、vite ,从 jquery 到 vue3 ,但是现在又更多好用的脚手架可用,我已经不需要它了。
生活中处处充满了需求,你将它做出来,可能就会有人去用。
参与开源项目也是一条不错的道路,我在 uni-app 团队待过几个月,跟着几个大佬也学到了很多。
如何经营?
此时,你已经开发完成第一版,觉得不错,发布了第一个 release,发现还是无人问津,因为开源不仅是公开你的代码,你要检查一下是否这几项还没有做?
- README.md,请完善它,这是你项目的门户,任何用户看到空荡荡的介绍都会失去继续下去的兴趣。你应该在这里写清介绍、特性、使用方式等等。
- About,它在页面的右上角,请完善 Description 和 Topices,这样可以更加容易让大家搜索到你的仓库。
- 建立官网和文档,大家基本没有查看源码或自行摸索去使用的耐心。
小技巧,README 徽章可以提高你项目的专业性(看起来)。

这里可以清洗的展示项目构建通过,当前版本号,软件状态(alpha 指开发的早期阶段),下载量,维护频率。
另外就是演示,没有什么比图片或视频更能吸引人的了。
从此就会有零星的用户访问你的仓库,如果你戳到了他的痛点,他就会留下 star。
你可以通过 Insights -> traffic 来查看每天有多少用户访问,这些用户来自于哪里。

可以看到最多的是一个来自于 v2ex 的论坛,这就是我要继续讲的话题。
如何推广?
经过你的不懈努力,你觉得项目已经非常好用,但是只有获得了几个 star,其中还有几个是你朋友的支持。此时你应该做的是去推广它们,谁会去注意暴风中的那一片树叶呢?
酒香也怕巷子深。

可以看到 NoteGen 项目初期 star 涨速非常缓慢,因为这段时间我没有去做任何推广,完全是靠自然流量。
直到 2025 年春节前夕,我发现有几个大 V 通过微博、twitter 等平台宣传了我的项目,实现了一波 star 飞速增长,此后,也陆陆续续一些小博主或媒体在发,但是几乎没什么流量。没了大 V 加持,我的流量很快就落下来了,随后我开始了在各种技术社区论坛推荐我的项目。
这里我介绍一下我平时推广的社区:
- 掘金,自从字节接手之后,质量已经远不如从前,大家很难分到流量,充斥着各种 AI 水文和自家产品的广告,有 CSDN 那味了。
- 知乎,你可以将自己的开发经验或将自己的产品发布在某些问题下,流量会比掘金好很多。
再后来我发现论坛才是推广的好地方,可以得到更高的曝光量:
- LINUX DO 这是一个新兴的社区,进来你就会看到《请不要把互联网上的戾气带来这里!》的置顶帖,所以这里人都非常友善,即使你的项目不是很优秀,大家也不会对你阴阳怪气,你可以放心大胆地发。
- V2EX 访问它需要梯子,而且现在的邀请码比较难搞,花钱都不一定有人卖,这是个绝对专业的社区,里面有很多大佬,如果你不怕被嘲讽可以在这里发一波试试。
你可以选择自己常用的社区,一般老账号总也可以获得更高的流量吧。
请注意,大家不要水贴,也不要过于频繁的去发,避免大家产生厌恶。如果你写作能力不错,我建议还是去写一些开发过程中的技术总结,夹带项目地址,这样也可以获得一些流量,算软广吧,至少可以让有这方面需求的人能学习到一些知识。
另一种获得流量的方式:噱头。
这里说的噱头请不要做标题党,例如 《一大早起来,看到 GitHub 让我立遗嘱?》,大家喜闻乐见,觉得很有意思,顺便就给了 star。
维护好你的社区
通常情况下,你的用户会通过 issues 向你提供建议或提交 bug,这里是一个健康的开源项目最重要的环节。

你可以为每一条 issue 添加标签,以记录你未来将如何处理他们。积极的去处理每一条 issue,尤其是 bug,你应该去感谢这些无偿帮你测试的人,尽量将其解决,然后 close。
提建议的人很多,但是无需盲目遵从,你可以开通 discussions,更加方便的让大家去讨论如何去实现这些功能。也可以建立粉丝群…
如果有人给你提交 PR,那么恭喜你,他们不但喜欢你的项目,而且还愿意与你一起完善它。
在这里我要感谢一下他们几位:

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

仅开发这一项,我在这几个月的时间就提交了 600 次代码,实际上,开发我认为只占了整个项目 1/5 时间,剩下的大多数用于产品的设计与推广。
我本身不是一个独立开发者,我都是利用工作时的摸鱼时间来进行开源项目的推进,并且下班回家还要带娃,所以支撑我去做这个事情完全是因为兴趣使然,我会利用工作中的空闲时间进行开发,在带娃时思考如何去做。
开源这件事很难赚钱,完全是为爱发电,所以我希望大家尊重每一个开源项目。
相关文章:
如何在 Github 上获得 1000 star?
作为程序员,Github 是第一个绕不开的网站。我们每天都在上面享受着开源带来的便利,我相信很多同学也想自己做一个开源项目,从而获得大家的关注。然而,理想很丰满,现实却是开发了很久的项目仍然无人问津。 最近&#x…...
on-policy对比off-policy
目录 持续更新。。。 on-policy与off-policy的定义 Q-learning属于on-policy算法还是off-policy算法? 为什么off-policy适用于从离线经验或多种探索策略中学习,明明 On-policy 也可以基于探索学习的啊? 重要性权重方法 off-policy方法可…...
标准卡尔曼滤波
1.状态转移方程和观测方程 状态转移方程 x k A x k − 1 B u k w k x_k A x_{k-1} Bu_k w_k xkAxk−1Bukwk x k x_k xk:k时刻的 状态向量,理论上的真实状态。 x k − 1 x_{k-1} xk−1:k-1时刻的 状态向量,理论…...
主流区块链
文章目录 主流链1. Solana特点:适用场景:工具链: 2. Binance Smart Chain (BSC)特点:适用场景:工具链: 3. Avalanche特点:适用场景:工具链: 4. Polkadot特点:…...
pytorch中有哪些损失函数
L1Loss 计算预测值 ypred 和真实值 ytrue 之间的平均绝对误差(MAE),公式为 L ( y p r e d , y t r u e ) 1 n ∑ i 1 n ∣ y p r e d i − y t r u e i ∣ L(y_{pred},y_{true})\frac1n\sum^n_{i1}|y^i_{pred}-y^i_{true}| L(ypred,ytru…...
【设计模式有哪些】
一、创建型模式(Creation Patterns) 1. 单例模式(Singleton) 核心思想:保证一个类仅有一个实例,并提供全局访问点。实现方式:public class Singleton {// 1. 私有静态实例,volatil…...
基于SpringBoot+Vue的幼儿园管理系统+LW示例参考
1.项目介绍 系统角色:管理员、教师、普通用户功能模块:用户管理、教师管理、班级管理、幼儿信息管理、会议记录管理、待办事项、职工考核、请假信息、缴费信息、体检管理、资源管理、原料管理、菜品信息管理等技术选型:SpringBoot࿰…...
默认参数 d = {} 的陷阱
默认参数 d {} 的陷阱 问题需求思路代码实现默认参数d {}的陷阱解决办法1、在函数外为每个字符串创建空字典统计词频2、函数改为每次调用时创建新字典,避免数据污染 举一反三 问题需求 统计两个字符串的中文词语出现次数 思路 先使用jieba库分词功能处理字符串…...
Python 常用内建模块-argparse
目录 argparse 小结 argparse 在命令行程序中,经常需要获取命令行参数。Python内置的sys.argv保存了完整的参数列表,我们可以从中解析出需要的参数: # copy.py import sys print(sys.argv) source sys.argv[1] target sys.argv[2] # TOD…...
案例5_3: 6位数码管静态显示
文章目录 文章介绍效果图仿真图复习知识:代码思考 文章介绍 第5章 学习数码管,使用6位数码管进行静态显示 效果图 仿真图 新建一个干净的5_3文件夹,用于存放新画的仿真图 除单片机最小系统外,新增3个元器件,分别是&…...
Profinet转Modbus RTU/TCP以太网通讯处理器
Profinet转Modbus RTU/TCP以太网通讯处理器 在当今的工业自动化领域,各种通讯协议和标准层出不穷。 其中,Profinet和Modbus作为两种广泛应用的通讯协议,分别在不同的应用场景中发挥着重要作用。 然而,当需要将这两种协议进行转换…...
3倍训练速度+40%显存节省!Mamba+Transformer 仅用一半时间,性能提升80%!
在人工智能领域,Mamba与Transformer的结合正在成为研究热点,为自然语言处理和多模态任务带来新的突破。 最新研究表明,通过将Mamba架构与Transformer的强大编码能力相结合,模型在处理复杂的多模态数据时的效率提升了50%ÿ…...
春秋云境刷题1
CVE-2022-29464 靶标介绍: WSO2文件上传漏洞(CVE-2022-29464)是Orange Tsai发现的WSO2上的严重漏洞。该漏洞是一种未经身份验证的无限制任意文件上传,允许未经身份验证的攻击者通过上传恶意JSP文件在WSO2服务器上获得RCE。 Git…...
台式机电脑组装---电源
台式机电脑组装—电源 22 33 主板供电是聚集了12V,5V,3.3V的24pin CPU供电的话主要是12V的44pin供电 44pin合并之后,就是8pin 55 SATA硬盘会使用饼io口取电,从电源获取12v,5v,3.3v的电 33...
10-BST(二叉树)-建立二叉搜索树,并进行前中后遍历
题目 来源 3540. 二叉搜索树 - AcWing题库 思路 建立二叉搜索树(注意传参时用到了引用,可以直接对root进行修改),同时进行递归遍历;遍历可以分前中后三种写,也可以用标志来代替合在一起。其余详见代码。…...
蓝桥杯备考:贪心问题之淘淘摘苹果
这是淘淘摘苹果普通版,很可爱的一道题,我们不多陈述,直接上代码 #include <iostream> using namespace std; const int N 15; int a[N]; int main() {for(int i 1;i<10;i){cin >> a[i];}int x;cin >> x;x30;int cnt …...
VSTO(C#)Excel开发 系列目录 含源码发布
初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…...
在 Ubuntu 下通过 Docker 部署 Nginx+PHP-FPM 服务器
引言 大家好,今天我们来聊聊如何在 Ubuntu 下通过 Docker 部署 Nginx 和 PHP-FPM 服务器。Docker 是一个开源的容器化平台,可以轻松地打包、分发和管理应用程序。而 Nginx 是一个高性能的 HTTP 服务器和反向代理服务器,PHP-FPM 则是 PHP 的一…...
Git使用和原理(3)
1.远程操作 1.1分布式版本控制系统 我们⽬前所说的所有内容(⼯作区,暂存区,版本库等等),都是在本地!也就是在你的笔记本或者 计算机上。⽽我们的 Git 其实是分布式版本控制系统!什么意思呢&a…...
【ELK】节省存储 之 压缩存储方式调整
目录 集群版本: 7.17.6 解释几个概念: 段(Segment) 合并(Merge) 索引设置: 压缩方式(index.codec): 测试设置前提条件 对比 在创建的时候指定压缩类型(index.codec) 对比 在…...
导出的使用
在web开发中,导出是很常见的一个功能,当我进行个人项目练习的时候,导出的时候无法控制列宽以及居中样式,后续发现导出插件无法进行修改,整个插件较为简便易懂的同时,对于EX的控制较为简陋,很多东…...
博客图床 VsCode + PigGo + 阿里云OSS
关键字 写博客,图床,VsCode,PigGo,阿里云OSS 背景环境 我想把我在本地写的markdown文档直接搬到CSDN上和博客园上,但是图片上传遇到了问题。我需要手动到不同平台上传文件,非常耗费时间和经历。 为了解决…...
鸿蒙开源硬件:重构万物智联生态的底层基座与未来机遇
一、从生态裂变到产业重构:开源鸿蒙的崛起之路 自 2020 年开源至今,OpenHarmony 社区以惊人的发展速度重塑智能终端操作系统格局。数据显示,其代码量已从初始的 700 万行激增至 1.2 亿行,汇聚超 8200 名开发者及 70 余家核心共建…...
C++之list类及模拟实现
目录 list的介绍 list的模拟实现 定义节点 有关遍历的重载运算符 list的操作实现 (1)构造函数 (2)拷贝构造函数 (3)赋值运算符重载函数 (4)析构函数和clear成员函数 (5)尾…...
SwinTransformer 改进:添加DoubleAttention模块提升上下文语义提取能力
目录 1. DoubleAttention模块 2. SwinTransformer + DoubleAttention 3. 完整代码 Tips:融入模块后的网络经过测试,可以直接使用,设置好输入和输出的图片维度即可 1. DoubleAttention模块 DoubleAttention 是一种用于计算机视觉任务的注意力机制,旨在通过双重注意力机制…...
在Electron中实现实时下载进度显示的完整指南
在开发Electron应用时,提供良好的用户体验至关重要,尤其是在下载大文件时。用户需要知道下载进度、预计完成时间以及当前下载速度。本文将详细介绍如何在Electron应用中实现实时下载进度显示功能,从主进程到渲染进程的完整流程。 技术栈是ele…...
java生成一个可以下载的word文件
在 Java 里,你能够借助 Apache POI 库来生成 Word 文件,并且实现文件下载功能。下面为你详细介绍实现步骤和示例代码。 1. 添加依赖 若使用 Maven 项目,需在 pom.xml 里添加 Apache POI 的依赖: <dependencies><depen…...
MacBook部署达梦V8手记
背景 使用Java SpringBootDM开发Web应用,框架有License,OSX加载dll失败,安装了Windows 11,只有一个C盘,达梦安装后因为C盘权限问题,创建数据库失败,遂采用Docker容器方式部署。 下载介质 官网在…...
外贸 B2B 平台没落?多语言批发系统正在崛起
近年来,全球外贸行业正在发生快速变化,传统的 B2B 平台正面临越来越多的挑战,尤其是在面对新兴的多语言批发系统时。这种变化不仅影响了供应商和买家之间的交易方式,也正在推动外贸行业的数字化升级和转型。今天,让我们…...
[spring] Spring JPA - Hibernate 多表联查 1
[spring] Spring JPA - Hibernate 多表联查 之前在 [spring] spring jpa - hibernate 名词解释&配置 和 [spring] spring jpa - hibernate CRUD 简单的学习了一下怎么使用 Hibernate 实现 CRUD 操作,不过涉及到的部分都是逻辑上比较简单的实现——只在一张表上…...
