🎙️

Broadcast Grade Color Scopes in Phoenix LiveView

Broadcast Grade Color Scopes in Phoenix LiveView

Broadcast grade color scopes, inside a LiveView

A few months ago we needed real video scopes inside our Phoenix app. Not toy histograms. The actual four you see in DaVinci Resolve, Baselight, Nuke: waveform, RGB parade, vectorscope, histogram. Colorists grade with these. If yours are off, people stop trusting the tool within about ten seconds.

I looked at the ticket and thought, “ok, this is where we finally bolt on a separate frontend”. Turns out no. A LiveView hook and about 900 lines of WebGL later, the scopes were running at 30 fps next to the grading controls, and the Elixir side was basically asleep.

Read more →

How We Cut Phoenix Memory from 300MB to 120MB on Embedded

How We Cut Phoenix Memory from 300MB to 120MB on Embedded

At CyanView, we run a Phoenix LiveView application on embedded hardware. Out of the box, the BEAM VM was eating 300MB of RAM at idle and keeping the CPU at 45%. After tuning, we got it down to ~120MB and 5-10% idle CPU.

Here’s exactly what we changed and why each thing matters.

Read more →

Python React to Elixir Phoenix Migration Breakdown

Python React to Elixir Phoenix Migration Breakdown
Due to an NDA we can’t go into specific business details, but here’s the gist: we inherited a SaaS platform in the accounting and document processing space. The system handled document ingestion, automated data extraction, workflow orchestration, and multi-tenant reporting a fairly typical B2B back-office tool. The original stack was maintained by a team of two backend engineers and one frontend developer. What follows is a breakdown of what the migration to Elixir/Phoenix looked like by the numbers.
Read more →

Elixir Phoenix Optimisations iPhone Safari

Elixir Phoenix Optimisations iPhone Safari

If you’re running a Phoenix LiveView application and your iOS Safari users are experiencing frozen pages, slow reconnects, or 10+ second hangs after returning from sleep this article is for you.

I’ve been running a production Phoenix LiveView application. The app worked great on desktop, but iPhone users kept reporting the same thing: the page would freeze or hang for several seconds after switching back from another app or unlocking their phone. Sometimes the page would never recover at all.

Read more →

Elixir Liveview Socket Reconnect

Elixir Liveview Socket Reconnect

The Phoenix LiveView Reconnection Bug: A Deep Dive

I encountered a critical bug in a Phoenix LiveView settings page that controlled hardware via MQTT. When the WebSocket connection dropped and LiveView automatically reconnected, stale form values were being sent back to the hardware, overwriting the current hardware state.

Read more →