After collecting data and building/installing apps, it pretty quickly becomes apparent the Locker is a very slick aggregation and visualization platform, but crippled when it comes to making noise my friends can hear. Many of the apps I'd like to build, and anything beyond just mashing data, involve somehow publishing content outside of the locker. Leaving inter-locker sharing for another thread, on BART this morning I could come up with two possible schemes:
Leave it for apps to build
The easiest path is to sit down and say you're at the end of it. In this world, Locker and the APIs it covers are read-only, and if you want something else, you get to build something else.
+ don't have to do anything in Locker core
+ keeps out external dependencies
+ apps can tailor their experience
- app developers have to build for more APIs
- users have to re-auth services for each app that wants to publish
Build it into Locker core
In this world, Locker learns the write APIs of Facebook, Twitter, etc. and wraps them in a single publishing API usable by apps.
+ app developers get publishing to N services for free
+ users auth Locker once, not each app
+ apps can still build their own if they need to
- more dependencies in Locker core
- Locker's API surface area increases
- the API can't possibly wrap different providers' functionality in a single consistent layer
- if it's per app, Locker needs its own app<->provider permissions map
Plugins
I said I thought of two on BART; that means this one was only half-formed just now. In this world, Locker doesn't ship with a write API but functionality can be added when you install an app. Maybe this is through an npm package, or maybe just some plug-and-play JavaScript libraries.
+ most of the pros from world 1?
- most of the cons from world 2?
As an app developer, the best 80% state feels like asking Locker for publish permissions (either in general or to a set of providers) and getting yes/no I'm allowed, then providing a single data blob that Locker translates and sends to N provider APIs. The 20% is probably craptown, but hell, it already aggregates and dedupes everything - the other direction can only be equally hard...
Questions
What services already do this?
How do they manage it?
What do end users want vs devs?