# ionic-team/capacitor

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/ionic-team-capacitor).**

15,054 stars · 1,150 forks · TypeScript · mit

## Links

- GitHub: https://github.com/ionic-team/capacitor
- Homepage: https://capacitorjs.com
- awesome-repositories: https://awesome-repositories.com/repository/ionic-team-capacitor.md

## Topics

`android` `capacitor` `cordova` `cross-platform` `css` `html` `ionic` `ios` `java` `javascript` `pwa` `swift`

## Description

Capacitor is a cross-platform mobile framework that enables developers to build native applications using web technologies. It functions as a hybrid app container, wrapping web assets within a native runtime that provides a standardized bridge to device hardware and system-level services. By exposing native functionality through a plugin-based architecture, it allows web applications to access platform-specific features while maintaining a consistent interface across mobile and desktop environments.

The project distinguishes itself by maintaining native project files as source assets, allowing developers to integrate directly with native development environments and build tools. This approach provides full control over the native project lifecycle, enabling custom code integration and advanced configuration within platform-specific IDEs. The system uses a manifest-driven configuration to manage application identity, permissions, and build settings, ensuring that web-based projects can be compiled into native binaries for distribution.

Beyond its core runtime, the framework includes a comprehensive command-line interface for automating mobile build pipelines, managing native dependencies, and synchronizing web assets. It supports a wide range of capabilities, including secure authentication, push notifications, deep link routing, and local data storage. The system also facilitates real-time updates to web content, allowing developers to push changes to installed applications without requiring new app store submissions.

The project is documented through a command-line interface that supports scaffolding, building, and deploying applications, with configuration managed via TypeScript to improve developer experience.

## Tags

### DevOps & Infrastructure

- [Cross-Platform Deployment Targets](https://awesome-repositories.com/f/devops-infrastructure/cross-platform-deployment-targets.md) — Deploys web applications to mobile devices using a native runtime that bridges web technologies with platform capabilities. ([source](https://capacitorjs.com/docs/getting-started/faqs))
- [Native Binary Bundlers](https://awesome-repositories.com/f/devops-infrastructure/cicd-pipeline-automation/core-build-engines/build-tooling/native-build-orchestrators/native-binary-bundlers.md) — Provisions and manages native project files required to compile web assets into native binaries. ([source](https://capacitorjs.com/docs/getting-started))
- [Project Management](https://awesome-repositories.com/f/devops-infrastructure/dependency-management/project-management.md) — Maintains native project files as source assets to allow direct configuration and IDE integration. ([source](https://capacitorjs.com/docs/cordova))
- [Native Build Orchestrators](https://awesome-repositories.com/f/devops-infrastructure/cicd-pipeline-automation/core-build-engines/build-tooling/native-build-orchestrators.md) — Orchestrates the compilation and deployment of native binaries to connected devices and simulators. ([source](https://capacitorjs.com/docs/basics/workflow))
- [Legacy Workflow Supports](https://awesome-repositories.com/f/devops-infrastructure/dependency-management/compatibility-layers/legacy-workflow-supports.md) — Maintains backward compatibility with existing mobile ecosystem plugins to ensure smooth transitions to modern runtimes. ([source](https://capacitorjs.com/docs/basics/using-plugins))
- [Legacy Plugin Integrations](https://awesome-repositories.com/f/devops-infrastructure/cicd-pipeline-automation/core-build-engines/bundling-extension-architectures/build-system-extensions/legacy-plugin-integrations.md) — Handles the replacement of legacy plugin dependencies with modern equivalents during the build process. ([source](https://capacitorjs.com/docs/cordova/migrating-from-cordova-to-capacitor))
- [Release Automation](https://awesome-repositories.com/f/devops-infrastructure/release-automation.md) — Automates the distribution of application builds to testing and stakeholder channels. ([source](https://capacitorjs.com/docs/guides/ci-cd))

### Mobile Development

- [Cross-Platform Frameworks](https://awesome-repositories.com/f/mobile-development/cross-platform-frameworks.md) — Provides a runtime that bridges web applications with native device APIs to enable consistent functionality across mobile platforms.
- [Device & Hardware SDKs](https://awesome-repositories.com/f/mobile-development/native-modules-bridges/device-hardware-sdks.md) — Provides a standardized bridge to interact with mobile device hardware like cameras and geolocation. ([source](https://capacitorjs.com/docs/apis))
- [Over-the-Air Update Systems](https://awesome-repositories.com/f/mobile-development/over-the-air-update-systems.md) — Pushes web content updates to installed applications without requiring new app store submissions. ([source](https://capacitorjs.com/docs/guides/deploying-updates))
- [Project Configuration](https://awesome-repositories.com/f/mobile-development/build-and-tooling/project-configuration.md) — Manages application identifiers, directory paths, and build settings for cross-platform native projects. ([source](https://capacitorjs.com/docs/basics/configuring-your-app))
- [Over-the-Air Updates](https://awesome-repositories.com/f/mobile-development/distribution-updates/over-the-air-updates.md) — Enables over-the-air updates for web assets without requiring app store resubmission. ([source](https://capacitorjs.com/docs/guides/ci-cd))
- [Store Deployment](https://awesome-repositories.com/f/mobile-development/distribution-updates/store-deployment.md) — Automates the submission and release of mobile application binaries to official app stores. ([source](https://capacitorjs.com/docs/android/deploying-to-google-play))
- [Mobile Capabilities](https://awesome-repositories.com/f/mobile-development/mobile-capabilities.md) — Provides a unified interface for accessing hardware and platform-specific capabilities across mobile and desktop. ([source](https://capacitorjs.com/docs))
- [Dependency Management](https://awesome-repositories.com/f/mobile-development/build-and-tooling/dependency-management.md) — Configures native projects to use package managers for handling plugins and software dependencies. ([source](https://capacitorjs.com/docs/ios/spm))
- [View Integrations](https://awesome-repositories.com/f/mobile-development/native-modules-bridges/view-integrations.md) — Extends native view controllers to modify web view configurations and native UI elements. ([source](https://capacitorjs.com/docs/ios/viewcontroller))
- [Runtime Platform Detectors](https://awesome-repositories.com/f/mobile-development/runtime-platform-detectors.md) — Queries the current environment to identify the execution context of the application. ([source](https://capacitorjs.com/docs/web/progressive-web-apps))

### Web Development

- [Cross-Platform Development Frameworks](https://awesome-repositories.com/f/web-development/cross-platform-development-frameworks.md) — Enables building native mobile applications using web technologies while maintaining access to device hardware and platform-specific features.
- [Web-Native Integration Bridges](https://awesome-repositories.com/f/web-development/web-native-integration-bridges.md) — Provides a standardized bridge to execute native platform functionality from web-based application code. ([source](https://capacitorjs.com/docs/web/progressive-web-apps))
- [Web App Manifests](https://awesome-repositories.com/f/web-development/web-app-manifests.md) — Defines application identity and icons through manifest files for native-like installation. ([source](https://capacitorjs.com/docs/web/progressive-web-apps))
- [Asset Synchronizers](https://awesome-repositories.com/f/web-development/web-infrastructure-deployment/asset-management-build-tools/asset-lifecycle-orchestration/asset-pipelines/asset-synchronizers.md) — Synchronizes built web assets into native project directories to ensure the runtime reflects the latest code. ([source](https://capacitorjs.com/docs/basics/workflow))
- [Platform Integrations](https://awesome-repositories.com/f/web-development/cross-platform-desktop-frameworks/platform-integrations.md) — Bridges native system APIs to facilitate cross-platform communication, deep linking, and push notifications. ([source](https://capacitorjs.com/docs/apis))
- [Native Shell Embeddings](https://awesome-repositories.com/f/web-development/progressive-web-apps/native-shell-embeddings.md) — Embeds web components within a native shell to provide a consistent native-like application experience. ([source](https://capacitorjs.com/docs/basics/utilities))
- [Asset Path Resolvers](https://awesome-repositories.com/f/web-development/asset-path-resolvers.md) — Resolves local device file paths into web-compatible URLs for consistent asset loading across platforms. ([source](https://capacitorjs.com/docs/basics/utilities))
- [Asynchronous Call Managers](https://awesome-repositories.com/f/web-development/call-adapters/asynchronous-call-managers.md) — Persists plugin call references to handle operations requiring background processing. ([source](https://capacitorjs.com/docs/core-apis/android))
- [Web Environment Notifiers](https://awesome-repositories.com/f/web-development/web-native-integration-bridges/web-environment-notifiers.md) — Triggers events within the web environment from native code to inform the application of system updates. ([source](https://capacitorjs.com/docs/core-apis/ios))

### Development Tools & Productivity

- [Mobile Development Tools](https://awesome-repositories.com/f/development-tools-productivity/mobile-development-tools.md) — Provides a command-line interface for scaffolding, building, and deploying web-based projects as native mobile applications.
- [Build Automation](https://awesome-repositories.com/f/development-tools-productivity/build-automation.md) — Automates native build pipelines and app store submission workflows. ([source](https://capacitorjs.com/docs/guides/ci-cd))
- [Mobile Build Toolchains](https://awesome-repositories.com/f/development-tools-productivity/build-tooling/build-orchestration-logic/build-orchestration-configuration/build-automation-systems/build-systems/binary-compilation-toolchains/mobile-build-toolchains.md) — Streamlines the compilation, configuration, and deployment of web-based projects into native binaries for mobile app stores.
- [Application Generators](https://awesome-repositories.com/f/development-tools-productivity/project-scaffolding-config-code-generation/project-scaffolding-configuration/project-scaffolding/application-generators.md) — Generates pre-configured project structures to accelerate cross-platform mobile application development. ([source](https://capacitorjs.com/docs/getting-started))
- [Project Initializers](https://awesome-repositories.com/f/development-tools-productivity/terminal-shell-cli/cli-tooling-frameworks/cli-tooling/project-lifecycle-orchestrators/project-initializers.md) — Provides command-line tools to bootstrap and configure native project structures for web-based applications. ([source](https://capacitorjs.com/docs/cordova/migrating-from-cordova-to-capacitor))
- [Project Lifecycle Management Tools](https://awesome-repositories.com/f/development-tools-productivity/terminal-shell-cli/cli-tooling-frameworks/cli-tooling/project-lifecycle-orchestrators/project-lifecycle-management-tools.md) — Provides a command-line interface to manage the end-to-end lifecycle of native mobile projects. ([source](https://capacitorjs.com/docs/cli))
- [Native Binary Toolchains](https://awesome-repositories.com/f/development-tools-productivity/build-tooling/build-orchestration-logic/build-orchestration-configuration/build-automation-systems/build-systems/binary-compilation-toolchains/native-binary-toolchains.md) — Compiles web-based projects into signed native binaries for distribution. ([source](https://capacitorjs.com/docs/basics/workflow))
- [Package Dependency Managers](https://awesome-repositories.com/f/development-tools-productivity/package-dependency-managers.md) — Manages native code dependencies and library linking through standard package managers. ([source](https://capacitorjs.com/docs/updating/plugins/7-0))
- [Project Migration Utilities](https://awesome-repositories.com/f/development-tools-productivity/project-migration-utilities.md) — Automates the migration of legacy mobile projects into the modern runtime structure. ([source](https://capacitorjs.com/docs/getting-started/vscode-extension))
- [Build Environment Configurations](https://awesome-repositories.com/f/development-tools-productivity/project-scaffolding-config-code-generation/project-scaffolding-configuration/build-configuration/build-environment-configurations.md) — Configures build modes and environment variables to support different deployment targets. ([source](https://capacitorjs.com/docs/guides/environment-specific-configurations))
- [Plugin Registration Systems](https://awesome-repositories.com/f/development-tools-productivity/plugin-registration-systems.md) — Automatically detects and registers native platform extensions during the build process. ([source](https://capacitorjs.com/docs/updating/3-0))
- [Project Version Managers](https://awesome-repositories.com/f/development-tools-productivity/project-version-managers.md) — Programmatically manages project versioning and build identifiers across native source files. ([source](https://capacitorjs.com/docs/guides/automated-configuration))

### Operating Systems & Systems Programming

- [Native API Bridges](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/system-programming-primitives/system-abstractions/native-interoperability-bindings/native-system-integrations/native-api-bridges.md) — Invokes platform-specific hardware and software features through a standardized interface. ([source](https://capacitorjs.com/docs/basics/using-plugins))
- [Native API Invocation Runtimes](https://awesome-repositories.com/f/operating-systems-systems-programming/native-system-interfacing/native-api-invocation-runtimes.md) — Loads the cross-platform runtime into web applications to enable access to native device capabilities. ([source](https://capacitorjs.com/docs/web))
- [Path Mappers](https://awesome-repositories.com/f/operating-systems-systems-programming/system-administration-maintenance/file-system-management/file-system-utilities/path-mappers.md) — Translates local file system paths into web-compatible formats for access within web views. ([source](https://capacitorjs.com/docs/core-apis/web))
- [Permission Configurators](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/system-programming-primitives/system-abstractions/os-specific-integration-modules/platform-permission-requirements/permission-configurators.md) — Maps application security requirements to native permission settings to ensure proper access to device hardware. ([source](https://capacitorjs.com/docs/cordova/migrating-from-cordova-to-capacitor))

### Programming Languages & Runtimes

- [Web-View Containers](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/runtime-environments/runtimes/javascript-and-web-standard/web-standard-runtimes/web-view-containers.md) — Wraps web applications within a native container to provide access to hardware and system services.
- [Plugin Argument Validators](https://awesome-repositories.com/f/programming-languages-runtimes/function-argument-passing/plugin-argument-validators.md) — Verifies arguments passed from web to native code using typed methods with default value handling. ([source](https://capacitorjs.com/docs/updating/plugins/3-0))

### Software Engineering & Architecture

- [Native Wrappers](https://awesome-repositories.com/f/software-engineering-architecture/application-lifecycle-management/reference-apps-and-blueprints/web-applications/progressive-web-apps/native-wrappers.md) — Functions as a native wrapper that hosts web assets and provides access to system-level features like push notifications and camera.
- [Configuration Manifests](https://awesome-repositories.com/f/software-engineering-architecture/configuration-manifests.md) — Uses centralized manifest files to define application identity, permissions, and build settings across mobile platforms.
- [Native Plugin Development](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/ecosystem-tooling/native-plugin-development.md) — Supports creating and integrating custom native code bridges to extend web applications with specialized device functionality. ([source](https://capacitorjs.com/docs/updating/plugins/3-0))
- [Native](https://awesome-repositories.com/f/software-engineering-architecture/project-management-governance/project-assets/native.md) — Maintains native project files as source assets to enable direct integration with native development environments. ([source](https://capacitorjs.com/docs/getting-started/with-ionic))
- [Plugin-Based Architectures](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/plugin-module-systems/modular-plugin-architectures/plugin-based-architectures/plugin-based-architectures.md) — Enables extending core functionality through independent, dynamically registered native modules.
- [Automatic Plugin Initializers](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/plugin-architectures/plugin-installation-utilities/automatic-plugin-initializers.md) — Automatically registers and exposes native plugin methods to the web layer during the build process. ([source](https://capacitorjs.com/docs/cordova))
- [Live Reloading](https://awesome-repositories.com/f/software-engineering-architecture/reactive-change-detection/live-reloading.md) — Refreshes the application view on connected devices automatically when code changes are detected. ([source](https://capacitorjs.com/docs/guides/live-reload))
- [Application Lifecycle Management](https://awesome-repositories.com/f/software-engineering-architecture/application-lifecycle-management.md) — Executes commands to build, run, and synchronize web assets with native projects to facilitate development workflows. ([source](https://capacitorjs.com/docs/getting-started/with-ionic))
- [Plugin Call Persisters](https://awesome-repositories.com/f/software-engineering-architecture/request-interception-middleware/model-call-interceptors/sdk-call-interceptors/plugin-call-persisters.md) — Maintains active plugin call references to support long-running operations beyond a single request-response cycle. ([source](https://capacitorjs.com/docs/updating/plugins/3-0))
- [Third-Party Plugins](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/third-party-plugins.md) — Supports the integration of community-developed plugins to extend application functionality. ([source](https://capacitorjs.com/docs/getting-started/faqs))
- [Large Dataset Optimizations](https://awesome-repositories.com/f/software-engineering-architecture/performance-reliability/performance-optimization/data-handling-throughput/large-dataset-optimizations.md) — Integrates with native database engines to support high-volume data storage and encryption. ([source](https://capacitorjs.com/docs/guides/storage))

### Networking & Communication

- [Deep Link Handlers](https://awesome-repositories.com/f/networking-communication/deep-link-handlers.md) — Configures custom URL schemes and app links to handle external navigation events and launch parameters. ([source](https://capacitorjs.com/docs/android/configuration))
- [Deep Linking](https://awesome-repositories.com/f/networking-communication/deep-linking.md) — Intercepts incoming deep links at startup to navigate users to specific application views. ([source](https://capacitorjs.com/docs/guides/deep-links))
- [Push Notification Handlers](https://awesome-repositories.com/f/networking-communication/push-notification-handlers.md) — Registers devices with messaging services to receive and process remote alerts. ([source](https://capacitorjs.com/docs/guides/community))

### System Administration & Monitoring

- [Platform Detection](https://awesome-repositories.com/f/system-administration-monitoring/platform-detection.md) — Identifies the host operating system at runtime to enable platform-specific logic and conditional behavior. ([source](https://capacitorjs.com/docs/basics/utilities))

### Security & Cryptography

- [Mobile Authentication](https://awesome-repositories.com/f/security-cryptography/identity-authentication/mobile-authentication.md) — Implements robust user sign-in flows and credential storage by leveraging native hardware-backed security and password management systems.
- [Secure Storage](https://awesome-repositories.com/f/security-cryptography/secure-storage.md) — Utilizes native hardware-backed storage APIs to protect encryption keys and session tokens on mobile devices. ([source](https://capacitorjs.com/docs/guides/security))
- [Proof Key Enforcement](https://awesome-repositories.com/f/security-cryptography/authentication-flows/proof-key-enforcement.md) — Requires proof keys during authentication flows to prevent token interception via custom URL schemes. ([source](https://capacitorjs.com/docs/guides/security))
- [Third-Party Authentication Providers](https://awesome-repositories.com/f/security-cryptography/third-party-authentication-providers.md) — Integrates third-party identity providers to handle secure user sign-in flows. ([source](https://capacitorjs.com/docs/guides/community))

### Testing & Quality Assurance

- [Plugin Promise Resolvers](https://awesome-repositories.com/f/testing-quality-assurance/api-network-testing/service-testing/asynchronous/callback-to-promise-converters/plugin-promise-resolvers.md) — Communicates native method results back to the web layer using standardized promise resolution patterns. ([source](https://capacitorjs.com/docs/updating/plugins/3-0))

### Business & Productivity Software

- [In-App Purchase Integrations](https://awesome-repositories.com/f/business-productivity-software/in-app-purchase-integrations.md) — Integrates native store payment flows to manage digital products and consumables. ([source](https://capacitorjs.com/docs/guides/in-app-purchases))

### Data & Databases

- [Local State Management](https://awesome-repositories.com/f/data-databases/local-state-management.md) — Manages local application state and file system access within the native environment. ([source](https://capacitorjs.com/docs/apis))
- [Key-Value Stores](https://awesome-repositories.com/f/data-databases/key-value-stores.md) — Provides lightweight key-value storage that remains stable across platform updates. ([source](https://capacitorjs.com/docs/guides/storage))

### User Interface & Experience

- [Host Communication Interfaces](https://awesome-repositories.com/f/user-interface-experience/host-communication-interfaces.md) — Facilitates communication between native code and the web interface by triggering events on window or document targets. ([source](https://capacitorjs.com/docs/core-apis/android))
- [Native UI Renderers](https://awesome-repositories.com/f/user-interface-experience/native-ui-component-libraries/native-ui-renderers.md) — Renders platform-specific UI components to maintain a consistent native user experience. ([source](https://capacitorjs.com/docs/guides/community))
- [Framework Integration Modules](https://awesome-repositories.com/f/user-interface-experience/component-based-ui-frameworks/framework-integration-modules.md) — Connects web-based interface libraries to the native runtime for mobile-specific navigation and components. ([source](https://capacitorjs.com/docs/getting-started/ui))
- [Native Control Embedding](https://awesome-repositories.com/f/user-interface-experience/native-control-embedding.md) — Enables hosting and manipulation of native UI elements like status bars and dialogs within the web-based application. ([source](https://capacitorjs.com/docs/apis))
