Emily and I started using Appigo's ToDo.app on our iPhones years ago. In those days Toodledo didn't have an iPhone app and ToDo didn't have a web app.
Now both Toodledo and Appigo market both web apps and iOS apps. Alas, Appigo hasn't figured out how creating tasks by email should work, and I don't like Toodledo's iOS app. So I still use ToDo.app with Toodledo. It works pretty well, and now that Google has turned Evil I'm happy to avoid their world.
It works pretty well -- except when you want want to group a series of tasks as a project. The project models for Toodledo and Todo don't mesh.
Most of the time this doesn't bother me -- I like to edit and move forward tasks rather than create small projects. Sometimes, however, a complex project deserves a set of tasks.
Since the Toodledo and Todo project models don't sync, I instead steal the "Context" feature - which both ToDo and Toodledo manage similarly. A "Context" is supposed to be a location or environment for doing a task; but I've never found this "Getting Things Done" idea very useful. These days I have a computer everywhere, and that's the context for most of my tasks.
So instead of a list of "Contexts" I have "Projects" that group tasks. The UI and views are very efficient for this purpose, and synchronization works perfectly.