dominicletz

dominicletz

Creator of Elixir Desktop

Hi,

I thought I had posted my library before but seems I hadn’t. The project is still in early stages but it’s growing and so I think it should have it’s own post here. BTW I still don’t have an icon or mascot for this so please let me know if you have an idea :slight_smile:

elixir-desktop

Elixir desktop is a library that wraps :wxWidgets and Phoenix.LiveView in order to create native Windows+Linux+macOS applications. The main driver of this is my own company project https://diode.io where we produce server and (desktop) client code now from largely the same code bases for our mesh-networking apps.

Additionally, the library applies the same LiveView concepts to rendering OS-Menus such as the window menu and the taskbar icon menu. So that the developer does not need to get in touch with :wxWidgets or any system specifics.

GitHub link desktop library
GitHub link desktop example

android-example-app

Extending from this the elixir-desktop library now also supports abstracting Android apps using the very same interface. Meaning that a desktop app written using elixir-desktop can run unmodified natively on an android phone. The example project (ready to clone) ships the full Elixir+Erlang runtime ported to all common Android targets.

Also this Android example in contrast to the Windows/Linux/macOS ports is ready to be packaged. Just click “Build App Bundle” in Android studio and you get an application package that you can start shipping today!

GitHub link android example
Hex package

Why?

At the core it is really about code re-use and grew into this. We started with a pretty large Elixir based server codebase, then needed some CLI clients, then the need for UI clients developed, then that grew and now we need mobile Apps as well…

But also LiveView is a great fit for implementing desktop and mobile app interactions quickly. The ability to bring those interactions is turbo and potentially a massive new use-case.

Next Steps

  1. Packaging for Windows, Linux, macOS – I talked about this before but had to take care of the mobile app for internal reasons first. Eventually packaging installers for the platforms will become part of the elixir-desktop project.

  2. iOS?

How to help

There are many open ends here and integrations to improve. If you’re curious about this or better just want to start your own app with this and have an itch to scratch in elixir-desktop let me know. I’m reachable here, via the Elixir Slack and of course in GitHub.

PS

There is a somewhat old YouTube video of me presenting this the first time here: https://www.youtube.com/watch?v=aFpBHQ0YEw4&t=2428s

Cheers!

Showing Posts 1 to 10

Exadra37

Exadra37

Thanks for this awesome project. I really need to try it out :slight_smile:

The README of the project already has an example:

https://github.com/elixir-desktop/ios-example-app

dominicletz

dominicletz OP

Creator of Elixir Desktop

Yes, iOS is working now as well. But there are still more rough edges than I would like. Will update later with more.

a8t

a8t

I know @johns10davenport (hopefully tagged the right one) has been putting this to use.

NduatiK

NduatiK

Really interesting project, @dominicletz, do you aniticipate that we will be able to securely ship binaries?

Seems like we beam files can be decompiled…should I be worried about people reverse engineering my code?

cmo

cmo

That’s a worry for most languages. Generally, your customers won’t try that but it does happen. My mate’s .NET application got pirated in Indonesia and he had most protections in place.

NduatiK

NduatiK

Interesting…I guess its exactly the same problem with Electron apps. Probably worse for electron given the number of competent JS devs out there.

Perhaps I can:

  • leave any truly valuable features on the server (and/or)
  • ignore the potential problem and hope no one bothers to pirate it
wanton7

wanton7

You shouldn’t worry about that because there is no absolute protection against it. If your app communicates with server API then security needs to in the API code and never in the client code. API code should always expect that some bad actor can call the API.

NduatiK

NduatiK

Great suggestions. I was more worried about code being reverse engineered, but is just as crucial.

As @cmo mentioned, you can’t completely prevent client code from being pirated. The more I think about it the less I am worried. If I became big enough to be worth pirating, I think I would have already suceeded at something

jonericcook

jonericcook

This is super awesome @dominicletz! Im excited to make a desktop app. One nit pick would be naming. Elixir-desktop makes me think its only for desktops but it can do so much more. Maybe a generic name like mutatex and its own github. https://www.namecheap.com/domains/registration/results/?domain=mutatex and https://github.com/mutatex

dominicletz

dominicletz OP

Creator of Elixir Desktop

Thanks @jonericcook, this is totally on point and something bothering me as well! Someone suggested the name “chimera” before which I really like to express the different deployment options but unfortunately, there is already a hex package of that name. I would really like to have something in the alchemistic spirit of Elixir. while not taking something existing. I was thinking a bit about “elixir-aether” or just “aether”.

Where Next? Top

Trending in Announcing Top

restlessronin
The repo is at GitHub - cyberchitta/openai_ex: Community maintained Elixir library for OpenAI API · GitHub. Docs are at OpenaiEx User Gu...
152 12366 136
New
type1fool
WebAuthnLiveComponent WebAuthnComponents See this post about renaming the package. Passwordless authentication for Phoenix LiveView app...
New
GenericJam
Edit: 2026 May 15 - This post is archived. Mob is alive!! Main docs: mob v0.7.11 — Documentation A bit of explanation for the slightly c...
New
woylie
I released Doggo, a collection of unstyled Phoenix components. https://github.com/woylie/doggo Features Unstyled Phoenix components....
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
kip
I’ll shortly be launching Text, a nascent text analysis library. Current functionality In this early version (not ready for prime time) ...
New
mudasobwa
I fully migrated to my own harness from Anthropic/Gemini and I think it’s time to share it. Welcome DSH, the DeepSeek Harness, fully writ...
New

Other Trending Topics Top

budgie
A little off-topic, but I feel like people here have a good head on their shoulders. I used to be quite good at making software. Was luc...
New
KristerV
Hey. Is there anyone here who creates agents in their apps? Not talking about using agents, but creating them. I’m finding it pretty diff...
New
juhalehtonen
There has been a thread to discuss the Stack Overflow Developer Survey on this forum every year since 2018, so here’s yet another one for...
New
budgie
I love Elixir. It’s one of 2 programming languages I’ve ever fallen in love with. But I don’t use it anymore. Serverless was the promis...
New
Null-logic-0
What IDE or editor are you using for Elixir development? Personally, I use Zed, and I really like it, but sometimes I wish there were a ...
New
type1fool
I just stumbled on a newly redesigned elixir-lang.org. :tada: It looks like @Software_Mansion did the work, and I think it is generally a...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews