Digital content is just another table in your database. No separate service needed.
Instant comes with built-in file storage. No S3 buckets to configure, no signed URLs to manage.
When you've got storage with your database you can easily build apps like Instagram, Spotify, Goodreads and more!
Favorite classical
StopaHungarian Dance No. 5
Johannes Brahms
Por Una Cabeza
Carlos Gardel
Habanera
Georges Bizet
La lisonjera, Op. 50
Cécile Chaminade
Romance in E Minor
Franz Liszt






stopa
stopa Newest member of the team
1// Upload a file2const { data } = await db.storage.uploadFile(3 `${user.id}/avatar.png`,4 file5);67// Link it to a profile8await db.transact(9 db.tx.profiles[profileId].link({10 avatar: data.id,11 })12);Files are stored alongside other entities in Instant. Upload them, link them to your data, and query with InstaQL just like any other table.
Best of all, your files are reactive too! When a file is updated or deleted, your UI updates in real-time.
Files use the same permission system as the rest of your data. Control who can upload, view, and delete files with simple rules.
Your rules can traverse relationships, check auth state, and enforce access at every level. No server endpoints needed.
1// Users can only upload to their own folder2const rules = {3 $files: {4 allow: {5 view: "true",6 create: "isOwner",7 delete: "isOwner",8 },9 bind: {10 isOwner: "data.path.startsWith(auth.id + '/')",11 },12 },13};