File infrastructure for developers Generally available

Build once.
Store anywhere.

One API to upload, manage, serve, and move files across any object store. Keep your application portable—and your data in infrastructure you own.

Bring your own storage One stable file identity No credit card
APPYour applicationuplint.filesPOST /v1/filesuUplintfile_8Kx92mproduction→S3R2S3AWS S3AZAzureGCGCSR2R2PDFfile_8Kx92mPDFfile_8Kx92m Stable file identity Storage routing
file control planeproduction ap-south-1 All systems operational
01 Application request
upload.tsTypeScript
const file = await uplint.files.upload({file,storage: "production",metadata: {customer: "cus_72m"}});
POST/v1/files48.2 MB
02 Uplint control plane
uUplintfile_8Kx92m
authorize route metadata
File identity created37 ms
03 Storage destination
AWS S3company-files / productionRouting
Azure BlobReady to connect+
Google CloudReady to connect+
Cloudflare R2Ready to connect+

Native connections to the clouds you already use

  • AWS S3
  • Azure Blob
  • Google Cloud
  • Cloudflare R2
  • S3-compatible
Infrastructure, simplified

Put a clean file interface between product code and an increasingly complicated storage world.

Unified surfaceOne API.

Every upload, retrieval, delivery, move, and deletion.

Portable by designAny cloud.

Route files by provider, tenant, region, or policy.

Ownership intactYour storage.

Your buckets, security boundaries, and infrastructure.

01 The missing infrastructure layer

Your storage can change.
Your product doesn't.

File uploads are easy until your product needs another cloud, another region, or a customer-owned bucket. Uplint gives every object store one interface.

Without Uplint4 integrations
With Uplint1 integration
Change the configuration. Keep the code.
02 Platform primitives

The control plane
for every file.

Your application knows the file. Uplint handles the provider, region, credentials, routing, and movement underneath.

03 Portability by default

Switch providers.
Don't touch your code.

Select a destination below. The infrastructure configuration changes instantly; the application call stays exactly the same.

upload.tsApplication code
const file = await uplint.files.upload({file,storage: "production"});// This code never changes.
No application changes
production.jsonInfrastructure config
AWS S3Connected · Healthy
Live
{"provider": "s3","bucket": "company-files","region": "ap-south-1"}
Configuration updatedjust now
04 Built for real architectures

One file layer.
Many requirements.

Start simple, then add regions, providers, and customer-owned storage without rebuilding your product.

05 Ship your first file

From zero to uploaded
in one request.

Connect a bucket, create an API key, and keep every future storage decision out of your application code.

Read the five-minute quickstart
Terminalzsh
$ npm install @uplint/node✓ added @uplint/node$ uplint storage connect production✓ AWS S3 connected  bucket: company-files  region: ap-south-1▋
YOUR FILE LAYER, DECOUPLED

One API for your files.
Any storage underneath.

Make your application portable before the next storage decision makes it permanent.