Tailscale Integration Prize Submission

TailOverlay

A desktop overlay app for secure workspace sharing between two devices over Tailscale. Chat, share files, and capture screenshots - all protected by your tailnet.

This is an Electron Desktop App

TailOverlay runs as a native desktop application. Download the project files and follow the setup instructions below to run it locally.

Features

Tailscale-Only Access

Workspace is only accessible over your Tailscale tailnet. No public internet exposure.

Real-time Chat

Instant messaging with your teammate via WebSocket over the secure tailnet.

Screenshot Capture

One-click screenshot sharing with optional captions. Shows up instantly in the feed.

File Sharing

Upload and download files directly through the workspace interface.

ACL Enforcement

Demonstrate Tailscale ACL-based access control for the hackathon demo.

Setup Instructions

1

Prerequisites

2

Download & Install

Download the project ZIP from the three-dot menu above, then run:

cd electron
npm install
3

Run the App

Start in development mode (two terminals):

# Terminal 1: Start Vite + TypeScript watch
npm run dev

# Terminal 2: Start Electron
npm start
4

Host or Join

Host: Click "Host Workspace" to start. Share the 6-digit code and Tailnet URL.

Join: Click "Join Workspace" and enter the host's URL and code.

Architecture

electron/
├── src/
│   ├── main/              # Electron main process
│   │   ├── index.ts       # Window management, IPC handlers
│   │   ├── preload.ts     # Context bridge
│   │   ├── host-service.ts    # Express + WebSocket server
│   │   └── tailscale-manager.ts  # CLI integration
│   ├── renderer/          # React UI
│   │   ├── App.tsx        # Main component
│   │   └── components/    # UI components
│   └── shared/            # TypeScript types
└── package.json