Mini Kanban
A drag-and-drop board that lives inside a page, not a database.
Idea → Draft → Review → Published, with a calendar and a channel breakdown.
Exactly what Notion Arena sends to Notion, in order. Notion's data-source model forces two passes: relations, rollups and the formulas that read them need data_source_ids that only exist once the databases do.
/v1/pagesCreate the “content-calendar” container page under the page you chose
/v1/databasesCreate the “Ideas” database with 9 base properties
/v1/databases/{ideas_database_id}Read back Ideas to get its default data source id
/v1/data_sources/{ideas_data_source_id}Add 1 deferred properties to Ideas: relations (with resolved data_source_ids), then the rollups and formulas that read them
/v1/databasesCreate the “Pieces” database with 12 base properties
/v1/databases/{pieces_database_id}Read back Pieces to get its default data source id
/v1/data_sources/{pieces_data_source_id}Add 5 deferred properties to Pieces: relations (with resolved data_source_ids), then the rollups and formulas that read them
/v1/viewsCreate the “Editorial calendar” calendar view on pieces
/v1/viewsCreate the “Pipeline” board view on pieces
/v1/viewsCreate the “Covers” gallery view on pieces
/v1/viewsCreate the “By channel” chart view on pieces
/v1/viewsCreate the “Submit an idea” form view on ideas
/v1/viewsCreate the “Idea backlog” table view on ideas
/v1/viewsCreate the “Stalled” table view on pieces
/v1/pagesSeed 2 rows into Ideas so the views are not empty on first open (one request per row; Notion has no bulk insert)
/v1/pagesSeed 2 rows into Pieces so the views are not empty on first open (one request per row; Notion has no bulk insert)
/v1/pagesCreate the “Editorial home” page
/v1/blocks/{editorial_home_page_id}/childrenAppend 10 blocks of page body
2 steps cannot be scripted: Recurring template: weekly editorial slots; Automation: tell the reviewer when a draft is ready.
curl -X POST https://notionarena.vercel.app/api/install \
-H 'content-type: application/json' \
-d '{
"component": "content-calendar",
"mode": "plan"
}'
# add "token" and "parentPageId" and switch to "mode": "api" to install for realThe real property schemas, not a description of them. Every formula below is a Notion Formula 2.0 expression you can paste into a property by hand if you would rather not use the API at all.
ref: ideasn/aA: ship it · B: needs work · C: maybe · D: noHow-to · Contrarian · Data · Story +1Beginner · Practitioner · Decision makerSupport question · Sales call · Search term · Shower thoughtn/a→ pieces (two-way)n/an/an/aref: piecesn/aBrief → Drafting → Review → Scheduled +2Blog · Newsletter · LinkedIn · X +2Article · Tutorial · Case study · Changelog +1n/an/an/an/an/an/a→ ideasAwareness · Consideration · Conversionnumber_with_commasif(empty(prop("Publish date")), 0, dateBetween(prop("Publish date"), now(), "days"))if(and(prop("Status") == "Scheduled", not(empty(prop("Publish date"))), prop("Days to publish") <= 7), "🟢 Ready", "")if(and(prop("Status") != "Published", not(empty(prop("Last worked"))), dateBetween(now(), prop("Last worked"), "days") > 10), "⚠️ Stalled " + format(dateBetween(now(), prop("Last worked"), "days")) + "d", "")format(prop("Publish date"))Created through POST /v1/views, which shipped in March 2026 and is the reason provisioning a workspace from code finally works end to end.
on pieces
on pieces
on pieces
filter: {"property":"Status","status":{"equals":"Published"}}…
on pieces
on ideas
on ideas
on pieces
filter: {"property":"Stalled","string":{"contains":"Stalled"}}…
Appended with real block types (headings, toggles, callouts, to-dos, column lists) in chunks of 100, the Append block children limit.
Linked view of Pieces filtered to Ready, plus anything Stalled. Two lists, no third.
Embed the Editorial calendar view full-width. Publish dates are the contract; everything else is negotiable.
| Score | Meaning | Action |
| A | Specific audience, specific problem, we have proof | Brief this week |
| B | Right topic, thin evidence | Find the data or the story first |
| C | Interesting to us, unclear to a reader | Park it |
| D | We have said it, or nobody needs it | Delete it |
Every recipe ships with its manual steps written out, because pretending the API covers everything is how people end up with a half-built workspace. These are real Notion limitations, quoted from the API reference.
Recurring database templates (daily/weekly/monthly) are configured in the app on the template's ••• menu; the API can create pages from a template but cannot schedule recurrence.
Database automations have no public API surface. They are configured per-database in the Notion app under ••• → Automations.
A content pipeline with an Ideas database, a Pieces database holding channel, publish date and status, and a calendar view that doubles as the editorial schedule. Includes the recurring weekly template that seeds next week's slots.