Dropbox logo

Dropbox

Secure cloud storage, file sharing, and more

Cloud Storage & Collaboration

62/ 100
Solid side project

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

FrontendNext.js (React) with Tailwind CSS and shadcn/ui
BackendNext.js Server Actions / API Routes (Node.js runtime)
DatabaseSupabase (PostgreSQL with Row Level Security)
AuthSupabase Auth
PaymentsNone (Personal use clone)
OtherCloudflare R2 for S3-compatible object storage, Drizzle ORM for database management

Hosting & infrastructure

CloudflareHosting the Next.js web application via edge infrastructure and storing file blobs on R2 storage.$0-5/mo
SupabasePostgreSQL database hosting and user authentication management.$0/mo (Free tier)

Build guide

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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?

Est. 8M in / 2.5M out tokens· Includes access to introductory usage of the default model with dynamic rate limits.$0

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…

How to Vibecode Dropbox - VibeItYourself