I'm not sure if I'm allowed to ask this question here. If not, please delete this question for me. 
Anyway, I have been mostly developing Basic websites with Drupal for various small projects, and I normally would charge minimum (< $2K) since I normally would spend less than 20 hours to do it. However, last year I kind of screwed myself when I was building a website for a non-profit. They gave me a fixed price of around 160 hours of work (custom app using Rudy), but I ended up spending 230+ hours to work on it, and I couldn't ask for more because the contract basically said no.
Recently I just found another project that I am also building a website for a nonprofit, except this time I'll be mainly using Drupal / CiviCRM. Do you have any suggestion that I may do to avoid the under-paying situation? Or do you always under-pay and over-work?
Anyway, I have been mostly developing Basic websites with Drupal for various small projects, and I normally would charge minimum (< $2K) since I normally would spend less than 20 hours to do it. However, last year I kind of screwed myself when I was building a website for a non-profit. They gave me a fixed price of around 160 hours of work (custom app using Rudy), but I ended up spending 230+ hours to work on it, and I couldn't ask for more because the contract basically said no.
Recently I just found another project that I am also building a website for a nonprofit, except this time I'll be mainly using Drupal / CiviCRM. Do you have any suggestion that I may do to avoid the under-paying situation? Or do you always under-pay and over-work?