File uploads
Let people upload files. One API for three stores: the local disk, any S3-compatible store, or Vercel Blob.
- CLI idfiles
- Addspackages/storage
- Files8
- Keys to setNone for local disk
What it adds
packages/storage, built on Files SDK, with three drivers: the local disk, S3-compatible stores (Cloudflare R2, AWS S3, MinIO) and Vercel Blob.- Avatar upload in the account page, at
/api/uploads/avatar. /api/files/*, which serves the files the app stores.
Set it up
By default (STORAGE_DRIVER=local), uploads go to apps/web/.storage/ and the
app serves them. That works on a server with a disk, not on Vercel.
- S3-compatible store: set
STORAGE_DRIVER=s3, thenS3_ENDPOINT,S3_REGION,S3_BUCKET,S3_ACCESS_KEY_IDandS3_SECRET_ACCESS_KEY. With a public bucket or a CDN, setSTORAGE_PUBLIC_URLto its base URL. - Vercel Blob: create a Blob store in the Vercel project, then set
STORAGE_DRIVER=vercel-blobandBLOB_READ_WRITE_TOKEN.
The CLI asks where files go in production (--files-driver local, s3 or
vercel-blob) and keeps only that driver’s dependencies.
Before launch
- Production uses
s3orvercel-blob:localloses files on every deploy of a serverless host. - The bucket’s public access and CORS match
STORAGE_PUBLIC_URL.
Leave it out or add it later
Leave files out of --modules to start without uploads. To add them to an
existing project, ask your agent to use the add-module skill.
Run one command. The CLI asks the rest, and your agent takes it from there.
pnpm create turbinekit my-appSee the prompt
Paste it into an agent that can run commands, such as Claude Code, Codex or Cursor.
Create a new TurbineKit project with me.
TurbineKit (https://turbinekit.dev) is an open-source Turborepo and Next.js starter. Its CLI, create-turbinekit, needs Node.js 24 and pnpm 10 (run `corepack enable` once).
1. Run `pnpm dlx create-turbinekit --help` to see its options.
2. Ask me its questions one at a time, with their defaults: the folder, the product name, one sentence about the product, the company or legal name, the contact email, the languages and the modules. Skip what I have already told you.
3. The CLI only asks questions in an interactive terminal, so run it with my answers as options and `--yes`. Show me the command before you run it.
4. In the new folder, read AGENTS.md. Then do "1. Minimal setup" in SETUP.md, and tick each box you finish.
5. Tell me the URL of the running app, and which services SETUP.md lists next.No sign-up, no API keys. Needs Node.js 24 and pnpm 10.