Built-in file storage

Let people upload files to your app

Photos, documents and videos, stored safely with your app. No buckets, keys or extra accounts. Just tell the AI what you need.

vibedream.ai/storage-demo

Upload Files

Drag & drop or click to upload

Storage on paid plans
Auto-Generated API
Image Optimization
Document Handling

How it works

  • Just ask

    Say what you want people to upload. The AI switches storage on and builds the upload screen.

  • Nothing to sign up for

    No AWS, Firebase or Cloudinary account. Storage comes with your VibeDream plan.

  • Private by default

    Each project has its own space, and uploads go through short-lived signed links.

What people build with it

  • Photos and galleries

    Profile pictures, portfolios, product photos and before-and-after shots.

  • Documents

    PDFs, invoices, contracts and forms your customers send you.

  • Short videos

    Tutorials, testimonials and clips that play right inside your app.

For people who read code

The AI adds a small route to your FastAPI backend that hands the browser a short-lived upload link. The storage guide has the full pattern.

FastAPI
# backend/main.py
import os
import httpx
from pydantic import BaseModel

class UploadRequest(BaseModel):
    filename: str
    mime_type: str

@app.post("/api/upload-url")
async def get_upload_url(body: UploadRequest):
    async with httpx.AsyncClient() as client:
        res = await client.post(
            f"{os.getenv('STORAGE_API_URL')}/presigned-upload",
            json={"filename": body.filename, "mimeType": body.mime_type},
            headers={"X-Storage-Token": os.getenv("STORAGE_API_TOKEN", "")},
        )
    res.raise_for_status()
    return res.json()

Common questions

How much storage do I get?

Storage comes with your plan: 25GB on All Access Mini, Unlimited on All Access.

Do I need an AWS, Firebase or Cloudinary account?

No. Storage is built into VibeDream. The AI sets it up for your project the first time you ask for uploads.

Are my users' files private?

Each project gets its own storage space. Uploads use short-lived signed links, and your storage key stays on the server, never in the browser.

Ready to build?

Describe your app, then ask for uploads. The AI handles the rest.