Skip to content
IDE for building smart contracts on NEAR Protocol
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github fix typo in PR template May 18, 2018
bin Allow for 450k main JS bundle size Mar 26, 2019
fonts Unify font resources Feb 23, 2018
lib Merge branch 'master' of Dec 5, 2018
notes Update help message Feb 26, 2019
src Avoid binding StudioFs to specific project Jun 15, 2019
svg Unify icons to use seti and seti-extra Feb 23, 2018
.dockerignore Dockerize Jun 13, 2019
.gitignore.travis Remove and deploy.txt Feb 6, 2018
.gitlab-ci.yml Fix typos in CI config Mar 26, 2019
.nojekyll Don't use jekyll. Jan 27, 2018
Dockerfile Dockerize Jun 13, 2019
LICENSE Add license headers. (#25) Feb 5, 2018
favicon.ico Replace favicon Mar 27, 2019
jest-puppeteer.config.js Adding jest-puppeteer and simple e2e test Jul 27, 2018
package-lock.json Remove fragile tests from AppActions related to runGulpTask Jun 19, 2019
package.json npm start script May 25, 2019
stryker.conf.js Test improvements Sep 19, 2018
test-preprocessor.js [webpack] dynamic import Feb 10, 2018
test-shim.js update package-lock.json Oct 23, 2018
tsconfig.test.json Test improvements Sep 19, 2018
tslint.json Thread a StatusProvider through expensive operations. Mar 3, 2018 Re-enable copying JSON encoder/decoder from node_modules Mar 13, 2019
webpack.config.js Hacks to make build work May 7, 2019

NEAR Studio

Build status Coverage Status

NEAR Studio is a cloud IDE for development of NEAR Protocol smart contracts and DApps.

It's heavily based on WebAssembly Studio.

Demo GIF

Dockerized Studio

Dockerized studio operates as a micro-service. It uses nginx to serve the local static content. As the result, Studio is not parametrizable with environment variables. All configs of Near Studio are currently available in config.json and are used to generate the static content.

Running your own local copy of the website

To run a local copy, you will need to install node.js and webpack on your computer, then run the following commands:

npm install

To build NEAR Studio whenever a file changes run:

npm run build-watch

To start a dev web server run:

npm run dev-server

Before submitting a pull request run:

npm test

Deploying in production

Build for production:

npm run build

Deploy (need to have sudo on near-studio server):



If you want to contribute upstream to WebAssemblyStudio, please get familiar with the contributing guide.

Join our Discord if you want to help with NEAR-specific stuff or just stay in touch with development progress.

We also have Telegram with more curated updates.


This project depends on several excellent libraries and tools:

  • WebAssembly Studio is used as a skeleton for our IDE.

  • Monaco Editor is used for rich text editing, tree views and context menus.

  • WebAssembly Binary Toolkit is used to assemble and disassemble .wasm files.

  • Binaryen is used to validate and optimize .wasm files.

  • Clang Format is used to format C/C++ files.

  • Cassowary.js is used to make split panes work.

  • Showdown is used to automatically preview .md files.

  • Capstone.js is used to disassemble x86 code.

  • AssemblyScript is used to compile TypeScript smart contracts into WebAssembly.

  • bignum.wasm Provides big numbers (128-bit and more) implementation for use with AssemblyScript.

  • BigInteger.js Provides big numbers (arbitrary length) implementation for use in JS host code for smart contracts.

  • LLVM, Rust, Emscripten running server side.

  • And of course: React, WebPack, TypeScript and TSLint.

You can’t perform that action at this time.