A personal cloud storage built for my own archive. Organizing files, browsing photos in timeline view, and managing documents using my own S3-compatible storage.

Take control of your data with a modern, self-hosted cloud storage solution

No third-party cloud services. Your files live on your own S3-compatible storage. Complete control, complete privacy.
Built with modern web technologies. Optimized for mobile. Fast uploads, instant previews, smooth performance.
Native Android app built with Capacitor. Access your files anywhere, anytime. Desktop experience included.
Connect multiple S3-compatible endpoints and move files between them on the fly. No vendor lock-in—your data lives in your own buckets.
Features I built to organize my personal archive
Filter by name, file type, size, date range, or storage endpoint.
Upload entire folders with their structure preserved—great for Google Takeout.
Organize files into nested folders with move, rename, and cycle-safe reorganizing.
Connect multiple S3 endpoints and move files between them on the fly.
Select many files and download them as a single ZIP with folders intact.
Skips re-uploading files that already exist and flags wasted space.
Star important files and folders for quick access.
Soft-delete with restore that revives parent folders so nothing is orphaned.
Share files via secure token links with optional expiry and revocation.
Built-in image and video viewer with range-streamed playback.
Browse all your photos and videos in a date-grouped gallery with fast on-device caching.
Usage, file-type distribution, largest files, and cleanup recommendations.
All data stored on my own private S3-compatible storage.
See how S3Archives focuses on personal cloud storage
| Feature | S3Archives | Google Drive | Dropbox | Immich |
|---|---|---|---|---|
| Self-Hosted | ||||
| S3 Compatible | ||||
| Mobile App | ||||
| Multiple Storage Endpoints | ||||
| File Management | ||||
| Photos Timeline | ||||
| Public Sharing | ||||
| No Subscription |
Comparison is for informational purposes. Each solution has different goals and strengths.
Real-time metrics from my personal archive
Experience the clean, modern interface designed for your files
Your data, your control. Built with security in mind.
Your files live on your own infrastructure. No third-party servers, no data mining, complete ownership.
You control access, backups, and retention policies. No vendor lock-in, no surprise policy changes.
JWT with rotating refresh tokens, hashed at rest and delivered over HttpOnly cookies. Passwords hashed with bcrypt. Rate limiting on every route.
No analytics, no tracking scripts, no third-party cookies. Your usage patterns stay private.
Works with MinIO, Wasabi, Backblaze B2, Cloudflare R2, or any S3-compatible storage provider.
Buckets stay fully private. Every file is served through short-lived presigned URLs or a backend proxy—never public objects.
I wanted to have my own cloud storage instead of relying on third-party services. Having full control over where my files are stored gives me peace of mind.
This project also became a learning journey. Building an end-to-end application from frontend to backend, integrating with S3-compatible storage, and creating a native Android app taught me a lot about full-stack development.
S3Archives helps me keep my personal archive organized—photos, documents, videos, and other files I want to keep. Everything is structured, searchable, and accessible from anywhere. The Photos timeline feature lets me browse all my images and videos in a beautiful date-grouped gallery, similar to Google Photos.
It's also a place where I experiment with technologies I'm interested in: Vue 3, Express.js, MinIO, Capacitor, and modern web development practices. Each feature I add is an opportunity to learn something new.
Technologies I used to build this project
Vue 3
Frontend
Express
Backend
MinIO
Storage
Capacitor
Mobile
Tailwind CSS
Styling
S3 API
Cloud Storage
Features I'm working on or considering
Add an optional password on top of link expiry
Handle large files more efficiently
Continue interrupted uploads automatically
Track and enforce per-account storage limits
Extract duration and generate video thumbnails
No timeline or promises—just ideas I'd like to explore when I have time.
Common questions about this project