Quickstart

Go from zero to remotely managed strings: create a project, publish your first string with the CLI, and see it update live in your app.

Sign up

Create your account at app.airstrings.com. Signing up creates your organization.

Install the CLI and create a project

npm install -g @airstrings/cli

Then run init in your app's directory:

cd my-app
airstrings init

init opens the browser so you can approve the login (an owner of the organization approves), creates a project named after the folder, and stores the workspace in .airstrings/config.json. Every new project comes with two environments:

  • staging: open for direct edits. You publish here first. init makes it the active environment.
  • production: protected. Direct edits and publishes are rejected; changes reach it only by promotion from staging.
Using an AI agent? The dashboard's guided setup gives you a prompt that installs the CLI and runs init for you. Without a terminal, init opens the browser and waits up to 90 seconds for you to approve; if it exits 9, approve the printed URL and re-run the same command. Already have a project? Run airstrings init --project <id>, or airstrings init <project-key> with a key from the project's API Keys page.

Publish your first string with the CLI

Create a string and publish it:

airstrings strings set welcome.title --format text --push en="Welcome to AirStrings"
airstrings publish en

Your en bundle is now signed and live in staging.

Add the SDK to your app

airstrings sdk-config --env staging prints the organization, project and environment IDs and the public key for staging, with a ready-to-paste initializer. The SDKs use these to fetch and verify bundles; all of them are public.

Add the package in Xcode (File > Add Package Dependencies) or in Package.swift:

dependencies: [
    .package(url: "https://github.com/symbionix-sl/airstrings-sdk-ios.git", from: "1.2.0")
]

Create an AirStrings instance at app launch and read your string:

import AirStrings

let airStrings = AirStrings(configuration: .init(
    organizationId: "org_a1b2c3d4e5f6",
    projectId: "proj_a1b2c3d4e5f6",
    environmentId: "env_a1b2c3d4e5f6",
    publicKeys: ["BASE64_ED25519_PUBLIC_KEY"]
))

let title = airStrings["welcome.title"]

SwiftUI injection, ICU formatting, and caching details are in the iOS SDK guide.

Strings load asynchronously: until the first verified bundle arrives, lookups fall back to the key name. Once loaded, strings are cached on device and keep working offline.

Change it live

Update the string and publish again:

airstrings strings set welcome.title --format text --push en="Hello from the cloud"
airstrings publish en

Send your app to the background and bring it back to the foreground (or refocus the browser tab). The SDK refreshes, verifies the new bundle, and your UI shows the new copy. No rebuild, no release.

Ship to production

When the copy is ready, switch the environment selector to production, open Promote, pick staging as the source, review the diff, and promote. Promoted strings are signed and published to production immediately.

For your release builds, point the SDK at the production environment ID and public key: airstrings sdk-config --env production prints them with a ready-to-paste initializer (also in Project Settings > SDK Configuration).

On this page