docs-roadmap.md
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
Foundation & Core Features
Built-in authentication, authorization, and access control system for managing user identities and protecting resources.
Ensure error messages and stacktraces on the client match those on the server for easier debugging.
Implement selective rerendering of only changed components instead of entire pages, significantly improving action execution speed and overall responsiveness.
Support for dynamically loading and rendering components.
Define custom pages for HTTP error statuses like 404 and 500, so errors match your application's design instead of showing generic defaults.
A higher-level forms API for binding inputs to component state and handling submission.
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.
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.
Implement local-first architecture with offline-capable local database, auto-sync, and conflict resolution for resilient applications.
Enable navigation to another page from within a command.
Track which users and clients are currently online and react to presence changes in real time.
Transpile Elixir's PCRE-based regexes to JavaScript runtime and support Regex-related functions such as =~.
Enable a standalone mode that operates without Phoenix, with installer, asset pipeline & watchers, code reloader, clustering, and deployment-ready defaults.
Improve error reporting in the template engine to make debugging template issues more straightforward.
Support Hologram in umbrella project layouts, resolving dependency and asset paths through Mix and watching source across all child apps for live reload.
Render HTML from a dynamic value in templates without the engine's automatic escaping.
02
Advanced Features & Enhanced DX
Add support for the remaining bitstring capabilities: dynamic and computed segment sizes in patterns, UTF pattern matching, and UTF16/UTF32 encodings.
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.
Reduce the size of the compiled JavaScript bundle shipped to the client for faster page loads.
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.
Write CSS colocated with a component and automatically scoped to it, avoiding leaks into the rest of the page.
Add more granular control over how command failures are handled, allowing developers to customize error handling strategies, retry logic, and failure recovery mechanisms.
Inspect the component tree, actions and commands, and state in a single devtools panel, backed by a framework introspection API.
Built-in i18n: locale detection and management, locale-aware routing, translation resolution across server and client, and locale-aware date, number, and currency formatting.
Support multiple named content slots in components, letting a parent inject markup into specific, labeled placeholders rather than only a single default slot.
Add a system for validating component props.
Introduce derived values, prop watchers, and effects for a cohesive reactivity system.
Batch multiple state updates that land in the same tick into a single render pass automatically, rather than rendering once per action.
Create an optional, more concise syntax for assigning props while maintaining support for the standard syntax.
Implement structural sharing for immutable data structures to reduce memory usage and improve performance by avoiding unnecessary data copying.
Implement automatic formatting for templates to ensure consistent code style.
Add support for lightweight, reusable template snippets (similar to LiveView's function components) for reducing code duplication without the overhead of full components.
First-class testing utilities for asserting on component output and writing end-to-end tests that automatically wait for in-flight actions.
Out-of-the-box protection provided by the framework: CORS, Content Security Policy, and server-secret leak prevention.
03
Transformative Capabilities
Port Elixir's process model to the client for concurrent and parallel programming patterns.
Enable packaging Hologram applications for desktop platforms with native integrations.
Swap newly deployed code into active clients without a full page reload, so users never notice the update.
Enable building native-quality mobile applications from the same Hologram codebase.
Develop a debugging tool that allows stepping backward through state changes.
Sponsored by
Previous
Next