ArcMoon is a template language for web pages. You write .arcm files, and ArcMoon builds them into plain HTML, with only the CSS and JavaScript each page needs. Code that runs while the page is built and code that runs in the browser are kept apart, so secrets and database queries never reach your visitors.
- Node.js 22.12 or newer (check with
node -v). - npm, pnpm, bun or yarn.
Install the arcm command:
npm install -g arcmoonCheck that it works:
arcm -varcmoon and its short name arcm are the same command. To keep ArcMoon inside one project instead, run npm install arcmoon there and use npx arcm.
# A signal holds the count: the button changes it, the text follows
runtime ${
import { signal } from "arcmoon/reactive";
const count = signal(0);
}$
[button = onclick: runtime ${ () => count(count() + 1) }$]
Clicked runtime ${ count() }$ times
[end:button]Read the docs, or try it in the playground without installing anything.
MIT © Adam Elmi