Capacitor

Build native iOS, Android, and Progressive Web Apps from a single web codebase

Framework
npm
v8.5.0
16,344stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
88/100Excellent
Development Activity88
Maintenance88
Community76
Maturity60
Momentum40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
78/100Good
Architecture85
Code Quality82
Innovation78
Learning Curve68

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

TypeScript
94%
MIT

Actual

Invoicing Finance

28,224

Local-first personal finance with envelope budgeting, end-to-end encryption, and multi-device sync — no subscription required.

View details
93
Repo Health
85
Technical
77
Dependency
Built with
TypeScript94%
Updated yesterday
TypeScript
88%
Other

AFFiNE

Productivity · Project Management · Note Taking

71,668

Write, draw, and plan in one infinite canvas — the open-source alternative to Notion and Miro that keeps your data yours.

View details
91
Repo Health
87
Technical
68
Dependency
Built with
TypeScript88%
Updated today
TypeScript
75%
GPL 3.0

Bramble

Password Manager · Security · Authentication

315

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.

View details
73
Repo Health
84
Technical
72
Dependency
Built with
TypeScript75%
Updated today
Clojure
73%
AGPL 3.0

Logseq

Note Taking · Knowledge Management

44,506

A privacy-first, open-source knowledge graph platform combining Markdown, Org-mode, bidirectional linking, and local-first storage for building your second brain.

View details
92
Repo Health
82
Technical
68
Dependency
Built with
Clojure73%
OCaml11%
Updated today
TypeScript
71%
Apache 2.0

Supabase

Developer Tools · Databases · Search

108,148

The open-source Postgres development platform that replaces Firebase with authentication, real-time APIs, edge functions, storage, and vector embeddings — all built on PostgreSQL.

View details
90
Repo Health
91
Technical
66
Dependency
Built with
TypeScript71%
MDX26%
Updated today
TypeScript
91%
MIT

Super Productivity

Productivity · Project Management

21,443

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.

View details
90
Repo Health
81
Technical
73
Dependency
Built with
TypeScript91%
Updated 2 days ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers

Search