I typically go with fixed bids for small web sites. I clearly define the number of pages, what database access will be needed, everything. I make the client sign off on each step. A typical site will start between $1,000 and $2,500 depending on complexity. Any extras, like logo design, photography, illustration are charged per item or per hour. My base rate is $75/hour but that can go up for things like on-site server installations, custom database business rules, etc. I then typically charge a monthly rate for web site maintenance based on a set number of hours per month, slightly discounted from my normal $75/hour. Bug fixes are free, but once the project has been billed, everything else is always extra, or rolled up into the maintenance subscription.