Metrics / zapstore / native_release_count

native_release_count

Counts kind-30063 (zapstore-app-releases) release rows in the NATIVE partition per UTC day - releases, not distinct apps: a developer who ships 30 patch versions contributes 30 rows, and one app recurs across many days.

unit

releases

grain

day (UTC)

series

sparse, full history

key

zapstore.native_release_count@day

Parameters

paramaccepted values
grainday - default day (omit to get the default)
fromoptional inclusive ISO UTC calendar day (YYYY-MM-DD); omit for the series start
tooptional inclusive ISO UTC calendar day (YYYY-MM-DD); omit for today UTC (that day still in progress)
formatcsv | markdown

Query it

MCP tool call against https://dev.nostrolo.gy/mcp (connect your agent):

{
  "name": "nostrology_query_metric",
  "arguments": {
    "metric": "native_release_count",
    "domain": "zapstore",
    "grain": "day"
  }
}

Windowed (inclusive UTC days; both optional):

{
  "name": "nostrology_query_metric",
  "arguments": {
    "metric": "native_release_count",
    "domain": "zapstore",
    "grain": "day",
    "from": "2026-07-01",
    "to": "2026-07-31"
  }
}

Response: a plain-text envelope (window, freshness, column contract, this page's caveats) followed by the data table (csv, or format: "markdown") at day grain.

Response columns

nametypedescription
utc_daydateUTC calendar day (bucketed at UTC, not session TZ)
native_release_countintegerRelease rows (app-versions) self-published by developers that day

What is counted

'Native' means self-published by a developer via zapstore-cli - every app EXCEPT those published by the Zapstore curator key that are not Zapstore's own first-party software (the curator's other entries are the GitHub/F-Droid republishes counted by zapstore.republished_release_count, whose partition is this one's exact complement; the two sum to all releases and never double-count a row).

Caveats

  • Do NOT confuse this with zapstore.new_native_app_count, which counts the same partition DEDUPED to each app's first-ever release: that series counts apps and is bounded above by this one day for day.
  • Row grain is one row per (pubkey, '<package>@<version>'): kind-30063 is addressable on (pubkey, d_tag) with the version inside d_tag, so every version survives as its own row - but RE-publishing the same version replaces the earlier row, so it is counted once and dated at the latest revision, which makes this a count of app-versions-published rather than of raw relay events.
  • The day comes from the event's own created_at as set by the publisher, not from when we ingested it.
  • Includes pre-release channels (alpha/beta/rc), matching the Zapstore Android client, which does not filter on channel.
  • Series is sparse: days with zero native releases are omitted.

Freshness in every response is data-derived: latest kind-30063 (zapstore-app-releases) event time.