A collection is a simple, named bucket of your own data — no schema to design, no tables to set up. Just start storing things. It's the shared layer the rest of Catalyst is built around: workflows fill it, mini apps surface it, and chat queries it. One place for your data, usable everywhere.
Most data stores make you design the shape up front — columns, types, a migration when anything changes. Collections don't. You give a bucket a name like food_log or expenses and start putting things in it. Each entry is a flexible document, so the shape can grow with what you're tracking instead of breaking on it.
There's nothing to create first. The moment a workflow, an app, or a chat writes to a collection, it exists. Name it after the data — food_log, never calorie_analyzer_output — because collections outlive any one workflow.
A document is just a labeled record — a date, a title, a few numbers, as much nested detail as you want. When the next run records something slightly different, nothing breaks. The shape bends; it doesn't shatter.
A collection isn't owned by the workflow that happened to fill it. One workflow logs into it, a different one reports on it, an app shows it, and chat edits it — all the same bucket, because it's your data, kept in one shared place.
Most things are a running log — one entry per run, never overwritten. Running totals can update in place instead. And a wrong entry is a quick fix: "actually that was a half portion" corrects the record, no duplicate, no delete-and-redo.
The reason collections matter isn't storage — it's that every part of Catalyst reaches the same data. The workflow that logs your meals, the app that charts them, and the chat where you fix a typo are all looking at one food_log.
A workflow can drop each run's result into a collection, and a separate workflow can read the recent entries back to build a report. That's how a daily logger and a weekly summary share one source of truth.
A mini app reads and writes the same collection — tiles for today's totals, a list you can edit inline, a chart it draws from the entries. The data lives in the collection; the app is just the window.
In chat, the assistant can list your collections, pull entries out, add new ones, and fix mistakes — "what did I eat this week?", "log this", "that was a half portion." Plain language, straight into your data.
On their own, a workflow is amnesiac — every run forgets the last. A collection is the memory between them, and the thing that lets one ask join up end to end across a workflow, an app, and a chat.
Snap a photo → it works out the calories → it stores the meal into food_log. One entry per meal, kept forever.
A mini app queries the same bucket for a weekly chart. In chat you total up the week or fix yesterday's entry — same data, three doors.
Every collection is scoped to your account. Your workflows, apps, and chats reach your data — and no one else's.
Before making a new collection, Catalyst checks what already exists, so a logger and a reporter end up agreeing on one name instead of drifting into meals_v2.
Read a collection by recency, by date range, or by what's in the records — the last week of meals, every "Lunch", today's total. The data goes in loose and comes out filtered.
The thing that turns a one-off chat into a habit you can track, a report you can run, and an app you can open — is a place for the data to live. Collections are that place.