- Notifications
You must be signed in to change notification settings - Fork1.3k
Collaborative JavaScript Debugging App
License
jsbin/jsbin
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
IMPORTANT: this current version of jsbin (v4.x.x) is no longer actively maintained and the new version of jsbin (v5) is currently in active development. This means that pretty much all the docs in this repo will be soon out of date. Please be warned ❤️
☝️☝️☝️☝️☝️☝️☝️☝️☝️☝️☝️☝️☝️☝️☝️☝️☝️☝️☝️☝️☝️☝️☝️☝️☝️☝️☝️☝️☝️☝️☝️☝️☝️☝️
JS Bin is an open source collaborative web development debugging tool.
It likely means you're not going to subscribe as a pro user - which is how we're sustaining our project, which is cool, butplease consider donating via OpenCollective here.
- Write code and have it both save in real-time, but also render a full preview in real-time
- Help debug other people's JavaScript, HTML or CSS by sharing and editing urls
- CodeCast - where you share what you're typing in JS Bin in real-time
- Remote rendering - view the output of your JS Bin on any device on any platform, updating in real-time
- Processors, including: coffee-script, LESS, Markdown and Jade.
- Debug remote Ajax calls
Find out more about JS Bin's features via theYouTube JS Bin playlist.
JS Bin was built byRemy Sharp and is completely open source and available athttp://github.com/jsbin/jsbin. You can also follow@rem on Twitter where he'll tweet about JavaScript, HTML 5 and other such gems.
If you would like to work with Remy and his company,Left Logic on a front end development project,please get in touch.
UX was kindly donated byDanny Hope who also tweets as@yandle.
The vast majority of the port from PHP to Node in June 2012 was done byAron Carroll who also plays in github as@aron.
JS Bin is a webapp specifically designed to help JavaScript and CSS folk test snippets of code, within some context, and debug the code collaboratively.
JS Bin allows you to edit and test JavaScript and HTML (reloading the URL also maintains the state of your code - new tabs doesn't). Once you're happy you can save, and send the URL to a peer for review or help. They can then make further changes saving anew if required.
The original idea spawned from a conversation with another developer in trying to help him debug an Ajax issue. The original aim was to build it using Google's app engine, but in the end, it wasJohn Resig'sLearning app that inspired me to build the whole solution in JavaScript with liberal dashes of jQuery and a tiny bit of LAMP for the saving process.
Version 1 ofJS Bin took me the best part of 4 hours to developback in 2008, butversion 2 was been rewritten from the ground up and is completelyopen source.
JS Bin has been designed to work both online atjsbin.com but also in your own locally hosted environment - or even live in your own site (if you do host it as a utility, do let us know by pinging@js_bin on twitter).
Historically JS Bin was built on PHP, but has since moved to Node. The PHP flavour is no longer supported, however everything elsereleased in v3.0.0 of JS Bin is available in both, but all releases after are only supported in the Node environment. Your PHP mileage may vary!
For detailed instructions on how to build JS Bin please see therunning your own JS Bin document.
If you installNode.js installation is easy:
$ npm install -g jsbin$ jsbin
Optionally point JS Bin to your config:
$ JSBIN_CONFIG=~/config.local.json jsbin
Then open your browser tohttp://localhost:3000 and you have a fully working version of JS Bin running locally.
A simple REST based API exists for anonymous users if it is enabled in your config.*.json, or can be restricted to registered users with a key specified inownership.api_key
Authentication is required for all API requests unless one of the following api configuration options are set:
api.allowAnonymousReadWrite
- if set to true allows GET and POST operations to the API anonymously (without an API key)api.allowAnonymousRead
- if set to true allows GET operations to the API anonymously (without an API key)
By default,config.default.json
hasapi.allowAnonymousRead
set to true.
Curl authentication examples:
$ curl http://{{host}}/api/:bin -H "Authorization: token {{token_key}}"$ curl http://{{host}}/api/:bin?api_key={{token_key}}
End points are:
GET /api/:bin
- Retrieve the latest version of the bin with that specified IDGET /api/:bin/:rev
- Retrieve the specific version of the bin with the specified ID and revisionPOST /api/save
- Create a new bin, the body of the post should be URL encoded and containhtml
,javascript
andcss
parametersPOST /api/:bin/save
- Create a new revision for the specified bin, the body of the post should be URL encoded and containhtml
,javascript
andcss
parameters
Become a backer and show your support to our open source project.
Does your company use JS Bin? Ask your manager or marketing team if your company would be interested in supporting our project. Support will allow the maintainers to dedicate more time for maintenance and new features for everyone. Also, your company's logo will showon GitHub --who doesn't want a little extra exposure?Here's the info.
About
Collaborative JavaScript Debugging App