It's heavily based on WebAssembly 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:
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:
Deploying in production
Build for production:
npm run build
Deploy (need to have
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
Binaryen is used to validate and optimize
Clang Format is used to format C/C++ files.
Cassowary.js is used to make split panes work.
Showdown is used to automatically preview
Capstone.js is used to disassemble
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.