1. Long term support is what organizations need.
It's a rare software project that doesn't need some kind of support. If there's no one to call when it breaks, or needs to scale, or when a new staffer shows up and the previous one didn't train them (happens all the time), then they will stop using it. It's possible for a well meaning developer to hang an albatross around the neck of an organization by building something they depend on, but not have any support plan worked out.
This can be mitigated by hosting the applications for the clients, in exchange for a hosting fee. If you don't host it yourself, then you have to deal with sysadmining unfamiliar boxes in a crisis situation, where the problem could be a change anywhere on the system. No fun!
Along with hosting, offer a help desk at an hourly rate. Nonprofits really benefit from this because they have a lot of turnover, and you end up becoming the institutional memory for the organization's tech. Even if you have turn over too, chances are there's a better understanding at your tech shop of what is going on.
2. Cheap is better than free.
Pro Bono sounds noble, but I've found it leads to... bad things. There's something that changes in people's mindset when something is free. Client expectations can become extremely unreasonable, and it's hard to polish something when you're not getting paid. Where "done" is becomes extremely vague, and you would be surprised at how doing someone a favor can end up making everyone unhappy. So charge money. Be cheaper than industry standard, much cheaper if you can, but make it a real project with a real budget. This helps everyone to prioritize.
3. Nonprofit might not be the best business model.
The main disadvantage on being a nonprofit (at least in the US) is that you cannot work on political campaigns. We're a workers co-op instead. It's been working out pretty well for us. However, we've never tried to be donation driven, so I'm not sure how that would factor in. I think you should look at a balance of donations and charging for labor, and find the business model that supports both. Or have two organizations, a nonprofit and a co-op, to handle the two different revenue flows. It think getting direct donations and grants will be hard. At any rate, that money will come with a mandate of some kind. So I would encourage you to cast a wide net, have a look at co-ops and other business types as well, and make sure you pick a model that can support all the revenue streams you want.
Cheers,
Ted