Updated 26-09-2026
Content System / Newsletter

Newsletter Planning

Paused until further notice (AL, 25/09/2026)

Monstore
Tuestore
Wedstore
Thustore
Fristore
Satstore
Sun1 send
06:30 UTC, every day
Dispatch pass (worker)
Dispatch pass (worker)
Dispatch pass (worker)
Dispatch pass (worker)
Dispatch pass (worker)
Dispatch pass (worker)
Dispatch pass, schedules the send (worker)
2:00 PM Vietnam time
Write and store (stock)
Write and store (stock)
Write and store (stock)
Write and store (stock)
Write and store (stock)
Write and store (stock)
Weekly newsletter, Kit broadcast
For Claude
Current state, 26/09/2026 (read first).
  • Cadence halved on every EO planner, AL 26/09/2026 (translated: "we must halve the number of EO posts per day, on every planner"), for every new scheduling, posts already scheduled kept as they are. This page is not changed: the newsletter process is OUT, nothing is sent.
  • Every band on this page reads Vietnam time (Asia/Ho_Chi_Minh, +07:00); since 22/09/2026 nothing stays on Paris time, Pinterest included (AL).
  • The pause shown at the top of the page means the process is OUT: nothing can be sent. Every row of the Newsletter Planner is Validation No, so the daily dispatch pass schedules nothing, and the NL2 broadcast is a draft in Kit.
  • The grid above is the set slot, unchanged; it applies again only when AL lifts the pause.
Rules and mutable values.
  • Mutable values for the Newsletter channel (page created 2026-09-06), daily planner, one send a week, seven days across, two bands down: cadence, send slot, dispatch pass, stock rule. Doctrine and executable both live in the A'6 runbook (Notion), the source of truth; no grammar page is fetched (AL doctrine 05/09/2026). This page holds the mutable values only and is fetched live by the A'6 runbook at execution time. Never hardcode any value of this page into a prompt. Rows come from the Newsletter Planner (Notion), sent through Kit.
  • Time. A row date is stamped +07:00, for example 2026-09-21T15:30:00+07:00; the hours printed on the grid do not change. A History line that reads Paris, CEST or Eastern time for a band is superseded.
  • The worker passes every morning, the broadcast leaves once, Sunday afternoon. Every other day feeds the stock: one text per long form, written and stored, never sent on the day it is written (content stored, AL 02/09/2026).
  • Where the slot comes from. Send: Sunday 2:00 PM Vietnam time since 20/09/2026, day set by AL 17/09/2026 (was Saturday 2:00 PM Paris, AL decision 09/08/2026). The worker reads the send date from the Notion row, any weekday works; only this planner value changed, no worker code.
  • Dispatch: eo-backup-worker, cron 30 6 * * * in wrangler.toml, handler src/newsletter-dispatch.js, exposed as newsletter-dispatch on /crons. Each pass reads the planner, keeps every row with Validation = Yes and no Kit Broadcast ID, and creates a scheduled Kit broadcast at the date written on the row, one hour ahead at least. A row validated after the Sunday morning pass misses its slot unless Run now is pressed on /crons at least one hour before 2:00 PM.
  • Cadences on every planner page set by AL 17/09/2026, then halved by AL on 26/09/2026 for every new scheduling, posts already scheduled kept as they are (Newsletter out, Substack on hold and Lifestyle at one post every 2 weeks were left as they stood); every former "slot to set" band has a one hour window since 17/09/2026.
  • 18/09/2026, Backup retired as a status (AL). There must be no Backup in any planner. No planner carries a Backup option and no planner gains one, so the proposal to add the option to Substack, Newsletter, Carousels, Quotes and Lifestyle is answered no. A spare leaves the working planner for a BACKUP PLANNER of its own format; those planners are built next and nothing is moved before they exist. Measured the same day and left untouched: 155 rows still sit in Status Backup (Shorts 84, Threads 27, X 21, Pinterest 20, Carousels 2, LinkedIn 1), 145 real spares and 10 dead Shorts rows. No Status was changed by this pass.
  • Notion holds the rows. eo-backup-worker content-posts-sync copies the 11 Notion planner bases into D1 content_posts every hour (cron 15 * * * *, Run now on /crons). The publication tracker and the "This week in Notion" table under each planner grid read D1 through /api/content-posts; the browser never calls Notion. A Notion row without a Code is not copied, so it shows nowhere here.
  • Long teasers (61 to 90 s) go only to Instagram and Threads.
  • Short types are chosen by the Shorts creation runbook and stored in the Notion Shorts planner, select property Short type (added 17/09/2026); the Shorts page shows only how many shorts, on which days, in which bands.
  • LinkedIn is posted from the Elite Outsiders page since 17/09/2026 (before: the Alexandre Corne personal account).
  • Deletions (soft delete since 17/09/2026): when AL says delete, the row is deleted in Notion, and the next hourly sync marks every D1 line whose Notion page is archived, in the trash or gone from its base as status = deleted with a deleted_at stamp (migration 0058, previous status kept in status_before_delete). The rows stay in content_posts for history, /api/content-posts hides them unless ?include_deleted=1, so they leave the tracker and the week tables. A page restored from the Notion trash comes back on the next run.

History, oldest first. Older decisions, measurements and superseded values, kept verbatim, never deleted. Where a line below disagrees with the current state or the rules above, the current state and the rules win.

17/09/2026: send slot moved to Sunday 2:00 PM (Vietnam time since 20/09/2026) (AL decision 17/09/2026, newsletters V12 to V16, one per week in video order). Dispatch unchanged: daily pass 06:30 UTC, schedules the Kit broadcast at the row date.
18/09/2026, night: the two A'6 runbooks (creation 3d2282246571813ba02bf29dbfcd2a51, posting 3da28224657181509b7efe8d56baed17) still said Saturday 14:00 Paris in fourteen places while this page says Sunday. All fourteen were corrected to SUNDAY 14:00 Paris; the lines of the 09/08/2026 decision are kept as history. Five rows are dated Sundays 20/09, 27/09, 04/10, 11/10 and 18/10/2026; the next free Sunday is 25/10/2026. NL6, NL7 and NL8 of August are still dated in the past and were not touched.
20/09/2026, AL: every EO planner band is VIETNAM time (Asia/Ho_Chi_Minh, +07:00), generalised to every format on 21/09/2026. The hours printed on these pages do not change; what changes is the offset written on a row: a Posting Date is stamped +07:00, for example 2026-09-21T15:30:00+07:00. Pinterest stays in Eastern time, which is an audience constraint and not a preference. Dates already written are NOT moved (AL, 21/09/2026): every row keeps its absolute hour until AL says otherwise, because re-stamping them would move real publications. Only the 69 V16 shorts rows were re-stamped, by AL, on 20/09/2026. Any line below this one that still reads "Paris time" for a BAND is history and is superseded here.
21/09/2026: This page: send slot Sunday 2:00 PM Vietnam time (the clock moved with the zone on 20/09/2026, so the real send is five hours earlier than it was in Paris time); the Kit broadcast is scheduled by the daily dispatch pass at the row date.
22/09/2026, AL: nothing stays on Paris time, Pinterest included (this supersedes the 20/09/2026 line above). Every future row that was not already sent to PostFast was re-stamped that day, same wall clock, offset +07:00: 204 rows across 8 planners plus 78 Pinterest rows. The 13 pins already scheduled in PostFast keep their old instant, AL let that pass. The n8n workflows and this site now read Asia/Ho_Chi_Minh.
26/09/2026, AL: cadence halved; posts already scheduled kept as they are. (translated: "we must halve the number of EO posts per day, on every planner") Newsletter left unchanged: process OUT since 25/09/2026, set slot kept as it stood (one send a week, Sunday 2:00 PM).