Skip to content

About · first release 12 September 2026

About Moonarc

Moonarc is a library of motion components for Astro, built and maintained by one developer, Azri. The 102 primitives in @moonarc/core are free under the MIT license, and 67 of them load no JavaScript. Pro, the paid tier, adds page sections, GPU effects and templates.

The changelog starts on 12 September 2026 and lists every release since, with its date.

  1. 01Who builds itAzri
  2. 02Why I built it4 problems, 4 rules
  3. 03How Moonarc is tested4 checks in CI
  4. 04How it is paid forMIT and Pro
  5. 05If Moonarc stopswhat keeps working
  6. 06Contactemail and issues
Maker
Azri
Work
Full-stack developer and 3D, motion and graphic designer
First release
12 September 2026
Catalogue
102 primitives, 67 of them load no JavaScript
License
MIT, for @moonarc/core
Tested on
Astro 5, 6 and 7
Payments
Polar, merchant of record
The whole page as Markdown: /about.md
01Maker

Who builds it

I'm Azri, a full-stack developer and a 3D, motion and graphic designer. I have shipped production web work since 2022. I design, write and test each Moonarc component.

02Why

Why I built it

Each library below works as designed. The problems start where it meets the way Astro builds pages. Every Moonarc component follows four rules, one for each problem.

  1. 01

    The problem

    Scripts run once.

    With ClientRouter, Astro swaps the page without a reload, so setup code from the first load never runs again. Five threads on the GSAP forum between April and August 2024 report GSAP breaking after an Astro navigation (one of them).

    The rule

    One runtime binds each component after every navigation and cleans it up before the next.

  2. 02

    The problem

    React effects need React.

    An effect from a React catalogue runs in a React island, and React with ReactDOM costs about 67 kB gzip before the effect itself (measured here). React context also stops at the edge of each island (Astro docs).

    The rule

    Effects use CSS wherever the browser can draw them. Each component page prints the JavaScript it ships, measured from a production build (how).

  3. 03

    The problem

    Content waits for JavaScript.

    A library that starts elements at opacity: 0 leaves them invisible when its script fails to load (AOS #81).

    The rule

    The server renders each component's end state, so the page reads correctly with JavaScript off. Every component also has a prefers-reduced-motion branch.

  4. 04

    The problem

    Two scripts move the scroll.

    On a site with ClientRouter, Lenis and Astro's scroll restoration both write the scroll position (withastro/astro#12725).

    The rule

    The GSAP and Lenis adapters run on that same runtime, so they rebind with everything else.

03Tests

How Moonarc is tested

These checks run in CI on pull requests and on pushes to main, whenever the change can affect what they check.

04Funding

How it is paid for

Free
The primitives are MIT-licensed and stay free.
Pro
Pro pays for the rest of the work: new components every month, the agent tooling and support (pricing).
Payments
Polar processes payments as the merchant of record.
05Continuity

If Moonarc stops

What you installed keeps working:

  • The primitives are MIT-licensed. Your copy is yours to keep and change.

  • Pro components you installed stay licensed in every project after a subscription ends (pricing FAQ).

  • The free components never depend on a server. The registry and the MCP catalogue are also published as static files.

What ends is access to the Pro registry, the Pro MCP tools and new releases.

06Contact

Contact

Bugs and requests
Bugs and component requests go to GitHub issues.
Security
Send security reports by email, so they stay private until a fix ships.