So, this is a talk I want to give:
In @HenrikJoreteg's talk about six months(?) ago, he mentioned you can build an app with PouchDB that works entirely in-browser. Henrik's talk was more of a general call-to-arms about building what I might term as "primarily client-side" apps - I want to give a deep dive talk about one aspect of that, which I would consider the biggest hurdle to entering this paradigm right now: understanding the unconventional semantics of CouchDB, which are imitated by PouchDB.
About a week ago, when I was first starting to really give CouchDB a second look, I tweeted that "CouchDB users are this collection of aliens that communicate telepathically to describe the mechanisms available to model data when using it", as a way of conveying my frustration with the conventional self-serving "Introduction to CouchDB"-style talk: they tend to spend a bunch of time on REST like it's a novelty (rather than a boring implementation detail that doesn't even apply for PouchDB), and then jump directly to intricate details like what the signature of an emit
in a map function should be. The choir who goes to this kind of talk to be preached to all nod, as if the speaker had superliminally transmitted all the slides that explain how CouchDB querying is done with views consisting of map functions defined in design documents.
(Not to get down on the CouchDB people: this is a problem I have with almost all "Introductions" in tech, which is why I've been writing my own epic-scale Lean Notes for years.)
I've been writing my own guide to learning CouchDB for the last four days or so: the meat of this presentation would essentially be a summary of the bullet points from that guide, one that does not skip over the details that are obvious to people who already live and breathe CouchDB, along with an honest admission of the common, necessary features (like managing accounts with password recovery) that CouchDB completely fails to account for (which you can solve, using a partial standalone app / daemon alongside your database).
I'd also talk a bit about the history of client-side data (the not-quite-perfect evolutionary path from cookies to localStorage to WebSQL to IndexedDB), and why you'd want to use PouchDB instead of IndexedDB directly (considering I'm the kind of guy who usually never reaches for an abstraction library).
Bio
I'm Stuart P. Bentley, and I've been developing using HTML5 for three or four years (depends on how seriously you're counting). I have a mostly-green GitHub contribution graph, and a whole bunch of repos on GitHub (somewhere above 100 - it's a bunch under my personal account, and a bunch more projects under their own organizations).