Skip to content

2026

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.

Introducing Capver: Version Management for Capacitor

If you've ever shipped a Capacitor app and had to manually update version numbers in three different files across three different platforms, you know how easy it is for things to get out of sync. Capver is an open-source CLI tool that manages your app versions across iOS, Android, and web in a single command. In this post, we'll walk you through what it does and how it works.

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.

Why Every Capacitor Team Needs a CI/CD Pipeline

Somewhere right now, a developer is building a Capacitor app on their laptop, signing it manually, and uploading it to the App Store — while hoping they didn't forget a step. It works, until it doesn't. A wrong signing certificate, a missing environment variable, or a skipped test is all it takes to ship a broken build to production.

If your team is still releasing manually, you're spending time on work that should be automated — and accepting risk that doesn't need to exist. This post makes the case for why CI/CD should be a priority for every Capacitor team and how you can get there without weeks of setup.

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.