Views And Lenses

The same rows, seen many ways — table, board, gallery, calendar, graph, and dashboard views, each a saved lens over your data.

A view is a saved lens over a Dotabase's rows. The rows never change; the decides how you see them. One can have many views, each tuned for a different job, and each is stored on the Dotabase itself rather than in your browser.

View Types

A view has a type that sets its overall shape. There are ten, and the type is fixed vocabulary — a view is one of these and nothing else:

  • Table — rows and columns, the spreadsheet-like default.
  • Board — cards grouped into columns, for status or category.
  • Gallery — a grid of cards, for rows carrying images or cover art.
  • List — a compact single-column reading layout.
  • Calendar and Timeline — rows placed by date.
  • Stream — a reverse-chronological activity feed, grouped into day sections, so you read a Dotabase as what happened rather than as what exists.
  • Wheel — a radial dial that gives each DIIICE category a wedge sized by how many rows carry it. It needs DIIICE turned on for that Dotabase, so it renders where there is a taxonomy to draw.
  • Graph — rows as nodes, edges as links, for exploring the knowledge graph.
  • Dashboard — charts and metrics computed over the rows.

What A View Carries

Beyond its type, a saved view remembers its filters, its sort stack, its grouping, which properties are shown and in what order, how wide the table columns are, and a set of display settings covering things like card size, cover images, and conditional colour. It also carries its own flags — whether it is pinned, whether it is the Dotabase's default view, and where it sits in the tab order.

Filtering, Sorting, And Grouping

A view's filter is a tree, not a flat list. Conditions combine into groups, each group joined by and or or, and groups can nest — so "open items assigned to me, or anything overdue" is one saved filter rather than two views. Each property type declares which operators it accepts, drawn from a shared vocabulary of twenty-five: equality and comparison, contains and starts-with, date-relative operators like before, after, and between, emptiness checks, and checkbox checks. Sorting is a stack of property-plus-direction pairs rather than a single key, and grouping picks one property, with the option of hiding empty groups.

The browse state also lives in the URL: the view, the filter, the sort, the grouping, the search text, and the facet selections are all query-string parameters. That makes a slice addressable — the app has a "Copy link to view" action, and the link reproduces what you are looking at for anyone in the workspace who can already open that Dotabase.

Dashboards

A dashboard is a view whose rows are summarized into widgets. There are eight widget types — bar, line, donut, stat, gauge, heatmap, distribution, and table — laid out on a twelve-column grid, and each widget is a separate record rather than a blob on the view.

Every widget is driven by one aggregate query over the host Dotabase's rows. Eleven aggregations are available: count and distinct count, sum, average, median, minimum, maximum, and range, plus percentage aggregations for empty, non-empty, and checked. Dates can be bucketed by day, week, month, quarter, or year, and a window such as the last thirty days or year-to-date can be applied. Creating a dashboard can seed a starter set of widgets derived deterministically from the Dotabase's own schema, so a new dashboard opens with something real on it instead of a blank grid.

Working With Views Outside The App

Views are not app-only. The CLI exposes the whole surface under dots views — listing and reading views, creating, updating, duplicating and deleting them, setting the default, reordering tabs, flipping flags, and writing the property, column-width and display configuration. Dashboard widgets have their own nested group for listing, creating, updating, moving, and deleting them.

Because every view reads the same rows, switching type changes presentation only: a table for entering data, a board for triaging, a stream for catching up, a graph for tracing how rows connect. No copy is made and nothing is converted between them.

Views And Lenses · This page in the graph

Connected Records14

Documented by
Mentions
DIIICE
References
14 connections.

Where To Go Next

Reading this as an agent?For Agents
Something wrong on this page?Dots On GitHub