OTA Content Layer

GhostStrings.ai

The lightweight content management layer for modern apps. Sync strings, translations, and copy instantly across Web, Android, and iOS — without a single rebuild or redeploy.

🌐 Web  ·  Live 🤖 Android  ·  Live 🍎 iOS  ·  Live Now
How it Works
Edge Propagation
Global content delivery with millisecond latency. Updates reflect in your app before the user refreshes.
🤖
AI Translation
Integrated Gemini 2.0 Flash for automated localization across 100+ languages.
📱
Multi-Platform
One dashboard. Native SDKs for Web, Android (Kotlin + Compose), and iOS (Swift + SwiftUI).

Project Initialized!

Your ghostly content layer is live. Drop the SDK into your <head> to begin.

Easy Integration

Pick your platform. Be live in minutes.

1. Add the SDK to Head

Paste this script in your HTML. Replace ID with your Project ID.

<script src="https://ghoststrings.ai/sdk.js" data-project="ID"></script>
2. Tag Your Elements

Add the data-lv attribute to bind any tag to a cloud string.

<h1 data-lv="hero_title">Default Title</h1>
1. Add Dependency

Add JitPack to your project and add the SDK.

implementation("com.github.shahwaiz90:ghoststrings-android:1.4.0")
2. Initialize Globally

Initialize in your Application class.

GhostStrings.init(this, GhostStringsConfig(projectId = "ID"))
3. Zero-Change Interception

Wrap your root Compose content. stringResource() calls are intercepted automatically!

GhostStringsProvider {
    MainScreen() // Magic happens here!
}
1. Add via SPM

Add the package in Xcode via Swift Package Manager.

https://github.com/shahwaiz90/ghoststrings-ios
2. Initialize

Initialize in your App init. NSLocalizedString is swizzled automatically!

GhostStrings.shared.initSDK(config: GhostStringsConfig(
    projectId: "ID"
))
3. Zero-Change UI

Use standard Text(LocalizedStringKey) or the .gs shorthand!

VStack {
    Text("hero_title") // Intercepted!
    Text("welcome_msg".gs) // Or use shorthand
}

Platform Guide

Everything you need to know about OTA content.

What is GhostStrings?
GhostStrings is an Over-The-Air (OTA) translation and content management layer. It allows developers to decouple their hardcoded strings from their codebase, enabling instant updates via a dashboard without redeploying code.
What should my strings.json look like?
It should be a simple flat JSON object where keys correspond to your data-lv attributes:
{
  "hero_title": "Welcome Home",
  "login_btn": "Sign In"
}
How do I integrate this into my website?
Add the SDK and tag elements. Here is a sample:
<!-- 1. Add SDK -->
<script src="https://ghoststrings.ai/sdk.js" data-project="ID"></script>

<!-- 2. Tag Elements -->
<h1 data-lv="title">Fallback</h1>
Does this affect my SEO?
No. Search engines will see the default "fallback" content in your HTML. GhostStrings injects updates before the initial paint for users, maintaining SEO integrity.
How do Debug and Production IDs work?
Every project has two track keys. Use your Debug Key for development and your Production Key for live builds. GhostStrings automatically serves the correct content track based on the key used.
Can I revert to a previous version?
Yes! Every production promotion creates a snapshot. Access the History sidebar in the project manager to view and restore any previous state.