Brimble Object Storage

S3-compatible storage, minus the egress bill.

Store and serve uploads, static assets, build artifacts, and backups with the S3 API you already use. Point your existing SDK or CLI at Brimble — no rewrites, no transfer charges, sitting right next to the rest of your stack.

s3-client.tsDrop-in · change one line
  const s3 = new S3Client({-   endpoint: "https://s3.amazonaws.com",+   endpoint: "https://objects.brimble.io",    region,    credentials,    forcePathStyle: true,  });
Pricing

No egress fees. No request fees.

Most clouds meter every download, so your bill grows with traffic you can't control. Brimble doesn't — what you pay tracks the data you keep, not how often the world reaches for it.

Free
Egress
Free
Requests
$0.032/ GB-month
Storage

Storage is metered hourly and billed as GB-months.

See full pricing details
What you get

The S3 surface you know, without the parts you don't.

Compatibility

Drop-in S3, across every tool you already run.

The API surface is S3-compatible, so anything that speaks S3 works unchanged — the AWS SDKs, the AWS CLI, boto3, rclone, mc, s3cmd. Set the endpoint, region, and access key, and the operations you already call just work.

  • No SDK rewrites — same commands, new endpoint
  • list, head, get, put, delete, copy, multipart
listheadgetputdeletecopymultipart
# works with the tools you haveaws s3 ls s3://app-uploadsrclone copy ./dist brimble:assets
Access

Private by default, shared by presigned URL.

Objects are private — reads and writes need a valid storage credential, so there's no anonymous public-read URL to leak. When you do need to hand a file out, mint a temporary signed URL for a single upload or download without your credentials ever leaving the server.

  • Access keys scoped to Editor or ReadOnly, rotatable
  • Per-bucket CORS rules for direct browser uploads
Co-location

Storage that lives next to the rest of your stack.

Buckets are account-level and shared across your services, independent of any single project. Your apps, databases, and storage sit on one platform — fewer providers to wire together, one bill, one dashboard, and data that doesn't round-trip the public internet to reach your compute.

  • Pick each bucket's region at creation
  • Objects stay put — no surprise cross-region movement
Appsone account
Databasesone account
Object Storageone account
Quickstart

Swap the endpoint. Keep your code.

Set the endpoint, region, and access key — then list, put, get, delete, copy, and multipart-upload exactly as you would on S3. The AWS SDKs, the AWS CLI, boto3, rclone, and mc all work as-is.

1import { S3Client, PutObjectCommand, GetObjectCommand } from "@aws-sdk/client-s3";2 3// Point the standard AWS SDK at your Brimble bucket4const s3 = new S3Client({5  endpoint: process.env.BRIMBLE_S3_ENDPOINT,6  region: process.env.BRIMBLE_S3_REGION,7  credentials: {8    accessKeyId: process.env.BRIMBLE_ACCESS_KEY_ID!,9    secretAccessKey: process.env.BRIMBLE_SECRET_ACCESS_KEY!,10  },11  forcePathStyle: true,12});13 14// Put an object15await s3.send(new PutObjectCommand({16  Bucket: "app-uploads",17  Key: "reports/2026/q1.pdf",18  Body: pdfBytes,19  ContentType: "application/pdf",20}));21 22// Get it back23const obj = await s3.send(new GetObjectCommand({24  Bucket: "app-uploads",25  Key: "reports/2026/q1.pdf",26}));
Installnpm install @aws-sdk/client-s3
What people store

One bucket type, every kind of object.

A path is just a key. Address anything from a single avatar to a partitioned data lake the same way.

User uploads

s3://app-uploads/users/42/avatar.png

Take avatars, attachments, and media straight from the browser with a presigned URL, then serve them back the same way.

Static & media assets

s3://assets/media/2026/cover.jpg

Keep large images, video, and generated reports out of your repo and off your app servers.

Build artifacts

s3://artifacts/builds/9f3a2c.tar.gz

Stash deploy output and cache layers next to the pipeline that produces them.

Backups & exports

s3://backups/db/2026-06-01.sql.gz

Write database dumps and exports on a schedule, and pull them back when you need them.

Data pipelines

s3://data-lake/events/2026/06/01/

Land raw inputs, read them from a job, and write results back to the same bucket.

Moving in

Migrate from any S3-compatible provider.

Already on AWS S3, Cloudflare R2, or Backblaze B2? Because the API matches, moving over is a configuration change — give Brimble read-only access and it copies everything across for you.

  1. 01

    Create a bucket

    Pick a name and a region in the dashboard — choose the region closest to your compute.

  2. 02

    Point Brimble at your source

    Add the source bucket's name, region, endpoint, and a read-only credential under Migrations → New migration.

  3. 03

    Let it copy server-side

    Object data, content type, and metadata copy directly — you don't proxy bytes through your laptop. Watch progress as it runs.

  4. 04

    Issue keys and cut over

    When the copy finishes, issue storage credentials for your apps and point them at the new bucket.

Brimble

Start your free trial today.

Spend little to no time on DevOps and more time building. Super efficient way to host & scale your web app.