I agree with everything except "Bill hourly".
A client wants a benefit, not x lines of code. Charge them for the value you deliver.
The few hourly projects I agreed to when I first started were always a challenge because I had an incentive to not go full speed which then ended up killing the enjoyment of loving what I do.
The few hourly projects I agreed to when I first started were always a challenge because I had an incentive to not go full speed which then ended up killing the enjoyment of loving what I do.