You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
QBridge is a modern, lightweight native bridge for iOS that lets you build hybrid apps using idiomatic Swift, while exposing only the native APIs you explicitly choose to JavaScript.
It is designed as a clean, native-first alternative to Cordova and Capacitor, without legacy constraints, global magic, or opaque runtime behavior.
Qbix, the company behind QBridge, designs web-first applications. Get in touch if you need help or would like to collaborate with us. We've released our entire module platform as open-source to help developers. You're welcome:
A battle-tested, modular framework for launching full sites (even build your own Facebook / LinkedIn). Explore this only after you built a serverless web app.
@objcclassMyPlugin:QBridgeBaseService{@objcfunc hello(_ args:Any?, callbackId:String?){
bridge.sendEvent(callbackId ??"", data:["message":"Hello from Swift"])}}
๐งฉ Plugins
The plugins below are production-grade, written in idiomatic Swift, and designed to solve real problems in hybrid apps. Like continuing to use the same storage Web APIs you're already used to (IndexedDB and localStorage) but have them actually continue to work in your app. Use the same code on the Web and in your app!
They are listed in order of importance.
Persistent Web Storage (localStorage Backup)
๐ด"It would be a shame if your app's storage was suddenly deleted."
Problem
Reality on iOS
WebView localStorage
Can be purged
IndexedDB
Can disappear
Silent data loss
Happens in production
Capability
Description
Load storage
Restores saved localStorage on launch
Save deltas
Writes changes to disk
File-backed
Uses real files you control
Session tracking
Detects fresh vs restored sessions
IndexedDB (SQLite-backed, Native)
IndexedDB Feature
WebView Reality
Object stores
Opaque
Indexes
Opaque
Persistence
Unreliable
Backups
Impossible
Feature
Implementation
IndexedDB-style API
JavaScript-compatible
SQLite backend
Real .sqlite files
Versioned upgrades
Deterministic
Indexes & cursors
Native-speed
Import / export
Supported
Native toggle
Optional
Secure Identity & Signing
Capability
Why it exists
Secure Enclave keys
Hardware-backed identity
App Attest fallback
Works in App Clips
Continuity
Identity survives upgrades
Payload signing
Anti-fraud, trust
Clipboard Access
Feature
Why
Read clipboard
User workflows
Write clipboard
Sharing
Native permissions
Predictable behavior
Device Information
Data
Use case
Model
Debugging
OS version
Feature gating
Name
Diagnostics
Share Extensions (Email & SMS)
Problem
Solution
JS canโt close extensions
Native completion
Broken share flows
Fixed
Attachments
Supported
View / Extension Closer
Context
Behavior
App UI
Dismiss controller
Extension UI
Complete request
Fallback
Safe default
Contacts & Address Book
Capability
Notes
Permissions
Correctly handled
Read contacts
Structured
Groups
Supported
Native picker
Included
Add / update / delete
Full lifecycle
Final Notes
QBridge is intentionally small, explicit, and honest.
If you want predictable storage, strong security, App Clips support, and clean Swift-native plugins, QBridge is the modern choice.
About
Modern, lightweight alternative to Cordova and Capacitor