top of page
FlutterCon_logo.png

21 NOVEMBER, 2026

BANGALORE

FlutterCon_icon_turned.png
Anita_Singh_edited.jpg

( SPEAKER )

Mayur Mahajan

Developer Relations Engineer, AppFlowy

AppFlowy

I'm Mayur, a Developer Relations Engineer at AppFlowy, the self-hosted Notion alternative built with Flutter and Rust. I've worked with Flutter for three years and have been contributing to AppFlowy and the appflowy_editor package, with occasional contributions to the bloc package and other open-source projects.

Off the clock I run a YouTube channel about self-hosting, tech, and programming.

Lightning talk

Building Realtime Collaborative Flutter Apps with CRDTs

Two users open the same document at the same time. It says "hello." One inserts a character at the start. The other deletes the "e." What happens next? Whether you're building a docs app, a design tool, or some internal dashboard your team lives in, realtime collaboration has stopped being a feature and started being an expectation. This session walks through how collaborative editing actually works in AppFlowy, the self-hosted Notion alternative built with Flutter and Rust: edits land in local BLoC state, persist to SQLite for local-first access, and cross into an on-device Rust core via dart:ffi, where yrs (the Rust implementation of the Yjs CRDT) merges them before syncing with other clients. Key takeaways: - Why concurrent edits can't just be sent and applied - When you actually need a CRDT, and when Operational Transformation or Timestamps are good enough - How to represent offline-first state in a BLoC architecture that syncs later - Why everyone converging on the same document doesn't mean the document still makes sense
bottom of page