Don't Fix the Price
As such, it's extremely difficult to develop on a fixed budget.
Instead of trying to adhere to an arbitrary budget:
- Split large projects into smaller ones
- Develop the "core" features first
- Add only what's absolutely critical
- Use an agile approach so you always have a working version
Remember, you might not be "done" when you think.