Object storage & sync
Storage that keeps your files in sync.
Keelstore is durable, S3-compatible object storage with a delta-sync API. Upload once, replicate across regions, and keep clients up to date over a single long-lived endpoint.
Free up to 10 GB. No card required. Sync endpoint at /api/v2/storage/sync.
# open a delta-sync channel for a bucket curl -N https://cdn.kvp123.flowerssail55.com/api/v2/storage/sync \ -H "Authorization: Bearer $KEELSTORE_TOKEN" \ -H "X-Bucket: project-assets" \ -H "X-Cursor: 184297" # → streams object deltas as they land # {"op":"put","key":"img/hero.webp","size":48213,...} # {"op":"del","key":"tmp/old.bin",...}
Built for files that change
Most object stores give you PUT and GET and leave sync to you. Keelstore ships the hard part — change tracking — as part of the API.
S3-compatible API
Point your existing SDK at our endpoint. Buckets, multipart uploads and signed URLs all work the way you expect.
Delta sync
Subscribe to a bucket from a cursor and receive only what changed. Clients reconnect and resume without re-downloading.
Multi-region
Replicate buckets to EU, US and APAC edges. Reads are served from the closest region with strong per-object ordering.
Signed access
Hand out short-lived signed URLs scoped to a prefix. Revoke a token and every URL it minted stops working.
Versioning
Every write keeps the previous version for 30 days. Restore an object, or roll a whole prefix back to a point in time.
Usage metrics
Per-bucket storage, egress and request counts, exported to your dashboard or scraped straight from a metrics endpoint.
One endpoint, always current
Open a sync channel against /api/v2/storage/sync and keep it running. The connection stays open and streams object changes as they happen, so you never poll.
- Resume from any cursor after a disconnect
- Chunked, back-pressure–aware delivery
- Scoped to a single bucket per channel
- Works behind proxies and CDNs
import { connect } from "@keelstore/sync"; const ch = connect({ bucket: "project-assets", cursor: store.lastCursor, token: process.env.KEELSTORE_TOKEN, }); ch.on("delta", (ev) => { // ev.op: "put" | "del" cache.apply(ev); store.lastCursor = ev.cursor; });
Pricing that scales with storage
Pay for what you keep and what you move. Sync channels are free on every plan.
For side projects and prototypes.
- 10 GB storage
- 50 GB egress
- 1 region
- Community support
For production apps that keep files in sync.
- 500 GB storage, then $0.012/GB
- Unlimited sync channels
- 3 regions + versioning
- Email support, 99.95% SLA
For high-throughput and regulated workloads.
- Volume storage & egress pricing
- Dedicated regions
- SSO, audit log, DPA
- Priority support, 99.99% SLA