waymakerlabs87 downloadsAutomatically upload images to Supabase Storage when pasting or dropping.
An Obsidian plugin that automatically uploads images to your Supabase Storage when you paste or drag & drop them into your notes.
 markdown formatYYYY/MM/DD/uuid.ext folder structuremain.js and manifest.json from the latest release{your-vault}/.obsidian/plugins/supabase-image-uploader/obsidian-images)-- Allow anonymous uploads
CREATE POLICY "Allow anonymous uploads"
ON storage.objects FOR INSERT
TO anon
WITH CHECK (bucket_id = 'obsidian-images');
-- Allow public read access
CREATE POLICY "Allow public read"
ON storage.objects FOR SELECT
TO anon
USING (bucket_id = 'obsidian-images');
-- (Optional) Allow anonymous delete
CREATE POLICY "Allow anonymous delete"
ON storage.objects FOR DELETE
TO anon
USING (bucket_id = 'obsidian-images');
https://xxxxx.supabase.co)obsidian-images)This plugin sends image files to the Supabase project that you configure. Network requests happen when you paste or drag and drop an image, delete an uploaded image from the context menu, or click Test in settings. The plugin does not include telemetry, ads, analytics, or background reporting to the plugin author.
Once configured:
During upload, you'll see a placeholder: ![Uploading image.png...]()
After upload completes, it will be replaced with: 
| Format | MIME Type | Max Size |
|---|---|---|
| PNG | image/png | 10MB |
| JPEG | image/jpeg | 10MB |
| GIF | image/gif | 10MB |
| WebP | image/webp | 10MB |
This plugin follows Clean Architecture principles:
┌─────────────────────────────────────────┐
│ Presentation Layer │
│ (Plugin, Settings, Event Handlers) │
├─────────────────────────────────────────┤
│ Application Layer │
│ (UploadImageUseCase) │
├─────────────────────────────────────────┤
│ Domain Layer │
│ (ImageFile, UploadResult, Interfaces) │
├─────────────────────────────────────────┤
│ Infrastructure Layer │
│ (SupabaseStorageService, PathGenerator)│
└─────────────────────────────────────────┘
# Install dependencies
npm install
# Run tests (30 tests, 97% coverage)
npm test
# Development build with watch mode
npm run dev
# Production build
npm run build
Issues and Pull Requests are welcome!