Cadence

Shipping rate, month by month.

Every bar is one month of shipped work. We publish the whole log, including the groundwork nobody sees, because a release note that only lists the good months isn't a record of anything.

9
Mar
81
Apr
89
May
48
Jun
89
Jul
144
Aug
175
Sep
The log

Open it by month, week, or day.

Show

Showing 490 of 635 updates. Groundwork — the plumbing, migrations and tooling with no screen behind them — is hidden. Turn on Behind the scenes to see all of it.

  • ImprovedDesign & accessibility

    Forms open as a panel on the right, so the record they are for stays in view

    Anything you type into — grid settings, the Data Intake forms and mapping tool, the add-override, property, member and picklist item forms, report inputs, the schedule editor and more — now slides in from the right at full height instead of opening in the middle of the screen. Its buttons stay pinned to the bottom however long the form is, it fills the screen on a phone, and it still closes only from its X, Cancel or an action button, never from Escape or a stray click. Yes/no questions and pickers stay centred dialogs.

  • FixedSetup & upgrades

    New databases keep 90 days of change history again instead of growing forever

    The platform's starting schema, recaptured the day before, dropped the history retention on 113 tables — so a database built from scratch since then kept every past version of those rows forever. An upgrade script restores each table's retention (90 days for most, one or ten years for API clients, invitations, second-factor methods and imaging legal records), and the check that runs on every build now fails if a baseline ever loses it again. Existing databases were never affected.

  • ImprovedAdmin & monitoring

    Table Security edits every table declaration, and refuses one that would break the platform

    The Table Security editor now shows and edits a table's tenant owner, deleted-marker, key and display columns, each chosen from the table's own columns and narrowed to the ones that can work. A choice the data dictionary could not load is refused with the reason — because a bad one used to stop the whole platform at its next refresh. Saving a row also no longer wipes a declared tenant owner, which every save from this editor used to do.

  • FixedEditing & collaboration

    Discarding one row's draft also discards the rows open beneath it

    Discarding a single row of a draft document through the API failed with an error whenever one of its child rows was open in its own editor. The row and everything open beneath it are now discarded together, and each of those editors is told it was closed. Discarding a whole document, which the editors use, already worked this way.

  • NewAutomation & rules

    A validation finding can show the fields the rule looked at

    A validator can now declare supporting fields — values from the row, its parent, a linked record shown by name, or its child rows — and every finding carries them, listed in the finding's help popover. Whoever fixes the problem sees what the rule read without opening other screens. They are declared on a new tab of the validator, a column that does not exist is refused on save, and values are read as the person validating, so nothing appears that they could not open themselves.

  • FixedAutomation & rules

    Document totals and counts in validation rules skip deleted rows

    A rule that sums or counts rows across a document now leaves out rows its table marks as deleted, the way the rule's other reads already did. Before this, a rule could see a deleted row in its totals but not in its lists — so the two could disagree about the same document.

This is the pace on our own platform.

It's the same pace we bring to an engagement. Bring one system and we'll show you what the first ninety days look like.

Book an assessment