Roadmap

This roadmap outlines features that are either in progress or planned for upcoming releases. For currently available features, see the Features page. For details about Elixir standard library coverage and Erlang porting status, refer to the Client Runtime page.

Our development roadmap is organized by timeline, with colors representing proximity: short-term goals (green) focus on foundational features, medium-term goals (yellow) expand capabilities and developer experience, and long-term goals (red) represent transformative capabilities for the framework. Features are ordered alphabetically within each group.

01

Short-Term Goals

Foundation & Core Features

Auth

Built-in authentication, authorization, and access control system for managing user identities and protecting resources.

Client Error Stacktraces

Ensure error messages and stacktraces on the client match those on the server for easier debugging.

Component-Level Rerendering

Implement selective rerendering of only changed components instead of entire pages, significantly improving action execution speed and overall responsiveness.

Dynamic Components

Support for dynamically loading and rendering components.

Error Pages

Define custom pages for HTTP error statuses like 404 and 500, so errors match your application's design instead of showing generic defaults.

Forms

A higher-level forms API for binding inputs to component state and handling submission.

JS Package Vendoring

Vendor Hologram's own JavaScript dependencies (such as Snabbdom) into the framework, removing the need for an npm/Node.js toolchain to install and build apps.

Keyed Lists

Reconcile rendered comprehension lists by key rather than position, auto-keying items by their :id with an explicit $key override, so reordered items reuse the correct DOM nodes.

Local-First Support

Implement local-first architecture with offline-capable local database, auto-sync, and conflict resolution for resilient applications.

Navigate Between Pages from Commands

Enable navigation to another page from within a command.

Presence

Track which users and clients are currently online and react to presence changes in real time.

Regular Expressions

Transpile Elixir's PCRE-based regexes to JavaScript runtime and support Regex-related functions such as =~.

Standalone Mode

Enable a standalone mode that operates without Phoenix, with installer, asset pipeline & watchers, code reloader, clustering, and deployment-ready defaults.

Template Engine Error Reporting

Improve error reporting in the template engine to make debugging template issues more straightforward.

Umbrella Applications

Support Hologram in umbrella project layouts, resolving dependency and asset paths through Mix and watching source across all child apps for live reload.

Unsafe Block

Render HTML from a dynamic value in templates without the engine's automatic escaping.

02

Medium-Term Goals

Advanced Features & Enhanced DX

Advanced Bitstring Support

Add support for the remaining bitstring capabilities: dynamic and computed segment sizes in patterns, UTF pattern matching, and UTF16/UTF32 encodings.

Advanced Routing

Add support for multi-tenant routing (subdomain-based), catch-all (wildcard) routes for dynamic path segments of arbitrary depth, and mapping multiple routes to a single page.

Bundle Size Optimization

Reduce the size of the compiled JavaScript bundle shipped to the client for faster page loads.

Client MFAs Whitelisting

Create a mechanism to explicitly whitelist Module-Function-Arity combinations that should be compiled for client-side execution when not automatically detected by the compiler.

Colocated CSS

Write CSS colocated with a component and automatically scoped to it, avoiding leaks into the rest of the page.

Command Failure Handling Control

Add more granular control over how command failures are handled, allowing developers to customize error handling strategies, retry logic, and failure recovery mechanisms.

Devtools

Inspect the component tree, actions and commands, and state in a single devtools panel, backed by a framework introspection API.

Internationalization

Built-in i18n: locale detection and management, locale-aware routing, translation resolution across server and client, and locale-aware date, number, and currency formatting.

Named Slots

Support multiple named content slots in components, letting a parent inject markup into specific, labeled placeholders rather than only a single default slot.

Props Validation

Add a system for validating component props.

Reactivity Layer

Introduce derived values, prop watchers, and effects for a cohesive reactivity system.

Render Coalescing

Batch multiple state updates that land in the same tick into a single render pass automatically, rather than rendering once per action.

Shorthand Prop Assignment Syntax

Create an optional, more concise syntax for assigning props while maintaining support for the standard syntax.

Structural Sharing

Implement structural sharing for immutable data structures to reduce memory usage and improve performance by avoiding unnecessary data copying.

Template Formatter

Implement automatic formatting for templates to ensure consistent code style.

Template Partials

Add support for lightweight, reusable template snippets (similar to LiveView's function components) for reducing code duplication without the overhead of full components.

Testing Toolkit

First-class testing utilities for asserting on component output and writing end-to-end tests that automatically wait for in-flight actions.

Web Security Hardening

Out-of-the-box protection provided by the framework: CORS, Content Security Policy, and server-secret leak prevention.

03

Long-Term Goals

Transformative Capabilities

Client Processes

Port Elixir's process model to the client for concurrent and parallel programming patterns.

Desktop Platform Support

Enable packaging Hologram applications for desktop platforms with native integrations.

Hot Code Reloading

Swap newly deployed code into active clients without a full page reload, so users never notice the update.

Mobile Platform Support

Enable building native-quality mobile applications from the same Hologram codebase.

Time Travel Debugger

Develop a debugging tool that allows stepping backward through state changes.

Sponsored by
Curiosum
Main sponsor
Erlang Ecosystem Foundation
Milestone sponsor