Skip to content

Plugins

How to Sign In with Okta Using Capacitor

Okta is a widely used identity platform that powers single sign-on (SSO) and user management for thousands of organizations. If you need to add Okta authentication to a Capacitor app, the OAuth plugin supports the Authorization Code flow with PKCE out of the box. In this guide, you'll learn how to register your app in Okta, implement sign-in and sign-out, manage tokens, and retrieve user profile data on Android, iOS, and web. This is also a great alternative to Ionic Auth Connect for teams looking for a lightweight, open approach.

How to Use Better Auth in Ionic and Capacitor Apps

Better Auth is an open-source, framework-agnostic authentication framework for TypeScript. Whether you're building with Ionic, Angular, React, or Vue, the Better Auth JavaScript SDK works out of the box in your Capacitor app — no special configuration needed. Since Capacitor apps are essentially web apps running in a native WebView, you can use the SDK directly for standard authentication flows. You only need Capacitor plugins when it comes to social login flows that require native functionality, like opening a browser window or using platform-specific sign-in APIs. This guide shows you how to set up mobile authentication with Better Auth in your Capacitor app using the Apple Sign-In, Google Sign-In, and OAuth plugins.

The App Update Delivery Guide for Capacitor

Keeping your users on the latest version of your app isn't just nice to have — it's critical for security, performance, and delivering the best experience. In this guide, you'll learn how to build a complete update delivery strategy for your Capacitor app by combining two plugins: the App Update plugin for native app store updates and the Live Update plugin for Over-The-Air (OTA) updates.

How to Reduce the Bundle Size of Capacitor Live Updates

If you're using Over-The-Air (OTA) live updates to ship web layer changes to your Capacitor or Ionic app, the size of your update bundles directly affects how fast those changes reach your users. Large bundles mean slower downloads, higher data transfer costs, and a worse experience for users on mobile networks. The good news is that a few targeted optimizations can make a dramatic difference — one team we worked with reduced their average update from ~48 MB to ~9 MB. This guide walks through the most effective ways to reduce your live update bundle size.

How to Sign In with Apple Using Capacitor

Sign in with Apple lets users authenticate with their Apple ID, offering a privacy-focused alternative to other social logins. Apple requires apps that offer third-party sign-in to also support Sign in with Apple. The Apple Sign-In plugin provides a straightforward way to integrate Apple Sign-In into your Ionic or Capacitor app on Android, iOS, and web. This guide walks you through setting up the required credentials, configuring the plugin for each platform, and implementing the sign-in flow.

How to Use TypeORM with Capacitor and SQLite

Many developers already use TypeORM on the backend to manage databases with TypeScript decorators and a familiar repository pattern. The good news: the same approach works in Capacitor apps too. The Capacitor SQLite plugin ships with a built-in SQLiteConnection class that plugs directly into TypeORM's DataSource — no additional adapter package required. This guide walks you through the complete setup, from defining entities to running queries and managing migrations.

For raw API usage, see the Capacitor SQLite plugin documentation.

How to Use Kysely with Capacitor and SQLite

Working with raw SQL in a Capacitor app gets messy fast — queries are just strings, results are untyped, and refactoring a column name means hunting through your entire codebase. Kysely solves this with a type-safe query builder that catches errors at compile time while keeping you close to SQL. In this guide, you'll learn how to set up Kysely with the SQLite plugin using the new @capawesome/capacitor-sqlite-kysely dialect.

For the Capacitor SQLite plugin API, see the plugin documentation.

How to Use Drizzle ORM with Capacitor and SQLite

If you're building a Capacitor app that needs a local database, you've probably dealt with writing raw SQL strings and mapping results manually. It works, but it's error-prone and doesn't scale well. Drizzle ORM offers a better approach: a lightweight, type-safe ORM that lets you define your schema in TypeScript and write queries that feel like SQL — with full autocompletion and compile-time checks. In this guide, you'll learn how to set up Drizzle ORM with the Capacitor SQLite plugin using the new @capawesome/capacitor-sqlite-drizzle adapter. For the Capacitor SQLite plugin itself, see the plugin documentation.

Tips for Setting Up In-App Purchases with Capacitor

Setting up in-app purchases in a mobile app involves more than just writing code. Between Apple's agreements, Google's compliance checks, and platform-specific gotchas, there's a lot of ground to cover before you can charge your first customer. Here are some practical tips to help you get started with in-app purchases on both iOS and Android using the Purchases plugin.