I Built the Open Source “Microsoft Edge Drop” Replacement Using Cloudflare R2 + Turso
Source: Dev.to

Overview
I recently built Cliff Drop, a self‑hosted, cross‑device text and file sharing app inspired by Microsoft Edge Drop. The interesting part isn’t the UI—it’s the storage architecture.
Storage Architecture
Structured Data → Turso (Edge‑hosted SQLite)
For messages, metadata, and authentication I used Turso (libSQL).
Why Turso?
- Edge‑hosted SQLite
- Low‑latency global reads
- Familiar SQL syntax
- No heavy database operations
- Works perfectly with Drizzle ORM
It provides SQLite simplicity with distributed‑database characteristics—no need for Postgres clusters or complex replication configs.
File Storage → Cloudflare R2 (S3‑compatible)
For file uploads and images I used Cloudflare R2.
Why R2?
- S3‑compatible API
- Zero egress fees
- Object storage at scale
- Seamless Node.js integration
- Easy local fallback option
This allows:
- Storing large file uploads
- Generating thumbnails
- Serving files globally
- Avoiding bandwidth surprises
All without vendor lock‑in.
Real‑Time & Security
- Native WebSockets for real‑time sync
- Argon2id password hashing
- HTTP‑only cookies
- CSRF protection
- CSP headers
- Secure file handling
Built with
- SvelteKit (adapter‑node)
- Tailwind CSS
- Node.js
- Drizzle ORM
- Turso
- Cloudflare R2
Why This Architecture Matters
Cliff Drop demonstrates a cloud‑native storage design that separates structured data from object storage, leverages an edge database, and uses S3‑compatible infrastructure. It’s ready for production on Linux (systemd / PM2 / Nginx).
Modern full‑stack engineering isn’t just React + API; it’s choosing the right storage layer for each responsibility:
- Database for data integrity
- Object storage for files
- Edge for performance
- Node for control
Even a small side project can be architected like a real system. Split storage properly, consider latency, scale, and cost to level up your projects.
GitHub Repo: