Typed schema
Describe documents in code. Editors get a form, the API gets types.
chronoskin stores what you publish as structured documents and answers any question about them in one query, from the web site to the shop shelf.
Queryfrom article where topic == "field-notes" and published < now() order published desc take 2 { title, "author": author->name, "words": count(body) }
Result / 38 ms / 2 documents[ { "title": "Mapping a river in winter", "author": "Mira Kovac", "words": 1840 }, { "title": "What the tide tables leave out", "author": "Jon Oyelaran", "words": 2212 } ] // cached at the edge for 60 s
Each part works alone and all of them read the same documents. Nothing is copied between systems.
Full feature matrixDescribe documents in code. Editors get a form, the API gets types.
Filter, join and shape the answer in one request, however deep the references go.
Answers are cached in 34 cities and dropped the moment a document changes.
Everyone types in the same document. Each field shows who is in it.
Every change to every field is kept for a year and can be put back.
Tell a build, a search index or a shop when a matching document is published.
The API is versioned by date. A query pinned to a version keeps its answer.
A product may demand a category without the category listing its products.
Median answer time in the southern regions fell from 61 to 40 ms.
Find who changed a price, and when, without opening the document.
Each answer says how many documents it read and what it cost.
Every capability of chronoskin and the plan it starts in, line by line.
Limits are per project and reset on the first of the month. Prices are in euros, without tax.
| Capability | Free | Team | Scale | Included |
|---|---|---|---|---|
| Documents | + | + | + | 100,000 |
| API requests a month ?Cached answers are not counted, only queries that reach the store. | + | + | + | 250,000 |
| Datasets | + | + | + | 2 |
| Field history, days | + | + | + | 3 |
| Scheduled publishing | . | + | + | 0 |
| Roles per field | . | + | + | 0 |
| Single sign-on | . | . | + | 0 |
| Private edge region | . | . | + | 0 |
What counts, what does not, and what happens at the edge of a plan.
Nothing stops. Reads keep working, you get a message at 80% and at 100%, and the plan is settled at the end of the month.
A draft and its published version count as one document.
Yes, on Team and Scale. A move copies the dataset, then switches reads over.
For 30 days, so that a change of plan never deletes anything at once.
The types of the production dataset and the fields each one holds.
Rules run when a document is published, never while it is typed.
A type lists what a document is, not how a page shows it.
Write the queries the site will ask before the fields. If nothing asks for subtitle, the field is a habit and can go.
reading_time has no form control.Changes to a type are a migration, and each one is kept in the history.
type article = { title: string author: ref<author> body: text // with figure }
2,184 documents still fill it. Their values stay in the history for a year, then they are gone.
A change to a type that touches stored documents will be listed here before it runs.
Plan a migrationTell us what you publish and where it has to appear. An engineer answers within one working day.
Free projects need no call. Leave the note empty and the project opens at once.
The form was not sent. Check the work e-mail address below.
I moved a newsroom of 40 editors onto chronoskin last year. Bring the awkward content first.
# or start without us npx chronoskin init field-notes-prod npx chronoskin import ./sample.ndjson