ReboFilesDocs
Start3
What is ReboFiles
Getting started
Demos to run
Put it in your app6
React component
Headless: your own UI
Without a framework
Styling and themes
Keyboard and accessibility
Languages
Files9
Uploads
Previews and the viewer
Search
Live changes and large folders
Comments
Starred and fields
Versions, trash and space
Download as .zip
Word documents
The server14
The route
Frameworks and sign-in
Who may do what
Storage: S3, GCS, Azure and disk
Checking uploads
Metadata: SQLite and Postgres
Database schema
Sharing and links
Activity and notifications
Hooks, logs and limits
Retention, holds and export
Desktop and other origins
Sync a folder
Going to production
Together1
AI assistants (MCP)
Reference5
Packages
Components and hooks
Client API
HTTP routes
Status and roadmap
↑↓ to move↵ to openEsc to close38 pages

Start What is ReboFiles

What is ReboFiles

ReboFiles is a file manager for the browser that lives inside your application: folders, uploads, previews, versions, a trash and sharing, with the bytes in your own bucket and the entries in your own database. It is the drive of the Rebo suite, beside Rebodocs, and comes as packages you take one at a time.

tip: the drive below is running — click around

Live

The drive, running

The demo of the landing: the drive kept in this page, with Acme’s files made in it. Nothing leaves the browser.

Try it

Features

What you get

  • Uploads you can watch. Straight to the bucket in parts, three at a time, each with how long it has left; whole folders as they were; one cut goes on from where it was.
  • The same file caught. Its bytes, or its name, found in the drive before it goes: replaced as a new version, both kept, or skipped.
  • Folders and search. Nested folders, nine colours, the list in any order, search by name and by what is written inside files.
  • Previews and a viewer. Word documents page by page with Rebodocs, PDFs, pictures in four sizes and blurred while they come, video, audio and text.
  • Versions, the trash and space. Every save keeps the file before it; the trash empties itself after the days you say; a quota for each person.
  • Sharing. Viewer, commenter and editor, down the tree; links that expire, with a password or for one download; what is new in Shared with me.
  • Activity. Who did what to each file and folder, kept by your database.
  • .zip downloads of what is picked, a folder or a link’s folder, made in the page.
  • AI assistants. Tools for Claude over MCP, with the user’s own rights; Word documents edited through Rebodocs, each change a version.
  • As it happens. What someone else changes shows at once; comments with replies and @ names; folders of thousands; the drive read a piece at a time.
  • Kept safe. Files checked by their bytes and by ClamAV, limits on who asks too often, a minimum of days, legal holds, everything of a person exported.
  • Keyboard and screen readers, light and dark, English, Spanish and Mandarin, a screen of settings, and a desktop application that keeps a folder in sync.
Pick

The packages

PackageTake it when
@rebofiles/reactYou have a React or Next.js application and want the drive in a screen of it, whole or from hooks.
@rebofiles/driveYour page has no framework, or one that is not React: the same drive, mounted on an element.
@rebofiles/serverYour backend keeps the entries and signs the addresses: one route, Request in and Response out.
@rebofiles/coreYou change a drive in code, in a job or a store of your own: the model as pure functions.
@rebofiles/mcpAn AI assistant should find, read and file documents with the rights of its person.

Packages says what each holds and how they depend on each other.

Decided

How it is built

  • The bytes never pass through your server. The browser sends them to the bucket at addresses the server signs for their exact length, and reads them back the same way.
  • The entries live in a store beside them. A bucket has no folders, owners or trash; the key of a file is its id, never its path, so moving and renaming never touch the bytes.
  • Who may do what is your application’s. identify and authorize are asked on every route; ReboFiles has no users of its own.
  • No runtime dependencies. S3 is signed with node:crypto, SQLite is node:sqlite, the .zip is written in the page.
Plainly

What it is not

  • Not a hosted service. There is nothing to sign up for: it is code you run, on storage you own.
  • Not finished. It is on npm at 0.12.0, and it does not do everything: Status and roadmap lists what is checked and what is missing.