🎙️

The BEAM Is a Friendly Host: C, Rust, Svelte and WebGPU Next to Elixir

The BEAM Is a Friendly Host: C, Rust, Svelte and WebGPU Next to Elixir

A few weeks ago I wrote down my CyanCamera talk. This is my second talk of the year, from Goatmire, this time for an Elixir crowd.

Short version: we had a small LiveView dashboard on a camera control panel. It grew into a desktop color studio. Every time things got harder we put another language next to Elixir, and we never rewrote anything.

Read more →

CyanCamera: Turning an iPhone Into a Broadcast Camera

CyanCamera: Turning an iPhone Into a Broadcast Camera
This year I gave a 20 minute talk at RTCON by Software Mansion about the color science behind CyanCamera. It’s the app we built at CyanView so an iPhone can stand next to a Sony Venice or an ARRI Alexa in a live broadcast truck. Here is the talk, written down and a bit shorter.
Read more →

Make Your Phoenix Website AI Ready in Seconds

Make Your Phoenix Website AI Ready in Seconds

AI agents are starting to crawl the web the same way browsers do, except they do not need your CSS, your hero animations, or your tracking pixels. They need text. Clean, structured, semantic text. If your site only speaks HTML, the agent has to render, parse, and guess. If your site speaks markdown when asked, the agent gets exactly what it needs in a fraction of the tokens.

isitagentready.com is a small validator that checks your site against a growing set of “agent skills”. One of the most useful checks is markdown content negotiation: when a client sends Accept: text/markdown, your server should respond with markdown instead of HTML, on the same URL.

This post shows the exact Plug we use on this Phoenix app to pass that check, in well under a hundred lines of code.

Read more →

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 →