JSON hosting & remote config · delivered from the edge

Change your app's behavior
without shipping a release.

Put your feature flags, settings, and content in versioned JSON. Edit it in the dashboard, publish a version, and it's live on Cloudflare's edge in seconds — read by your web, iOS, and Android apps in milliseconds. You pay for the number of configs you host, never for the traffic they serve.

// Read a published config from the edge — one request, ~ms latency
const cfg = await fetch(
  "https://api.shareanydata.com/v1/acme/Prod/feature-flags",
  { headers: { Authorization: "Bearer sad_read_•••" } }
).then(r => r.json());

if (cfg.checkout_v2) renderNewCheckout();

Try the live demo free — 4 sample configs across every env, 100 reads/mo. No credit card.

Built for config you change often and read everywhere.

Environments & promotion

Organize each config across Dev, Stage, Cert, and Prod. Promote the exact bytes forward when you're ready — promotion creates a new version in the target environment.

Immutable versions & rollback

Every save is a new version with a timestamp. Publish any version, and roll back to a previous one with a click. Nothing is overwritten.

Templates & schema diff

Link a config to a template to keep its shape consistent. We compute the missing and extra keys against the template and generate an editing form from it.

Edge-cached delivery

Published JSON lives in Cloudflare KV and serves through the edge cache with strong ETags. Conditional requests return 304 with no body — fast for your apps, cheap to run.

Web, iOS & Android SDKs

Thin clients that cache by ETag, send conditional requests, fall back to the last value offline, and can poll for updates. Ship a read-only key; never a secret.

Scoped keys & audit log

Issue read keys for clients and server keys for CI. Restrict a read key to one environment, revoke any key instantly, and review a log of every publish.

From edit to edge in three steps.

1 · Author

Create a config and edit its JSON in the dashboard. It validates as you type and checks it against your template.

2 · Publish

Save a version and publish it. The bytes are written to Cloudflare KV and the edge cache is refreshed — typically live within seconds.

3 · Read anywhere

Your apps fetch /v1/{project}/{env}/{config} with a read key. Cached responses are served from the nearest Cloudflare location.

Pay for configs, not traffic.

Reads scale with your plan. No per-seat fees. No MAU billing. Try the demo free.

Demo
$0/mo
4 sample configs
  • Sandbox workspace, all environments
  • 100 reads/mo
  • Explore every feature — read-only
  • Web · iOS · Android SDKs
Try the demo
Starter
$7/mo
5 published configs
  • Up to 100 workspaces
  • Unlimited reads (25M/mo fair use)
  • Templates & schema validation
  • Everything in Demo
  • Email support
Choose Starter
Scale
$49/mo
50 published configs
  • Up to 100 workspaces
  • Unlimited reads (400M/mo fair use)
  • Templates & schema validation
  • Everything in Growth
  • Read-overage option
Choose Scale
Business
$89/mo
100 published configs
  • Up to 100 workspaces
  • Unlimited reads (1B/mo fair use)
  • Templates & schema validation
  • Everything in Scale
  • Audit log export
Choose Business

One config, every platform.

JavaScript / Web
import { createClient } from "@shareanydata/web";

const sad = createClient({
  sdkKey: "sad_read_•••",
  projectKey: "acme",
  env: "Prod",
});
const flags = await sad.get("feature-flags");
Swift / iOS
import ShareAnyData

let sad = ShareAnyData(
  sdkKey: "sad_read_•••",
  projectKey: "acme",
  env: "Prod")
let flags = try await sad.get("feature-flags")
Kotlin / Android
val sad = ShareAnyData(
  sdkKey = "sad_read_•••",
  projectKey = "acme",
  env = "Prod")
val flags = sad.get("feature-flags")