The storage module adds packages/storage, a small client for any S3 compatible API: Garage, Cloudflare R2, AWS S3 or MinIO. It is on by default.
findplate create my-app --modules storageWhat it adds
Files and folders:
packages/storage
Packages:
@acme/storage
Env keys
S3_ENDPOINT=
S3_REGION=auto
S3_BUCKET=
S3_ACCESS_KEY_ID=
S3_SECRET_ACCESS_KEY=createStorage(config) returns null when the config is incomplete, so the feature turns itself off instead of crashing. Only apps/api uses it. Self-hosted S3 can be provisioned for you, see provisioning.
Remove
Run findplate remove storage in the project, see add and doctor. It deletes the files the module owns, strips its code from shared files and drops its packages, only where you haven't edited them.
If you'd rather do it by hand: for a new project leave storage out of --modules. In a project that already exists, delete the paths above, drop its packages from the package.json files, remove its env block and fix what pnpm check-types reports.
Swap
The package only speaks the S3 API, so swapping provider is an env change: point S3_ENDPOINT at R2, AWS, MinIO or Garage and set S3_REGION. Use auto for R2.