惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Vercel News
Vercel News
O
OpenAI News
Engineering at Meta
Engineering at Meta
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
月光博客
月光博客
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
WordPress大学
WordPress大学
宝玉的分享
宝玉的分享
GbyAI
GbyAI
T
The Blog of Author Tim Ferriss
Google DeepMind News
Google DeepMind News
B
Blog RSS Feed
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
云风的 BLOG
云风的 BLOG
罗磊的独立博客
S
SegmentFault 最新的问题
The Register - Security
The Register - Security
Hugging Face - Blog
Hugging Face - Blog
D
DataBreaches.Net
U
Unit 42
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
B
Blog
阮一峰的网络日志
阮一峰的网络日志
P
Proofpoint News Feed
雷峰网
雷峰网
V
Visual Studio Blog
小众软件
小众软件
aimingoo的专栏
aimingoo的专栏
N
Netflix TechBlog - Medium
酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Y
Y Combinator Blog
博客园 - 【当耐特】
G
Google Developers Blog
L
LangChain Blog
Stack Overflow Blog
Stack Overflow Blog
I
InfoQ
Martin Fowler
Martin Fowler
F
Fortinet All Blogs
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
The Cloudflare Blog
AI
AI
Google Online Security Blog
Google Online Security Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
博客园 - Franky
Blog — PlanetScale
Blog — PlanetScale
Webroot Blog
Webroot Blog
PCI Perspectives
PCI Perspectives
爱范儿
爱范儿
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org

Kent C. Dodds Blog

Implementing Hybrid Semantic + Lexical Search Simplifying Containers with Cloudflare Sandboxes Migrating to Workspaces and Nx Offloading FFmpeg with Cloudflare Building Semantic Search on my Content Helping YOU ask ME questions with AI How I used Cursor to Migrate Frameworks The Dow's Start on the Covenant Path 2025 in Review The next chapter: EpicAI.pro AI is taking your job How I increased my visibility Launching Epic Web 2023 in Review Stop Being a Junior RSC with Dan Abramov and Joe Savona Live Stream Fixing a Memory Leak in a Production Node.js App 2022 in Review My Car Accident I Migrated from a Postgres Cluster to Distributed SQLite with LiteFS I'm building EpicWeb.dev A review of my time at Remix Remix: The Yang to React's Yin How I help you build better websites Why I Love Remix The State Initializer Pattern How to React ⚛️ Get a catch block error message with TypeScript Building an awesome image loading experience How Remix makes CSS clashes predictable Introducing the new kentcdodds.com How I built a modern website in 2021 How to use React Context effectively Static vs Unit vs Integration vs E2E Testing for Frontend Apps The Testing Trophy and Testing Classifications Array reduce vs chaining vs for loop Don't Solve Problems, Eliminate Them Super Simple Start to Remix Super Simple Start to ESModules in Node.js JavaScript Pass By Value Function Parameters How to write a Constrained Identity Function (CIF) in TypeScript How to optimize your context value How to write a React Component in TypeScript TypeScript Function Syntaxes Listify a JavaScript Array Build vs Buy: Component Libraries edition Using fetch with TypeScript Wrapping React.useState with TypeScript Define function overload types with TypeScript 2020 in Review Business and Engineering alignment Hi, thanks for reaching out to me 👋 useEffect vs useLayoutEffect Super simple start to Firebase functions Super simple start to Netlify functions Super Simple Start to css variables Favor Progress Over Pride in Open Source Testing Implementation Details How getting into Open Source has been awesome for me useState lazy initialization and function updates Use ternaries rather than && in JSX Application State Management with React Use react-error-boundary to handle errors in React JavaScript to Know for React How I structure Express apps What open source project should I contribute to? When I follow TDD AHA Programming 💡 How I Record Educational Videos Should I write a test or fix a bug? Stop mocking fetch Intentional Career Building Improve test error messages of your abstractions Tracing user interactions with React Eliminate an entire category of bugs with a few simple tools Common mistakes with React Testing Library Super Simple Start to React Stop using client-side route redirects The State Reducer Pattern with React Hooks Function forms Replace axios with a simple custom fetch wrapper How to test custom React hooks React Production Performance Monitoring Should I useState or useReducer? Stop using isLoading booleans Make Your Test Fail Make your own DevTools An Argument for Automation Fix the "not wrapped in act(...)" warning Super Simple Start to ESModules in the Browser Implementing a simple state machine library in JavaScript 2010s Decade in Review Why users care about how you write code Why I avoid nesting closures Don't call a React function component Why your team needs TestingJavaScript.com Inversion of Control Understanding React's key prop How to Enable React Concurrent Mode Profile a React App for Performance
Becoming an Open Source Project Maintainer
2017-11-20 · via Kent C. Dodds Blog

I have a lot of open source projects that I maintain. I have personally published over 100 packages to npm. Not all of them are widely used (or used at all), but many of them are. I have some ideas about how to maintain open source projects. I've given a talk on this in the past (unfortunately each time the recording sadly failed, but there's a practice run, so check it out here).

In this post though, I want to talk about how you become a project maintainer. The easiest way to do this is to create your own project from scratch, but often what's more needed than a new project is to improve an existing project. So how do you get involved?

good question

Well, "You contribute best to something you use regularly." So before you decide you want to be a maintainer of a project, make sure it's one that you use yourself, otherwise you'll lose motivation pretty quickly.

The first project I maintained that became widely used was angular-formly. Several years ago, I needed a library to make creating forms easier with angular. I tried a few projects and finally landed with angular-formly as the one I liked the most. As what often happens with open source projects, it didn't quite meet my use cases. So I filed an issue and made a pull request. It was great.

Then something else came up and I made a pull request for that too. Then I started helping in issues and reviewing pull requests. Then one day, all of a sudden, the maintainer asked me if I wanted commit and publish access. I was surprised and thrilled. It made so much sense though. I was doing more for the project than he was at the time, so the transition worked well.

So here's the key takeaway:

Are you ready for this?

To become a project maintainer, act like a project maintainer.

That means help with issues, make pull requests, help with documentation, answer questions, make tutorials, review pull requests, etc. etc. etc. There's really no need to get permission for doing those things. Just start doing it as much as you're willing and able and magic things happen.

Now, I can't promise that you'll become a core maintainer of React if you start helping in issues and pull requests. But I can tell you that a lot of the benefits of open source will come even if you aren't the project maintainer. And many projects really do need new maintainers (angular-formly included). You don't need permission to start acting like a maintainer. If you start doing the work, then it's pretty likely that the project maintainers will eventually give you decision making power and you'll be able to make an impact on the project direction.

I should note also that not all maintainers are the same. Some really don't want to reliquish control over the project. If you have an issue with the way the project is maintained and they're not willing to let you help in the way you want, you can definitely fork the project (famous example of this is lodash).

What I love about open source is that you don't need anyone's permission to do good work. So long as you're following the project code of conduct and respect the project maintainers, your help will likely be very welcome. And if that doesn't workout, your BATNA is to fork the project (learn about and be aware of the project license if you ever do this).

I hope this is helpful! I personally have many projects that could use more active project maintainers. And I've transitioned some of them to others in the past as well. So feel free to start helping out on the projects you're using. You never know. Good luck!