This page is the entry point for app developers, reviewers, operators, and release managers working with the Crypta app ecosystem beta.
Public-beta onboarding for users, operators, developers, former plugin authors, security reporters, reviewers, and release managers starts at public-beta/README.md.
The app platform beta covers offline app authoring, signed bundle and catalog workflows, local review evidence, first-party reference apps, and release certification. It is not a public production app store and it does not change FNP, FCP, Hyphanet/Freenet compatibility behavior, or retained FProxy browse behavior.
Use this portal first, then follow the detailed source-of-truth pages for the area you are touching:
| Area | Source of truth |
|---|---|
| Public beta onboarding front door | public-beta/README.md |
| Copyable beta tutorials | app-platform-beta-tutorials.md |
| Known beta limits and safety boundaries | app-platform-beta-known-limitations.md |
| Beta submission, feedback, and closeout runbook | app-platform-beta-program.md |
| Developer CLI reference | app-dev-cli.md |
| Developer beta toolkit flow | developer-beta-toolkit.md |
| Third-party developer beta program | third-party-developer-beta-program.md |
| Third-party submission checklist | third-party-app-submission-checklist.md |
| Platform API compatibility support window | platform-api-compatibility-support-window.md |
| Third-party Hello Stable SDK example | examples/third-party-hello-stable.md |
| Signed app bundles | app-distribution.md |
| Signed catalogs and catalog sources | app-catalogs.md |
| First-party beta catalog | first-party-beta-catalog.md |
| First-party app beta quality pass | first-party-app-beta-quality-pass.md |
| Production catalog channels | production-first-party-catalog-channels.md |
| Catalog operations and mirrors | catalog-operations-and-mirrors.md |
| Production beta release pipeline | production-beta-release-pipeline.md |
| Multi-node beta soak and upgrade drill | multi-node-beta-soak-and-upgrade-drill.md |
| Platform API contract | platform-api-contract.md |
| Platform API 1.0 stable reference | platform-api-1.0-stable-reference.md |
| Platform API route surface | platform-api-surface.md |
| Browser SDK | platform-sdk-js.md |
| App-service dependencies, bundles, and grants | app-service-discovery-and-grants.md |
| Durable app data | app-data-store.md |
| App-owned UI and isolated origins | app-owned-ui.md |
| App UI design system and lint | app-ui-design-system.md |
| Permissions and audit | app-permissions-and-audit.md |
| AppVault secret and identity material | app-secret-and-identity-vault.md |
| AppHost runtime hardening | apphost-runtime-hardening.md |
| App update lifecycle and rollback | app-update-lifecycle.md |
| User consent and permission upgrade UX | user-consent-and-permission-upgrade-ux.md |
| App upgrade data migrations | app-upgrade-data-migrations.md |
| App-data backup, restore, and portability | app-data-backup-restore-portability.md |
| App review governance | app-review-governance.md |
| Third-party app submission workflow | app-store-submission-and-review-workflow.md |
| Social Inbox RC | social-inbox-reference-app.md |
| Feed Reader reference app | feed-reader-reference-app.md |
| Trust Graph Local RC | trust-graph-preview.md |
| Legacy plugin freeze policy | legacy-plugin-freeze-policy.md |
| Legacy plugin migration guide | legacy-plugin-migration-guide.md |
| Legacy plugin migration cookbook | legacy-plugin-migration-cookbook.md |
| Legacy HTTP boundary | legacy-http-boundary.md |
| Legacy retirement plan | legacy-retirement-plan.md |
| Operator beta dashboard and support bundle | operator-beta-dashboard.md |
| Release certification | release-certification.md |
| Security reporting and data handling | SECURITY.md |
Cryptad exposes the current local Platform API transport under /api/v1. That route family is
separate from the integer app compatibility contract version used by manifests, catalogs,
developer tooling, and release certification.
The current source declares:
PlatformApiContract.CURRENT_API_VERSION = "v1"
PlatformApiContract.CURRENT_CONTRACT_VERSION = 23
In docs, manifests, and catalog descriptors:
/api/v1identifies the transport route family.contractVersion=23identifies the current Platform API compatibility contract snapshot.api.minimumVersionandapi.maximumTestedVersioncompare against the integer contract version, not against the URL route prefix or the Cryptad build number.api.targetStability=stableselects the Platform API 1.0 stable baseline for third-party app compatibility. Useapi.targetStability=experimentalonly when the app knowingly uses app-facing experimental capability names and also setsapi.experimentalCapabilitiesAccepted=true.
Use platform-api-contract.md for compatibility rules and platform-api-1.0-stable-reference.md for the frozen stable baseline. Use platform-api-surface.md for route families.
The active Platform API 1.0 support-window policy is machine-readable in contract snapshots as
compatibilityWindow. It requires previous contract snapshot history in production beta, rejects
critical stable-removal waivers, and keeps experimental-to-stable graduation out of baseline 1.0
unless a future stable baseline is documented. Use
platform-api-compatibility-support-window.md for
the full policy.
Common author commands:
crypta-app api snapshot --output build/platform-api-contract.json
crypta-app api policy --contract build/platform-api-contract.json
crypta-app api diff \
--previous docs/platform-api/contracts/platform-api-1.0-baseline.json \
--current build/platform-api-contract.json \
--output build/platform-api-stable-diff.json
crypta-app compat verify \
--bundle-dir build/dev-apps/hello-stable \
--contract build/platform-api-contract.json \
--target-stability stable \
--strictThe current first-party app ecosystem beta includes these repo-owned bundles:
| App | App id | Role |
|---|---|---|
| Queue Manager | queue-manager |
Queue read/write operator workflow. |
| Publisher | publisher |
Legacy publisher replacement for content insert workflows. |
| Site Publisher | site-publisher |
Static-site content publishing reference pattern. |
| Profile Publisher | profile-publisher |
AppVault identity/profile signing, generated app-document insert, and durable draft state. |
| Social Inbox RC | social-inbox |
Threaded social inbox reference app using bounded social-message signing, generated outbox inserts, durable subscriptions, local channel/search filters, read state, safe author profile links, and operator-approved Trust Graph Local RC service annotations. |
| Feed Reader & Publisher | feed-reader |
Durable USK content.subscribe, bounded content.fetch, durable reader state, and generated feed snapshot publication. |
| Trust Graph Local RC | trust-graph |
Local operator-curated trust service with anchors, imported public signed statements, lifecycle policy, bounded scoring evidence, redacted source metadata, publication, subscription helpers, and UI-local state. |
See first-party-beta-catalog.md, production-first-party-catalog-channels.md, social-inbox-reference-app.md, feed-reader-reference-app.md, and trust-graph-preview.md for app-specific notes.
Trust Graph Local RC is advisory local trust only. It does not crawl the network, perform global
moderation or blocking, change routing or FProxy browse behavior, propagate trust to other nodes,
or promise legacy WebOfTrust, Freetalk, Sone, or Freemail compatibility. Apps that need trust
annotations should use the read-only trust.score app-service through an operator-reviewed grant
bundle and an active grant; they do not gain authority to import statements, mutate anchors, or
change statement lifecycle records through that service.
Social Inbox RC keeps message threading, search, channel filtering, read/unread state, and author-profile links local to the app. It does not provide encrypted mail, Freetalk/Sone/Freemail compatibility, full WoT, moderation policy, a daemon-core social protocol, or background crawling.
Start with the offline workflow. The first three commands do not require a live Crypta node, public network access, signing secrets, Docker, Node.js, or npm:
./gradlew :platform-devtools:installDist
export CRYPTA_APP="$PWD/platform-devtools/build/install/crypta-app/bin/crypta-app"
"$CRYPTA_APP" --helpThen follow this path:
| Step | Command or doc |
|---|---|
| Scaffold an app from a template | `crypta-app init --template hello-stable |
| Run local UI against mock Platform API fixtures | crypta-app dev --bundle-dir <bundle> in developer-beta-toolkit.md |
| Run offline checks | crypta-app test --bundle-dir <bundle> --strict --json <report.json> |
| Verify stable API compatibility | platform-api-compatibility-support-window.md and crypta-app compat verify --bundle-dir <bundle> --strict |
| Generate local development signing keys | crypta-app keys generate |
| Sign and verify the staged bundle | crypta-app sign, then crypta-app verify |
| Pack a deterministic ZIP artifact | crypta-app pack |
| Create and verify a submission package | third-party-app-submission-checklist.md, crypta-app submission create, crypta-app submission verify, and crypta-app submission pre-review |
| Enter public beta intake | crypta-app submission intake import, crypta-app submission intake assign, crypta-app submission intake pre-review, and crypta-app submission intake decide in app-store-submission-and-review-workflow.md |
| Produce a reviewed beta catalog candidate | crypta-app submission intake stage-candidate and crypta-app submission catalog-candidate in app-store-submission-and-review-workflow.md |
| Create a catalog entry descriptor | crypta-app catalog entry |
| Create, sign, and verify a catalog | crypta-app catalog create, crypta-app catalog sign, crypta-app catalog verify |
| Produce an offline USK publication plan | crypta-app publish-usk --dry-run |
| Publish a signed catalog to a live USK | crypta-app publish-usk --live from the release/operator environment |
| Submit app proposal or beta feedback | app-platform-beta-program.md |
crypta-app dev is loopback-only by default and serves a mock Platform API. It does not install
the app, fetch catalogs, talk to the public Crypta network, or prove live-node permission grants.
Public beta readiness treats these workstreams as one ecosystem beta release story:
| Readiness area | Evidence and docs |
|---|---|
| First-party catalog | first-party-beta-catalog.md, production-first-party-catalog-channels.md, catalog-operations-and-mirrors.md, app-catalog.first-party-beta, catalog.production-channels, catalog.operations-and-mirrors, catalog.smoke |
| Developer toolkit | developer-beta-toolkit.md, app-platform.devtools-cli, app-platform.developer-beta-toolkit |
| Third-party developer beta | third-party-developer-beta-program.md, third-party-app-submission-checklist.md, platform-api-compatibility-support-window.md, third-party-developer.* evidence |
| Third-party public beta intake | app-store-submission-and-review-workflow.md, /api/v1/operator/app-submissions, Web Shell beta dashboard intake cards, and third-party-intake.queue-schema through third-party-intake.redaction evidence |
| Reference apps | social-inbox-reference-app.md, feed-reader-reference-app.md, trust-graph-preview.md, reference-app.* evidence, app-platform.trust-graph-rc-scope-and-safety |
| Network-scale budgets and soak | network-scale-soak-and-subscription-budget.md, release-certification.md, network-scale.* evidence, network-scale-soak-and-subscription-budget matrix row |
| Multi-node beta soak and upgrade drill | multi-node-beta-soak-and-upgrade-drill.md, multi-node-beta.* evidence, multi-node-beta-soak-and-upgrade-drill matrix row |
| Review governance | app-review-governance.md, review receipt, reviewer key lifecycle, transparency log evidence |
| Updates, migrations, and rollback | app-update-lifecycle.md, app-upgrade-data-migrations.md, app-update.scheduler, app-update.rollback, app-update.data-migration-contract evidence |
| User consent | user-consent-and-permission-upgrade-ux.md, app-platform.user-consent-flow evidence |
| Public beta hardening | app-platform-beta-known-limitations.md, public-beta-security.* evidence |
| Legacy plugin freeze and migration | legacy-plugin-freeze-policy.md, legacy-plugin-migration-guide.md, legacy-plugin-migration-cookbook.md, legacy-plugin.freeze-policy, legacy-plugin.migration-guide, legacy-plugin.social-inbox-spike, legacy-plugin.migration-finalization |
| Legacy admin status | legacy-retirement-plan.md, legacy-admin.removal-wave-1, legacy-admin.removal-wave-2, legacy-admin.removal-wave-3, legacy-admin.removal-wave-4, legacy-admin.removal-wave-5, legacy-admin.final-admin-surface, legacy-admin.browse-retained, legacy-admin.emergency-fallback-retained; legacy admin is maintenance-only, FProxy browse/content rendering and content filter remain retained, and startup, recovery, and support fallbacks remain explicit |
| Operator recovery and support | operator-rc-recovery-and-support-workflow.md, operator-beta-dashboard.md, privacy-preserving-beta-diagnostics.md, app-data-backup-restore-portability.md, operator-rc.* evidence, operator-beta.* evidence, app-platform.privacy-preserving-beta-diagnostics, operator-rc-recovery-and-support-workflow, operator-beta-ux-and-recovery, and privacy-preserving-diagnostics-risk matrix rows |
| Live-network beta certification | release-certification.md, live-network-beta.* evidence, live-network-beta-certification matrix row when explicitly required |
| Ecosystem matrix | release-certification.md, ecosystem certification matrix |
| Production beta go/no-go dashboard | production-beta-go-no-go-dashboard.md, production-beta.go-no-go-* evidence, final go, no-go, or go-with-waivers launch decision |
| Docs and beta program | This portal, app-platform-beta-tutorials.md, app-platform-beta-known-limitations.md, app-platform-beta-program.md |
Release candidates should run the normal build/test gates plus release certification:
python3 tools/release-certification/certify.py self-test all
cp tools/release-certification/manifests/release-candidate.example.json \
build/release-candidate.json
# Replace every placeholder before running the candidate.
python3 tools/release-certification/certify.py release-certification --manifest build/release-candidate.jsonThe generated release summary, release report, app-platform smoke report, review transparency-log evidence, network-scale soak summary, legacy retirement evidence, optional live-network beta evidence, ecosystem certification matrix, and production beta go/no-go dashboard are the closeout record. Live-network beta mode remains opt-in and should use only a localhost node with disposable fixtures unless the release manager is intentionally publishing the candidate first-party beta catalog.
The beta security model is capability-based and local-node enforced. Browser origin isolation, signed catalogs, signed bundles, review receipts, and AppVault routes are separate layers.
Start here:
- app-platform-beta-known-limitations.md for conservative beta boundaries.
- app-owned-ui.md and platform-sdk-js.md for browser sessions and static UI origins.
- app-permissions-and-audit.md for capability checks and redacted audit behavior.
- app-data-store.md for bounded app-owned durable state and export/import rules.
- app-secret-and-identity-vault.md for AppVault routes and identity/private-material limits.
- app-catalogs.md and app-review-governance.md for signed catalogs, trusted reviewer keys, local review transparency logs, and review policy modes.
- app-update-lifecycle.md and app-upgrade-data-migrations.md for manual, stage, apply-when-stopped, signed app-data migrations, internal update snapshots, and rollback scope.
- trust-graph-preview.md for the Trust Graph Local RC scope, local statement lifecycle states, score contribution rules, bounded evidence, and redacted source metadata.
- operator-beta-dashboard.md for host/operator-only recovery, support-bundle redaction, and Web Shell dashboard boundaries.
- SECURITY.md for security reporting.
Use third-party-developer-beta-program.md for the external developer happy path and app-platform-beta-program.md for proposal requirements, feedback categories, redaction rules, and the maintainer closeout runbook. The submission flow is defined in app-store-submission-and-review-workflow.md. GitHub issue forms are available for app platform beta feedback, app submission proposals, compatibility issues, review appeals, and plugin migration feedback when GitHub issue templates are enabled for the repository.