capacitor trained

Read this before the guide selected by the router. The guides provide depth; this page resolves their conflicts with the live project and operator instructions.

mental model

web build -> cap sync -> native build/run -> observed app is the Capacitor workflow. Locate the owner of the request: web UI, Capacitor bridge/plugin, iOS or Android project, or release service. A web build or sync proves only its own step; native behavior needs simulator or device evidence.

examples

From an app root, inspect its package manager and Capacitor package versions before choosing an upgrade guide or command:

node -e 'const p=require("./package.json"); const deps={...p.dependencies,...p.devDependencies}; console.log(JSON.stringify({packageManager:p.packageManager,capacitor:Object.fromEntries(Object.entries(deps).filter(([name])=>name.startsWith("@capacitor/")).sort())},null,2))'

best practices

  • Use the project's package manager and installed major versions. Guide npm install examples do not authorize changing a pnpm or yarn project.
  • Route to the narrowest guide: existing web app -> webapp-to-capacitor; existing Capacitor app -> app development; plugin -> plugin development; upgrade -> exact app/plugin version pair; iOS 8.4 to 8.5 scene work -> UIScene migrator.
  • Verify mutable CLI, toolchain, store, and cloud-service claims in current primary docs. The 8.5 guide owns its scene migration details.
  • Use an MCP integration only when the operator asks for it and that capability is available. General Capacitor work must not prompt installation of a Claude-specific server.
  • The operator request and live project AGENTS.md determine authority. A guide's confirmation, no-commit, or developer-handoff rule does not narrow already granted scope.

strengths

  • Capacitor keeps a web UI while exposing native platform features through plugins and native projects; choose it when that shared web foundation is desired. Capacitor introduction.
  • iOS, Android, and web are official targets, so one product can preserve common web behavior while adding native integrations. Environment setup.

weaknesses / pain points

  • Native targets still need platform tooling and verification: Xcode on macOS for iOS, Android Studio and an SDK for Android. Environment setup.
  • A shared web route may render differently inside a WebView; build and sync output alone cannot establish the device result.

gotchas

  • The upgrade guides contain literal !node -e ... package snapshots. Reading their Markdown does not execute those commands; inspect package.json directly.
  • Updating the 8.5 iOS dependency alone retains the AppDelegate path. Xcode 27 builds require the UIScene project migration; audit custom delegate logic before applying it.

known bugs

No independently reproduced version-specific Capacitor bug. The 8.5 migrator's template-shape limit is documented behavior, not a reproduced defect. Record an issue link and tested workaround here only after reproducing a real bug.

practiced cases

  • A read-only project probe found pnpm@11.15.1, @capacitor/core, CLI, and iOS at 8.5.1; ios/ exists and android/ does not. SceneDelegate.swift, the Info.plist scene manifest, and the AppDelegate scene configuration were all present. Those file signals identify the already-migrated audit route; no native build, launch, or link behavior was tested.
  • npm serves @capacitor/core 8.5.2; the stable docs show v8 and the 8.5 guide describes the Xcode 27 UIScene migration. These version observations expire as releases change.

Read the capacitor guide.

search pages

go to any page