Inspiration

Ring’s Super Bowl ad was a reminder of how normalized always-on surveillance has become. What made it especially striking was not just the product itself, but the broader controversy around smart cameras like Ring: convenience often comes at the cost of privacy, ownership, and control. For a lot of people, that ad reinforced an uncomfortable truth: the footage from your own home often ends up living in someone else’s cloud.

That is the tradeoff we wanted to challenge.

Security cameras are usually built around one bad compromise: either your footage lives in a vendor-controlled cloud, or you have to fight through networking, NAS setup, and command-line tools just to access your own files.

At the same time, Tailscale already gives users something powerful with Taildrive: private, peer-to-peer file access across devices. But for many people, it still feels like an infrastructure feature, not a product.

We built Tailtv and Tailcloud to close that gap.

Tailtv is a smart edge camera that detects motion and people, records clips locally, and keeps everything on your own network. Tailcloud is the human-friendly layer on top of Taildrive, turning raw tailnet storage into something that feels more like a modern cloud drive. Together, they make private video storage and sharing much more accessible.

What it does

Tailtv

Tailtv is a lightweight smart camera service that runs on-device. It:

  • streams live video over the tailnet
  • detects motion and people locally using computer vision
  • records event-triggered clips
  • exposes snapshots, streams, thumbnails, and clip downloads

Tailcloud

Tailcloud is a file management UI built on top of Tailscale Drive. It:

  • discovers machines and shared folders across the tailnet
  • browses files through a clean, drive-style interface
  • previews supported files
  • uploads, downloads, renames, and deletes files
  • creates new shared folders
  • adds comments to files
  • generates password-protected public share links with QR codes
  • supports optional one-time public links using Tailscale Funnel and Serve

How they work together

Tailtv records clips locally, and Tailscale provides the secure network path between devices. Tailcloud then makes those Tailscale-accessible files much easier to find, open, manage, and share.

In short: we leveraged features that Tailscale already had and make it far more usable.

How we built it

We built the project as three connected layers:

1. Tailtv edge device

Tailtv is built with Python and FastAPI. On each device, it:

  • captures frames from a camera feed
  • runs motion detection with OpenCV
  • runs person detection with YOLOv8
  • records short MP4 clips, with optional audio
  • exposes local APIs for live streaming, snapshots, and clip retrieval

2. Tailtv dashboard

We also built a live monitoring dashboard for the camera side, which lets users:

  • view live camera feeds
  • see recent alert events
  • open recorded clips
  • proxy camera streams and clips through a central backend
  • monitor battery, Wi-Fi, motion, and recording state

This gives the Tailtv side a polished control-room experience instead of a raw device API.

3. Tailcloud storage layer

Tailcloud uses:

  • a Go backend to talk to Tailscale Drive and WebDAV
  • a React + Vite frontend for the file browser UI
  • Tailscale Serve and Funnel for secure public sharing flows

The backend discovers machines and shares across the tailnet, handles local and remote file operations, and creates public links for content when needed.

Challenges we ran into

One of the biggest challenges was making an infrastructure-level feature feel like a product.

Taildrive is powerful, but raw power does not automatically translate into usability. We had to build a system that hides the complexity of shares, machine discovery, WebDAV paths, and public link flows behind a UI that feels obvious.

We also had to solve:

  • balancing real-time camera streaming with lightweight on-device detection
  • handling both local files and remote tailnet files through the same interface
  • making offline devices fail gracefully instead of breaking the experience
  • securing public links with passwords, sessions, and rate limiting
  • keeping everything private-first without adding a traditional cloud backend

What we learned

We learned that Tailscale already provides excellent primitives for private networking and storage access. The real opportunity is not rebuilding those primitives, but designing a better product experience on top of them.

We also learned:

  • edge AI has to be carefully throttled to stay practical on lightweight hardware
  • storage UX matters just as much as storage infrastructure
  • public sharing needs strong guardrails even in a private-first system
  • small product details like previews, comments, QR codes, and simple navigation make advanced systems feel approachable

What’s next for Tailtv + Tailcloud

Next, we want to:

  • automatically publish Tailtv clip folders into Tailcloud with less setup
  • add smarter clip search by event type, time, and camera
  • improve alerting with push notifications
  • add richer access controls and multi-user collaboration
  • expand the camera analytics pipeline beyond motion and person detection
  • make deployment easier for non-technical users on low-power devices

Built With

Share this project:

Updates