Changelog

What shipped, and when.

Written by the person who shipped it, including the entries that say something was wrong. Those are the ones worth reading.

Added

A public site, and the documents behind it

Pricing, security, about, contact and this page, plus a cookie policy, a sub-processor list, an acceptable use policy and a data processing agreement. The legal documents were reachable only by typing their URL before this, which for a compliance page is indistinguishable from not having one.

Fixed

Resend named as a sub-processor

Invitation email had been going through Resend for several releases while the privacy policy listed five processors instead of six. An undisclosed processor holding email addresses is a disclosure gap, so it is now named there, on the security page and in the data processing agreement, all three reading from one list.

Added

A read-only API for your own workspace

Scoped keys, managed from the settings screen, so posts, accounts and collected figures can be pulled into a warehouse or a dashboard of your own.

Added

The analytics screen

Sixty days of follower history per network and the performance of every post that went out, drawn from readings the collectors had already been taking for weeks. A metric that could not be read shows as unavailable and says why. It is never drawn as a zero.

Improved

Carousels can be reordered on a phone

Dragging to reorder the images in a carousel worked with a mouse and did nothing under a thumb, which is the device most of this is done on.

Improved

Folders in the composer’s media picker

The picker showed one flat list of every asset in the workspace. It now walks the same nested folders the library does, so a library worth organising is worth organising once.

Improved

Recycled posts ranked by what actually performed

The recycler chose by age. It now chooses by measured performance, which is what the metrics collector had been quietly accumulating the whole time.

Improved

Competitor discovery moved to a background job

Adding a competitor held the screen while several networks were queried in turn. It now runs behind you and reports what it found, and a profile no network can track is saved anyway with the reason on its face.

Added

What was said to a model, not only what it cost

The AI ledger recorded spend and nothing else, so a bad draft could be counted but never explained. The prompt and the response are now kept with the cost.

Added

Nested folders in the media library

Folders inside folders, and a serving route for media that keeps the storage path unguessable.

Added

Email delivery, and importing posts you already published

Invitations now arrive as real mail with delivery tracked. Posts published outside the product can be imported so the metrics history is not full of holes.

Added

Billing, invitations, seats and account groups

Plans with enforced limits, invitations that cannot hand out a seat the plan does not have, weekly queue slots, notes on a post, and a workspace chat.

Fixed

Scheduled times stopped drifting across time zones

A scheduled time was being converted through UTC on the way into the form, which walked posts hours earlier on every save in half the world. Every conversion now goes through one tested helper, with the workspace time zone explicit at both ends.

Added

Eleven networks, connected through one OAuth layer

Connections, publishing, the collectors that read back what happened, and the Meta compliance callbacks. Access tokens are encrypted before they touch the database and are never sent to a browser.

Added

Multi-tenant from the schema up

The suite this was extracted from could hold exactly one brand: three of its constraints made a second one impossible to insert. Every table is now scoped to a workspace and protected by a policy the database enforces.

Something here you depend on, or something missing you were waiting for? Say so.

All of it is in the free plan except the volume.