File storage lets your Caffeine app accept, store, and serve files uploaded by its users — images, videos, documents, and any other type of file. It is one of the most practical capabilities you can add to an app: photo galleries, media libraries, document managers, profile pictures, attachments, and similar features all depend on it.
File storage is available on all plans with no configuration required.
The problem it solves
Caffeine apps run their backend as a canister — a smart contract on the Internet Computer blockchain. Canisters have strict limits on how much data they can hold directly. Storing large files inside a canister would fill it up quickly, limiting what your app can do.
File storage solves this by keeping file contents off the canister entirely. When a user uploads a file, the data is sent to Caffeine's secure storage infrastructure. The canister only stores a small reference — a path and a cryptographic hash — that points to the file. This means your app can handle large files and large numbers of files without the canister running out of space.
What types of files can be stored
Any file type: images, videos, audio files, PDFs, documents, spreadsheets, ZIP archives — anything a browser can send. The correct file type is preserved so files are served back with the right content type.
There are currently no hard limits on individual file size or total storage per project. Caffeine's storage infrastructure is designed to handle large files and large volumes of files without a fixed cap. Storage limits may be introduced in the future as usage grows.
Where files are stored
Files are stored on Caffeine's infrastructure, not on the decentralized network itself. Caffeine's storage infrastructure holds the actual file bytes. When a user's browser needs to display or download a file, it retrieves it directly from the storage layer — no canister call needed for the file data itself.
Files are identified by a cryptographic hash. Anyone who knows the full URL for a file can access it — there are no login-gated file downloads unless your app's code specifically enforces that. How you control access to files is up to how you design your app.
How it gets added to your app
You don't need to configure file storage yourself. Ask the AI in the chat to add file-handling capability to your app, and it selects and wires up the appropriate storage component automatically.
Example prompts:
- "Let users upload a profile picture"
- "Add an image gallery where users can upload and browse photos"
- "Build a document library where admins can upload PDFs and users can download them"
- "Allow users to attach files to their posts"
The AI generates the backend storage logic, the upload handling, and the frontend interface together as part of a single build.
Storage costs
File storage is available on all Caffeine plans at no additional fixed cost. Storage and bandwidth are measured and will be reflected as usage-based charges in your account's Credit Usage screen — appearing as "Storage Cost" and "Bandwidth Cost" line items — once usage-based billing is enabled. Caffeine will communicate when this changes.
No plan required
File storage is available on all Caffeine plans. There is no subscription gate and no feature flag to unlock.
Frequently asked questions
Can my app users upload files, or only the app owner?
Either. It depends on how your app is built. If you want end users to upload files, tell the AI: "Let users upload files." If you want only admins to upload, say that instead. The AI generates the appropriate access controls.
Are uploaded files stored forever?
Files remain in storage as long as your project exists and the files are referenced by your app. Deleted files are removed from storage automatically. If you delete your project, all associated files are also deleted.
Can files be made private?
File access is controlled by your app's logic. If your app restricts which users can retrieve a file's URL, those users cannot access it. Files are not password-protected at the storage layer — access control is applied by your app's backend.
What happens to stored files if I downgrade my plan?
Files remain in storage. The file storage feature itself is not plan-gated.
Is there a limit on the number of files or total storage size?
There are currently no hard limits on file count or total storage size per project. Limits may be introduced in the future; Caffeine will communicate any changes in advance.