Overview

Live counts pulled from data/apps.json

Browse the registry

Filter by status, distribution, category, or search.

All apps

Loading registry…

Needs attention

Apps that are prototype, active-dev, parked, stuck, or testflight.

Update guide

For humans and agents (Codex, Claude Code, …).

Update only data/apps.json. The dashboard renders itself from that file. Do not edit index.html, styles.css, or scripts/app.js to change app data, and never modify any Xcode app project.

To change an app, find its object in the apps array and edit its fields. Keep values within the allowed lists below. When a fact is unknown, leave the field blank ("") or use "unknown" rather than guessing. Update metadata.lastUpdated whenever you make a change.

Allowed status values: idea, prototype, active-dev, testflight, live, maintenance, phone-only, work-only, parked, stuck, retired.

Allowed distribution values: App Store, TestFlight, Local only, Phone only, Work only, Unlisted App Store, Private Apple School Manager, Web, Unknown.

Example — mark an app live:

{
  "name": "Example App",
  "status": "live",
  "distribution": "App Store",
  "version": "1.0"
}

Example — add a new app (append to the apps array):

{
  "name": "New App Name",
  "status": "idea",
  "distribution": "Unknown",
  "category": "utility",
  "repo": "unknown",
  "path": "unknown",
  "bundleId": "",
  "version": "unknown",
  "lastActivity": "",
  "nextAction": "Define scope.",
  "notes": ["First note about the app."],
  "links": []
}

Full instructions, more examples, and the git + Cloudflare Pages workflow live in README.md.