A single-file AI content factory that runs inside your Claude account. Research what's trending → generate voice-locked posts → refine drafts in a playground → schedule them on a calendar → push finished cards to Notion. One HTML file, no install, no API keys, no backend.
- Social media managers running a posting calendar for a brand or exec — the calendar view shows exactly which days are covered and which need content, and pushes finished cards straight into your Notion workflow.
- Ghostwriters who write as someone else — the voice codex locks the client's voice into every generation, and the angle system (contrarian, data-led, founder story, myth-buster…) keeps a week of posts from sounding the same.
- Founders building a personal brand — run it yourself: scan your niche's last 7 days, pick a topic, get a 3-post pack (X + LinkedIn + visual brief) in your own voice.
- Content agencies — duplicate the file per client, retrain the skills files per voice, and every writer works from the same system.
This copy ships configured as a live example: the founder-brand system for Shubhendu Sharma (Dabba Network), targeting a "web2.25" audience — tech-curious professionals, no crypto jargon. Retrain it to any client in the TRAINING tab.
- Download
index.htmlfrom this repo. - Make sure your Notion connector is enabled on claude.ai (Settings → Connectors).
- Attach
index.htmlto a claude.ai chat and say: "Run this as an artifact, don't change anything." - That's it. Research, generation, and Notion sync/push all run on your own Claude subscription.
To point it at YOUR Notion: create (or pick) a Notion calendar database, get its data source ID, and change one line near the top of index.html:
const NOTION_DATA_SOURCE = "your-data-source-id-here";Card titles in the database must start YYYY-MM-DD A — (A/B/C = posting slot) — the calendar's coverage view is parsed from titles.
├── index.html ← the entire app (this is the product)
├── README.md ← you are here
└── skills/ ← the "training" files
├── voice-codex.SKILL.md ← how the voice writes (rules extracted from real posts)
├── audience-web25.SKILL.md ← who we write for, banned vocabulary
├── angles.SKILL.md ← the 10 treatments a writer chooses from
├── visual-rules.SKILL.md ← what graphics are allowed (nothing tacky)
└── card-template.SKILL.md ← the 7-section Notion card format
- 01 · RESEARCH — scan the last 7 days (news + X + LinkedIn chatter). Queue topics.
- 02 · CREATE — single topic or batch from the queue. Pick an angle (or AUTO). Optional direction note.
- 03 · PLAYGROUND — edit anything inline; regenerate any slot, with or without a steering note.
- 04 · CALENDAR & PUSH — sync Notion coverage, see done days + next open days, click drafts onto dates, move them around (↩ Undo / Cmd+Z if you misplace), push. Every push confirms the exact date and weekday.
- 05 · TRAINING — the brain. Touch only when the voice/audience/rules change.
The app ships with all five skills embedded as defaults, editable live in the 05 · TRAINING tab (takes effect on the next generation, no restart). The skills/*.md files are the canonical, version-controlled copies — when you retrain in the tab, mirror the change into the matching .md file so the repo stays the source of truth.
- Everything persists. Topics, drafts, queue, and the synced calendar are saved in your browser's local storage and restored on reload. Push to Notion or Download Markdown for permanent copies.
- Runs only inside claude.ai. Opened as a plain local file, the interface works (layout, scheduling, undo, markdown export) but AI features politely refuse — by design, so no keys ever live in the file.
- Notion post STATUS (Copy Stage / LIVE) isn't read (Notion plan gating on query APIs); coverage is parsed from card titles. Cards created outside the app still exist in Notion, they just need the title format to appear in the coverage grid.
- One operator per Claude login. Give each writer their own.
- Tiny hosted backend with Notion OAuth → "Connect Notion" button, works deployed anywhere
- Auto-generation of each card's graphic from its visual brief
- Performance loop: pull post metrics, promote winning hooks into the skills files