We use Kanban to sharing the tasks and for control the project status. You can see the progress in any time and if it needed discuss the changes to process. For long term projects we run the development servers for ability to see the current projects state.
We use PHP with MySQL in our projects. There is the best solution for many of web applications. However, the most relevant instrument for the task is in priority.
We work by 2 pricing schemas — Fixed and Time&Materials. We calculate the complexity of the project and define deadlines by brief items in first case. In the second case you define the task for developments and pay the bill after iteration. We can combine these schemas (for instance, to develop the MVP with defined functionality and iteratively develop the product).