Capacitor
Build native iOS, Android, and Progressive Web Apps from a single web codebase
Repository Health
Technical Analysis
Capacitor is a cross-platform native runtime from the Ionic team that lets a single web codebase run as a fully native iOS app, native Android app, and Progressive Web App. It provides a JavaScript-to-native bridge so web code can call native device SDKs (camera, filesystem, geolocation, and dozens more via official and community plugins), while treating the generated native Xcode/Android Studio projects as first-class source artifacts you can edit directly rather than disposable build output.
Capacitor is framework-agnostic — it works with React, Vue, Angular, Svelte, or plain JavaScript — and is commonly paired with the Ionic Framework for native-feeling UI components, though that pairing isn’t required. It positions itself as a modern successor to Apache Cordova, offering backward compatibility with most existing Cordova plugins while using more current native tooling (Swift and Kotlin/Java) and a CLI-driven workflow (npx cap add/sync/open) for managing native projects.
What You Get
- A JavaScript-to-native bridge (@capacitor/core) exposing native device APIs to web code with typed plugin interfaces
- Native Xcode (@capacitor/ios) and Android Studio (@capacitor/android) project generation, treated as editable source rather than disposable build output
- A CLI (npx cap init/add/sync/open) for scaffolding, syncing web assets into native projects, and opening native IDEs
- A Plugin API for writing custom native plugins in Swift and Kotlin/Java, or consuming community/official plugins
- Backward compatibility with the majority of existing Apache Cordova plugins for easier migration
- First-class Progressive Web App output alongside the native builds from the same codebase
Common Use Cases
- Shipping an existing React, Vue, Angular, or Svelte web app to the iOS and Android app stores without a full native rewrite
- Building a new cross-platform app with the Ionic Framework’s native-styled UI components on top of Capacitor’s native bridge
- Accessing native device capabilities (camera, biometrics, filesystem, push notifications) from web-based application code
- Migrating an existing Apache Cordova app to a more modern native tooling and plugin ecosystem while reusing most plugins
Under The Hood
Architecture: Capacitor is an Nx/Lerna-managed monorepo where core/ ships the JavaScript bridge and plugin registration API, ios/ and android/ contain the native runtime libraries (Capacitor.framework in Swift, the capacitor Gradle module in Java/Kotlin) that host a WebView and expose a native-to-JS message-passing bridge, cli/ drives the cap command that scaffolds and syncs the android/ and ios/ template projects, and capacitor-cordova-*-plugins/ provide compatibility shims so existing Cordova plugins keep working inside a Capacitor project.
Tech Stack: The codebase spans TypeScript (bridge/CLI, 31% of bytes), Java (29%, Android native layer), Swift (23%, iOS native layer), and Objective-C (8%, legacy iOS interop), built and orchestrated via Nx/Lerna across workspace packages, with native builds relying on Gradle (Android) and CocoaPods/Swift Package Manager (iOS, via ios-pods-template and ios-spm-template).
Code Quality: The project has 327 contributors, 4,597 total commits, and ships releases at roughly one per week (release_frequency ~0.96), with CI enforcing lint (ESLint/Prettier/SwiftLint configs at the repo root) across all three native/web surfaces; the multi-language, multi-platform nature raises coordination complexity but the mature release cadence and CI gating indicate disciplined maintenance.
API Design: The plugin API follows a consistent registration pattern across Swift and Kotlin/Java so plugin authors write similar-shaped code regardless of target platform, and the JS-facing API surface (Capacitor.Plugins.X) stays uniform whether a plugin is official, community-built, or a Cordova compatibility shim, keeping the developer experience consistent even though three different native toolchains sit underneath.
Used by 6 apps in this directory
Actual
Invoicing Finance
Local-first personal finance with envelope budgeting, end-to-end encryption, and multi-device sync — no subscription required.
AFFiNE
Productivity · Project Management · Note Taking
Write, draw, and plan in one infinite canvas — the open-source alternative to Notion and Miro that keeps your data yours.
Bramble
Password Manager · Security · Authentication
Local-first, end-to-end encrypted password manager that syncs your vault directly between your own devices over a private peer-to-peer mesh — no server, no account, no cloud in the middle.
Logseq
Note Taking · Knowledge Management
A privacy-first, open-source knowledge graph platform combining Markdown, Org-mode, bidirectional linking, and local-first storage for building your second brain.
Supabase
Developer Tools · Databases · Search
The open-source Postgres development platform that replaces Firebase with authentication, real-time APIs, edge functions, storage, and vector embeddings — all built on PostgreSQL.
Super Productivity
Productivity · Project Management
A privacy-respecting, local-first task manager with built-in timeboxing, Pomodoro timer, and deep integrations for Jira, GitHub, GitLab, and CalDAV — no accounts, no data collection, ever.