Nimbus-Drive

☁️ NimbusDrive

A fully client-side cloud storage experience — no servers, no accounts, no limits on privacy.

Built by Snake Arcade & daboiyoshi · Contact: info@daboiyoshi.com


Overview

NimbusDrive is a feature-complete, browser-based cloud storage application that works entirely in your browser using IndexedDB for persistent local storage. It looks, feels, and behaves like a real cloud drive — with folders, file uploads, drag & drop, starring, trash, and more — all without sending a single byte to a remote server.

Every file you upload is stored directly in your browser’s IndexedDB database and persists across page refreshes and browser restarts, just like a real drive.


Features

📁 File & Folder Management

🗂️ Navigation & Views

| View | Description | |——|————-| | My Drive | Your main file system, organized in folders | | Recent | The 50 most recently modified files across all folders | | Starred | All files and folders you’ve starred | | Trash | Items moved to trash; restore or permanently delete from here |

🖱️ Selection & Bulk Actions

🔃 Sorting & Display

🌙 Dark / Light Mode

Toggle between dark and light themes with the moon/sun button in the top-right corner. The theme is applied instantly across the entire UI.

📦 Drag & Drop

🗑️ Trash System

ℹ️ Details Panel

Clicking a file or folder opens a Details panel on the right side showing:

💾 Storage Meter

The sidebar displays a live storage meter showing:

Storage is calculated in real-time after every upload or delete.


How It Works

Storage Engine — IndexedDB

NimbusDrive uses the browser’s built-in IndexedDB API as its database. Each file or folder is stored as a record (object) with the following structure:

{
  "id": "unique-id",
  "name": "photo.jpg",
  "isFolder": false,
  "parentId": null,
  "size": 204800,
  "type": "image/jpeg",
  "data": "<ArrayBuffer of file bytes>",
  "createdAt": 1712345678000,
  "updatedAt": 1712345678000,
  "trashed": false,
  "starred": false
}

Root-Level Querying

A key implementation detail: IndexedDB’s index .getAll(null) does not mean “get items where parentId is null” — it means “get everything.” NimbusDrive handles this by manually filtering from all records when querying the root level, and using the parentId index for sub-folder queries.

File Upload Flow

  1. User selects files via the file picker or drops them onto the window
  2. Available storage is checked — if the upload would exceed 10 GB, it is rejected
  3. Each file is read as an ArrayBuffer via FileReader
  4. A record is written to IndexedDB with all metadata and the binary data
  5. The upload progress bar tracks progress file-by-file
  6. The view re-renders and the storage meter updates

File Download Flow

  1. The binary ArrayBuffer is retrieved from IndexedDB
  2. It is wrapped in a Blob with the correct MIME type
  3. A temporary object URL is created and an invisible <a> tag is clicked programmatically
  4. The URL is revoked after the download is triggered

Keyboard Shortcuts

Shortcut Action
F2 Rename selected item
Delete / Backspace Move selected items to Trash
Ctrl/Cmd + A Select all items in current view
Escape Deselect all / close modals / close context menus
Double-click folder Open folder
Double-click file Download file

Context Menu Actions

Right-click a file or folder:

Right-click empty space (My Drive only):

Right-click in Trash view:


Storage Limits

Limit Value
Total storage 10 GB
Max file size Limited only by available quota
Number of files Unlimited
Number of folders Unlimited
Nesting depth Unlimited

Note: The 10 GB limit is enforced by NimbusDrive’s logic. Actual browser storage limits vary by browser and device. IndexedDB can typically store several GB of data in modern browsers.


Browser Compatibility

NimbusDrive works in all modern browsers that support IndexedDB:

Browser Support
Chrome / Edge ✅ Full support
Firefox ✅ Full support
Safari ✅ Full support (iOS 13+)
Opera ✅ Full support

Privacy note: All data stays 100% on your device. Nothing is transmitted over the network. Clearing your browser’s site data will erase your drive.


File Type Icons

NimbusDrive automatically assigns icons based on file extension:

Icon Types
🖼️ jpg, jpeg, png, gif, webp, svg, bmp
🎬 mp4, mov, avi, mkv, webm
🎵 mp3, wav, flac, ogg, aac
📄 pdf
📝 doc, docx
📃 txt, md
📊 xls, xlsx, csv
📑 ppt, pptx
🗜️ zip, rar, 7z, tar, gz
💻 js, ts, jsx, tsx
🌐 html
🎨 css
🐍 py
java
📋 json, xml, yaml, yml
🗃️ sql
📄 Everything else

Credits

Role Name
Created by Snake Arcade
Created by daboiyoshi
Contact info@daboiyoshi.com

NimbusDrive — Your files, your browser, your privacy.