import Link from "next/link"; import { ApprovalDemo } from "@/components/approval-demo"; import { HeroIllustration } from "@/components/hero-illustration"; import { Icon, type IconName } from "@/components/icons"; import { InvitationShowcase } from "@/components/invitation-showcase"; import { NetworkIllustration } from "@/components/network-illustration"; import { PlatformOrbit } from "@/components/platform-orbit"; import { Reveal } from "@/components/reveal"; import { TransferFlow } from "@/components/transfer-flow"; const trustItems = [ { value: "No account", detail: "Open the app and start sharing" }, { value: "No hosted copy", detail: "Your transfer is not parked in our cloud" }, { value: "No silent overwrite", detail: "Existing files stay untouched" }, ]; const privacyPoints: Array<{ icon: IconName; number: string; title: string; text: string; }> = [ { icon: "lock", number: "01", title: "Encrypted in transit", text: "Each connection is authenticated and end-to-end encrypted, including through a relay.", }, { icon: "shield", number: "02", title: "Approval by default", text: "An invitation helps devices meet. It is not automatic permission to download.", }, { icon: "verified", number: "03", title: "Verified on arrival", text: "Content addressing checks that incoming bytes match exactly what was offered.", }, { icon: "stop", number: "04", title: "Revocable access", text: "Stop a share at any time and the invitation can no longer be used.", }, ]; export default function HomePage() { return (
{trustItems.map((item, index) => ( 0{index + 1}
{item.value}

{item.detail}

))}
ONE DROP, FIVE MOMENTS

A handoff that stays in your hands.

VniDrop keeps the transfer understandable from first selection to final verified file.

MAKE THE INTRODUCTION

One transfer. Three ways to meet.

The invitation is small enough to scan, tap, or send. Your files stay where they are until a receiver connects and you allow the transfer.

CONTROL IS BUILT IN

A link is not permission.

Every new receiver knocks by default. Approve people you recognize, refuse the rest, and follow progress for each device.

  • See the receiver before anything moves
  • Cancel a transfer already in progress
  • Stop sharing to revoke future access

Need an open handoff? An optional “Anyone with this transfer” mode is available for non-sensitive files.

Try the controls
PRIVACY BY DESIGN

The file never becomes our file.

VniDrop coordinates a secure handoff. It does not turn your transfer into a hosted download sitting on someone else’s storage.

{privacyPoints.map((point, index) => (
{point.number}

{point.title}

{point.text}

))}

Diagnostics are optional and exclude invitations, file paths, and transfer contents.

Read the full privacy policy
DIRECT WHEN POSSIBLE

The shortest safe path, chosen automatically.

VniDrop tries to connect devices directly—even across home routers and mobile networks. If that path is not available, a relay forwards the same encrypted connection without becoming a file store.

The relay can move the envelope. It cannot open it.
ONE FAMILIAR HANDOFF

At home on every screen.

Android, iOS, macOS, Windows, and Linux share one clear transfer experience while each platform keeps control of its own file picker and save destination.

Cross-platform by design Native file destinations Open-source core
); }