Delightful Multiplayer Editing with Phoenix

Product information

Topic

Phoenix

Audience

Intermediate, Advanced

Biography

I’m a backend-focused developer working at Felt, where we’re building a real-time, collaborative mapmaking app. (Think Figma meets maps.) I fell in love with Elixir in 2019, when I used it to build a massively multiplayer game server for the X-Plane flight simulator, and I’ve been working with Elixir ever since.

Talk Description

This talk distills the lessons we’ve learned at Felt while building a highly collaborative, “multiplayer” editing tool on top of Phoenix and React. Phoenix Channels are our (not so) secret weapon for delivering low-latency collaboration, but Channels alone aren’t enough to guarantee a delightful experience for our users.

This talk will discuss a number of areas of where our initial ideas didn’t cut it, and what we had to do instead to improve the user experience. Topics will include:

  • Minimizing time to first render
  • Using optimistic client-side changes for zero-latency local editing
  • Reducing latency when broadcasting changes
  • Preventing data loss when the client goes offline
  • Reducing blocking work within the Channel process