Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
A framework for Realtime Web Apps
JavaScript CSS Other

README.md

SocketStream!

SocketStream

Build Status Dependency Status devDependency Status Code Climate Codacy Badge NPM version Gitter chat Issue Stats Issue Stats Coverage Status

Introduction

SocketStream is a framework for Realtime Web Apps

Latest release: 0.3.11 (view changelog)

Live demo | Documentation

Installation

npm install -g socketstream

Usage

socketstream new <your_app_name>
cd <your_app_name>
npm install
npm start

Then open a web browser at localhost:3000:

open http://localhost:3000

Why SocketStream?

Building a simple chat app that uses websockets is easy, but rich, non-trivial, responsive realtime UI without ending up with a mess of code is hard SocketStream eases the pain by:

  • Integrating best-of-breed modules to increase productivity
  • Providing a sensible place to put everything
  • Accelerating development with Live Reload and (optional) support for Stylus, Jade, and other transpilers.
  • Accelerating deployment with integrated asset packing and CDN support
  • Organizing spaghetti client-side code into modules you can require() with Browserify
  • Working well with all major client-side frameworks (e.g. Backbone, Ember, Angular)

Applications using SocketStream

  • Dashku: Realtime dashboards and widgets using HTML, CSS and JavaScript. Also hosted at dashku.com.
  • SketchDeck: An app for designing great slide decks from sketches, also a Y Combinator tech startup.
  • Hollow: An interactive, emmy-nominated documentary.
  • Bitjoy: Realtime Bitcoin prices and news.
  • Teeleader: A booking engine for Golf courses.

Presentations

Videos

(most recent at end)

Documentation

Checkout the documentation here.

Next Major Release 0.4

Build Status Coverage Status

Notes

The way views are served has been updated. The default bundling of assets is largely as before, but some details have changed. The major change is that the bundler of a client definition can be changed. You can configure this on a per definition basis. For more information look in the tutorial section.

Please note that due to the changes, however carefully they have been done, you should not deploy this release in production. We expect to find issues and fix those in a maintenance release 0.4.1, which can hopefully be considered fit for production. However, if you are developing and your next deployment is a couple of months off, it is a great time to upgrade to version 0.4.

If you are used to web app development you will know Bower. In this version we have made improvements to work better with Bower. The most obvious one is you can now define your client assets using relative paths within the client. So if you put bower_components in the client directory you can refer to them in the definition by "./bower_components/<module>/<file>.js".

Changes to consider when upgrading

  • You can make your own custom bundler
  • CSS files can reference images and other assets using relative paths in development and production
  • You can refer to Bower components in your definition
  • JSON shim dropped. To support IE6/7 you must manage it yourself.
  • client.id is unique and not a plain timestamp
  • Plugins should use the new log interface on ss.log.
  • You can load npm modules in the client by maintaining node_modules in the client directory.
  • You can configure global constants to be shared between the client definition and browser code.
  • By default the initCode for a view is executed at the end of the body independent of the SocketStream tag.

This upcoming is expected in April. The current state can be found on the next branch.

Team

Creator: Owen Barnes

Core Contributors:

  • Paul Jensen
  • Roman Minkin
  • Robert Hall
  • Joshua Cullick
  • Henrik Vendelbo

Contact

License

SocketStream is released under the MIT license.

Something went wrong with that request. Please try again.