finds.dev← search

// the find

grych/drab

★ 878 · Elixir · MIT · updated Jan 2023

Remote controlled frontend framework for Phoenix.

Drab is a pre-LiveView attempt to push UI updates from the server side in Phoenix, letting you manipulate DOM elements and respond to browser events entirely in Elixir over a WebSocket channel. If you're curious how this problem was solved before Phoenix.LiveView existed, this is that. For anyone starting a new project, it isn't.

The IEx debugging story is genuinely clever — you can grab a live socket and `poke` assigns or `exec_js` directly from the console, which is a useful mental model. The integration test suite is thorough for its era, using chromedriver end-to-end rather than mocking the DOM. The `Drab.Live` module's approach to partial template re-rendering — tracking which assigns appear in which fragments and only sending diffs — shows real architectural thought.

Abandoned: last commit January 2023, targeting Phoenix 1.2–1.3 era APIs, and explicitly predated by Phoenix.LiveView which ships with the framework itself — there's no reason to adopt this over LiveView today. The jQuery-based `Drab.Query` module is a red flag for any modern stack. The `.drab` template extension and custom EEx engine are baked into your build pipeline in ways that are awkward to remove later. Only 878 stars and 44 forks after years of existence tells you most of the Elixir community moved on.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →