Engineering

Luna, our in-house framework for writing great web apps really quickly

At Asana, we’re building a Collaborative Information Manager that we believe will make it radically easier for groups of people to get work done. Writing a complex web application, we experienced pain all too familiar to authors of “Web 2.0” software (and interactive software in general): there were all kinds of extremely difficult programming tasks that we were doing over and over again for every feature we wanted to write. So we’re developing Lunascript — an in-house programming language for writing rich web applications in about 10% of the time and code you can today.

Update: For now we’ve tabled using the custom DSL syntax in favor of a set of Javascript idioms and conventions on top of the “Luna” runtime. So while the contents of this post still accurately present the motivation and capabilities of the Luna framework, we’re using a slightly more cumbersome (JavaScript) syntax than what you see below, in exchange for having more control over the “object code” (primarily for hand-tuning performance).

Would you recommend this article? Yes / No