这个项目库汇集了一系列详细的教程,逐步教你如何从头构建我们喜爱的各类技术。
我无法创造的东西,我就无法理解 —— 理查德·费曼
这是一个学习的好方式。
🌍 跨境出海技术栈
🛠️ 构建你自己的X
🤖 Moltbot(自托管AI助手,可接入多平台)
🎬 Remotion(用React代码生成视频)
🤝 Cowork(实时协作编辑系统)
🧩 OpenCode(开源AI编码代理)
- 构建你自己的 XXX
- 常用资源清单
- 前沿项目
- 本文目录
- 教程示例
- 构建自己的
3D 渲染器 - 构建自己的
增强现实 - 构建自己的
BitTorrent 客户端 - 构建自己的
区块链 / 加密货币 - 构建自己的
机器人 (Bot) - 构建自己的
命令行工具 - 构建自己的
数据库 - 构建自己的
Docker - 构建自己的
模拟器 / 虚拟机 - 构建自己的
前端框架/库 - 构建自己的
游戏 - 构建自己的
游戏服务器与启动器 - 构建自己的
云游戏/云手机平台 - 构建自己的
Git - 构建自己的
算法 - 构建自己的
大语言模型与训练workflow - 构建自己的
AI 搜索引擎(Perplexity 替代品) - 构建自己的
AI 智能体 (Agent)(Devin/Claude Cowork 替代品) - 构建自己的
AI 知识库与播客(NotebookLM 替代品) - 构建自己的
AI 角色扮演伴侣(Character.ai 替代品) - 构建自己的
机器人与具身智能(Unitree 替代品) - 构建自己的
大模型分布式训练(Megatron 替代品) - 构建自己的
AI 代码编辑器(Cursor 替代品) - 构建自己的
AI 制药(AlphaFold 替代品) - 构建自己的
AI 核聚变(科学计算) - 构建自己的
AI 游戏制作(不只是 NPC) - 构建自己的
AI 漫剧制作(Comic Factory) - 构建自己的
AI 量化交易(Quant/FinRL) - 构建自己的
LLMOps(LangSmith/Langfuse 替代品) - 构建自己的
Kubernetes 管理后台(Dashboard 替代品) - 构建自己的
即时通讯与团队协作(微信/Discord 替代品) - 构建自己的
商业运营与数据分析(SaaS 替代品)
- 构建自己的
- 构建你自己的
网络栈 - 构建你自己的
神经网络 - 构建你自己的
操作系统 - 构建你自己的
物理引擎 - 贡献方式
- C++:光线追踪入门:创建3D图像的简单方法
- C++:OpenGL工作原理:500行代码实现软件渲染
- C++:基于物理的渲染:理论与实现
- C++:周末学习光线追踪
- Java / JavaScript:构建你自己的3D渲染器
- JavaScript / Pseudocode:从头开始学习计算机图形学
- Go:在Go中构建区块链
- Java:用Java构建你的第一个区块链
- JavaScript:用JavaScript构建加密货币,代码少于1500行
- JavaScript:用JavaScript创建区块链
- Python:Python中区块链的实用入门
- TypeScript:NaivecoinStake教程:基于权益证明的加密货币构建
- Rust:用Rust和Substrate构建区块链
- Node.js:制作一个响应式的Telegram机器人
- Node.js:创建Discord机器人
- Python:如何用Python构建Slack机器人
- Python:创建Reddit机器人
- Python:如何用Python创建Telegram机器人
- C:从头开始构建简单数据库
- C++:从零构建自己的Redis
- Go:从头开始构建数据库:持久化、索引、并发
- Go:从零构建自己的Redis
- JavaScript:Dagoba:内存图数据库
- Python:DBDB:狗床数据库
- C:500行代码实现Linux容器
- Go:从零开始构建Go容器 [视频]
- Python:Linux容器研讨会:从零重建Docker
- Python:完全用Python编写的Docker模拟
- Shell:100行bash实现Docker
- C:自己编写虚拟机
- C:Game Boy模拟器Cinoop
- C++:如何编写一个CHIP-8解释器
- C++:主机系统模拟器教程
- C++:从零开始编写NES模拟器 [视频]
- JavaScript:JavaScript实现GameBoy模拟器
- Rust:0dmg:通过构建Game Boy模拟器学习Rust
- JavaScript:什么是JSX(构建一个JSX渲染器)
- JavaScript:DIY指南:构建你自己的React
- JavaScript:从头构建React [视频]
- JavaScript:了解React的Reconciler包原理,通过自己构建一个轻量级React DOM
- JavaScript:自己构建Redux
- JavaScript:从头实现Redux中的Store [视频]
- JavaScript:如何自己编写一个虚拟DOM
- JavaScript:从头开始构建一个前端框架,包含组件(模板、状态管理、虚拟DOM)
- JavaScript:自己构建React
- JavaScript:构建一个自定义的React渲染器 [视频]
- C:Handmade Hero项目
- C:用C语言编写象棋引擎 [视频]
- C++:从头构建打砖块游戏
- Java:使用Java编写一个2D游戏引擎(适合初学者) [视频]
- JavaScript:用Phaser构建2D打砖块游戏
- Rust:Rust游戏编程冒险:一个简单的2D游戏
- C#:Playnite:开源的游戏库管理器和启动器
- TypeScript:Heroic Games Launcher:跨平台的 Epic 和 GOG 启动器
- Go / React:Drop:自托管的游戏分发平台
- Python / C:Lutris:Linux 上的开放式游戏平台
- Python:NanoGPT:从头开始构建GPT
- Python:Andrej Karpathy: Let's build GPT [视频]
- Python:LLM训练指南 (LLMs from Scratch)
- Python:Lit-GPT:轻量高效的训练与微调框架
- Python:TorchTune:PyTorch 官方大模型微调工具箱
- Python:Axolotl:主流开源微调训练配置框架
- Python:OpenRLHF:RLHF / DPO / PPO 训练流程
- TypeScript:Scira(原MiniPerplx):极简AI元搜索引擎
- TypeScript:Perplexica:开源的Perplexity替代品
- TypeScript:Farfalle:自托管的AI搜索工具
- Python:OpenHands(原OpenDevin):开源AI软件工程师
- Python:SWE-agent:自主解决GitHub问题的AI智能体
- Python:MetaGPT:多智能体协作框架
- Rust:Goose:运行在本地的AI开发者代理
- JavaScript:Beads:基于 Git 的 AI 编程任务管理系统
- Shell:learn-claude-code:手把手教你手搓 AI Agent
- Python:UI-TARS-desktop:字节跳动开源的桌面端 AI Agent
- Markdown:awesome-claude-skills:70 多个 Claude Skill 合集
- Python:superpowers:强迫 AI 遵循 TDD 流程的编程框架
- JavaScript:skills:Anthropic 官方提供的 Agent Skills 实现
- TypeScript:vibe-kanban:专门给 AI 用的看板工具
- Python:Aider:终端里的 AI 配对编程工具,支持本地 Git
- Python:Podcastfy:将多源文本转换为AI播客
- Python:Open NotebookLM:开源的NotebookLM实现
- Python:PageIndex:无向量的逻辑树 RAG 方案
- Python:LeRobot:Hugging Face 开源机器人学习库
- Python:Mobile ALOHA:低成本开源移动操作机器人
- C++:Solo 8:开源动态四足机器人
- Python:Isaac Lab:基于 Isaac Sim 的机器人学习框架
- Python:Genesis:物理AI与机器人通用模拟平台
- Python:Megatron-LM:NVIDIA 大规模语言模型训练框架
- Python:DeepSpeed:微软深度学习优化库
- Python:Ray:通用的分布式计算框架
- Python:Colossal-AI:让大模型训练更高效
- TypeScript:Cline:VS Code 自主编码智能体
- TypeScript:Void:注重隐私的开源 AI 编辑器
- TypeScript:Continue:VS Code/JetBrains 开源 AI 助手
- TypeScript:PearAI:开源的可扩展 AI 代码编辑器
- Python:DeepMol:AI 药物发现框架
- Python:Uni-Fold:AlphaFold 的开源复现
- Python:DeepChem:深度学习药物发现库
- 更多资源详见 docs/build-your-own-ai-pharma.md
- Python:TORAX:DeepMind 开源等离子体模拟器
- Python:PlasmaPy:等离子体物理开源包
- 更多资源详见 docs/build-your-own-ai-nuclear-fusion.md
- Python:AI Assets Generator:生成游戏资产
- Unity:AI NPC Framework:集成 OpenAI 的 NPC 框架
- 更多资源详见 docs/build-your-own-ai-game-production.md
- Web:LlamaGen.Ai:AI 漫画工厂
- Python:AI Comic Factory:从脚本生成漫画
- 更多资源详见 docs/build-your-own-ai-comic-production.md
- Python:Qlib:微软 AI 量化平台
- Python:FinRL:金融强化学习库
- Python:Freqtrade:开源加密货币交易机器人
- Python:Dexter:专为金融研究设计的 AI 分析师 Agent
- 更多资源详见 docs/build-your-own-ai-quant-trading.md
- TypeScript:Langfuse:开源 LLM 可观测性平台
- Python:Phoenix:AI 可观测性与评估
- Rust:TensorZero:LLM 网关与优化
- TypeScript:Helicone:开源 LLM 成本追踪
- 更多资源详见 docs/build-your-own-llmops.md
- JavaScript:Rocket.Chat:开源全功能协作平台
- TypeScript:Element:基于 Matrix 的加密通讯
- Go:Mattermost:高安全性的 Slack 替代品
- Go:Memos:轻量级、私密化的开源个人笔记工具
- 更多资源详见 docs/build-your-own-im-and-team-chat.md
- PHP:Matomo:Google Analytics 的隐私替代品
- Python:PostHog:开源产品分析平台
- TypeScript:Cal.com:开源日程调度基础设施
- TypeScript:Web-Check:全方位、一体化的网站 OSINT 开源工具
- 更多资源详见 docs/build-your-own-business-ops.md
- Go:如何用Go构建简单的人工神经网络
- JavaScript:JavaScript神经网络教程
- Python:用11行Python代码实现神经网络
- Python:从零构建神经网络
- Python:使用LSTM神经网络生成音乐
- (任意语言):mal - 制作一个 Lisp
- C:新手的第一个垃圾收集器
- C:构建你自己的Lisp:通过学习C构建一个编程语言,代码少于1000行
- C:自己写一个解释器,它能解释自身
- C:从零开始构建编译器之旅
- C++:Kaleidoscope:使用LLVM实现一种语言
- Go:超级迷你编译器
- Java:Crafting interpreters:编程语言构建手册
- JavaScript:超级迷你编译器
- JavaScript:小型Lisp解释器
- JavaScript:在JavaScript中实现一个编程语言
- Python:用Python写一个Python解释器
- Python:如何在Python中编写一个Lisp解释器
- Python:让我们构建一个简单的解释器
- Python:从源代码到机器代码:从头构建编译器
- Rust:用Rust学习解析器组合子
- TypeScript:构建你自己的WebAssembly编译器
- C:正则表达式匹配器
- C:正则表达式匹配可以简单且快速
- Go:如何从头编写一个正则表达式引擎
- JavaScript:不到40行代码实现一个正则表达式引擎
- Python:构建你自己的正则表达式引擎:回溯、NFA、DFA
- Python:使用Redis和redis-py构建搜索引擎
- Python:在Python中构建向量空间索引引擎
- Python:让文本搜索从反馈中学习
- Python:使用TF-IDF在文本中查找重要词汇
- Go:gopass:功能成熟的命令行密码库
- Go:Vault:工业级机密管理标准
- Java:SecurePasswordStorage:基于 Spring Boot 的 Web 密码管理系统
- 更多资源详见 docs/build-your-own-Vault.md
- TypeScript:Dokploy:现代轻量级自托管 PaaS (Coolify 竞争对手)
- PHP / Go:Coolify:最火的 Vercel 开源替代方案
- Python:Dokku:最老牌、稳定的自托管 PaaS
- TypeScript:CapRover:基于 Docker Swarm 的轻量级 PaaS
- 更多资源详见 docs/build-your-own-vercel.md
- Go:ZITADEL:支持多租户、事件驱动的 Auth0 开源继任者
- Go:Ory Kratos:无头(Headless)身份管理,完全控制前端 UI
- Java:Keycloak:开源 IAM 领域的“老大哥”,功能最全的企业级方案
- Java:SuperTokens:开发者最友好的 Auth0 替代方案
- Python:authentik:配置极其灵活的全面身份供应商
- 更多资源详见 docs/build-your-own-auth0.md
- Go:Gorse:基于 Golang 的通用高性能推荐引擎
- Java / Scala / Python:Twitter The Algorithm:社交巨头的真实推荐算法开源
- Python:Stream Framework:用于构建 Feed 流与社交网络的 Python 框架
- Python:Microsoft Recommenders:全球最全的推荐系统算法库
- 更多资源详见 docs/build-your-own-recommend-system.md
- Go:Roundtable:零配置的极简 MCP 服务器
- TypeScript:MCP Servers:Anthropic 官方收集的 MCP 服务器合集
- Python:Smithery:MCP 服务器发现与一键安装平台
- TypeScript:ToolHive:快速部署 MCP 服务器的工具
- Node.js:用JavaScript从头构建一个Web服务器
- Node.js:构建简易版Express框架
- Python:简单的Web服务器
- Python:让我们构建一个Web服务器
- Python:使用Python & Flask实现RESTful Web API
这些教程覆盖了各类编程语言和框架,让你在不同技术领域中都能找到动手实践的机会,帮助你深入理解每个系统的工作原理。