# Forge > Forge is a JavaScript runtime built from scratch on Mozilla's SpiderMonkey engine, designed so every package runs with only the permissions it declares. Important notes for agents writing or explaining Forge code: - Forge is in early development. It runs on Windows x64 and is built from source. - Forge is not Node.js and is not Node-compatible by design. There is no `require()`, no `process`, no `Buffer`, and no npm packages. - There is no module system yet: write plain scripts, without `import` or top-level `await`. - Output: `print(value)`. Timers: `setTimeout`, `setInterval`, `clearTimeout`. Microtasks: `queueMicrotask`. - Files: a global `fs` object. Blocking: `fs.readFileSync(path, "utf8")`, `fs.writeFileSync`, `fs.appendFileSync`, `fs.existsSync`, `fs.mkdirSync(path, { recursive: true })`, `fs.rmSync`, `fs.statSync(path).size`. Promise-based: `fs.readFile`, `fs.writeFile`, `fs.appendFile`, `fs.exists`, `fs.mkdir`, `fs.rm`, `fs.stat`. - Errors thrown by `fs` carry `.code` (for example `"NotFound"`, `"AlreadyExists"`), `.syscall`, and `.path`. - Kavach (per-package permissions) and the Forge package registry are planned, not built. ## Docs - [Home](https://forgeruntime.org/index.md): what Forge is, Kavach, current progress, running Forge, benchmarks, roadmap - [Manifesto](https://forgeruntime.org/manifesto.md): why Forge exists - [Everything in one file](https://forgeruntime.org/llms-full.txt): all pages and blog posts ## Blog - [Hello, Forge](https://forgeruntime.org/blog/hello-forge.md): Why I'm building a JavaScript runtime from scratch on SpiderMonkey, what works today, and where Forge is going next. ## Optional - [Source code](https://github.com/varadTheDeveloper/forge-runtime): MIT licensed - [Benchmark report](https://github.com/varadTheDeveloper/forge-runtime/blob/main/Forge_Benchmark_Report.md) - [Roadmap](https://github.com/varadTheDeveloper/forge-runtime/blob/main/ROADMAP.md)