# ai-lab-content-projects-table-concept awesome — two tables will work great: # Airtable Schema: **Content Projects** + **Content** ## Table 1 — **Content Projects** Represents the whole initiative spawned by an ask (often many pages + media). **Fields** * **Project Name** (Primary, Single line) * **Project Status** (Single select) * New Ask → Evaluate → Plan/Map → In Execution → In Review → Ready to Publish → Published → Archived * **Priority** (Single select): P0 / P1 / P2 * **Requestor / Stakeholders** (Linked to **People** or text for now) * **RACI** * Responsible (Link to People) * Accountable (Link) * Consulted (Link) * Informed (Link) * **Go-Live Window** (Date range) * **Content Items** (Link to **Content**, allow multiple; show lookup of each item’s Status/Type) * **% Complete (rolled up)** (Rollup of **Content.% Complete**, `AVERAGE(values)`) * **Blocked Items (count)** (Rollup of **Content** where **Status = Blocked**, `COUNTALL(values)`) * **Risks / Decisions / Notes** (Long text) * **Architecture / Plan Doc** (URL to HackMD/GDoc/Figma/Miro) * **Publishing Checklist (Project)** (Checkboxes or multi-select; optional) **Useful Views** * **Kanban: Project Status** * **Dashboard: Health** (filter where `Blocked Items > 0` OR `% Complete < 100 AND Go-Live < today+7`) * **Timeline: Go-Live** --- ## Table 2 — **Content** Represents a single piece of content (page, image set, video, PDF, post, etc.) with its own lifecycle. **Fields** * **Title** (Primary) * **Project** (Link to **Content Projects**) * **Type** (Single select): Page / Section Index / News Post / PDF Download / Image Set / Single Image / Video / Audio / Social Asset / Data Viz / Other * **Status** (Single select — combined “Stage + RACI” lifecycle) * New / Intake * Evaluate (content inventory for this item) * Plan (outline/placement/metadata decided) * Drafting / Production * **Needs Input / Blocked** * Internal Review * Leadership Review * Ready to Publish * Published * Archived * **Responsible (Author/Producer)** (Link to People) * **Accountable (Editor/Owner)** (Link to People) * **Consulted / Informed** (Links) * **Source / Draft URL** (URL to HackMD, GDoc, Figma, Frame.io, etc.) * **Target URL / Slug** (Short text or URL) * **Asset Location** (Multi-URL: CDN bucket, Airtable attachment, Drive path) * **Due Date** (Date), **Review By** (Date), **Publish By** (Date) * **Effort (pts)** (Number) — t-shirt size or story points * **SEO / Metadata** (Group of fields; show/hide when Type = Page/Post) * Slug, Title Tag, Meta Description, Canonical, OG Title/Desc, OG Image * **Accessibility / Compliance** (Group; vary by Type) * Pages: Headings valid, internal links checked * Images: Alt text, dimensions, optimized * Video: Captions, transcript, loudness, aspect, thumb * PDF: Tagged PDF, fonts embedded, title, language set * **QA** (Checkbox): Passed * **Change Log** (Long text) * **% Complete** (Formula; simple heuristic by Status) ```text IF(Status="Published",100, IF(Status="Ready to Publish",90, IF(Status="Leadership Review",80, IF(Status="Internal Review",70, IF(Status="Drafting / Production",45, IF(Status="Plan",25, IF(Status="Evaluate",15,0))))))) ) ``` * **Blocked Reason** (Long text; only when Status = Blocked) **Useful Views** * **Kanban: Status** (day-to-day) * **Blocked** (Status = Needs Input / Blocked) * **Ready to Publish** (Status = Ready to Publish AND QA checked) * **By Type** (grouped) * **By Project** (grouped) * **Due Soon** (Due/Publish within 7 days) --- ## Short-Label Variants (nice for Kanban chips) * **Projects**: Ask → Evaluate → Plan → Execute → Review → Ready → Published → Archived * **Content**: Intake → Evaluate → Plan → Draft → Blocked → Int. Review → Stakeholder → Ready → Published → Archived --- ## Conditional Checklists (by Type) Use a **single “Checklist” long text** with templates via automation (or multiple checkboxes with conditional visibility): **Page / Post** * [ ] Outline approved * [ ] Links updated & validated * [ ] SEO fields set (title/meta/canonical/OG) * [ ] Accessibility headings pass * [ ] Images compressed & alt text present * [ ] Final copy edit **Image / Image Set** * [ ] Alt text written * [ ] Dimensions / crop spec * [ ] WebP/AVIF exported * [ ] Thumbnail/social image * [ ] License/credit stored **Video** * [ ] Captions (human-checked) * [ ] Transcript stored * [ ] Loudness normalized * [ ] Thumbnail selected * [ ] Player embed tested * [ ] License/credit stored **PDF / Download** * [ ] Tagged PDF accessibility * [ ] Fonts embedded * [ ] Title/Subject/Language set * [ ] File size optimized * [ ] Version/date in footer --- ## Automations (lightweight, high-leverage) * **Content → Status = Ready to Publish** * Notify **Accountable** in Slack/Email, include Target URL + checklist * If **QA** not checked, post reminder to run QA * **Any Content → Status = Blocked** * Ping **Responsible + Accountable**, post **Blocked Reason** * **All linked Content = Published** * Set **Project Status → Published** * **New Content created** * If **Type** = Page/Post, create empty SEO fields + checklist template * If **Type** = Video, create caption/transcript tasks * **Due/Publish reminders** * 48h before **Publish By**, if not Ready/Published, notify **Accountable** --- ## Why this works for mixed media * **One Content table** handles pages **and** assets; **Type** governs which fields/checklists matter. * Project metrics stay clean via rollups; you avoid mixing project-level planning fields into every asset. --- ## Optional Extras * **People** table (centralize contacts; enables RACI links) * **Taxonomies** (multi-select): Audience, Topic, Campaign, Site Section * **Interfaces**: * **Publishing Queue** (Ready to Publish + QA) * **Project Health** (progress bar, blockers, dates) * **My Work** (Assigned to me, next 7 days) --- If you’d like, I can give you: 1. a **CSV starter** for both tables (import-ready), or 2. an **Airtable JSON schema** you can paste into a base-builder script.