{"slug": "launch-center-prompt-template-using-the-sites-plugin-in-codex", "title": "Launch Center prompt template using the Sites Plugin in Codex", "summary": "A developer created a prompt template for a \"Launch Center\" app using the Sites Plugin in Codex, designed to build and deploy internal launch operations tools. The template integrates multiple plugins—including Sites, Build Web Apps, Google Drive, Slack, and Notion—to coordinate launch readiness, track deliverables, and publish daily updates for fast-moving teams. The resulting app features an editable dashboard, deliverables tracker, decision log, and blockers board, with persistence and source linking for privacy-safe collaboration.", "body_md": "Launch Center prompt template using the Sites Plugin in Codex\n\nPrompt: Launch Center\n\nUsing the Sites Plugin in Codex\n\n```\nUse [@sites](plugin://sites@openai-bundled) and [@build-web-apps](plugin://build-web-apps@openai-curated) to build and deploy an internal launch operations app called **[APP_NAME]** for **[PRODUCT_OR_LAUNCH_NAME]** on **[LAUNCH_DATE_OR_WINDOW]**. This app is for **[PRIMARY_AUDIENCE]** who need to coordinate launch readiness, track deliverables, resolve blockers, capture decisions, and publish daily updates. The app should be more useful than a static launch doc because it is editable, filterable, source-linked, privacy-safe, and designed for fast-moving launch teams.\n\nUse [@google-drive](plugin://google-drive@openai-curated) to find source docs, briefs, launch plans, messaging docs, checklists, blog drafts, landing-page copy, enablement materials, FAQs, approved launch guidance, and release notes related to **[PRODUCT_OR_LAUNCH_NAME]**. Use [@slack](plugin://slack@openai-curated) to find relevant launch, GTM, PMM, product, support, partner, and communications threads in channels like **[#CHANNEL_NAME_1]**, **[#CHANNEL_NAME_2]**, **[#CHANNEL_NAME_3]**, and **[#CHANNEL_NAME_4]**. Use [@notion](plugin://notion@openai-curated) if there are relevant launch pages, planning docs, checklists, or source-of-truth project notes.\n\nUse the **Build Web Apps** plugin for frontend structure, responsive rigor, interaction states, and browser-based QA. Use the **design-taste-frontend** skill to refine the existing product surface without turning it into a marketing page: consolidate the palette, improve hierarchy, keep the information density useful, reduce generic card-heavy styling, and preserve the practical launch-operations workflow.\n\nUse the **Browser** plugin, specifically the in-app browser, to render the app locally, inspect it visually, apply browser review comments, and verify desktop and mobile behavior before finalizing. Use the **GitHub** plugin and local Git to create a dedicated repo, commit the final app, and report the commit hash. Use the **Sites** plugin to configure hosting, save a version, deploy it, inspect deployment status, and report the production URL and access mode.\n\nBase the app content on the discovered resources. Prefer approved launch briefs, PMM docs, product guidance, and enablement materials over informal Slack discussion. Use Slack threads mainly to identify blockers, open questions, ownership gaps, rollout caveats, and launch-day updates. If Slack conflicts with approved source material, preserve the uncertainty and mark the relevant item as needing review.\n\nUse these source names as search targets. Replace these placeholders with the actual doc, deck, page, or thread names:\n- [PRIMARY_CAMPAIGN_BRIEF_NAME]\n- [LAUNCH_PLAN_DOC_NAME]\n- [MESSAGING_BRIEF_NAME]\n- [BLOG_DRAFT_OR_ANNOUNCEMENT_NAME]\n- [LANDING_PAGE_COPY_DOC_NAME]\n- [GTM_ENABLEMENT_DOC_NAME]\n- [LAUNCH_CHECKLIST_DOC_NAME]\n- [FAQ_OR_OBJECTIONS_DOC_NAME]\n- [DOCS_UPDATE_OR_RELEASE_NOTES_NAME]\n- [XFN_LAUNCH_GUIDE_NAME]\n- [LAUNCH_STATUS_THREAD_OR_CHANNEL_NAME]\n\nCreate a new folder and git repo named **[REPO_NAME]**.\n\nUse the product/site name **[APP_NAME]** prominently in the sidebar brand block.\n\n## App Goal\n\nBuild a practical internal launch operations tool, not a public marketing page. The app should help **[PRIMARY_AUDIENCE]** understand launch readiness in under one minute, update the source of truth without editing code, and assemble a daily launch note from live tracker state.\n\nThe final app should include:\n- A compact overview dashboard\n- Editable launch title and status\n- A clear in-app editing surface for privacy-sensitive labels, names, links, and placeholder values\n- Deliverables tracker with filters and inline editing\n- Editable launch checklist\n- Decision log and open questions\n- Blockers board\n- History-first daily updates\n- Working add and edit flows\n- Local or Sites-backed persistence\n- Source links where available\n- Clear empty states\n\n## Layout And Navigation\n\nUse a persistent internal-tool layout:\n- Left sidebar with:\n  - compact cobalt app mark\n  - title: **[APP_NAME]**\n  - subtitle: `Launch operations`\n  - navigation: Overview, Deliverables, Decisions, Blockers, Daily Update\n  - an icon, label, and short helper caption for each navigation item\n- Main content area with:\n  - compact sticky top header\n  - editable launch name, default: **[LAUNCH_DISPLAY_NAME]**\n  - small `Edit` action next to the launch name\n  - green **[STATUS_LABEL]** chip below the launch name\n  - date-range control: **[DATE_RANGE]**\n  - working `Share` button that copies the current URL and changes to `Copied`\n\nAdd an unobtrusive `Edit launch details` control that opens a compact drawer, modal, or panel. This panel should make it easy for a non-developer to replace privacy-sensitive values, names, source labels, links, and placeholders directly in the UI without editing source code.\n\nImportant UI requirements:\n- Do not add a marketing hero.\n- Do not add an inert `Launch settings` item.\n- Do not add a fake profile footer such as `PMM Team / Synced database`.\n- Do not add an overflow menu.\n- Do not render dropdown carets on controls that do not open menus.\n- Do not use decorative gradients, glassmorphism, dark mode, or decorative imagery.\n- Give side panels enough padding to avoid cramped content.\n- Desktop and mobile layouts must not clip, overlap, or introduce horizontal page overflow.\n\n## Overview\n\nCreate a concise overview dashboard.\n\nDesign this page so **[PRIMARY_AUDIENCE]** can understand launch readiness in under one minute.\n\nUse a responsive row of six compact metric cards:\n- Overall status\n- Days to launch\n- Deliverables readiness\n- Decisions readiness\n- Active blockers\n- Team updates\n\nUse screenshot-ready seed values:\n- Overall status: `On Track`\n- Days to launch: `1`\n- Deliverables: around `89%`\n- Decisions: around `100%`\n- Blockers: `1`\n- Team updates: around `96%`\n\nBelow the metrics, use a wide main column and a narrower right rail.\n\nMain column:\n- Deliverables table showing:\n  - Deliverable\n  - Workstream or channel\n  - Owner\n  - Due date\n  - Status\n  - Priority\n- Recent decisions table showing:\n  - Decision\n  - Status\n  - Decided by\n  - Date\n  - Impact area\n\nRight rail:\n- Editable launch checklist\n- Active blockers panel\n- Latest daily update panel\n\n## Launch Checklist\n\nCreate an editable checklist panel on the overview page.\n\nChecklist fields:\n- Item label\n- Checked or unchecked\n- Position or order\n\nChecklist requirements:\n- Checkbox toggles must work.\n- Inline label editing must work.\n- Add checklist item must work.\n- Persist checklist items.\n- Default checklist should be `4 / 5` complete.\n\nSeed checklist:\n- Finalize messaging and positioning\n- Approve launch blog\n- Publish docs and help-center updates\n- Run sales enablement session\n- Update GTM FAQ and objections\n\n## Deliverables Tracker\n\nCreate a dedicated **Deliverables** page.\n\nFields:\n- Deliverable name\n- Channel or type:\n  - blog\n  - landing page\n  - social\n  - video\n  - docs\n  - enablement\n  - internal comms\n  - partner comms\n- DRI\n- Due date\n- Status:\n  - Not started\n  - In progress\n  - Needs review\n  - Approved\n  - Shipped\n  - Blocked\n- Launch-critical boolean\n- Latest update\n- Source link\n\nRequirements:\n- Add deliverable must work.\n- Editing every deliverable field must work.\n- Filters must work by status, DRI, channel, and launch-critical status.\n- Include a useful empty state when filters return no rows.\n- Seed enough deliverables so the app is useful on first load.\n- Most seeded deliverables should be Approved or Shipped.\n- One launch-critical item can remain Needs review.\n\nSeed realistic workstreams:\n- Launch blog\n- Landing page\n- Social launch plan\n- Launch video\n- Docs updates\n- GTM enablement\n- Internal comms\n- Partner comms\n- Admin or customer email\n\nUse fictional DRIs only.\n\n## Decisions And Open Questions\n\nCreate a dedicated **Decisions** page.\n\nDecision log fields:\n- Date\n- Owner\n- Decision\n- Rationale\n\nOpen-question fields:\n- Question\n- Owner\n- Deadline\n- Status:\n  - Open\n  - In review\n  - Answered\n  - Blocked\n\nRequirements:\n- Keep the decision log easy to scan.\n- Make decision date, owner, decision text, and rationale editable in the UI.\n- Make open questions editable.\n- Editing question text, owner, deadline, and status must work.\n- Add question must work.\n- Seed decisions and questions so readiness looks high.\n- Flag uncertain decisions as needing review when source material is unclear.\n\nDo not invent real decisions from private sources. If sources are unavailable, create realistic fictional examples.\n\n## Blockers Board\n\nCreate a dedicated **Blockers** page.\n\nFields:\n- Blocker\n- Severity:\n  - High\n  - Medium\n  - Low\n- Owner\n- Needed resolution\n- Status:\n  - Open\n  - Watching\n  - Resolved\n\nRequirements:\n- Add blocker must work.\n- Editing blocker text, severity, owner, needed resolution, and status must work.\n- Overview should show only one or two active blockers.\n- Seed should include no high-severity active blockers for screenshot readiness.\n- Older blocker examples should be marked Resolved or archived.\n\n## Daily Update\n\nCreate a dedicated **Daily Update** page. Make the page history-first.\n\nTop section:\n- Heading: `Latest history`\n- Prominent list of saved updates\n- Each update shows:\n  - Date\n  - Author\n  - Progress\n  - Next steps\n  - Blockers\n  - Results\n\nSaved-update requirements:\n- Make saved-update authors editable in the UI.\n- Make saved-update content editable so the team can correct a name, link, or sensitive detail after posting.\n- Persist saved-update edits.\n\nAdd-update flow:\n- Add an `Add daily update` button.\n- The button opens an accordion-style composer below the history list.\n- Composer fields:\n  - Date\n  - Author\n  - Progress\n  - Next steps\n  - Blockers\n  - Results\n- Include a `Rebuild from tracker` button.\n- Rebuild should populate the composer from current deliverables, next actions, active blockers, and Approved or Shipped results.\n- Save update must work.\n- A saved update should immediately appear at the top of history.\n\nDo not include:\n- A `Slack-ready daily update` preview\n- A large side-preview panel\n- A small hidden update-history list\n\nSeed at least two daily updates using fictional or role-based authors.\n\n## Data And Source Rules\n\nEvery major content block should either:\n- Link to a discovered source, or\n- Be clearly marked as needing review by **[REVIEW_OWNER_OR_TEAM]**\n\nDo not fabricate:\n- Numeric success metrics\n- Customer claims\n- Competitor claims\n- Launch dates\n- Real owners\n- Feature scope\n- Roadmap commitments\n- Pricing\n- Limits\n- Security or compliance claims\n\nIf a source is missing, create a visible placeholder such as:\n`Needs approved source`\n\nIf Slack and approved docs conflict:\n- Prefer approved docs.\n- Preserve uncertainty.\n- Mark the item `Needs review`.\n\n## Privacy And In-App Editing\n\nDo not include real colleague names, private Slack channel names, private document titles, private customer names, or internal URLs in seeded content unless explicitly approved.\n\nUse fictional names for seeded owners and DRIs, such as:\n- Maya Chen\n- Avery Brooks\n- Priya Shah\n- Nina Patel\n- Sam Rivera\n- Elena Torres\n- Quinn Blake\n- Riley Brooks\n- Harper Quinn\n- Taylor Stone\n- Nora Lee\n- Dev Patel\n- Casey Moore\n- Theo Lane\n- Luca Reed\n\nUse placeholders for internal references:\n- [PRIMARY_CAMPAIGN_BRIEF_NAME]\n- [LAUNCH_SLACK_CHANNEL]\n- [SOURCE_DOC_URL]\n- [OWNER_TEAM]\n- [REVIEW_OWNER_OR_TEAM]\n\nTreat names, labels, source display names, URLs, and other context-specific values as editable app content, not hard-coded UI copy.\n\nThe `Edit launch details` panel must allow a non-developer to update:\n- Launch display name\n- Launch status\n- Launch date range\n- Launch goal\n- Audience\n- Key messages\n- Key links\n- Source display names\n- Source URLs\n- Review owner or team\n\nMake names and ownership directly editable wherever they appear:\n- Deliverable DRIs\n- Decision owners\n- Open-question owners\n- Blocker owners\n- Daily-update authors\n- Checklist labels\n\nEditing requirements:\n- Use clear labeled inputs, selects, and textareas.\n- Show bracketed placeholder values clearly until they are replaced.\n- Provide `Save changes`, `Cancel`, and `Reset to defaults` actions in the launch-details editor.\n- Keep secrets out of this editor.\n- Do not expose internal URLs, names, or channel labels unless intentionally entered by the user.\n- Update rendered UI immediately after saving.\n- Persist edits using the shared Sites storage layer when available. For a static local prototype, document any browser-local fallback clearly.\n- Do not require a code change to replace a name, link, source label, owner, or placeholder.\n\n## Persistence And Data Model\n\nUse the storage pattern already available in the Sites project.\n\nIf using D1, include migrations for:\n- Launch settings\n- Checklist items\n- Deliverables\n- Decisions\n- Open questions\n- Blockers\n- Daily updates\n\nPersistence requirements:\n- Launch details, key links, and privacy-related placeholder edits persist.\n- Launch-title edits persist.\n- Checklist edits persist.\n- Deliverable adds and edits persist.\n- Decision edits persist.\n- Question adds and edits persist.\n- Blocker adds and edits persist.\n- Daily-update saves persist.\n- Saved-update edits persist.\n- PATCH handlers preserve empty strings and other falsy edited values where relevant.\n\nIf local development lacks D1 bindings, the app may fall back to privacy-safe preview seed data locally. The deployed Sites app should use the configured shared storage layer.\n\n## Visual Design\n\nDesign the app as a compact, screenshot-ready B2B product surface with Linear-style clarity. This is a preserve-mode redesign of a dense operational dashboard, not a marketing site.\n\nPrioritize:\n- Dense, scannable content with clear hierarchy\n- Tables, filters, forms, status chips, checklists, and useful empty states\n- White surfaces with hairline borders\n- Minimal elevation\n- Compact controls\n- Enough padding in the right-rail panels\n- Fast access to the next launch action\n\nUse a cool neutral visual language with Geist typography, one coherent cobalt-blue accent, and subtle green semantic success states.\n\nUse this visual system:\n- App background: `#f6f7f9`\n- Primary text: `#182230`\n- Muted text: `#667085`\n- Primary accent: `#155eef`\n- Accent hover: `#004eeb`\n- Standard border: `#e3e8ef`\n- Strong border: `#d0d5dd`\n- Subtle surface: `#f9fafb`\n- White content surfaces: `#ffffff`\n- Success background: `#ecfdf3`\n- Success border: `#abefc6`\n- Success text: `#067647`\n- Restrained amber only for semantic warnings\n- Restrained red only for active blocker severity\n- One consistent `8px` card, control, and input radius\n- Pill shapes only for compact semantic tags where useful\n- No gradients, decorative imagery, oversized hero, or visual clutter\n\nTypography and hierarchy:\n- Geist or an equivalent neutral product sans through `next/font` when available\n- Metric labels around `11px` to `12px`, uppercase, muted, and compact\n- Metric values around `28px`\n- Panel titles around `15px` to `18px`\n- Body and control text around `14px` to `15px`\n- Do not use hero-scale headings.\n\nContainer rules:\n- Avoid nested decorative cards.\n- Use cards only when a border helps group a real unit.\n- Use extremely subtle tinted shadows, roughly `0 1px 2px rgba(16, 24, 40, 0.035)`.\n- Use light table-header backgrounds and subtle row hover states.\n- Give right-rail panel bodies approximately `20px` padding.\n- Keep filter controls compact and aligned.\n\nDesktop:\n- `252px` sticky left sidebar with a subtle `#f9fafb` background and right border\n- compact cobalt app mark, app name, and `Launch operations` subtitle\n- active navigation item uses a white surface, cobalt text, pale-blue border, and extremely light shadow\n- inactive navigation items remain transparent with neutral text and white hover surfaces\n- integrated sticky top header around `80px` tall with white or `95%` white background and subtle backdrop blur\n- green `On Track` chip below the launch title with a small green dot\n- main content centered with a wide max width around `1840px`\n- six-card metric row on wide screens\n- main content grid with wide tables and a `420px` right rail\n\nMobile:\n- sidebar becomes stacked and non-sticky\n- navigation remains horizontally scrollable\n- metric grid collapses from six columns to two columns and then one column as needed\n- main content and right rail stack cleanly\n- wide editable tables scroll horizontally instead of compressing fields until they clip\n- no clipping, overlapping, or horizontal page overflow\n\nInteraction and accessibility:\n- Add clear cobalt `:focus-visible` rings.\n- Use subtle hover states for buttons and table rows.\n- Use `1px` active-button movement only.\n- Keep placeholder and helper text readable against white surfaces.\n- Keep status-chip contrast accessible.\n- Respect reduced-motion preferences.\n\n## Implementation Notes\n\nRecommended implementation:\n- React / Next-style app compatible with Sites hosting.\n- Keep privacy-safe seed data in a structured file such as `app/launch-data.ts`.\n- Keep the shared storage API in a route such as `app/api/launch/route.ts`.\n- Keep the main page focused on rendering and local UI state.\n- Keep editable launch settings in a structured schema separate from secrets and server-only configuration.\n- Use shared reusable components for metric cards, panels, progress bars, status chips, filter controls, form controls, and empty states.\n- Preserve empty-string edits in PATCH handlers instead of dropping falsy values.\n- Keep `.openai/hosting.json` in the repo and use the Sites plugin's source-repository, version, and deployment workflow.\n\nSuggested scripts:\n- `npm run dev`\n- `npm run lint`\n- `npm run build`\n\n## Local Review\n\nRender locally before finalizing.\n\nUse the Browser plugin, specifically the in-app browser, to verify:\n- Sidebar brand says **[APP_NAME]** and includes the `Launch operations` subtitle.\n- Sticky header shows the editable launch name, green status chip, date range, and working Share button.\n- Share copies the current URL and changes to `Copied`.\n- Launch-title editing works.\n- `Edit launch details` works without source-code changes.\n- Names, links, source labels, owners, and placeholders can be replaced in the UI.\n- Privacy-related edits persist after refresh.\n- Overview metrics use the screenshot-ready state.\n- Checklist toggle, add, and edit work.\n- Add deliverable works.\n- Every deliverable field remains editable.\n- Deliverable filters work and have a useful empty state.\n- Decision edits work.\n- Add question works.\n- Blocker edits work.\n- Daily Update is history-first.\n- `Add daily update` opens an accordion-style composer.\n- `Rebuild from tracker` populates the composer.\n- Save daily update works.\n- Editing a saved update works.\n- No real colleague names appear in seeded content.\n- Side-panel padding is sufficient.\n- No inert dropdown carets or menus appear.\n- Mobile layout does not overlap or clip.\n- Wide editable tables scroll horizontally on mobile.\n- There is no horizontal page overflow at desktop or mobile widths.\n\nRun:\n- lint\n- production build\n\n## Deployment\n\nDeploy the completed app with the **Sites** plugin when the approved source-push path is available.\n\nSites deployment workflow:\n- Read or create `.openai/hosting.json`.\n- Reuse an existing `project_id` instead of provisioning a duplicate project.\n- Capture a representative `public/screenshot.jpeg` from the in-app browser at `1200x750`.\n- Run the production build.\n- Push the exact reviewed commit to the Sites source repository using a short-lived Sites credential.\n- Never bypass source-push or security controls.\n- Create a Sites project version from that commit and matching build archive.\n- Deploy the saved version and poll deployment status to a terminal state.\n- Verify the live URL in the in-app browser when access allows.\n- Use the safest access mode for a new internal site and report the configured access mode.\n\nAfter deployment, report:\n- local URL used for review\n- deployed site URL, if deployment succeeds\n- access mode\n- commit hash\n- missing source materials\n- sections marked as needing review\n- any persistence limitations\n\nIf deployment is blocked by a source-push or security control, do not bypass the control. Report the blocker and what approved path is needed.\n```", "url": "https://wpnews.pro/news/launch-center-prompt-template-using-the-sites-plugin-in-codex", "canonical_source": "https://gist.github.com/pranavdesh/cbd233a5a3b2e3b7534fcfd2123cd249", "published_at": "2026-06-02 17:21:32+00:00", "updated_at": "2026-06-04 12:44:30.728715+00:00", "lang": "en", "topics": ["ai-tools", "ai-products", "generative-ai"], "entities": ["Codex", "Sites Plugin", "Build Web Apps", "Google Drive", "Slack", "Notion", "Launch Center"], "alternates": {"html": "https://wpnews.pro/news/launch-center-prompt-template-using-the-sites-plugin-in-codex", "markdown": "https://wpnews.pro/news/launch-center-prompt-template-using-the-sites-plugin-in-codex.md", "text": "https://wpnews.pro/news/launch-center-prompt-template-using-the-sites-plugin-in-codex.txt", "jsonld": "https://wpnews.pro/news/launch-center-prompt-template-using-the-sites-plugin-in-codex.jsonld"}}