One of my first website builds was for a local .org. I did this for free as it was for a couple of friends who were trying to promote a community event (that is now going to be an annual thing). In the end, this project would have easily been a $1,500 website given the timeline and amount of work put into it. As I was pretty new at coding, I considered this to be a good learning opportunity for a client experience, working on a time line, meeting the needs of the client, etc. I also learned how to execute several techniques I had heard about or used in class work based projects. Ultimately, this freebie lead to two new paying clients who wanted websites, and potentially a third as the community group would like me to build a new site for their 2nd year event (with an offer to compensate me for my time). So yeah, sometimes working for free does have it’s advantages.
Having said that, you do need to be able to make ends meat doing whatever work it is you do. I have met with individuals who just don’t understand the amount of work that is involved with building and maintaining data/websites, etc.; that there are additional costs when it comes to buying the domain and hosting. That your equiptment and some of the software you use was not free (e.g. your computer). And that your time and expertise is worth something (especially considering we have precious limited time and would like to spend it doing various other things).