What is Mango UI?
Hello there, curious wanderer! 👋
You’ve stumbled across Mango UI — a little project that sprouted from a wild idea:
What if desktop apps could be written in a clean, declarative DSL instead of wrestling with boilerplate? 🍋
It all started with a dream of making a programming language.
But on the journey, we noticed something odd:
there weren’t many DSLs out there for desktop app development.
So, fueled by the declarative spirit (and maybe too much coffee ☕), Mango UI was born.
A Taste of Mango
Here’s a tiny “Hello World” in Mango UI — short, sweet, and to the point:
window "Hello, Mango!"
No extra wiring, no complex boilerplate — just the essentials. (And yes, it really does pop up a window!)
Why F#?
Mango UI is built on top of F#. Why? Because F# is a natural fit for DSLs:
- It's pattern matching makes parsing elegant
- It's concise syntax keeps the host code readable
- It's functional style meshes perfectly with declarative thinking
We wanted a host language that doesn’t get in the way — and F# gives us just that.
Our Roadmap
Mango UI is still young — but like a mango tree, we’ve got growth planned 🌱:
Phase 1: Roots
- Basic interpretation engine
- Core UI elements (via Avalonia)
Phase 2: Branches
- Declarative event handling
- Function & variable declarations
- Expanded UI component set
Phase 3: Leaves
- Performance tuning & layout improvements
- Experimenting with a lower-level rendering backend
Possible Future Fruits 🍊
- Compiling to WebAssembly or standalone .exe apps
- Direct rendering using OpenGL, Vulkan, or DirectX
- Cross-platform desktop distribution with minimal dependencies
Why Mango UI?
Because building desktop apps should feel fresh, expressive, and maybe even… fun! 🍹Mango UI is still growing, but we hope you’ll enjoy watching (and helping) it bloom.