Cloud Assistant Framework

- You want to port a native app to a browser, but don't know what to do with the bits that are not UI.

- Your battery operated gadget has an Internet presence, but it is never on-line when cloud services or mobile apps want to talk to it.

- Your app should not depend on Facebook™ or Google+™, but your potential customers will never friend themselves just for you.

You need cloud proxies!

Active proxies co-designed with your UI to provide a unique, persistent cloud presence for each instance of your app.

And this is what the Cloud Assistant Framework (CAF) is all about. A Cloud Assistant (CA) is a light-weight and stateful proxy written in JavaScript (node.js) that once started, continues to run indefinitely, with or without apps running on any client device, with maintenance costs of cents per year (per instance) while scaling to billions.

Learn more »

Programming Model

We want to simplify aspects of distributed programming so that front-end programmers with no back-end experience can co-design apps with CAs using familiar abstractions.

The CAF model was inspired by Erlang/OTP Actors and extended with persistent sessions, distributed sharing abstractions, checkpointing of consistent state, a security architecture based on linked local name spaces, and opportunities for customization that use dependency injection.

CAF Design »

Try a Few Examples

You have already tried one! This website is a CA-enabled web app, and when you create an account (needed to run the examples) we create a CA just for you. This CA will always be running and does things on your behalf. When you actually sign in again, the browser app creates a session with your CA and exchanges pending notifications and new requests. So what does your CA actually do? Not much for now. It tracks the security tokens of CAs that you create so that we can re-create your stuff when you login again (possibly in a different device).

But the sky is the limit. An active proxy can monitor the health of your apps and send you hate mail, track github commits to update documentation of your plugins, aggregate and customize content before you need it, and facilitate your interactions with other users. Want to know exactly when someone answers that critical forum question? Your CA can ping you on whichever device is active.

View details »

Roll Your Own

Using Turtles, our deployer app, it is really easy to get your app up and running and host its CAs for other people. The idea is to create a (compressed) tarball with your app, make it visible with a public url (e.g., using HP Cloud Object Storage or Dropbox) and tell Turtles the url. After that your Turtles CA will track that url and send out prompts to deploy or update the app when its contents change.

But before doing that you may want to read our Getting Started guide and look at the source code of our examples (including this Web site) in github https://github.com/cafjs/caf_examples.git

Getting Started »


Note: In honor of Cinderella, all example CAs and deployed apps turn into pumpkins every day at 11:59pm PST. This website is here to let you play and get creative with some simple examples, and is not intended to support app deployment for real. These are early days and we cannot guarantee any security or reliability properties, so please do NOT re-use important passwords or e-mail information.