It's time to go off grid

Online spreadsheets re-invented

Familiar formulas like in spreadsheets

Cells are boxes that compute things, like arithmetic. You can click them to change the formula and hit Enter to see the result again.

Where's the grid? There is no grid. We use cells on an as-needed basis.

Type in some arithmetic
(unnamed)
(unnamed)
250

Built-in records

Inflex natively understands records with built-in syntax. Records model the idea of a single thing, like a person or a stock item.

Records can be worked with either as code or as structured elements in the interface.

In a spreadsheet you couldn't express this in a deep way; only superficially with visual cues.

Type in a record
(unnamed)
(unnamed)
name
Emily
age
20
Edit fields of the record
(unnamed)
name
age
20

Lists

Lists are also built-in with special syntax, which can be edited either graphically or as a formula.

They contain one value inside, and each item in the list has the same type, so it's always safe to apply transformations or filters on them.

Create a list cell
(unnamed)
↙ Hit the bottom-left button to add rows!
Add items to the list
(unnamed)
0
123
1
456
2
Edit list as code
(unnamed)

Tables

We can create a table in the graphical interface piece by piece. Adding data to tables is as easy as adding data to lists.

We've seen records and lists above: In Inflex, tables are simply lists of records! That means you can re-use the same intuitions and concepts, a filter on a table is just a filter on a list.

Create a table cell
(unnamed)
Hit the top-right button to add columns! ↗
Add a column
(unnamed)
column1
↙ Hit the bottom-left button to add rows!
Add data
(unnamed)
column1
0
View as code
(unnamed)

Functions

Functions let us specify computations to be done on some input. Here we show how the function n:n>300 is used as a condition to filter in only items in the list that match.

Name your cell
0
123
1
456
2
789
numbers
0
123
1
456
2
789
Make a cell that filters only numbers greater than 300
(unnamed)
(unnamed)
0
456
1
789

Re-using functions

Functions are normal values like numbers or text, so they can be put in a cell and passed around.

Here we put the function in another cell and then use it in our original filter. This way, we separated concerns and gained re-use.

Take the condition from the last example
(unnamed)
Cut and paste it to its own cell
myfilter
Use that cell in original formula
(unnamed)
(unnamed)
0
456
1
789

Type system to prevent mistakes

Inflex has a static type system, which means that any attempt to combine the wrong types of data together will stop you and loudly complain.

This helps prevent correctness errors and bugs at the time of writing rather than later on at the time of inspecting results.

Accidentally add two incompatible types of things
telephone
07123123
stock
42
mistake
mistake
types of values don't match up

Use blanks when you're not done

If you don't know yet what to put for a part of a formula, just leave it blank with _.

The formula engine will compute the rest of your formula and leave the blanks as-is. This can be an excellent tool for dealing with partial data (tables use this), and for seeing how an equation works.

Use _ when you don't know what to put yet
mistake
mistake
(20 + _)

Nest data inside other data freely

Not all data fits neatly, or correctly, into a grid, or a table. In Inflex, you can put any type of value anywhere else.

If you want a table inside a table, go for it!

Each recipe has a list of ingredients
recipes
name
ingredients
0
cake
name
amount
0
eggs
#unit
2
1
donuts
name
amount
0
eggs
#unit
1
1
butter
#kg
0.2

What are you waiting for?

We're open for beta testing now.