One Language, Infinite Targets
Write your code once. Deploy to native binaries, browsers, or distributed systems. Same syntax, same semantics, different targets.
C Backend
Compiles to optimized C code with ORC (Optimized Reference Counting) for memory management. Produces small, fast native binaries perfect for serverless and CLI tools.
- AWS Lambda / Cloudflare Workers
- CLI tools and utilities
- Performance-critical services
- Embedded systems
msc compile --target=c src/main.ms -o app
JavaScript Backend
Generates clean ES2020+ JavaScript that runs in any browser or Node.js environment. Full access to the npm ecosystem while keeping MetaScript's type safety.
- Browser applications
- Node.js / Bun servers
- npm package publishing
- Gradual TypeScript migration
msc compile --target=js src/main.ms -o dist/
WebAssembly Backend
Compiles to WebAssembly for near-native performance in browsers, edge runtimes, and sandboxed environments. Run anywhere a Wasm runtime exists.
- Browser compute-heavy workloads
- Edge functions (Cloudflare Workers, Fastly)
- Plugin systems and sandboxed execution
- Cross-platform portable binaries
msc compile --target=wasm src/main.ms -o app.wasm
Erlang Backend (upcoming)
Targets the BEAM VM for distributed, fault-tolerant systems. Get OTP supervision trees, hot code reloading, and "nine nines" reliability without learning Erlang syntax.
- Real-time chat / messaging
- Distributed databases
- Telecom-grade services
- Systems requiring hot reload
msc compile --target=erlang src/main.ms -o _build/
Web3 Backend (upcoming)
Write smart contracts with familiar TypeScript syntax and compile to Solana (BPF) or Ethereum (EVM). Full type safety and compile-time verification for on-chain programs.
- Solana programs (BPF bytecode)
- Ethereum smart contracts (EVM bytecode)
- DeFi protocols and DAOs
- Cross-chain tooling
msc compile --target=svm|evm src/contract.ms -o program.so
Which Backend Should I Use?
- Need fastest cold starts for serverless? Use C
- Building for browsers or npm ecosystem? Use JavaScript
- Need portable sandboxed execution? Use WebAssembly
- Need distributed systems with 99.9999% uptime? Use Erlang (coming soon)
- Building smart contracts? Use Web3 target for Solana/Ethereum (coming soon)
- Not sure? Start with C, it covers most use cases.