Files
PrivyDrop/frontend
david_bai dceaae8efa fix(ssr): guard DOM/window access and client-only listeners
- Prevent server-side exceptions (Application error) on mobile after redirects
  - useOneShotSlowHint: guard document; use global setTimeout; conditionally attach visibilitychange
  - useConnectionFeedback: guard document.visibilityState; register/remove listeners only on client
  - usePageSetup: guard window before tracking referrer and parsing roomId
  - tracking: early return when window is undefined
  - docs(flows): add “SSR & DOM access guard (must-read)” checklist; renumber next section
2025-12-06 12:00:03 +08:00
..
2025-06-20 20:54:42 +08:00
2025-10-25 11:55:21 +08:00
2025-06-20 20:54:42 +08:00
2025-06-22 10:13:47 +08:00
2025-06-20 20:54:42 +08:00
2025-06-20 20:54:42 +08:00

PrivyDrop - Frontend

This is the frontend for PrivyDrop, a privacy-focused file sharing application built with Next.js and based on WebRTC.

🛠️ Tech Stack

  • Frontend Framework: Next.js 14 (App Router)
  • UI Framework: React 18 + TypeScript
  • Styling: Tailwind CSS + shadcn/ui
  • P2P Transport: WebRTC
  • Signaling Service Client: Socket.IO Client
  • Internationalization: next-intl

🚀 Local Development

Before you start, please ensure you have installed and started the backend service according to the instructions in the project's root README.md.

  1. Navigate to the Directory

    # Assuming you are in the project's root directory
    cd frontend
    
  2. Install Dependencies

    pnpm install
    
  3. Configure Environment Variables First, copy the environment variable configuration from the template file:

    cp .env_development_example .env.development
    

    Then, open and edit the .env.development file, ensuring that NEXT_PUBLIC_API_URL points to your locally running backend service.

  4. Start the Development Server

    pnpm dev
    
  5. Open http://localhost:3002 in your browser to see the application.

📚 Detailed Documentation

🤝 Contributing

We welcome all forms of contributions! Please read the Contribution Guidelines in the root directory to get started.