Storage
Ultra IDE supports three storage backends for your Convex-λ projects. Each has different characteristics for file access, authentication, and synchronization.
At a Glance
| Feature | 📁 Local Storage | ☁️ Google Drive | 📦 Dropbox |
|---|---|---|---|
| Files live... | On your computer's disk | In your Google Drive cloud | In your Dropbox cloud |
| Authentication | None (browser permission) | Google sign-in | Dropbox sign-in |
| Synchronization | Instant (direct disk access) | On explicit save | On explicit save |
| Offline access | ✅ Full | ❌ Requires internet | ❌ Requires internet |
| External editing | ✅ Use any editor | ❌ Use Ultra IDE only | ❌ Use Ultra IDE only |
📁 Local Storage
When you use Local Storage, Ultra IDE works directly with files on your computer using your browser's File System Access API.
How it works
- Select a Working Folder on your disk (e.g.,
/Users/jon/Designs). - Ultra IDE scans this folder for
.cvfiles and displays them in the file tree. - When you edit and save, changes are written directly to disk—just like a native application.
- If you edit files with an external editor (VS Code, Sublime), Ultra IDE sees those changes on next open.
Synchronization behavior
Instant and automatic. Because files live on your local disk:
- Saving a file immediately updates the disk.
- The working folder is persisted across browser restarts.
- You can use Git, Dropbox desktop sync, or any other file-level tools alongside Ultra IDE.
Requirements
- Browser: Chrome, Edge, or Brave (uses File System Access API).
- Permission: You grant the browser one-time permission to read/write your working folder.
Note: Safari and Firefox do not support the File System Access API. Use Chrome-based browsers for local storage.
☁️ Google Drive
When you use Google Drive, Ultra IDE stores your project files in your Google Drive cloud storage.
How it works
- Sign in with your Google account when prompted.
- Select or create a project folder in your Drive (e.g.,
My Gems/Project1). - Ultra IDE downloads the project files into memory.
- When you save, changes are uploaded back to Google Drive.
Synchronization behavior
Explicit saves only. Cloud storage works differently from local disk:
- Files are not synced in real-time like Dropbox Sync or Google Drive desktop.
- When you open a project, Ultra IDE downloads a snapshot of your files.
- When you save, Ultra IDE uploads the changed files.
- If you modify files through the Google Drive web interface while the IDE is open, those changes won't appear until you reopen the project.
What this means for you
- Save frequently to push your work to the cloud.
- Don't edit the same files in both Ultra IDE and Google Drive simultaneously.
- Your files are safe in the cloud, accessible from any device with Ultra IDE.
📦 Dropbox
When you use Dropbox, Ultra IDE stores your project files in your Dropbox cloud storage.
How it works
- Sign in with your Dropbox account when prompted.
- Enter or select a project folder path (e.g.,
/Gemstones/MyDesign). - Ultra IDE downloads the project files into memory.
- When you save, changes are uploaded back to Dropbox.
Synchronization behavior
Explicit saves only. Identical to Google Drive:
- Files are downloaded once when you open the project.
- Saves upload changes to Dropbox.
- The Dropbox desktop app will sync those changes to your computer, but Ultra IDE doesn't monitor for external changes.
How It Works Behind the Scenes
Ultra IDE uses a multi-adapter architecture to support different storage backends:
┌─────────────────────────────────────────────┐
│ Ultra IDE │
│ (File Tree, Editor, Tabs, Run Code) │
└───────────────────┬─────────────────────────┘
│
┌─────────▼─────────┐
│ Integration Layer │
│ (file-system-integration.ts)
└─────────┬─────────┘
│
┌───────────────┼───────────────┐
▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────────┐
│ Local │ │ Google │ │ Dropbox │
│ Adapter │ │ Drive │ │ Adapter │
│ │ │ Adapter │ │ │
└────┬────┘ └────┬────┘ └────┬────┘
│ │ │
[Disk] [REST API] [REST API]
All adapters implement the same IFileSystemService interface, so the IDE doesn't need to know which backend is active—it just calls readFile(), writeFile(), and listFiles().
Common Questions
"I saved in Ultra IDE but my Dropbox desktop app doesn't show the change!"
Dropbox does sync the file—check the timestamp. But if you have the file open in another editor, you may need to reload it there to see the update.
"I edited a file on Google Drive web—why doesn't Ultra IDE show the change?"
Ultra IDE downloaded your project when you opened it. External changes made after that point aren't automatically detected. Close and reopen the project to refresh.
"Is my code stored on ProFacet servers?"
No. Ultra IDE is a client-side application. Your files go directly between your browser and:
- Your local disk (Local Storage), or
- Google's servers (Google Drive), or
- Dropbox's servers (Dropbox)
ProFacet never sees your design files.
"Which should I use?"
| Your situation | Recommended |
|---|---|
| I want files on my computer with Git | 📁 Local Storage |
| I work from multiple devices | ☁️ Google Drive or 📦 Dropbox |
| I share designs for others to view | ☁️ Google Drive (use Drive's sharing) |
| I need offline access | 📁 Local Storage |
| I'm on Safari/Firefox | ☁️ Cloud storage (local not supported) |
⚠️ Collaboration warning: Cloud storage is not designed for simultaneous editing. If two people edit the same file at the same time, the last person to save will overwrite the other's changes. For real collaboration, use Local Storage with Git.