By monetizing I don't mean "make tons of profit", but enough to keep the site running.
I'd like to donate my time (programming hours) to build a platform that connects animal shelters and independent rescuers with people that would like to adopt or serve as a foster home. I will need to store tons of pictures (maybe in AWS S3) and build authentication.
I know you can get really cheap hosting with MySQL and PHP. But I want to use NoSQL (maybe Firebase), NodeJS and ReactJS because I want to get really good at those, since the best way to learn is by doing, I figured why not build something that will make the life of volunteers easier while promoting adoption instead of buying.
Costa Rica does not have any real animal protection laws just yet, so mistreating or abandoning an animal comes with no consequence.
ps. Meet Noche (means Night in Spanish) we recently adopted her, she had scabies a month ago but after treatment she's looking really pretty now! :) 
Lots of follow and no answers... I really hope it gets some answers
Sounds interesting. I too would like to do different sites to help the life of other people, while it would beneficial to earn a bit on it for the work.
1. Start small, find focus
You can start from DigitalOcean for just 5$/month and expand later when will be required if project will take traction.
Talking about the focus - do not try to attract any person in your city or country interested in pets, choose a single topic instead and start with it, for example - dogs only.
2. Build audience and develop unique content
When you have a lot of visitors and you know your target audience you can make money by ads or promoting any content which will be interested to your visitors.
But before that you have to build an audience first. Find people who are interested in dogs (if you started from dogs). To do so create unique content about the dogs. Write articles, make video tutorials, etc. Post on Twitter, share on Facebook and other local resources. Add Google Analytics for free.
3. Build an online marketplace
Find local animnal shelters, independent rescuers and other pet care service providers.
Sometimes people with pets need to leave their animals somewhere or to find a person who would take care of them. Help those people find local dog walking, pet sitting and other service providers. Both Animal Shelters and private businesses would be able to have an additional income and you could take your %
4. Find private investors interested in pets
Very often people are investing into something only because they are interested in. It is also very common for non-profits. Quora, for example, doesn't have business model, nevertheless, Wikipedia founder Jimmy Wales invested in Quora only because he likes it.
5. Donations
Every NPO always should remind everyone it status and ask for donations.
6. Sell simple stuff with your logo
Another type of donations. Phone cases, T-shirts, cups and everything else. For example, here is LibreOffice shop
7. Make professional trainings, sessions, meetups, workshops
This comes together with #2. If people are intersted in your content, you can sell professional payed only content and provide inhouse trainings.
8. Grow and expand
Now you can take other topics like cats and expanding your IT infrastructure.
To be honest, there are many ways in the life to earn money but these points I provided are general principles how it is done.
Bonus tip: you, of course, may build a team, found a startup and make a lot of money, but this is going to be another story...
To sum up
Build something people care about and would love with whole their heart. People are giving their money not because corporations are asking for so but only because they want. This is the key to success of any business and especially NPO and open source projects.