Sharing

FamShare stores each entry as a markdown file in a date-based directory structure: {user-uuid}/YYYY/MM/DD/title.md. Each file contains YAML frontmatter with metadata including a unique document ID (UUID), timestamps, author, and sharing permissions. When you receive shared content from family members, their files appear in their own directory tree: {other-user-uuid}/YYYY/MM/DD/their_title.md. Documents link to each other by UUID (stored in the frontmatter) rather than by filename or path, which means links remain valid even if files are moved or renamed. This structure keeps each user's content isolated in their own directory tree, makes sync conflicts nearly impossible, and remains fully compatible with Obsidian's Dataview plugin for querying and linking by UUID.

FamShare syncs directly between your devices. When you make a file on your phone, it's copied to your desktop. When you edit the file on your desktop, the changes are copied back to your phone. When share with a family member or group, the file is copied to the places you've selected for sharing.

This is different from cloud sync, where you upload to a stranger's computer. With peer-to-peer sync, devices talk directly to each other.

Why peer-to-peer

Ownership: Your data doesn't depend on a company staying in business or maintaining a service.

Privacy: When data doesn't pass through third-party servers, there's no opportunity for server-side scanning, analysis, or data mining.

Cost: You already have storage. You already pay for internet.

Speed: When two devices are on the same network, local sync is faster than uploading to the cloud and downloading back.

The technical foundation

FamShare uses Iroh, a peer-to-peer networking library built on QUIC. Iroh handles connection establishment, NAT traversal, and efficient data transfer between devices.

Other interesting projects in this space:

When devices aren't online together

Peer-to-peer sync works best when devices are online at the same time. When they're not, FamShare can use relay servers as temporary message passing (not storage). Your data still lives on your devices, but relays help devices find each other and exchange updates when they can't connect directly.

This is different from cloud storage. Relays don't store your data long-term. They just help devices talk to each other.

Multi-user, multi-device

FamShare syncs across all your devices (phone, laptop, tablet) and between family members. Each person has their own vault with their own content, and you choose what to share at the document level. When you share an entry with family, it appears in their vault in your directory ({your-uuid}/YYYY/MM/DD/title.md), keeping everyone's content organizationally separate while still being accessible. You can write a journal entry on your phone, edit it on your laptop, and share it with your sister, all without any content passing through third-party servers. This works whether devices are on the same local network (fastest), or across the internet using peer-to-peer connections. The sync happens automatically when devices are online together, and you maintain independent control over your own vault while participating in a shared family network.