Search projects, hackathons, sponsors and tech

    ← All projects

    Ghost Docs

    Privacy-first P2P dec. collaborative platform

    Demo

    About

    The problem it solves - Privacy-first collaborative docs lets people co-edit documents without storing plaintext content on a central server. - User can login using social logins and optional wallet connection. For every user GhostID will be created so that there identity remains completely non-exposed. User can create public and private documents, only public documents are searchable. User will remain completely non-exposed using peerIDs, they can edit docs, chat during live sessions while non-exposed. - Safer identity model, combines login + optional wallet binding, but uses GhostID in collaboration so raw wallet identity is not exposed in normal flows. - Decentralized real-time editing, uses peer-to-peer session sync for presence, chat, cursor/events, reducing dependence on a single relay/server path. - supports private, link-based, and public access modes for docs sharing - Better trust boundary by keeping backend minimal (metadata, permissions, access checks) while pushing sensitive content handling to client-side encryption. - Useful for teams handling sensitive notes/specs especially where auditability, ownership control, and resilience matter more than convenience-only cloud docs ![image](https://assets.devfolio.co/content/edf94b25080648e68db0bafbc7e17384/0be444ff-4cb2-435f-a1f3-d420db7c36e3.png)

    How it's made

    Challenges we ran into - Browser P2P connectivity was unstable (frequent dial failures): fixed by adding better relay target selection, peer hints, retry backoff/muting, and diagnostics to see failure reasons. - Early collaboration encryption design caused cross-peer decrypt issues: solved by switching from per-peer token secret usage to a shared per-document session key. - Pubsub behavior in sparse sessions caused noisy failures: treated zero-subscriber publish errors as transient and enabled safer publish behavior to avoid false fatal states. - Concurrent editing merge quality had edge cases: improved local edit handling to smaller text deltas and added periodic full-state sync for late joiners. - Auth versus anonymous link-join flow conflicted: updated join flow to support access-token joins with GhostID fallback while still enforcing role checks. - Async collaboration tests were flaky: replaced short fixed waits with polling/wait-for style checks so integration tests stay stable under load.