GoInstant

This add-on is operated by GoInstant

Build realtime web and mobile apps easily. Store and sync data with our API.

GoInstant

Last Updated: 15 January 2014

The GoInstant add-on is currently in beta.

Table of Contents

GoInstant is an add-on for building collaborative, realtime applications. It’s both your backend and realtime layer, out-of-the-box. Store your data with GoInstant and focus exclusively on writing client-side code. When data is updated by one user it’s automatically stored and synchronized to everyone else in milliseconds.

GoInstant can be used in any application that requires realtime updates between users. We’ve shared a couple examples below, including live chat and collaborative todos. Both are incredibly easy with GoInstant and require very little code, because GoInstant is handling the backend data storage and synchronization.

Everything GoInstant Replaces

GoInstant takes care of a bunch of things for you:

  • Web socket connection setup
  • Database (data storage & synchronization)
  • Pub/sub messaging client
  • Worrying about scale
  • And even some of your client-side code

GoInstant is a realtime, scalable backend, but we’ve also got a host of client-side widgets that you can drop into any site or app for added functionality. This will save you coding time to build the really important parts of your app.

  • Live chat - Instant-message style chat
  • Presence (user list) - Who is connected with you
  • Form synchronization - Maintain the same form values across multiple connections
  • And more…

For more information visit the Widgets documentation.

Provisioning the add-on

GoInstant can be attached to a Heroku application via the CLI:

A list of all plans available can be found here.

$ heroku addons:add goinstant
-----> Adding goinstant to sharp-mountain-4005... done, v18 (free)

Once GoInstant has been added a GOINSTANT_CONNECT_URL setting will be available in the app configuration and will contain the URL used by the JavaScript API to connect to your application. This can be confirmed using the heroku config:get command.

$ heroku config:get GOINSTANT_CONNECT_URL
https://goinstant.net/heroku-ABC123k2MDEyNTFAaGVyb2t1LmNvbQ/application

Additional settings available:

  • GOINSTANT_APP_SECRET
  • GOINSTANT_CLIENT_ID
  • GOINSTANT_CLIENT_SECRET

After installing GoInstant the application should be configured to fully integrate with the add-on.

Using GoInstant

GoInstant provides a client-side JavaScript API. To get started simply expose the GOINSTANT_CONNECT_URL configuration value to the client-side and connect. The below example illustrates an HTML page that connects to GoInstant’s API and synchronizes the value of a text input:

<html>
  <head>
    <title>Text Synchronization App</title>
    <script src="https://cdn.goinstant.net/v1/platform.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
  </head>
  <body>
    <div>
      <input type="text" name="name" id="sync" />
      <script>
        $(document).ready(function () {
          var url = '{{GOINSTANT_CONNECT_URL}}'; // Embed your Connect URL here

          goinstant.connect(url, function (err, connection, lobby) {
            if (err) {
              // Could not connect to GoInstant
              throw err;
            }

            var name = lobby.key('name');
            var el = $('input[name="name"]');

            // The listener will be invoked every time the value of name is changed
            // by another user
            name.on('set', function(value, context) {
              el.val(value);
            });

            el.on('keyup', function() {
              name.set($(this).val());
            });
          });
        });
      </script>
    </div>
  </body>
</html>

Full documentation is available here.

REST API

GoInstant also offers a fully featured REST API for interacting with your application.

You may interact with the API using the GOINSTANT_CLIENT_ID and GOINSTANT_CLIENT_SECRET exposed through your application’s Heroku configuration. For a detailed breakdown of all endpoints please visit the REST API documentation.

We currently offer a Node.js npm module for interacting with the REST API: goinstant-rest

Example applications

Live chat

You can build a realtime live chat in only 17 lines of code by adding the chat widget to your app. GoInstant offers a bunch of widgets for adding realtime collaboration to any web or mobile application. Check out the open source code for chat.

https://developers.goinstant.com/v1/widgets/chat.html

Realtime Todo app

This simple todo application uses GoAngular, our integration with AngularJS. You can add, complete and delete todos, and your actions are synchronized across all users in realtime. Check out the open source code.

http://goangular-todo-example.herokuapp.com/

Dashboard

The GoInstant dashboard allows you to manage the Access Control List for your application as well as add additional developers to manage your account.

The dashboard can be accessed via the CLI:

$ heroku addons:open goinstant
Opening goinstant for sharp-mountain-4005…

or by visiting the Heroku apps web interface and selecting the application in question. Select GoInstant from the Add-ons menu.

Migrating between plans

Currently only one plan is available to Heroku users. Please visit GoInstant.com for more information on our plans and pricing.

Removing the add-on

GoInstant can be removed via the CLI.

This will disable your account and all its features!

$ heroku addons:remove goinstant
-----> Removing goinstant from sharp-mountain-4005... done, v20 (free)

Support

All GoInstant support and runtime issues should be submitted via the Heroku Support channels. Any non-support related issues or product feedback is welcome through email via contact@goinstant.com.