Indie App Marketing Pipeline
A zero-LLM daily marketing system for indie iOS developers. Write your angles once, then
a weekly planner + daily publisher handle the rest — generating platform-native copy and
scheduling posts to Postiz automatically.
What the Pipeline Does
- 1. Weekly Planner — reads your content bank, picks unused angles, applies
platform-specific templates, and writes a
weekly-plan-YYYY-MM-DD.json file.
No LLM required. Run once per week (or whenever you add new angles).
- 2. Daily Publisher — runs each morning (cron at 7 AM), reads that day's entries
from the weekly plan, and schedules them to Postiz via its public API.
- Text posts (X, Facebook) are scheduled directly.
- TikTok/YouTube Shorts trigger your video-gen script (or skip with
--text-only).
The only time you need an LLM is to write new content bank angles when the bank runs dry.
Supported Platforms
| Platform | Post type | Volume |
|---|
| TikTok | Video (requires separate video-gen script) | 3/day |
| YouTube Shorts |
Video (reuses TikTok video) | 3/day |
| X / Twitter | Text tweet, 280-char trimmed | 2/day |
| Facebook | Text brand post | Mon/Wed/Fri |
Architecture
CODEBLOCK0
Template system — content-templates.json defines patterns per platform (hot-take,
question-hook, relatable-meme, etc.). The planner cycles through patterns to avoid
repetition. Variables: {hook}, {insight}, {cta}, {appName}, {appHandle},
{hashtags}.
Posting history — posting-history.json tracks which angles have been posted so
the planner never repeats content until the bank is exhausted.
Setup
1. Accounts Needed
- - Postiz — self-hosted or cloud (postiz.com). Free tier works.
Connect your TikTok, YouTube, X, and Facebook accounts in the Postiz UI.
Note the integration IDs for each platform.
- - Social accounts — TikTok creator, YouTube channel, X account, Facebook page.
2. Run the Setup Script
CODEBLOCK1
The script will:
- - Create the directory structure (
plans/, logs/, content-bank.json, etc.) - Prompt for your Postiz URL, API key, and platform integration IDs
- Create a sample content bank with 10 starter angles
- Create a
.env file
3. Configure Your App
Edit config.json (created by setup.sh):
CODEBLOCK2
4. Edit Your Content Bank
Fill content-bank.json with angles for your app. See assets/sample-content-bank.json
for the format and references/content-bank-guide.md for strategy.
Each angle needs:
CODEBLOCK3
5. Run the Weekly Planner
CODEBLOCK4
6. Run the Daily Publisher
CODEBLOCK5
7. Schedule the Daily Publisher (macOS cron)
CODEBLOCK6
Or use a launchd plist for more control.
Customization
Posting Schedule
Edit the VISUAL_SCHEDULE, X_SCHEDULE, and FB_SCHEDULE arrays in weekly-planner.js.
Times are in EST by default — change toISOEst() to use your timezone offset.
Default schedule:
| Slot | Platform | Time (EST) |
|---|
| tiktok-1 | TikTok | 08:00 |
| youtube-short-1 |
YouTube | 08:15 |
| tiktok-2 | TikTok | 13:00 |
| youtube-short-2 | YouTube | 13:15 |
| tiktok-3 | TikTok | 18:00 |
| youtube-short-3 | YouTube | 18:15 |
| x-1 | X | 10:30 |
| x-2 | X | 16:00 |
| fb-text-1 | Facebook | 12:00 (Mon/Wed/Fri) |
Content Templates
Edit assets/content-templates.json to customize the copy patterns. The planner
rotates through all patterns for each platform. See the template variable reference
in references/platform-strategy.md.
Facebook Posts
Facebook posts come from a separate fb-brand-content-bank.json (richer, longer-form
content). The weekly planner picks from this bank for Mon/Wed/Fri slots.
See references/content-bank-guide.md for how to structure these.
Angles Per Day
Change ANGLES_PER_DAY (default: 3) in weekly-planner.js to post more or fewer
video angles per day.
Files Reference
CODEBLOCK7
References
独立应用营销管线
一个面向独立iOS开发者的零LLM日常营销系统。只需编写一次角度,
周计划器+每日发布器会处理其余工作——自动生成平台原生文案并
将帖子排期至Postiz。
管线功能
- 1. 周计划器 — 读取内容库,选取未使用的角度,应用
平台特定模板,生成weekly-plan-YYYY-MM-DD.json文件。
无需LLM。每周运行一次(或添加新角度时运行)。
- 2. 每日发布器 — 每天早上7点(cron定时)运行,读取周计划中
当天的条目,通过Postiz公共API进行排期。
- 文字帖子(X、Facebook)直接排期。
- TikTok/YouTube Shorts触发视频生成脚本(或使用--text-only跳过)。
唯一需要LLM的时刻是内容库角度用尽时编写新角度。
支持平台
| 平台 | 帖子类型 | 数量 |
|---|
| TikTok | 视频(需单独的视频生成脚本) | 3/天 |
| YouTube Shorts |
视频(复用TikTok视频) | 3/天 |
| X / Twitter | 文字推文,280字符截断 | 2/天 |
| Facebook | 文字品牌帖子 | 周一/三/五 |
架构
content-bank.json ← 你的角度(每个角度的钩子+文本+说明)
│
▼
weekly-planner.js ← 选取角度,渲染模板 → weekly-plan.json
│
▼
weekly-plan-YYYY-MM-DD.json
│
▼
daily-publisher.js ← 读取今日帖子 → Postiz API → 实时排期
│
▼
Postiz (postiz.com) ← 缓冲并按计划发布到各平台
模板系统 — content-templates.json定义了各平台模式(热评、
问题钩子、共鸣梗图等)。计划器循环使用模式以避免重复。
变量:{hook}、{insight}、{cta}、{appName}、{appHandle}、
{hashtags}。
发布历史 — posting-history.json追踪已发布的角度,
确保计划器在内容库耗尽前不会重复内容。
设置
1. 所需账户
在Postiz界面中连接你的TikTok、YouTube、X和Facebook账户。
记录各平台的集成ID。
- - 社交账户 — TikTok创作者账户、YouTube频道、X账户、Facebook主页。
2. 运行设置脚本
bash
cd /path/to/your-app-marketing/
bash skills/indie-app-marketing-pipeline/scripts/setup.sh
脚本将:
- - 创建目录结构(plans/、logs/、content-bank.json等)
- 提示输入Postiz URL、API密钥和平台集成ID
- 创建包含10个起始角度的示例内容库
- 创建.env文件
3. 配置应用
编辑config.json(由setup.sh创建):
json
{
app: {
name: YourAppName,
handle: @YourHandle,
appStoreUrl: https://apps.apple.com/app/yourapp,
websiteUrl: https://yourwebsite.com,
topicCategory: productivity
},
postiz: {
apiKey: $POSTIZAPIKEY,
integrationIds: {
tiktok: your-tiktok-integration-id,
youtube: your-youtube-integration-id,
x: your-x-integration-id,
facebook: your-facebook-integration-id
}
}
}
4. 编辑内容库
用应用的角度填充content-bank.json。格式参考assets/sample-content-bank.json,
策略参考references/content-bank-guide.md。
每个角度需要:
json
{
id: unique-kebab-case-id,
hook: 一句有力的钩子句子,
texts: [
视频脚本开场白,
第二拍,
第三拍/洞察,
结尾
],
caption: 带话题标签的TikTok/YouTube说明
}
5. 运行周计划器
bash
node scripts/weekly-planner.js --dry-run # 预览
node scripts/weekly-planner.js # 写入计划
node scripts/weekly-planner.js --week 2026-04-07 # 指定起始日期
node scripts/weekly-planner.js --days 3 # 仅计划3天
6. 运行每日发布器
bash
node scripts/daily-publisher.js --dry-run # 预览今日
node scripts/daily-publisher.js # 正式发布
node scripts/daily-publisher.js --text-only # 跳过视频,仅排期文字
node scripts/daily-publisher.js --skip-past # 跳过已过时的帖子
7. 排期每日发布器(macOS cron)
bash
打开crontab
crontab -e
添加行(每天7:00运行):
0 7
* cd /path/to/your-app-marketing && node scripts/daily-publisher.js >> logs/cron.log 2>&1
或使用launchd plist以获得更多控制。
自定义
发布排期
编辑weekly-planner.js中的VISUALSCHEDULE、XSCHEDULE和FB_SCHEDULE数组。
时间默认使用EST——修改toISOEst()以使用你的时区偏移。
默认排期:
| 时段 | 平台 | 时间(EST) |
|---|
| tiktok-1 | TikTok | 08:00 |
| youtube-short-1 |
YouTube | 08:15 |
| tiktok-2 | TikTok | 13:00 |
| youtube-short-2 | YouTube | 13:15 |
| tiktok-3 | TikTok | 18:00 |
| youtube-short-3 | YouTube | 18:15 |
| x-1 | X | 10:30 |
| x-2 | X | 16:00 |
| fb-text-1 | Facebook | 12:00(周一/三/五) |
内容模板
编辑assets/content-templates.json以自定义文案模式。
计划器为每个平台轮换所有模式。模板变量参考见references/platform-strategy.md。
Facebook帖子
Facebook帖子来自独立的fb-brand-content-bank.json(更丰富、更长形式的内容)。
周计划器在周一/三/五时段从此库选取。
结构方法见references/content-bank-guide.md。
每日角度数
修改weekly-planner.js中的ANGLESPERDAY(默认:3)以增加或减少
每日视频角度数量。
文件参考
scripts/
weekly-planner.js ← 生成周计划
daily-publisher.js ← 将今日帖子排期至Postiz
setup.sh ← 首次设置
assets/
content-templates.json ← 平台文案模式
sample-content-bank.json ← 10个起始角度
references/
content-bank-guide.md ← 如何编写和维护角度库
platform-strategy.md ← 平台特定最佳实践
参考