serviceminder.io has a very flexible system for creating and presenting options. You just write your proposal line-by-line as you normally would. But as you're doing that, you can give different lines option names. Those option names and related lines then become checkbox options for the customer to choose from.

You can create the base proposal lines without options. That means those lines are required for the project. The option lines then determine what the customer can add on when they are reviewing the proposal.

Want to encourage them to take some recommended options? You can pre-select which options will be checked when they view the proposal.

And what happens if they accept the proposal and then change their mind? While you're scheduling the accepted proposal, you can also change the selected options on the fly.