Everything S3 has, and everything it doesn’t

Tigris is globally distributed, S3-compatible object storage built for performance, simplicity and cost efficiency. Data lives close to where it is read, moves between clouds for free, and comes with the primitives S3 never grew: forks, snapshots, soft delete and object events. Every primitive on this page is one CLI command, and there is a real shell in the corner to run it in.

Primitives

Storage primitives for agents and teams

The building blocks you already know from S3, plus the ones you wish it had. Every tile is the one CLI command that sets it up.

Placement
Docs

Pick single-region, multi-region, or global placement per bucket. Keep data close to users and redundant across regions without running your own replication.

# --locations iad | iad,fra | global
$ tigris buckets create my-bucket --locations iad,fra

Everything else

Everything S3 has, built in

The API your code already speaks, with the parts that usually cost extra or need a second product included.

Global distribution
Data is stored close to the users that read it. Dynamic data placement and access-based rebalancing move objects to where they are needed, with no manual replication, no CDN to configure and no region to pick. Docs
S3-compatible API
Any tool, library or application that works with S3 works with Tigris. boto3, @aws-sdk, the AWS CLI, Terraform and rclone all work by changing the endpoint and access keys. Docs
Zero egress fees
Data transfer out is free, for every read: application servers, end users on presigned URLs, and training pipelines pulling datasets across clouds. No bandwidth charges and no surprise cross-region bills. See pricing
Strong consistency
Read-after-write consistency within a region for every location type, and strong consistency across regions for multi-region buckets. Docs
Security and compliance
SOC 2 Type II, HIPAA BAA available, encryption at rest and in transit, and access control down to the prefix and operation. Docs
Lifecycle rules
Move objects between storage tiers, or expire them, on rules set per bucket or key prefix. Keep hot data in Standard and let older logs and artifacts age into cheaper tiers on their own. Docs
Conditional writes
If-Match and If-None-Match on writes, so concurrent writers and retries never clobber each other. The building block for locks and leases on top of objects. Docs
Multipart uploads
Upload large objects in parallel parts and resume after a failure, with the same multipart API S3 clients already use. Docs
Zero-downtime migration
Shadow buckets keep an existing S3-compatible store and Tigris in sync. Objects copy over on first read, writes mirror back, and there is never a hard cutover. How it works

Side by side

Tigris, S3, R2 and GCS, feature by feature

What each store charges, where it puts your data, what it guarantees about reads, and which bucket operations it has. Specifics, not scores; the places Tigris says no are marked the same way as everyone else’s.

FeatureTigrisAWS S3Cloudflare R2Google Cloud Storage
Cost
Standard storage$0.020 / GB-month$0.023 / GB-month$0.015 / GB-month$0.020 / GB-month
Egress to the internet$0$0.09 / GB after 100 GB free$0$0.12 / GB after 100 GB free
Cross-region transfer$0$0.01 to $0.02 / GB, plus replication PUTsn/a, single region$0.02 / GB dual and multi-region replication
Requests, Class A / Class B$0.005 / $0.0005 per 1,000$0.005 / $0.0004 per 1,000$4.50 / $0.36 per million$0.005 / $0.0004 per 1,000
Free tier5 GB, 10k Class A, 100k Class B per month5 GB and 100 GB egress, first 12 months10 GB, 1M Class A, 10M Class B per month5 GB, 5k Class A, 50k Class B per month
Placement and consistency
Regions per bucketGlobal, multi-region, dual-region or single-region, set per bucket; data moves to where it is readOne region per bucket; cross-region replication is a rule you configure and pay per GB forOne region, chosen by location hint at creation; no replicationSingle, dual or multi-region buckets; replication included in the storage price
EndpointOne global endpoint, t3.storage.dev, routed to the nearest replicaPer-region endpoints; Multi-Region Access Points are a separate resourcePer-account endpoint, single locationOne global endpoint
ConsistencyStrong read-after-write in region; strong across regions for multi-region buckets; global buckets replicate with sub-second lagStrong read-after-write within the bucket region; replicated copies are asynchronousStrongStrong, including dual and multi-region
Availability commitment99.99% target99.9% SLA for Standard99.9% SLA99.95% SLA multi-region, 99.9% single
Bucket and object primitives
Copy-on-write forksYes, any size, instant; merge and rebaseNoNoNo
Bucket snapshotsYes, point in time, fork from any snapshotNo; object versioning onlyNoNo; object versioning only
Soft deleteYes, objects and whole buckets, retention window per bucketNo; versioning with delete markersNoYes, objects and buckets, 7 to 90 days
Object versioningYesYesNoYes
Conditional writesIf-Match, If-None-MatchIf-Match, If-None-MatchIf-Match, If-None-MatchGeneration and metageneration preconditions
Object eventsWebhooks on create, update, deleteSNS, SQS, Lambda, EventBridgeCloudflare Queues onlyPub/Sub
Storage tiersStandard, Infrequent Access, Archive Instant Retrieval, Archive; lifecycle rules per bucket or prefixStandard, IA, One Zone-IA, Intelligent-Tiering, three Glacier classes; lifecycle rulesStandard, Infrequent Access; lifecycle rulesStandard, Nearline, Coldline, Archive; lifecycle rules
Access and compatibility
S3 APINativeNativeCompatible subsetXML API with S3 interoperability mode
Access controlS3-compatible IAM policies, scoped to bucket, prefix, key or operationIAM policies, bucket policies, ACLsAPI tokens scoped to buckets; no policy documentsIAM with conditions; ACLs optional
Presigned URLsYes, and on custom domainsYesYesYes, V4 signed URLs
Custom domain with TLSYes, managedVia CloudFrontYes, on a Cloudflare zoneVia a load balancer
Migrate in placeShadow bucket: reads pull from the old store, writes mirror back, no cutoverNo; batch copy or replicationSippy: reads pull from S3 or GCS, writes do not mirror backNo; Storage Transfer Service batch copy
ComplianceSOC 2 Type II, HIPAA BAASOC, ISO, HIPAA, FedRAMP and moreSOC 2, ISO 27001SOC, ISO, HIPAA and more

List prices for the cheapest US region as published on 20 September 2026 (Tigris docs, aws.amazon.com/s3/pricing, developers.cloudflare.com/r2/pricing, cloud.google.com/storage/pricing). Free tiers and SLAs vary by class and region; check each provider before you budget.

Tigris is S3-compatible, so you keep your code and change the endpoint.

Point your SDK at t3.storage.dev and you are done.

Works with boto3, aws-sdk, the Go SDK, rclone, anything that speaks S3.

Migrating? Objects copy over on first read and writes mirror back, so both buckets stay live until you are ready.

Zero-downtime migration
Only the endpoint changes
export AWS_ACCESS_KEY_ID="tid_your_access_key"
export AWS_SECRET_ACCESS_KEY="tsec_your_secret_key"
export AWS_ENDPOINT_URL="https://t3.storage.dev"
export AWS_REGION="auto"

Start building on Tigris

Free to start. No egress fees. No lock-in.

npx tigris init

Installs the CLI and connects your agent