Lol I was just thinking "The front end is the easy part"
As far as syncing is concerned that is not as big of an issue as in other applications because there is a low chance of merge conflicts. Most people are using this to manage personal libraries. If this where in widespread use in libraries with multiple concurrent admin connections it would be harder to manage sync. CouchDB is one way to handle it. There are other ways as well. But that's getting ahead of ourselves.
If the API that you build will have the tools for doing the searches remotely that'll do just fine. I can manage building a front end that will build an ajax call to the method will all the proper arguments.