Give every workspace a README describing what it does, its entry points, and a short usage example, and link them from the root package table. Frame Tailshare in the root README as the application the libraries exist to be composed into, with the other apps as development and testing surfaces. Its own README records what works today and what the open issues intend for it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@webnet/example-app
A React demo app for the tsconnect browser stack.
It wires up @webnet/tsconnect's IPN into a React tree via @webnet/tsconnect-react and @webnet/tsconnect-redux (IpnBuilderProvider, CaCertProvider, IpnProvider), and demonstrates dialing and listening from the browser: an HTTPS server behind a TCP and TLS listener, served over Tailscale Funnel using a cert obtained through the IPN, plus a debug panel. This is a private workspace in this repository, not a published package, and is a development and demo surface for the stack rather than the product application.
Running
npm run dev --workspace=packages/example-app
dev starts the webpack dev server bound to localhost only. dev:host (WEBNET_DEV_HOST=1 webpack serve --mode development) additionally binds all interfaces and accepts forwarded hostnames, for use behind a trusted reverse proxy or on a Tailnet; see the root README's "Remote-host development" section before using it. build produces a production bundle (NODE_ENV=production webpack --mode production), and typecheck runs tsc --noEmit.
See also
@webnet/tailshare— the repository's flagship tailnet file-sharing application@webnet/test-app— the other development/testing surface, covering the non-React protocol packages@webnet/tsconnect-react— the React hooks and context this app builds on