SocketStream is a framework for Realtime Web Apps
Latest release: 0.3.11 (view changelog)
npm install -g socketstream
socketstream new <your_app_name> cd <your_app_name> npm install npm start
Then open a web browser at localhost:3000:
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
- Working well with all major client-side frameworks (e.g. Backbone, Ember, Angular)
Applications using SocketStream
- 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.
(most recent at end)
- KrtConf.com, Portland, November 2011
- LNUG.org, London, May 2012
- LXJS, Lisbon, September 2012
- RealtimeConf, Portland, October 2012
- QCon, San Francisco, November 2012
- RealtimeConf EU, Lyon, April 2013
Checkout the documentation here.
Next Major Release 0.4
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
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.idis unique and not a plain timestamp
- Plugins should use the new log interface on
- 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
Creator: Owen Barnes
- Paul Jensen
- Roman Minkin
- Robert Hall
- Joshua Cullick
- Henrik Vendelbo
SocketStream is released under the MIT license.