bartblast

bartblast

Creator of Hologram

Hologram standalone mode - wishlist and ideas

Some great comments in the home page thread shifted toward what you’d like to see in Hologram’s future, particularly standalone mode. I’ve split those comments here so we can have a focused discussion.

Quick context on the two modes:

  • Embedded (Phoenix-based): The current version where Hologram works as a library within Phoenix applications
  • Standalone: The upcoming version that will work independently of Phoenix

What would you like to see in standalone mode? What features or capabilities would make it a must-have for your projects?

Looking forward to your ideas!

Most Liked

jam

jam

IMO, HEAT would be better. Bring the HEAT :fire:

Personally I’m looking forward to keeping it simple with Hologram, Elixir, and scoped CSS :slightly_smiling_face:

bartblast

bartblast

Creator of Hologram

The vision you’re describing here aligns pretty closely with where Hologram is headed. It’s not meant to be just a web framework - the goal is to build it into a development platform for cross-platform development with isomorphic components that can run through WebView and Web APIs (web/mobile/desktop). Also things like Hologram widgets you can embed in existing apps, JS interop with React/Vue/Svelte, serverless deployments, and eventually web extensions and more targeted transpilation.

The thing is, we need to build this in a specific order. Starting with web makes the most sense because it’s the most urgent community need, and there are already early adopters giving feedback that helps shape the direction. Plus, if we can solve web and local-first well enough, it should create momentum to support the project financially - like through paid courses or content - which would let me work on this full-time.

From there the plan is: PWA → mobile → desktop → extensions/serverless/advanced transpilation features. As I work on the web part, I’m gathering different use cases - for example, when I started I didn’t think about browser extensions at all, but it seems to be one of many possible deployment targets.

One thing I should mention - a lot of people think transpiling to JS is just a 1-1 translation of Elixir code, but it’s actually much more involved. The Elixir world is quite different from the JS world, and concepts don’t translate one to one. You essentially need an Elixir runtime in the browser, call graph analysis, process management eventually, and more. Even if I extracted just the transpilation parts (which would be quite a lot of work since it’s relatively coupled with the framework right now), you’d quickly realize you need much more than just transpilation - you’d basically end up recreating Hologram eventually. I think a much better approach is gradually supporting new use cases through a consistent Hologram development platform and ecosystem.

Anyway, really appreciate you sharing this. It’s good to know the vision resonates with what people are hoping for!

bartblast

bartblast

Creator of Hologram

Getting rid of the Node/npm dependency is actually a core part of the standalone Hologram effort. The plan is to vendor essential JS libraries and eliminate the need for npm/build tools altogether.

This will be part of v0.7.0, and it’ll apply to both the standalone and embedded (Phoenix-based) versions. So you’ll be able to work with just Elixir, HTML, and CSS - no JavaScript toolchain required (unless you need specific npm packages for JS interop).

Where Next?

Popular in Discussions Top

vans163
So useless benchmarks aside, Its possible to write a webserver that can serve 300k requests per second (perhaps more with optimizations)....
New
Fl4m3Ph03n1x
Background This question comes mainly from my ignorance. Today is Black Friday, one of my favorite days of the year to buy books. One boo...
New
pillaiindu
I want to convert a Phoenix LiveView CRUD website to a CRUD mobile app. What do you think is the easiest way to do so?
New
lorenzo
Hey everone! I created a prototype for my app using Nodejs for the api. But the framework I chose wasnt great (in general theresnt any g...
New
AlexMcConnell
The reason that Rails is as popular as it is is because it’s very easy for relatively inexperienced developers to get a lot of work done....
588 19675 166
New
IVR
Hi all, I’ve seen a number of related threads in the past, but I’d still be very curious to hear an up-to-date opinion on this topic. I...
New
rower687
Hi all, I’ve been reading a lot about the “let it crash” term and how supervising processes and the whole messaging passing make an elixi...
New
MarioFlach
Hello, I want to share a project I’ve been working on for a while: https://github.com/almightycouch/gitgud Background Some time ago I ...
New
axelson
Decided against including more info in the title, but the gist is that Plataformatec sponsored projects will continue with the assets bei...
New
AstonJ
It’s been a while since we’ve had a thread like this, so what better way to kick off the year with :003: What does being an Elixir user ...
New

Other popular topics Top

hariharasudhan94
lets say i have a sample like a = 20; b = 10; if (a > b) do {:ok, "a"} end if (a < b) do {:ok, b} end if (a == b) do {:ok, "equa...
New
9mm
I am constructing a JSON object (map) and I need to conditionally set a field. I’m trying to write proper elixir-way code… and I’m at a l...
New
jononomo
I am trying to figure out how Mix knows whether the environment is test, dev, or prod – where is this set? Thanks.
New
minhajuddin
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
chrismccord
This release brings a number of exciting features, including integration with the new Phoenix LiveDashboard and Phoenix LiveView. There h...
New
freewebwithme
Using vs code and installed ElixirLS: support and debugger. And I got an error popped up on start up says Failed to run ‘elixir’ comma...
New
vonH
When I run the Plug and I recompile I wind up having to use Ctrl C to quit iex and start again. Witht the help of rlwrap I can use the cu...
New
fayddelight
I tried installing elixir 1.11.2 erlang 23.3.4 via asdf in my zsh shell. Enabled the versions locally and globally. When I list them ...
New
klo
Got a question about when to concat vs. prepending items to list then reversing to achieve appending. So i know lists boil down to [1 | ...
New
hariharasudhan94
Lets say I have map like this fetching from my database %{"_id" => #BSON.ObjectId<58eb1a7a9ad169198c3dXXXX>, "email" => ...
New

We're in Beta

About us Mission Statement