ArcMoon 1.1.0

Start

Language

Reference

Nothing matches “”.

↑↓ move Enter open Esc close
← All versions

ArcMoon 1.1.0

latest

Released 2026-10-22

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.

  • 4 new features
  • 3 improvements
  • 3 bugs fixed
Compare with 1.0.0 →
new feature

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.

[for-each = runtime ${ todos() }$, as: "todo", key: "id"]
  [li]runtime ${ todo.title }$[end]
[end]
new feature

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.

new feature

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.

runtime ${
  import { signal } from "arcmoon/reactive";
  const books = signal(await (await fetch("/books.json")).json());
}$
new feature

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.

improvement

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.

improvement

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.

improvement

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.

bug fixed

[A] is written as <a>

A capitalized HTML name that isn't imported is written in lowercase, as its warning says.

bug fixed

base with -o

With base: "/", a build into dist/blog links its files under /blog/.

bug fixed

The [doctype] error shows where it is

It now has the file, line and column, like every other error.