February 17th, 2026
The Local DB Question: Which Database Powers Our Native Services? Today we performed a deep architectural analysis to decide which local database will power the offline-first features of CommitT: app blocking, pestering alarms, and task mirroring.The Requirements
Before comparing databases, we defined exactly what we need:The Hidden Constraint: Native Android Access
App Blocking and Alarms don’t run in React Native. They run as native Android services written in Java/Kotlin.This is the critical insight most comparisons miss. Three separate processes need to read the same database:
Elimination Round
Initial Comparison
Eliminated
Finalists: expo-sqlite vs OP-SQLite
Winner: expo-sqlite. The 2x speed difference of OP-SQLite is irrelevant because the Accessibility Service reads from native
android.database.sqlite anyway, which is the same speed regardless of which RN wrapper is used.