Dropbox
Secure cloud storage, file sharing, and more
Cloud Storage & Collaboration
The verdict
Build a web-based document vault and file-sharing tool, but skip local OS block-sync daemons unless you want years of debugging.
Replicating Dropbox as a web-accessible cloud drive with file organization, shareable links, version history, and S3 object storage is entirely achievable as a solid side project. However, true background multi-platform block-level local folder sync with offline conflict resolution is an engineering nightmare that will break your spirit. Stick to a polished web UI backed by cloud object storage and you will have a highly functional personal file hub.
Estimated effort: 3-4 weeks of focused coding
What you can't replicate
- Reliable native background OS daemons (FSEvents/inotify sync across Windows, macOS, Linux, iOS, Android)
- Exabyte-scale low-latency global CDN edge caching
- Complete enterprise compliance certifications (HIPAA, SOC 2)
Founded
2007
Raised
$607M
Team
2,113
Cheapest paid tier
£7.99/mo
What Dropbox does
Cloud-based file hosting, synchronization, and content collaboration service allowing individuals and teams to store files online, sync them across devices, and share securely.
Core features
- Web-based file manager (folders, file uploads, previews)
- Secure file and folder sharing via public or password-protected links
- File version history and recovery
- Client-side or API-driven block/chunk uploads for large files
- Basic document preview (PDF/text/image)
- User authentication and team workspace permissions
The business
Pricing
- BasicFree
- Plus£7.99/mo
- Professional£16.58/mo
Funding
$607M from Y Combinator, Sequoia Capital, Accel, Index Ventures, Benchmark
Pay vs build, cumulative
Break-even at month 6 — after that, every month is money kept.
The hard parts of vibe coding Dropbox
- Client-side block-level delta synchronization across multi-platform desktop daemons
- Offline race-condition conflict resolution ('Conflicted Copy' generation)
- High-performance handling of multi-gigabyte files with resumable chunked uploads
- Zero-knowledge end-to-end encryption and custom encryption key management
How to vibecode Dropbox
Prerequisites
Node.jsfree
Required runtime for modern full-stack web development frameworks.
GitHubfree
Source control and deployment pipeline integration.
AI coding tools
Recommended stack
| Frontend | Next.js (React) with Tailwind CSS and shadcn/ui |
|---|---|
| Backend | Next.js Server Actions / API Routes (Node.js runtime) |
| Database | Supabase (PostgreSQL with Row Level Security) |
| Auth | Supabase Auth |
| Payments | None (Personal use clone) |
| Other | Cloudflare R2 for S3-compatible object storage, Drizzle ORM for database management |
Hosting & infrastructure
| Cloudflare | Hosting the Next.js web application via edge infrastructure and storing file blobs on R2 storage. | $0-5/mo |
| Supabase | PostgreSQL database hosting and user authentication management. | $0/mo (Free tier) |
Build guide
01Project Scaffolding and Database Schema
Initialize the Next.js application with Tailwind CSS, shadcn/ui, and configure the Supabase database schema for users, folders, files, and sharing links.
Create a new Next.js project using App Router, TypeScript, and Tailwind CSS. Install shadcn/ui components including buttons, dropdown-menus, dialogs, input fields, and tables. Set up Drizzle ORM connected to a Supabase PostgreSQL instance. Define the database schema with tables for users, folders (supporting hierarchical nested paths via parent_id), files (storing filename, file_size, mime_type, storage_path, version_number, uploader_id, and timestamps), and shared_links (storing file_id, token, password_hash, expires_at). Configure Supabase Auth for email/password authentication. Build the foundational layout with a responsive sidebar navigation (Home, My Files, Shared, Recent, Deleted) and top search/user profile bar.02File Manager UI and Folder Navigation
Build the core file explorer interface mimicking Dropbox's web layout with breadcrumbs, list/grid view toggles, and folder drill-down.
Build the main file manager view in Next.js using the app router. Create a dynamic route for folder navigation ([folderId]). The UI should support both a list view and a grid view of files and folders. Include breadcrumb navigation reflecting the current folder path, a button to create new folders via a modal dialog, and contextual dropdown menus for each file/folder item (Rename, Move, Delete, Share, Download). Implement file sorting by name, size, and modified date. Fetch data dynamically from Supabase based on the current user and folder hierarchy.03Chunked File Uploads and Cloud Storage Integration
Implement robust file upload handling with progress tracking and storage integration using S3-compatible object storage (Cloudflare R2).
Implement file upload functionality supporting multi-gigabyte files with chunked uploads or direct presigned URLs to Cloudflare R2 (S3-compatible object storage). Create an upload queue component in the bottom right corner showing progress bars, upload speed, estimated time remaining, and cancel buttons. When an upload completes, record the file metadata in the PostgreSQL files table. Handle edge cases such as duplicate filenames by appending version numbers or unique suffixes. Ensure proper error handling and retry logic for failed chunk transmissions.04File Preview and Document Viewer
Add preview capabilities for common file types including images, text, PDFs, and videos directly within the web application.
Build a file preview modal or dedicated viewing page that opens when clicking a file in the file manager. Support inline rendering for images (png, jpg, svg), plain text and markdown files, PDFs (using a React PDF viewer library), and video/audio files with standard HTML5 media controls. For unsupported files, display a clean download card with file details (size, type, owner, upload date). Add an action toolbar inside the preview modal allowing users to download, share, or delete the file directly from the view.05Secure Link Sharing and Permissions
Implement secure public file sharing with optional password protection, expiration dates, and access revocation.
Create a secure link sharing feature. When a user clicks 'Share' on any file or folder, open a dialog allowing them to generate a public link with optional password protection and expiration dates (1 day, 7 days, 30 days, or never). Store shared link configurations in the database. Build a public access route (/s/[token]) that validates the expiration and prompts for the password if required. If authenticated, render the shared file preview and provide a direct download button. Include a management view in the user dashboard to list and revoke all active shared links.06Version History and Soft Deletes (Trash)
Add file versioning support on overwrite and a trash/recovery system for deleted items.
Implement file version history and a soft-delete trash system. When a file is uploaded with the same name in the same folder, increment its version number and retain the previous storage object in R2, linking it in a file_versions table. Build a 'Version History' modal accessible from a file's context menu that lists past versions with timestamps and a 'Restore' action. For deletions, move files and folders to a soft-delete state (is_deleted = true, deleted_at = NOW()). Create a 'Deleted files' sidebar view where users can either permanently delete items or restore them to their original location.07Polish, Error Handling, and Deployment
Perform end-to-end testing, error boundary wrapping, UI polish, and deploy the application to Cloudflare.
Polish the entire application UI to match a clean, minimalist aesthetic inspired by Dropbox and modern SaaS design. Add loading skeletons for file lists, toast notifications for actions (file uploaded, link copied, folder created), and robust error boundaries. Verify mobile responsiveness across desktop, tablet, and mobile viewports. Prepare the project configuration for deployment on Cloudflare Workers/Pages with environment variables properly typed and secured. Test all auth flows, database RLS policies, and R2 bucket permissions.
Cost vs paying for Dropbox
What will you build it with?
Starting total with Claude Code$0 one-time
Starting costs (one-time)
- AI coding assistant subscription (Claude Pro / Cursor)$20.00
- Custom domain name (optional)$12.00/yr
Total~$32.00 one-time
Ongoing costs (monthly)
- Cloudflare Workers & R2 storage$0.00 - $5.00/mo
- Supabase database$0.00 (Free tier)
Total~$0-5/mo
Paying for Dropbox
£7.99/mo (Plus) to £16.58/mo (Professional)
Your time to build
40-60 hours
AI tool credits
$20 (one month of Claude Pro / Cursor)
Break-even
N/A (Built for personal utility and learning)
Sources
Vibecoded copycats
All copies →Loading…