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.
Short-Term Goals
Foundation & Core Features
Client Error Handling
Implement support for Elixir's error handling features (try/catch/rescue, etc.) on the client side.
Comprehension Parity
Bring comprehension support to full parity with the Elixir server runtime, including bitstring generators and the :reduce option.
DOM Events Support
Complete implementation of remaining DOM events, particularly those requiring high-performance rerendering like mouse move, scroll, and touch events.
Essential Stdlib Functions
Expand support for the most important Elixir standard library functions needed for Phase 1 use cases: state management, data manipulation, dates/times, strings, and collections.
JS Interop
Create a clean interface for JavaScript interoperability to leverage existing JavaScript libraries.
Middleware
Add middleware support with a pre-init hook for components and pages, including access to request headers before init.
Regular Expressions
Add support for regular expressions and the =~ operator.
Server-Triggered Actions
Enable triggering actions from server code outside of commands, such as background jobs (e.g. Oban) or scheduled tasks.
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.
Template Formatter
Implement automatic formatting for templates to ensure consistent code style.
VS Code Extension
Develop a VS Code extension for template syntax highlighting to improve the developer experience.
"with" Expression
Complete the implementation of Elixir's with expression.
Medium-Term Goals
Advanced Features & Enhanced DX
Advanced Routing
Add support for multi-tenant routing (subdomain-based) and catch-all (wildcard) routes for dynamic path segments of arbitrary depth.
Auth
Built-in authentication, authorization, and access control system for managing user identities and protecting resources.
Bitstring UTF16 and UTF32 Encoding
Add support for UTF16 and UTF32 encodings in bitstrings, expanding beyond UTF8 to handle a wider range of text processing scenarios.
Bitwise Module Operators
Implement operators from the Bitwise module, enabling bit-level operations like bitwise AND, OR, XOR, and bit shifting for low-level data manipulation.
Client Error Stacktraces
Ensure error messages and stacktraces on the client match those on the server for easier debugging.
Client MFAs Whitelisting
Create a mechanism to explicitly whitelist Module-Function-Arity combinations that should be transpiled for client-side execution when not automatically detected by the compiler.
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.
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.
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.
Props Validation
Add a system for validating component props.
Reactivity Layer
Introduce derived values, prop watchers, and effects for a cohesive reactivity system.
Secrets Protection
Prevent sensitive information from leaking to the client side.
Shorthand Prop Assignment Syntax
Create an optional, more concise syntax for assigning props while maintaining support for the standard syntax.
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.
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.
Mobile Platform Support
Enable building native-quality mobile applications from the same Hologram codebase.
Structural Sharing
Implement structural sharing for immutable data structures to reduce memory usage and improve performance by avoiding unnecessary data copying.
Time Travel Debugger
Develop a debugging tool that allows stepping backward through state changes.