Some feedback, please

As promised, I wanted to ask the community a few questions.

First off: external libraries: yes/no?

I’ve been thinking whether I should use an external library. This came to me when I stumbled across this article, when doing preliminary research for my proposal.

So it checked out the library presented in the article. It seems to be perfect for what we(I) would need:

  • Fallback for Firefox 2 (using globalStorage), and for IE 6,7 (using userData) – I know IE6 is not going to be supported for much longer, but I guess it would be nice to have support for 7
  • Saving objects as objects, numbers as numbers, arrays as arrays. The way localStorage works is, it calls toString on anything that’s not a string. So you get stuff like:
    localStorage.user = { name: 'marcus', likes: 'javascript' }
     localStorage.user == "[object Object]" 

    The library works around that (it’s trivial, yes, but still).

  • It is small (1.82 kB compressed)
  • It has a compatible license, as far as I can tell.

Now I guess adding another library would mostly be an issue if this makes it to core, which is what I want, but I’ll develop it initially as a plugin anyway. It’s good, though, to have this sorted out from the get-go.

Another point I’d like feedback on is the workflow I imagined with this. So, basically, how I imagine it now:

  • You start typing on a post.
  • If the connection goes down, autosaves and drafts go to localStorage.
  • If the connection comes back up before you get to press “Publish” or leave the editing page, synchronization is done in the background.
  • If you do leave the page before a synchronization is done, you’ll be notified the next time you visit your blog, prompting you to continue editing,discard or publish.
  • If you press Publish while the connection is down, posts are, again, published automatically next time you connect.

Other things I’d like to include, but weren’t in the original proposal and I don’t know if people would like these/consider them useful/consider I have time for them now:

  • When pressing on “Posts” in the dashboard while down, have a window pop-up with available posts in localStorage, instead of not doing anything.
  • Have a “Keep all posts in localStorage” button, for a very easy/basic back-up solution (and for the reason above)
  • Keep a minimal editor in cache, so you can also start writing new posts while offline, not just continue writing when your connection goes down.

My current schedule is on the project page. If you consider it either too cluttered or too lax (so I can add more features), please leave a comment.

Also, I’m not exactly a UX expert, so I would very much like some feedback on the above usage ideas.