Projects

Most of my current work concerns coding agents: giving them access to structured documents, code, and running systems rather than just text and screenshots.

Design tools

  • OpenPencil — an AI-native, open-source design editor and Figma alternative built with Skia and WebGL.
  • figma-use — structural queries, JSX rendering, diffs, linting, editing, and exports through a CLI for Figma.

Native software from Elixir

Elixir Crab builds native applications that keep behavior, state, supervision, and public contracts in Elixir, and use Rust only for bounded platform mechanics.

  • gpui — declarative native desktop UI for Elixir/OTP: GPUI windows, HEEx-style views, native controls, deterministic test displays, and remote displays.
  • rustq — typed Rust and Rustler code generation from Elixir, with quasiquoting and ASTs, so NIF boundaries need no handwritten Rust.

Code intelligence for Elixir

  • Vibe — an experimental BEAM-native coding agent runtime.
  • Reach — program-dependence graphs, call and data flow, effect analysis, and architecture checks.
  • Exograph — structural Elixir code search built with ExAST, Reach, Ecto, and Postgres/ParadeDB.
  • ex_ast — AST-aware search, replacement, and structural diffs.
  • ex_dna — duplicate-code detection with extraction candidates.
  • ex_slop — Credo checks for recurring low-quality patterns in generated code.
  • program_facts — generated programs with known structural facts for testing analyzers.

Frontend tooling inside the BEAM

  • Volt — frontend builds and development serving for Phoenix, with HMR, Tailwind, and support for JavaScript, TypeScript, Vue, Svelte, React, and Solid.
  • Astral — a Volt-powered static site generator. This site uses it.
  • QuickBEAM — a JavaScript runtime with browser-like APIs backed by OTP.
  • Phoenix Vapor — Vue templates compiled into native Phoenix LiveView rendering structures.
  • OXC, Vize, and Oxide — Elixir bindings for JavaScript, Vue, and Tailwind toolchains.

Running systems

  • pi-elixir — runtime and code-structure tools for the Pi coding agent.
  • phoenix_replay — recording and replay for LiveView sessions.
  • live_render — server-driven generative UI for LiveView.
  • phoenix_streamdown — streaming Markdown for incremental LLM output.

Other work

My GitHub profile also covers earlier work in Ruby, search, Russian NLP, systems programming, and security research.

For the longer explanation of the current work, see What I’ve Been Building This Year and Building Blocks for the Future Web.