<aside> 💡 You can try our live demo at https://app.planarly.com. Please be patient while it loads 😉

</aside>

Planarly is a 2D, visual, reactive, vector programming language following the spreadsheet metaphor. It looks like Excel, and at a basic level works like Excel, but it is first and foremost a proper programming language.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/dc80016d-29c2-47a4-af5d-7ac47cdbd4f7/Untitled.png

Most notable differences between Planarly and Excel, and our philosophy:

Local first

app.planarly.com runs completely inside your browser. Your document never leaves your computer. Further, the saved document is in a simple, plain text XML format. We don't hold your data hostage.

Tree structure

In Excel, sheets are organized as a single flat list within the document. In Planarly:

<aside> 💡 Uppercase labels are system-defined and always have a special meaning. Lower-case labels are user-defined.

</aside>

The tree structure is invaluable for organizing large amounts of information. You can reference data in other sheets by "walking the tree" using absolute paths such as Root.a, or relative paths such as PP.a.b. See Documents and By path for more details.

Cell labels and referencing cells

Cells in Excel are usually referred to by their absolute or relative positions, such as A4 or $A$5. These non-descriptive names are strongly discouraged in Planarly, like in most programming languages. We strongly encourage the use of cell labels instead. Cells without labels cannot be referenced from other sheets.

To locate a cell, we offer many ways to express the intention of the user. E.g. ``jan_2021 -| temperature locates the cell in the row (-) containing the text "jan 2021", and in the column (|`) containing the text "temperature". Such expressions are more readable, less error prone, and more robust after future edits. See Referencing for details and other reference syntax.

Vectorized computation, no repeated formulas

A typical Excel document relies heavily on copy-pasted and duplicated formulas. Planarly instead encourages logic to be expressed via vectorized math. E.g. to compute three freelancers' wages from their hourly rate and hours, Planarly relies on one single formula #rate * #hours to carry out a computation like:

$$ \begin{bmatrix} 55 \\ 60 \\ 40 \end{bmatrix} * \begin{bmatrix} 4 \\ 5 \\ 10 \end{bmatrix} = \begin{bmatrix} 220 \\ 300 \\ 400 \end{bmatrix} $$