Use this page after choosing a path in Getting Started.
- Pick one path based on your current risk surface.
- Run the sequence in order.
- Stop at the expected outcome.
- Move to another path only when the level-up signal is true in your app.
- Your first problem is semantic consistency across app layers.
- You need stable shared models for tracks, snapshots, events, errors, and capabilities.
- Runtime plugin wiring is not your immediate blocker.
- Read Why Contract-First to align on boundaries.
- Read Snapshot Model to avoid nullability mistakes.
- Implement one track using Model a Track.
- Add typed event handling with Consume Events and Payloads.
- Add defensive checks with Validate Runtime Invariants.
You have contract-aligned app logic that can evolve independently from runtime transport details.
- You now need real device playback controls or media-session integration.
- Your app team is blocked by runtime behavior rather than model semantics.
- You already need runtime playback commands and listener wiring on device.
- You need
audioPlayer and mediaSession behavior validated in a real host app.
- Your immediate risk is setup/order, queue lifecycle, and remote event handling.
- Start with Set Up Legato Capacitor.
- Run Play a Track to validate queue + playback flow.
- Add listeners with Listen to Events.
- Add UI gating with Build Capability-Driven Controls.
- Align local state with Use Sync Controllers.
You have a runtime-integrated flow with explicit setup, event handling, and capability-gated controls.
- You are preparing rollout and upgrade safety checks.
- You need repeatable production confidence across app and CI.
- You already have an integration and need safer rollout confidence.
- Your main risk is hidden assumptions during upgrades or capability handling.
- You need explicit compatibility and migration checks before production promotion.
- Execute Production Quickstart (Capacitor) as a baseline flow.
- Review Compatibility and validate your package line assumptions.
- Run Migration and Versioning checklists for your consumer profile.
- Keep Troubleshooting open while validating error and event paths.
- Review Releases before every upgrade rollout.
You operate with explicit rollout gates: capability checks, stable literal branching, and release-aware validation.
- Your team can validate upgrades with clear pass/fail criteria on CI and real devices.
- Regressions are diagnosed via stable
error.code and documented event/capability surfaces.
- Starting with runtime commands before agreeing on shared contract semantics.
- Treating contract types as runtime execution APIs.
- Assuming capabilities (for example
seek) from media metadata instead of getCapabilities().
- Branching behavior on
error.message text instead of stable error.code literals.
- Reading release notes after dependency upgrades instead of before rollout planning.
Need help choosing?
Return to the decision hub and use the quick chooser.
Contract package guide
Jump to contract documentation sections.
Capacitor package guide
Jump to Capacitor runtime documentation sections.