You should open source your code if you don't see a benefit in keeping it closed (usually "you won't sell it" is a good reason). Then maybe some people will contribute to it and improve it: bugfixes, new features, etc. That's great! But every single line you merge becomes your responsibility, so you should only merge it if it improves your project in your opinion. Maybe the feature is great but it is complex, and you don't want to maintain that: it's okay, don't merge it and let the author fork!
Do NOT implement feature requests for free, because this is charity. Either you help people contribute it or you clearly tell them that you won't merge that (but that they can implement it in their fork). Unless they are willing to pay for your work, in which case it's not charity anymore. And because you get paid to implement it does not mean you have to support it for 10 years: once it's implement it, they can fork the project with their feature, and you don't owe them anything anymore.