I have been working on an Elm-inspired language that compiles to Go (early project, would love feedback)

Hi all,

I have been working on a small language project called Sky, and I have just open sourced it. It is heavily inspired by Elm, and I wanted to share it here to get some feedback.

GitHub: github.com/anzellai/sky
Tree-sitter grammar: github.com/anzellai/tree-sitter-sky
Docker: docker pull anzel/sky:0.1.0



Why I started this

I have always liked Elm's model a lot, especially:

* the Elm Architecture
* the focus on correctness
* and the general feeling of safety when refactoring

What I wanted to explore was whether a similar style could be used in a slightly different setting:

* running on the server
* compiling to Go (for simple deployment as a single binary)
* and handling UI in a server-driven way (a bit like LiveView)

So this is not meant as a replacement for Elm, more just an experiment in a similar direction.



What Sky looks like

It is very much Elm-inspired:
type alias Model = { count : Int }
type Msg = Increment | Decrement

update msg model =
case msg of
Increment -> { model | count = model.count + 1 }
Decrement -> { model | count = model.count - 1 }


The overall structure follows the same idea of:

* init
* update
* view
* subscriptions



What is different

A couple of key differences from Elm:

* it compiles to Go rather than JavaScript
* UI is server-driven (state lives on the server, updates via SSE)
* there is Go interop (importing Go packages and generating wrappers)

The aim is to avoid a separate frontend/backend setup, but still keep a similar programming model.



Current state

This is still early and experimental:

* compiler and CLI are working
* Hindley-Milner type inference (ADTs, pattern matching, etc)
* basic LSP + tree-sitter
* simple server-driven UI runtime
* a few example apps

There are definitely missing pieces and rough edges, so not production ready.



What I would really like feedback on

From people familiar with Elm, I would be especially interested in:

* whether this feels aligned or at odds with Elm's design philosophy
* whether the server-driven approach makes sense
* anything that feels unnecessarily complex compared to Elm
* anything important that is missing



Small note

I used AI tools quite a bit while building this (mainly for speed), but the design decisions are mine.

If anyone has a look or shares thoughts, I would really appreciate it.

https://redd.it/1ryvkfi

@reddit_elm
Elm for large projects

I am currently developing a large-scale project using Go for the backend and I am considering Elm for the frontend. A core requirement is the integration with WhatsApp, which involves simulating a real-time chat interface via WebSockets. Given the projected size and complexity of this application, is Elm a reliable choice for this use case, or should I consider other alternatives?

https://redd.it/1s0tveb

@reddit_elm
Elm Town 89 – Elm Camp 2026

Elm Camp organizers Katja Mordaunt and Tomáš Látal share details about the June 15th-18th, 2026 event in Olomouc, Czech Republic, and extend an open invitation to Elm-curious folks in the broader community. Tickets on sale as of publishing!

Elm Town 89 – Elm Camp 2026:

* https://elm.town/episodes/elm-town-89-elm-camp-2026
* https://youtu.be/vLY9CrEQ0PY

https://redd.it/1s386if

@reddit_elm
elm validation and donut chart packages

Hey everyone,

While working on a private project recently, I realized I was rebuilding the same logic for data viz and form handling. I decided to pull them out into separate, lightweight packages in case they help anyone else:

elm-pie-chart:* A simple, pure SVG pie and donut chart library. No heavy dependencies, just type-safe charts that scale.
elm-validation:* A "no-boilerplate" way to handle form validation logic. It keeps your update function clean and your error handling consistent.

Both are still early/small

https://redd.it/1sc5mar

@reddit_elm
New Elm tools (elm-ast, elm-assist, elm-codegen) written in Rust

Hey, everyone. I wanted to share some Elm tools I recently built with Rust.

A high quality AST parsing/construction printer library:
https://github.com/joshburgess/elm-ast

A suite of dev tools (linting/analysis via CLI, TUI, LSP, an elm-fmt formatter, etc.):
https://github.com/joshburgess/elm-assist

Elm codegen for types, encoders/decoders, and HTTP functions from Rust Axum:
https://github.com/joshburgess/elm-codegen

Both elm-assist and elm-codegen are built on top of elm-ast.

I just made a thread about them on Twitter if anyone is interested:
https://x.com/\_joshburgess/status/2047074256152891404 

https://redd.it/1st0gds

@reddit_elm
A time-traveling full-stack test debugger for elm-pages
https://elm-pages.com/blog/full-stack-test-debugger/

I just released a new end-to-end testing API and visual test viewer for elm-pages Route Modules. It lets you drive your full-stack Elm application in pure Elm tests, stubbing out non-deterministic interactions with the outside world, while emulating the full-stack framework behavior like form submissions, BackendTask resolution lifecycle, etc.

I think this is a game-changer for maintaining real-world applications with elm-pages, and it is one of the superpowers that Elm's unlocks for Elm-based frameworks. I hope you enjoy!

https://redd.it/1ta9ibf

@reddit_elm
bcardiff/elm-rad, two-way bindings

I explored the idea of having elm apps built using two-way bindings. If interested check https://package.elm-lang.org/packages/bcardiff/elm-rad/1.0.0/ and its source for examples (https://github.com/bcardiff/elm-rad/tree/main/examples). Cells, computed, debounce, validation, and local persistence supported.

It shift from TEA which we all love but in some scenarios having a more restricted app model has its benefit.

Thoughts?

https://redd.it/1tbg1ts

@reddit_elm
A "collaborative" mechanical keyboard that does basically nothing — built with Lamdera

Every keystroke gets broadcast to everyone currently on the page, plays a Cherry MX Blue sample (different sound per key now), and ticks up a global character counter. There's a fade-trail of the most recent keys. That's the whole app.

The actual point was to try out Lamdera (Elm fullstack). Shared types between backend and frontend, end-to-end typed messages, no API layer to write. The glue-lessness is genuinely impressive — the "app" took some small parts of an afternoon, most of which was fiddling with the audio.

Someone in the Elm Slack called it a "beautifully coded terrible idea," which feels about right.

Demo: <https://greentype.lamdera.app>
Source: <https://github.com/cekrem/greentype>

https://redd.it/1tbz5xm

@reddit_elm
Elm Town 90 – Wonder: Contorting yourself with Ari Schlesinger

Ari Schlesinger illuminates a unique path of social responsibility carved through the tech world, using feminism as a guide while bearing attacks, criticism, and contortion. That trail led Ari to ask how programming languages shape society and, eventually, to research Elm—the compiler, error messages, and community.

Elm Town 90 – Wonder: Contorting yourself with Ari Schlesinger:

* https://elm.town/episodes/elm-town-90-wonder-contorting-yourself-with-ari-schlesinger
* https://youtu.be/BWUL2WdAHsA

https://redd.it/1tmq63f

@reddit_elm