Elixir → JavaScript Porting Initiative

TL;DR: We need help completing Elixir's client runtime. No deep knowledge of internals required - just follow existing patterns. Tasks range from 15 minutes to a few hours. AI tools encouraged.

The Mission

Hologram automatically transpiles Elixir to JavaScript for browser execution, but here's the thing: many Elixir standard library functions depend on underlying Erlang functions that must be manually ported to JavaScript.

We're focusing on Phase 1: full-stack web and basic local-first applications. Functions for processes, file system, and OS operations are deferred to later phases. Right now, we need to port the remaining Erlang functions that power — state management, data transformation, strings, collections, dates, and times.

The good news? For Phase 1, we're already 34% done with Erlang functions (92 ported), and the Elixir stdlib is at 74% completion.

The challenge? We have 171 Erlang functions waiting to be ported to complete Phase 1.

The opportunity? Each function you port unlocks multiple Elixir stdlib functions. Your contribution has a multiplier effect that benefits the entire Elixir community.

I Need Your Help

I'm Bart Blast, Hologram's creator. This project is bigger than one person, and I'm rallying the community because every contribution matters.

Whether you port one function or twenty, you're contributing to something meaningful. You're helping build a future where Elixir is as powerful in the browser as it is on the server.

Can't contribute right now? Share this post in your network. Help us reach developers who might be looking for exactly this kind of opportunity. Tweet it, post it in Slack/Discord, mention it at meetups.

"But I Don't Know Erlang!" (You Really Don't Need To)

This is the most common concern, and here's the reality: you don't need Erlang knowledge. You just need basic JavaScript and Elixir skills, the ability to read documentation, and a willingness to follow patterns from already-ported functions.

The Contributing Guide includes detailed examples showing exactly how to structure functions, handle boxed types, write tests, and validate inputs. You're never starting from scratch — just following established patterns.

AI Is Your Secret Weapon

Let's be practical: this is an excellent use case for AI tools.

LLMs are surprisingly effective at:

Think of AI as your pair programming partner. Use it to understand the function, generate an initial implementation, and create test cases — then verify everything against actual OTP behavior and Hologram conventions.

What You'll Gain

Beyond the satisfaction of contributing to open source:

Oh, and bragging rights. You're literally enabling Elixir in the browser - that's pretty cool ;)

Getting Started

Ready to contribute? Here's how:

Helpful resources: Check the Client Runtime Reference to see porting status across all modules. Join the Hologram Forum discussion to ask questions and share your progress.

Start with something small to get comfortable, then tackle bigger functions as you get the hang of it.

Let's Build This Together

171 functions. Some take 15 minutes. Some take a few hours. But each one brings us closer to comprehensive Elixir stdlib coverage in the browser.

Let's tackle the rest of this Erlang porting together. There are tasks of all sizes waiting — find the one that fits your schedule.

Start Contributing Now

Share this initiative and help us reach more contributors!

- Bart