I use SFTP with cyberduck and it works pretty great. Just set up cyberduck to edit a file when you double click it rather than download. When I save the file in my code editor (atom is great btw) it automatically uploads, doesn't prompt for overwriting but I can always undo and save again if the file is still open.
I recommend this method in combination with using a git repo stored locally that you then copy your files from the server down into the git repo. After a day of coding or some relevant changes that I want to bookmark I commit to git. The benefit of doing this is you can get the revisions and track your dev progress, things you won't get if you are just editing files directly on the server as described above.
Another method I have used recently is to set up a local dev environment that is a clone of the live machine, develop locally, and upload to the server to preview live/show to client. The benefit is you get much faster hard refreshes as the page is loading locally. Also if your internet connection is intermittent or you want to work on a subway/plane etc.
There is also some cool tricks you can do with symlinking a git repo into a local mango install that I need to do a tutorial on.