---
title: "CoffeeScript | CoderPad"
description: "Learn more about CoffeeScript from CoderPad."
canonical: "https://coderpad.io/languages/coffeescript/"
last_modified: "2025-08-25 17:25:43"
---
# CoffeeScript online IDE & code editor for technical interviews

Running CoffeeScript 2.7 under Node.js v20 – IntelliSense is not available

### Experience the CoffeeScript IDE yourself

See just how easy and intuitive CoderPad Interview is to use below.

[Launch the environment](https://embed.coderpad.io/sandbox?language=coffeescript)

## Guidelines to use CoffeeScript in this online IDE

CoffeeScript in CoderPad just runs on top of the JavaScript environment, the only difference being that we do not run CoffeeScript with the`--harmony`flag.

We also have an array of interesting npm packages available for your use:

- [underscore](http://underscorejs.org/) and [lodash](https://lodash.com/) for many useful functional helpers.
- [chai](https://www.npmjs.com/package/chai), [sinon](https://www.npmjs.com/package/sinon), [sinon-chai](https://www.npmjs.com/package/sinon-chai), and [mocha](https://www.npmjs.com/package/mocha) testing libraries.

Here’s a quick example of how to use`sinon`and`chai`:

```
  chai = require('chai')
  sinon = require('sinon')
  sinonChai = require('sinon-chai')

  hello = (name, cb) ->
    cb 'hello ' + name
    return

  chai.should()
  chai.use sinonChai
  cb = sinon.spy()
  hello 'world', cb
  cb.should.have.been.calledWith 'this test should fail'
Code language: CoffeeScript (coffeescript)
```

as well as`mocha`:

```
  Mocha = require('mocha')
  assert = require('assert')
  mocha = new Mocha

  # Bit of a hack, sorry!
  mocha.suite.emit 'pre-require', this, 'solution', mocha

  describe 'Test suite', ->
    it 'should work', ->
      assert true
  mocha.run()
Code language: CoffeeScript (coffeescript)
```
- You can use [async](https://www.npmjs.com/package/async), [request](https://www.npmjs.com/package/request), and [isomorphic-fetch](https://www.npmjs.com/package/isomorphic-fetch) for making async HTTP a little more convenient.
- [q](https://www.npmjs.com/package/q) and [bluebird](https://www.npmjs.com/package/bluebird) are promise libraries to help make managing async in general easier.
- [jsdom](https://www.npmjs.com/package/jsdom) is a library for mimicking an HTML DOM within our JS environment. Useful if you want to manipulate elements without using our full HTML/CSS/JS environment.

## Need a better way to interview candidates?

[Request a demo](https://coderpad.io/sales/)
