Skip to content

Changelog

moth is pre-1.0 and built in ordered milestones, each ending in a demoable state. Versioned release notes begin at v1.0; until then this page tracks the milestones as they land. The authoritative history is the git log.

v1.0 is the first public release. It bundles everything below — milestones 01 through 22 — and cuts the release itself: signed, checksummed release binaries for darwin/linux/windows (amd64/arm64), a Homebrew tap, cosign-signed scratch Docker images, and the final docs pass. The hardening milestone’s substance (persistent rate limiting, an append-only audit log, moth backup/restore plus scheduled snapshots, a /metrics endpoint, structured JSON logs, and built-in ACME) is already in the binary; the remaining work is publishing the artifacts.

An adaptive project-creation wizard in the console and CLI that walks a new project through providers, theme, and keys, adjusting the steps to what you’re building.

Device registration wired into the Flutter and React SDKs — the app registers its APNs/FCM/Web Push credential and moth keeps the push registry current across launches.

A project-scoped push-device registry: the server stores each user’s active push credentials and exposes them to your sender over moth.server.v1.PushService (the only surface that returns tokens).

19 · Native billing (first-party store plugin)

Section titled “19 · Native billing (first-party store plugin)”

First-party in-app purchase handling for the Flutter SDK — StoreKit and Google Play Billing — feeding the same entitlement model as the other stores.

The @moth/react package, served from each instance’s own npm registry at /npm: hooks and components mirroring the Flutter SDK for web apps.

Stripe subscriptions as a first-class store alongside Apple and Google — checkout, webhooks, and revenue that sits in the same analytics and entitlement model as native purchases.

The SDK login screen, paywall, and error messages render in the user’s locale, driven by the project’s customizable copy.

Per-project, per-locale copy and localization for the login screen, paywall, hosted pages, and emails — edited in the console, delivered without an app release.

Revenue dashboards — MRR per currency, active subscribers with trend, new vs churned, trial-to-paid conversion, and per-tier / per-store breakdowns.

A batteries-included, themed paywall in the Flutter SDK, wired to the store catalog and the entitlement model.

Admin store-catalog management: products, tiers, and entitlements defined once and mapped to each store’s identifiers.

11 · Subscriptions & entitlements (server core)

Section titled “11 · Subscriptions & entitlements (server core)”

The server-side subscription and entitlement model — receipts verified server-side, entitlements exposed to the SDK and your backend over moth.server.v1.

The v1.0 hardening pass: persistent rate limiting, an append-only admin audit log, first-class backups (moth backup / moth restore and scheduled snapshots), a Prometheus /metrics endpoint, structured JSON logs, built-in ACME, and signed release packaging.

This site: a static landing page and single-sourced documentation (Astro + Starlight), built on the DESIGN.md visual system, with no analytics or trackers (the display font is served from Fontshare’s CDN with a system-font fallback). The docs tree also embeds into the binary to serve version-matched docs at /docs (finalized in v1.0).

08 · Admin CLI & one-command provider setup

Section titled “08 · Admin CLI & one-command provider setup”

The moth binary doubles as a remote client with named contexts and personal access tokens: scriptable project and user management, declarative moth project apply, --json everywhere, moth setup google|apple for one-command provider configuration, moth doctor for diagnosis, and moth skill export for coding agents.

Per-project event capture and dashboards — signups, logins, DAU, success rate, provider/platform breakdowns — with nightly rollups and a privacy-respecting model that stores no IPs or device IDs.

A per-project theme editor — colors, typography, spacing, radius, logo, legal links — rendered across the SDK login screen, hosted pages, and emails, with contrast validation and no-app-release delivery.

The moth_auth package, served from each instance’s own pub repository at /pub: MothApp wraps the app, MothScope exposes auth state, MothLoginScreen is batteries-included, and MothClient auto-refreshes the token you attach to your backend calls.

Per-project social sign-in with server-side token verification (provider JWKS, nonce, aud), account linking on provider-verified email, and a web-redirect fallback for Android/web.

The embedded console at /admin: projects, API keys, user management, the per-project Setup instructions, and instance/SMTP settings.

The full auth lifecycle over gRPC — signup, sign-in, refresh with rotation and reuse detection, verification, password reset, email change, account deletion — plus the moth.server.v1 backend API and token verification.

The runnable binary: CLI, config resolution, SQLite with embedded migrations, the project model, per-project ES256 signing keys and JWKS, admin bootstrap, and CI.