A sketch of flexible and programmable documents

<aside> 💡 This is a document I wrote in October of 2018. At the time I intended to turn this into a working system, but unfortunately life intervened, and in any case, my thinking has evolved since then. In the mean time, although it isn't fully thought-out, I think it can be useful inspiration to people looking to build similar systems, so I decided to publish it.

</aside>

"The great horizontal killer applications are actually just fancy data structures." - Joel Spolsky

For example, it's crazy that "Office Apps" (including the web) aren't just use-patterns manifested from a single "universal document type" with a spectrum of tools and a variety of ways to "fetch and store them".

- STEPS Final Report from VPRI

Introduction

Dango is an information management app. Like Notion, it gives everyone the ability to make custom data management systems like CRMs, Todo apps, wikis, or research databases. While Notion has two separate concepts for organization: the document and the table, Dango unifies these under the list concept. So concretely, it is a list editor, with clear boundaries between the parts that you want to have a consistent schema and parts that don't, with a programming language to create views of your data.

The hope is that by unifying documents and tables as lists, the system requires less rules and becomes easier to learn.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/f72a5579-c61c-40fc-8d36-ab8bae05b406/database02.png

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/d27483c2-fe19-4e05-b152-f9face02a3b2/lists02.png

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/bec11fc9-0ac7-41dc-98a5-98504cbe78d4/just-a-document02.png

The four building blocks of Dango are:

The power of Dango becomes obvious when you analyze apps in terms of the data structures that they provide: Excel has the grid, Powerpoint has the deck of slides, Evernote has the taggable collection of notes, and Trello has columns that each contain cards.