Web and mobile chat
Every surface loads the same authenticated HTTPS page and harness ticket loader. Server keys remain on your backend.
Website
Follow the module mount example and backend contract. Register the page's exact HTTPS origin. A component tag with a token endpoint is not a substitute for this contract.
PWA
Use the website pattern. Exclude session responses from service-worker and application caches. Renew on resume and discard access on logout.
React Native
Serve /chat on an origin you control. The page implements the same mountWidget and getSession flow as the web example. Establish the page's own authenticated application session; WebView loading does not automatically transfer an app sign-in.
import { WebView } from 'react-native-webview';
const CHAT_ORIGIN = 'https://app.example';
export function ChatScreen() {
return <WebView
source={{ uri: `${CHAT_ORIGIN}/chat` }}
originWhitelist={[CHAT_ORIGIN]}
onShouldStartLoadWithRequest={({ url }) => {
try { return new URL(url).origin === CHAT_ORIGIN; }
catch { return false; }
}}
/>;
}Register the page origin in Allowed sites. Keep tokens out of URLs. Renew on foreground and unmount on logout or account change. Use a hosted page implementing the current loader. Verify any native bridge adapter against the same ticket-envelope contract; a bridge token provider does not replace your authenticated backend endpoint.
iOS
Load the same HTTPS page in WKWebView and restrict navigation to the approved origin. Verify keyboard, microphone, camera, attachment and resume behavior on an actual device.
Or add the ready-made wrapper, vedika-chat-swift, with Swift Package Manager:
.package(url: "https://github.com/vedika-io/vedika-chat-swift.git", from: "0.1.0")Android
Use an Android WebView with mixed content and local-file access disabled. Restrict navigation to the hosted page origin and verify permissions and lifecycle on an actual device.
Or add the ready-made wrapper, vedika-chat-android, from JitPack (add maven { url = uri("https://jitpack.io") } to your repositories):
implementation("com.github.vedika-io:vedika-chat-android:0.1.0")Flutter
Load the authenticated page in a restricted WebView. Your application owns login and lifecycle; the hosted page owns the harness ticket flow.
Or use the ready-made wrapper, vedika-chat-flutter. It is installed from GitHub at a release tag, not from pub.dev:
dependencies:
vedika_chat:
git:
url: https://github.com/vedika-io/vedika-chat-flutter.git
ref: v0.1.0Desktop
The Tauri desktop shell is source-only: no signed or notarized installer is published, and its auto-update channel is not active. Build it from the kit source and sign it with your own certificates.
Apply the same origin, authentication and key boundaries in your desktop WebView. Do not use a file URL as an origin workaround.
Source-only components
These parts of the kit are source-only. Nothing is installed for them from a package registry, app store or marketplace.
- Rust agent SDK: source-only. It is not published to crates.io; add it as a path or git dependency from the kit source. The Python SDK (PyPI) and the JavaScript SDK (npm) are the published agent SDKs.
- Tauri desktop shell: source-only, as described under Desktop above.
- Shopify, Wix and WordPress embeds: source-only. None is submitted to the Shopify App Store, the Wix App Market or the WordPress plugin directory, so there is no marketplace listing to install from. Set each one up from its own page: Shopify, Wix, WordPress.
- Webflow, Squarespace and Framer: paste-the-loader samples that you deploy on your own host.
Release checks
Test Stop, settled receipts, reconnect, expiry, low balance, logout and account switching. Browser screenshots prove layout only; native permission and store-release checks remain part of your own application release.