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

> At Asana, we are 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 software.

Source: https://asana.com/inside-asana/lunascript-our-in-house-language-for-writing-great-web-apps-really-quickly

## 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).

- [社内の宣言型データ読み込みシステム LunaDb をスケールアップ](/ja/resources/scaling-lunadb)

エンジニアリング

#### プラットフォームエンジニア

Asana では、ウェブアプリの根幹をなす LunaDb というデータ読み込みシステムを構築しました。 名前はデータベースですが、データベースではありません。 むしろ、宣言的にデータを取得するためのGraphQL のようなシステムであり、基本的に最新版のデータと今後のすべてのアップデートを読み込むための手段です。LunaDb は、バックエンドインフラストラ ...

- [Asana を使って、より効果的なエンジニアリングマネージャーになる方法](/ja/inside-asana/asana-makes-me-effective-engineering-manager)

エンジニアリング

#### データインフラエンジニアリングマネージャー

As an engineering manager, I need to keep track of so many things. I have my own personal to-dos that I need to prioritize, making time for focused work while also handling incomi ...

- [無効化パイプラインのスケーリング: パート 1](/ja/inside-asana/scaling-invalidation-pipeline-part-1)

エンジニアリング

#### プラットフォームエンジニア

At Asana, our invalidation pipeline is a key part of implementing near-realtime reactivity in the webapp. Reactivity is how each-and-every Asana tab keeps up-to-date with the lat ...

- [Luna, our in-house framework for writing great web apps really quickly](/ja/inside-asana/lunascript-our-in-house-language-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 ...

- [エンジニアリング](/inside-asana/engineering-spotlight)
