Open martindale opened 8 years ago
As of df4efa2, Maki has a functional single-page application, built in Polymer, that binds collections to an internal, client-side datastore, synchronized with a server-side state.
Missing at this time is automatic updates of the UI, which should provide a reasonably demonstrable prototype.
With 6b15189, Maki should now work completely as a library that exposes a default set of components, which can be overridden in resource definition by supplying a components
option. I've put up a temporary test node for Melody, our "minimum application prototype". A few issues remain (more on that later).
The primary components that are now exposed by Maki:
<maki-application>
, a root template for bootstrapping a local client with a particular configuration (loaded currently from a remote node via an OPTIONS
request)<maki-datastore>
, a simple key/value datastore backed by IndexedDB that binds to the DOM<maki-channel>
, a connection manager for streaming real-time updates from peers<maki-identity>
, a sandboxed keystore used for authentication with the network<maki-collection>
, a simple view of content that emits events when changed locallyUsed in combination, these elements now construct a fully-functional client-side implementation of the component idea. Much polish will be needed, so I'll be looking to the community to adopt the various components and their behaviors. My goal is to make each component a completely isolated module, with a maintainer per.
We now need to add tests. As this is my first foray into Polymer, it's not clear to me how to make these elements testable. Guidance or even contributions would be greatly appreciated.
I cannot adequately describe just how cool this is; to see the whole thing working together in concert like it is now. We are so very close to the 0.3 release, I can taste it.
See: https://maki.io/snippets/components