Lumina: A statically typed web-native language compiled to JavaScript and WebAssembly
Unified type system targeting both JavaScript and WebAssembly Advanced type features including HM inference and trait-based polymorphism
betaLumina
Lumina enters a crowded field of web-adjacent languages with a clear value proposition: eliminating the trade-off between the safety of a statically typed language and the ubiquity of the web. By offering Hindley-Milner type inference and algebraic data types, it provides a level of correctness typically reserved for functional languages, yet targets the browser natively. The ability to compile to both ESM and WASM from a single source suggests a strategic attempt to handle both high-level UI logic and low-level compute (like WebGPU) within one cohesive type system.
From a product perspective, the developer experience is surprisingly mature for an early-stage project. The inclusion of a Language Server Protocol (LSP), a VS Code extension, and a dedicated REPL indicates that the author understands that a language is only as good as its tooling. The 'Reactive UI' runtime is a bold addition, suggesting Lumina isn't just a general-purpose language, but a framework-adjacent tool aiming to simplify the frontend state management headache.
However, the project is currently a solo effort, which introduces significant sustainability risks. While the technical ambition—balancing trait-based polymorphism with JS interop—is impressive, the ecosystem is non-existent compared to TypeScript or Rust. The 'Web-Native' claim is a strong differentiator, but Lumina's success will depend on whether its compiled output is performant enough to justify the overhead of learning a new syntax.
This is a project for the 'language enthusiast' and the performance-minded web engineer. If you are tired of the gradual typing of TypeScript but find Rust's web toolchain too cumbersome for simple UI work, Lumina is a compelling experiment worth watching.