ArcMoon 1.1.0

Start

Language

Reference

Nothing matches “”.

↑↓ move Enter open Esc close

Versions

Compare Versions

Released 2026-10-01 · Details →

A placeholder release, not a real ArcMoon version.

  • 0 breaking changes
  • 0 new features
  • 0 improvements
  • 0 bugs fixed

Released 2026-10-15 · Details →

The first stable release of ArcMoon. From 1.0, what works keeps working in every 1.x.

  • 0 breaking changes
  • 7 new features
  • 0 improvements
  • 0 bugs fixed

Released 2026-10-22 · Details →

Live loops that follow a signal, await in runtime code, imports from a URL, and warnings for easy mistakes. Everything from 1.0 keeps working.

  • 0 breaking changes
  • 4 new features
  • 3 improvements
  • 3 bugs fixed

Released 2026-10-01 · Details →

A placeholder release, not a real ArcMoon version.

  • 0 breaking changes
  • 0 new features
  • 0 improvements
  • 0 bugs fixed

Released 2026-10-15 · Details →

The first stable release of ArcMoon. From 1.0, what works keeps working in every 1.x.

  • 0 breaking changes
  • 7 new features
  • 0 improvements
  • 0 bugs fixed

Released 2026-10-22 · Details →

Live loops that follow a signal, await in runtime code, imports from a URL, and warnings for easy mistakes. Everything from 1.0 keeps working.

  • 0 breaking changes
  • 4 new features
  • 3 improvements
  • 3 bugs fixed

Breaking changes

None

None

New features

  • Blocks and props

    HTML written as [name = props]…[end], self-closing [name!], comments, escapes and arcm-raw.

  • Build-time code

    ${ }$ runs Node.js while the page is built: files, databases, npm packages and fetch. Only its result reaches the page.

  • Runtime code and signals

    runtime ${ }$ runs in the browser, with refs, events, live values and arcmoon/reactive (signal, computed, effect).

  • Components and slots

    .arcm files imported with [import], with props, slots and props that pass through to the outer element.

  • Styles

    Scoped component styles, css. and -- props, and CSS bundled per page.

  • CLI, JavaScript API and browser build

    arcm build, compile() / build() / buildPages() in Node.js, and render() / compile() in the browser.

  • The protector

    Templates you didn't write never run until you have seen what they do and trusted them.

  • Live loops

    A [for-each] whose list is runtime ${ }$ keeps one row per item in the browser. With key, rows stay with their items: added, removed and moved, never redrawn.

  • The first rows of a live loop are in the HTML

    When the list starts as a literal or an exported value, its first rows are written at build time and adopted in the browser: no empty list before the script runs.

  • await in runtime code

    A runtime code block can await at its top level. Its live values and events attach once its code has run.

  • Imports from a URL

    import x from "https://…" in runtime code stays an import, and the browser loads it. The new packages option maps npm names to URLs.

None

  • Blocks and props

    HTML written as [name = props]…[end], self-closing [name!], comments, escapes and arcm-raw.

  • Build-time code

    ${ }$ runs Node.js while the page is built: files, databases, npm packages and fetch. Only its result reaches the page.

  • Runtime code and signals

    runtime ${ }$ runs in the browser, with refs, events, live values and arcmoon/reactive (signal, computed, effect).

  • Components and slots

    .arcm files imported with [import], with props, slots and props that pass through to the outer element.

  • Styles

    Scoped component styles, css. and -- props, and CSS bundled per page.

  • CLI, JavaScript API and browser build

    arcm build, compile() / build() / buildPages() in Node.js, and render() / compile() in the browser.

  • The protector

    Templates you didn't write never run until you have seen what they do and trusted them.

  • Live loops

    A [for-each] whose list is runtime ${ }$ keeps one row per item in the browser. With key, rows stay with their items: added, removed and moved, never redrawn.

  • The first rows of a live loop are in the HTML

    When the list starts as a literal or an exported value, its first rows are written at build time and adopted in the browser: no empty list before the script runs.

  • await in runtime code

    A runtime code block can await at its top level. Its live values and events attach once its code has run.

  • Imports from a URL

    import x from "https://…" in runtime code stays an import, and the browser loads it. The new packages option maps npm names to URLs.

None

Improvements

  • Warnings for easy mistakes

    A signal shown without (), non-ASCII text without <meta charset>, content in [img], an unknown arcm- prop, [for-each] over an object, [doctype!] after content, props on [slot], and a name only another file's runtime code declares.

  • Smaller pages with only event props

    A page whose only live values are events no longer ships the signals library: about 2 kB instead of 5 kB.

  • Clearer protector message

    A template outside the project shows its full path, and the message says when the page itself is outside the folder where arcmoon runs.

None

  • Warnings for easy mistakes

    A signal shown without (), non-ASCII text without <meta charset>, content in [img], an unknown arcm- prop, [for-each] over an object, [doctype!] after content, props on [slot], and a name only another file's runtime code declares.

  • Smaller pages with only event props

    A page whose only live values are events no longer ships the signals library: about 2 kB instead of 5 kB.

  • Clearer protector message

    A template outside the project shows its full path, and the message says when the page itself is outside the folder where arcmoon runs.

None

Bugs fixed

None

None

Every release