Open-source first doesn't mean you need to cover every use case

An argument against the contribution-first and open-source-first approach is that it takes longer than writing custom code.

I think that this is due to thinking that you need to cover all use cases within the code if it's open-sourced, whereas, in custom code, you only write the code you need.

My approach is to write the same code, whether it's private and custom or open-sourced.

The code is based on the same set of requirements, and the only code that should be written should be enough to satisfy those requirements.

It doesn't get written if something isn't part of that objective.

It could be added to a public roadmap for the future if it doesn't need to be part of the initial minimal version.

If someone creates an issue to request new functionality or submits a pull request to contribute potential changes, you decide whether to accept or reject it or even add them as a maintainer to manage their own contributions as well as administrative tasks like managing the issue queues.

If you accept their code, you get the benefit of it (though you also need to maintain and own it) or, if you reject it, you can continue focusing on your minimum-viable version for its initial project.