TL;DR: Wrote 18 paste-ready Substack issues in one ~2-hour session, covering Day 67 → Day 124 of an indie experiment. Each issue has YAML frontmatter with publish_target_date, body with TBD placeholders for actuals at publish time. Saves me from writing while behind, lets me focus weekly on data-fill rather than blank-page composition.
The pattern: skeleton + actuals
Each Substack issue has 2 phases:
Phase 1: Skeleton (write months ahead)
---
id: substack-37-day-90-milestone
title: Substack #37 - Day 90 Milestone (3-Month Cumulative Report)
publish_target_date: 2026-06-06
---
# Day 90 Milestone — 3-Month Cumulative Report
## Cumulative Day 1 → Day 90
(Fill in 2026-06-06 with actuals.)
### Apps
- Apps in App Store: [TBD]
- Total downloads: [TBD]
### Gumroad
- Total sales: [TBD] units
- Cumulative revenue: $[TBD]
[... full skeleton with all section headers and TBD placeholders]
## Day 91-180 plan
(Fill in 2026-06-06 — depends on Day 90 outcome.)
If Path A: ...
If Path B: ...
If Path C: ...
[... contingency plans for each scenario]
Phase 2: Data fill (10 min on publish day)
On 2026-06-06, I:
- Open
daily_briefing.pyto get current numbers - Replace
[TBD]with actuals - Replace
(Fill in YYYY-MM-DD with X.)with the X - Click publish (CDP automation does the rest)
10 minutes of focused work per issue at publish time, instead of 60-90 min of blank-page writing.
Why skeleton + actuals beats writing-on-the-day
1. Compounds editorial decisions over time
When I'm writing the 9-month plan in May, I have brain space for strategy:
- "Should #37 be the milestone issue or the post-milestone reflection?"
- "Does the Day 90 to Day 180 narrative arc make sense?"
- "Which 3 metrics matter most across the 9 months?"
If I waited to write each issue on its publish day, I'd be in the weeds + answering email + putting out fires. Strategic thinking dies.
2. Catches gaps in advance
Writing 18 skeletons exposed:
- 2 weeks where I had no clear narrative (filled with "mid-quarter check")
- 1 week that needed a contrarian counter (added)
- 1 week that needed a "what's next" hook (added)
I wouldn't have caught these writing one issue at a time.
3. Frees the publish day for data accuracy
When I publish on 2026-06-06, my entire focus is "are these numbers right?"
Not "what should I write?" + "are these numbers right?"
Data accuracy gets the focus it deserves.
The 18-issue catalog (real example)
substack-21-15-page-b2b-funnel.md (publish 2026-05-07) — LIVE
substack-22-90-min-iap-setup.md (publish 2026-05-07) — LIVE
substack-23-day-60-milestone.md (publish 2026-05-07) — LIVE
substack-24-day-67-week-1-data.md (publish 2026-05-14)
substack-25-day-74-week-2-data.md (publish 2026-05-21)
substack-26-day-81-week-3-data.md (publish 2026-05-28)
substack-27-day-88-week-4-data.md (publish 2026-06-04)
substack-28-day-90-milestone.md (publish 2026-06-06)
substack-29-day-95-week-1-after-milestone.md (publish 2026-06-11)
substack-30-day-102-week-2.md (publish 2026-06-18)
substack-31-day-109-week-3.md (publish 2026-06-25)
substack-32-day-116-week-4.md (publish 2026-07-02)
substack-33-day-180-milestone.md (publish 2026-09-04)
substack-34-day-200-q1-2027-mid.md (publish 2026-10-15)
substack-35-day-67-first-week-after.md (publish 2026-05-15)
substack-36-day-74-second-week.md (publish 2026-05-22)
substack-37-day-90-milestone.md (publish 2026-06-06)
substack-38-day-97-first-week-after-90.md (publish 2026-06-13)
Plus #39-#41 covering Day 104-124. Total: 21 issues spanning Day 60 → Day 124.
Time investment
Writing 18 skeleton issues in one session:
- Setup time: 30 min (template + 2 example issues)
- Per-issue draft: ~6 min (skeleton + TBD placeholders)
- Total: 30 + (6 × 18) = ~140 min
vs writing 18 issues one at a time:
- Setup: 30 min × 18 = 9 hours of context-switching
- Per-issue actual writing: 60-90 min
- Total: ~22-32 hours
Saves me 18-26 hours of writing time over 9 months.
Calendar collision detection
Skeleton-first lets me detect calendar collisions. For example:
- I want to publish a "Day 90 milestone" issue
- I also want a "first week after Day 90" issue
- Both need Day 90 actuals
Solution: Day 90 milestone publishes 2026-06-06 with full numbers; "first week after" publishes 2026-06-13 with delta-from-90 numbers.
If I'd written one at a time, I'd have written both with full numbers. Redundant.
Source
Full Substack content calendar template + 18 example skeletons + CDP publish automation:
AutoApp Dashboard ($39) includes:
- 18 paste-ready Substack issue templates (Day 60 → Day 124)
-
substack_publish.py(CDP automation) -
manifest_scan.py(frontmatter aggregator + calendar viewer)
If you're writing every Substack issue on the day of publish, you're missing the strategic editorial layer. 18 skeletons in 2 hours. 9 months of less stress.
Top comments (0)