Object storage for app uploads, without the AWS bill.
Console uploads, scoped credentials, signed URLs, and public links in one dashboard.
https://storage.swyftstack.com/exports/orders-2026-q1.csv?X-Amz-Signature=•••&X-Amz-Expires=900The storage controls apps need, without AWS busywork.
Every modern app needs to store files. The default is AWS S3 - powerful, but it ships with a console you have to learn, bucket policies, and a bill that's hard to predict. Swyftstack focuses on the common app workflows first.
Upload, preview, list, delete, and organize objects with virtual folders and server-side membership checks.
Flip bucket access on, mark selected objects public, and copy stable public URLs from the console.
Generate time-limited download/upload URLs through the Swyftstack API. Per-bucket access keys are scoped.
Point any AWS SDK at the Swyftstack endpoint.
The S3-compatible gateway uses AWS Signature V4 with your scoped bucket credentials. Console / signed-URL paths remain available for browser uploads.
import { S3Client, PutObjectCommand } from "@aws-sdk/client-s3"; const s3 = new S3Client({ endpoint: "https://your-app.swyftstack.com/api/s3", region: "us-east-1", forcePathStyle: true, credentials: { accessKeyId: "<scoped-access-key>", secretAccessKey: "<scoped-secret-key>", }, }); await s3.send(new PutObjectCommand({ Bucket: "my-bucket", Key: "hello.txt", Body: "hello swyftstack", }));
Operationally practical
Beyond raw object writes: the controls you need for common app storage workflows.
Upload through the user app API with project membership enforced server-side.
Scoped credentials so a leaked key never blast-radiuses across your whole storage account.
No mystery expiry on assets you mean to be public. Predictable links through the configured storage gateway.
Images, media, PDFs, JSON, and text preview in the console with a 5 MB preview cap.
Bucket object count, storage bytes, egress counters, and plan limits are visible in the dashboard.
Provider master keys and bucket secret keys are encrypted at rest; provider master keys are never returned to customers.
Included on every plan
Starter: 100 GB storage, 500 GB egress. Pro: 1 TB storage, 5 TB egress. For reference, that’s ~200,000 typical avatar images on Starter, or ~50,000 product photos.
Storage FAQ
Is this S3-compatible?
Core S3 object operations are supported via an AWS SigV4 gateway: PutObject, GetObject, HeadObject, DeleteObject, ListObjectsV2, HeadBucket, and ListBuckets (scoped to the credential). Multipart uploads, bucket policy, and ACL APIs are not implemented yet - track the changelog for additions.
Which SDKs work today?
AWS SDK v3 (Node.js / JS), boto3 (Python), and the AWS CLI work for the supported operations as long as you point at the Swyftstack endpoint with forcePathStyle=true and use your scoped bucket access keys.
What about CORS?
Console uploads go through the Swyftstack app API. CORS policy management on the S3 gateway is not yet exposed.
Do public URLs expire?
No. Public files have permanent URLs. Private files use signed URLs you generate with your own expiry times.
Is there a CDN?
Public bucket URLs are stable through the configured storage gateway. CDN automation is not claimed until a gateway/CDN integration is wired.
Can I use it as a Terraform/IaC target?
Use the Swyftstack provider or console for resource lifecycle (buckets, keys, plans). Object-level access from your IaC tooling is supported via any AWS SDK-compatible Terraform/Pulumi S3 resource against the gateway endpoint.
Store files. Build features. Skip AWS.
Included in every plan. Use Swyftstack's console, signed URLs, and public links while the full S3 gateway remains on the roadmap.