Like you said, everyone has a reason to do what he does, and so my reason is self-promo to be honest. I actually think most OSS-Projects are done by their maintainers for this reason.
For promotion I had done/do the following:
- Post on relevant subreddits
- Google for new results (last 24h) that match some keywords ("js database") and answer there if possible
- Posted it on Lobsters and other js-news-sites
- Shown HN (I did this a bit too much which maybe can be called spam by some or "growth hacking" by others)
- Currently I think about doing an egghead.io-tutorial for the project
I would say that overall I spend about 20% of the time for marketing, 20% for the code, 30% for the tests and 30% for the documentation. Most of the time I just code for some weeks and after a new release, I do some promotion.
Here is the project btw: https://github.com/pubkey/rxdb