Data tables, exciting new GUI tools and more

No images? Click here

Goatmire Teaser video thumbnail, just the logo

I released a Goatmire teaser video.

 

Goatmire Elixir 2026

28th of Sep - 2nd of Oct. Varberg, Sweden. Sweden's largest, smallest, best and worst Elixir conference.

Tickets

A third of the tickets are gone. We have not announced most of the line-up yet. Be warned that they might move fast as we announce more.

Acquire your passage!

Call for Talks, last call for 12th of April

Those who dare speak will find our Call for Talks bids them welcome.

Sponsors

If you think your company can and should support the conference we are actively talking to sponsors now. You can just respond to this email.

Workshops

Just added a lot of seats for Sam Aaron's music creation workshop with Tau5.

Check out the workshops if you are attending the conference or are on the Swedish west coast. They are free, not all are Elixir and all of them are phenomenally interesting.

 

Emergent Ecosystem

I like to shine some light on fun, interesting or useful libraries every now and then.

Emerge & Solve
These are by good co-conspirator and drone-pilot Damir. Solve is opinionated state management in service of Emerge which is UI. These build on the ideas of the library Elm UI, they use a Rust NIF to access Skia bindings. Skia is the rendering library that underpins Flutter, Chrome and many other things.

I didn't know Damir had a background in UI. He just seems to have done a fair bit of everything. This build on many years of experience building UIs for clients at an agency and I'm quite excited to see where he can take it.

There is also a demo repo to see the thing in action.

Lecture: UI in Elixir

If you don't know the Elixir UI field. Scenic is probably among the most known. Almost all Elixir, just a NIF for rendering typically. With the Cairo backend it also renders reasonably without GPU-acceleration, or was it 2D-accelerated. I don't recall. The tricky part with Scenic. Only a few companies use it in production and they are not actively out there maintaining it. The small crew of spare-time maintainers have not shipped a release in a minute (2 years). And it is not because it is "done". Scenic is cool. But it isn't a project at the health-level of Nerves, Phoenix, Membrane or Ash who have active maintainers and continuously releases improvements. No shade on the Scenic maintainers. We all have lives and jobs.

Erlang ships wx which are bindings for WxWidgets which lets you build native cross-platform UI. It is kind of rad. It is also an OOP-shaped API bonked on the head until it works inside Erlang. I recommend taking it for a spin because desktop apps and native controls are rad. But I didn't strictly enjoy working with it when I tried it and for say embedded use it would require a windowing environment and GTK or Qt. I think they've talked about removing it as well. It does have a WebView widget now though so you can use it as cheapo Electron.

You may have heard of LiveView Native. Unfortunately it is quite dead now. While I was impressed with the experience of building with what Brian Cardarella showed me and Alex Koutmos of LiveView Native I just could not get over the feeling that it would be hell to maintain and that I wanted local first / offline for a mobile app. In the end I don't know that it died by that as much as other disagreements. Brian wanted LiveView to become a generic engine. I believe the Phoenix folks disagreed. This was one part, but not the full reason why Brian has since mostly checked out of Elixir. I respect the work and resources he put in personally and through DockYard for Elixir through the years. Complex context aside, LiveView Native has been archived, and will probably not see more development.

An important take-away from LVN's experiments is that the BEAM is not ideal to put on a phone. At least not as a single app. It can work fine but it is relatively larger and somewhat aggressive. You can tune it but I think it makes more sense as the backbone of the phone than as a single app. Maybe we could have some kind of workshop about putting Nerves on a smartphone to experiment with this?

We have Flutter via nerves_flutter_support. It also runs on the desktop. You write Dart for making a Flutter app and you serve it from Elixir. You build some kind of bridge over GraphQL, gRPC or whatever. SmartRent uses it for touchscreen thermostats. It works really well. Flutter is kind of heavy though but it is one of few things that would get you a full on built-out widget system with UI ready to slap together.

Similarly heavy for embedded. Anything with LiveView in a browser. The browser is the heavy part. And of course you have all the challenges of making it feel like a good app. But LiveView is super nice in terms of productivity.

 

Right. I was presenting libraries. Anyway. My hope is that Damir has started to Solve embedded UI. I know he has plenty of plans for this.

Cinder

By Rebecca Le of Ash core team and Ash book fame. I've used Ash as a cheat code for building small line of business apps using LLMs and this is kind of the most important part. Instead of re-inventing a data grid/table, with sorting, filters, etc. every time. Just use cinder. Every view in my little backend for Goatmire stuff is Cinder. I'm hacking on a thing for the EEF. Everything that isn't use-facing prettiness is Cinder. And Cinder looks great but I usually don't throw a dozen filters at visitors. That's reserved for staff.

It is essentially the foundation that will some day make a much nicer Ash Admin UI.

Nostrum

Discord bot .. framework. This was a lot to figure out in terms of setup for the Discord app and inviting your bot and stuff. But the framework itself has been great.

Dux

Brand new replacement for Explorer by the same Chris Grainger. The goal is to use DuckDB instead of Polars which was hard to maintain. Much like Explorer Dux manages to maintain data in Arrow-compatible format enabling a bunch of nice zero-copy operations. It uses the ADBC duckdb adaptor.

I have lots of stuff I want to try and do with this.

 

That'll do for now :)

I'm here on email or on Bluesky and the Fediverse if you want to share. You can just reply to this email :)

Thank you for reading. I appreciate you.

 
 

This is an email from Underjord, a swedish consultancy run by Lars Wikman.

Everything else is found at underjord.io

You signed up for this newsletter and confirmed the subscription. If you want to stop receiving it. Just use the link below.

Preferences  |  Unsubscribe