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
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.
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.
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.