-
Notifications
You must be signed in to change notification settings - Fork 0
Add ChatGPT Sites plan (docs/chatgpt-sites-plan.md) #18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,212 @@ | ||||||
| # ChatGPT Sites plan for Trackdub | ||||||
|
|
||||||
| **Goal:** Publish a version of the Trackdub marketing site via OpenAI ChatGPT | ||||||
| Sites, built from the site's _actual_ copy, served on a custom domain we | ||||||
| control. | ||||||
|
|
||||||
| **Why this replaces the proxy (sites-proxy/):** ChatGPT Sites is a generative | ||||||
| builder — it assembles a site from your prompt/content and hosts it on | ||||||
| OpenAI's runtime (`*.openai.chatgpt.site` or your own domain via DNS). It | ||||||
| never fetches an external origin, so a reverse proxy like `trackdub.dev` | ||||||
| has no consumer in the product. The supported route is: give ChatGPT the | ||||||
| content, then point DNS at OpenAI. This document is that route. | ||||||
|
Comment on lines
+7
to
+12
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
The plan says the Prompt To Fix With AIThis is a comment left during a code review.
Path: docs/chatgpt-sites-plan.md
Line: 7-12
Comment:
**Proxy replacement conflicts with code**
The plan says the `trackdub.dev` proxy has no consumer and is replaced, but the application still handles that origin, the waitlist API allows it, and deployment smoke tests verify it. Document the required code and infrastructure cleanup so maintainers do not decommission a path that the repository still treats as supported or retain obsolete support indefinitely.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time! |
||||||
|
|
||||||
| --- | ||||||
|
|
||||||
| ## 0. Prerequisites & eligibility | ||||||
|
|
||||||
| - ChatGPT Sites is in public beta for **Plus, Pro, and Business/workspace** | ||||||
| accounts. **Not available on Free/Go**, and **not in the EEA, Switzerland, | ||||||
| or the UK at launch**. | ||||||
| - **Custom domains are not available in Enterprise workspaces** at launch. | ||||||
| Confirm we're on a Plus/Pro/Business account before starting. | ||||||
| - We own `trackdub.com` (Cloudflare zone — confirmed by | ||||||
| `scripts/apply-agent-dns.mjs` using `ZONE_NAME = "trackdub.com"`), so DNS | ||||||
| changes are under our control. | ||||||
|
|
||||||
| ### Domain decision | ||||||
|
|
||||||
| Recommend a **subdomain of the real domain** so ChatGPT can build content | ||||||
| that references the canonical site without DNS friction: | ||||||
|
|
||||||
| - **Recommended:** `sites.trackdub.com` (or `ai.trackdub.com`) — clearly a | ||||||
| companion surface, keeps the apex for the real product. | ||||||
| - Alternative: the default `*.openai.chatgpt.site` URL (no DNS needed) if we | ||||||
| want zero setup — but then we can't brand it. | ||||||
|
|
||||||
| --- | ||||||
|
|
||||||
| ## 1. Content package (paste into ChatGPT with @Sites) | ||||||
|
|
||||||
| Everything below is extracted verbatim from the current codebase | ||||||
| (`src/routes/*.tsx`, `src/lib/pricing.ts`) so the generated site reflects | ||||||
| the real product. | ||||||
|
|
||||||
| ### Brand & voice | ||||||
|
|
||||||
| - **Product:** Trackdub — a desktop workstation for translating, voicing, | ||||||
| and mixing video. | ||||||
| - **Tagline:** "Dub videos into other languages without giving up control." | ||||||
| - **Positioning:** Local-first. Every stage of the pipeline is inspectable, | ||||||
| editable, and rerunnable, from the transcript to the final mix. Media | ||||||
| never leaves the machine unless the user says so. | ||||||
| - **Contact:** `hello@trackdub.com` · press `press@trackdub.com` | ||||||
| - **Repo:** github.com/trackdubllc (public) | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
The copy-paste package provides only the GitHub organization while the canonical site links to
Suggested change
Prompt To Fix With AIThis is a comment left during a code review.
Path: docs/chatgpt-sites-plan.md
Line: 54
Comment:
**Canonical repository URL omitted**
The copy-paste package provides only the GitHub organization while the canonical site links to `trackdubllc/Trackdub`; the master prompt then requests a GitHub link without another destination. Supplying the repository URL prevents the generated footer from linking to the organization page or inventing a target.
```suggestion
- **Repo:** github.com/trackdubllc/Trackdub (public)
```
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. P3: The content package lists only the GitHub organization ( Prompt for AI agents |
||||||
|
|
||||||
| ### Trust strip | ||||||
|
|
||||||
| Local by default · Deterministic runs · Cross-platform · Open manifest · | ||||||
| No account required · Per-line regen · Resumable jobs · CPU fallback, always | ||||||
| · Your disk, your files | ||||||
|
|
||||||
| ### The 6-stage pipeline (use these verbatim) | ||||||
|
|
||||||
| 1. **Ingest** — Probe media. Detect scenes, silence, and speech. | ||||||
| 2. **Transcribe** — Time-accurate source transcript with speaker turns. | ||||||
| 3. **Translate** — Human-editable target script, tied to timecode. | ||||||
| 4. **Diarize** — Assign speakers. Attach a voice reference to each one. | ||||||
| 5. **Voice** — Zero-shot TTS. Regenerate any single line. | ||||||
| 6. **Mix** — Align, duck under music, mux the final file. | ||||||
|
|
||||||
| ### Pricing (single source of truth: `src/lib/pricing.ts`) | ||||||
|
|
||||||
| | Plan | Price | Notes | Features | | ||||||
| | ------------ | -------------- | ----------------------------------------- | -------------------------------------------------------------------------------------------------------------- | | ||||||
| | **Personal** | Free | Commercial use allowed | Full desktop app, every stage · all languages + bundled models · CLI included · watermarked exports, 5-min max | | ||||||
| | **Pro** | $149 | One-time purchase · 2 machine activations | Everything in Personal · no watermark, no duration limit · commercial license · lifetime v1.x updates | | ||||||
| | **Studio** | In development | Post-launch, not sold yet | Batch + multi-GPU · 4K export pipeline · commercial redistribution rights | | ||||||
|
|
||||||
| Pricing page headline: **"One-time purchase. No subscription, ever."** | ||||||
| Copy: "Trackdub is priced like software you own, not software you rent." | ||||||
|
|
||||||
| ### FAQ (from the homepage) | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🟡 Medium The content package in section 1 claims to be extracted "verbatim" from the codebase, but the FAQ list includes only 9 questions while 🚀 Reply "fix it for me" or copy this AI Prompt for your agent:
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. P3: The doc's FAQ section claims to come 'from the homepage' but lists only 9 of the 12 FAQ items actually defined in src/routes/index.tsx (FAQ_ITEMS). Because the master prompt tells ChatGPT to use 'the 9 questions and answers provided', the generated site silently drops the OS-support, per-stage cloud-provider, and model-license answers, weakening the doc's stated goal of reproducing the real product copy. Consider listing all 12 or explicitly labeling this a curated subset. Prompt for AI agents |
||||||
|
|
||||||
| 1. **Does my video get uploaded anywhere?** — No. Runs the whole pipeline | ||||||
| on your machine by default. Cloud endpoints are opt-in per project/stage. | ||||||
| 2. **What happens to my data if I uninstall?** — Projects/media/output live | ||||||
| in folders you chose; app data (`%LOCALAPPDATA%\Trackdub`) can be removed | ||||||
| during uninstall. | ||||||
| 3. **Can I use it commercially?** — Yes, every tier. Free has a watermark + | ||||||
| 5-min cap; Pro removes both. Bundled models are commercial-safe by manifest. | ||||||
| 4. **How is voice cloning handled?** — One short, reviewable reference clip | ||||||
| per speaker; one voice per person, references stay on disk. | ||||||
| 5. **What if ASR gets a word wrong?** — Fix it in the transcript; only the | ||||||
| affected line invalidates and queues for regen. | ||||||
| 6. **Do I need a GPU?** — No. CPU is the portable baseline; TensorRT, CUDA, | ||||||
| DirectML, CoreML, MIGraphX, OpenVINO, QNN available per stage with | ||||||
| automatic fallback. | ||||||
| 7. **Can I automate it?** — Yes. CLI ships in every tier; scriptable for | ||||||
| batch localization, CI, or an on-prem REST worker via the SDK. | ||||||
| 8. **Can it run offline?** — Yes, once selected models are downloaded. | ||||||
| 9. **Can I choose the accelerator?** — Automatic mode per stage, or an | ||||||
| execution policy that prefers/excludes providers. | ||||||
|
|
||||||
| ### Status messaging | ||||||
|
|
||||||
| Trackdub is **pre-launch** — the site runs a **waitlist** ("Join launch | ||||||
| list", "Be first to know when downloads, release notes, and preview | ||||||
| invitations are ready"). The ChatGPT Sites version should **not** claim the | ||||||
| app is available. Primary CTA = the launch list (link back to | ||||||
| `trackdub.com/#waitlist`). | ||||||
|
|
||||||
| --- | ||||||
|
|
||||||
| ## 2. Master prompt (copy-paste) | ||||||
|
|
||||||
| ```text | ||||||
| @Sites Build a marketing site for Trackdub, a local-first desktop | ||||||
| workstation for dubbing video into other languages. Use ONLY the content | ||||||
| below — do not invent features, prices, or availability claims. | ||||||
|
|
||||||
| BRAND: Trackdub. Tagline: "Dub videos into other languages without giving | ||||||
| up control." Positioning: local-first; every pipeline stage is inspectable, | ||||||
| editable, and rerunnable; media never leaves the machine unless the user | ||||||
| says so. | ||||||
|
|
||||||
| STRUCTURE: | ||||||
| 1. Hero — tagline + short positioning paragraph + primary CTA "Join launch | ||||||
| list" (link to https://trackdub.com/#waitlist) and secondary CTA | ||||||
| "Explore the workflow". | ||||||
| 2. Pipeline — the 6 stages (Ingest, Transcribe, Translate, Diarize, Voice, | ||||||
| Mix) with the one-line descriptions provided. | ||||||
| 3. Trust strip — the 9 items (Local by default, Deterministic runs, | ||||||
| Cross-platform, Open manifest, No account required, Per-line regen, | ||||||
| Resumable jobs, CPU fallback always, Your disk, your files). | ||||||
| 4. Pricing — three plans: Personal Free (watermarked, 5-min max), | ||||||
| Pro $149 one-time (no watermark/cap, lifetime v1.x updates, featured), | ||||||
| Studio "In development / not sold yet". Headline: "One-time purchase. | ||||||
| No subscription, ever." | ||||||
| 5. FAQ — the 9 questions and answers provided. | ||||||
| 6. Footer — hello@trackdub.com, press@trackdub.com, GitHub link, | ||||||
| "Trackdub is pre-launch — join the launch list." | ||||||
|
|
||||||
| DESIGN: elegant editorial style; serif display headings; monospace | ||||||
| uppercase labels; a single accent color; numbered section markers (00, 01, | ||||||
| 02…); generous whitespace; dark theme with a light option; reduced-motion | ||||||
| support. Keep it restrained and typographic — no gradients or clip-art. | ||||||
|
|
||||||
| CONTENT — verbatim, do not add or change claims: | ||||||
| [Paste the full content package from section 1.] | ||||||
| ``` | ||||||
|
|
||||||
| --- | ||||||
|
|
||||||
| ## 3. DNS setup for the custom domain | ||||||
|
|
||||||
| Per OpenAI's official flow (help.openai.com — "Creating and managing ChatGPT | ||||||
| Sites"): | ||||||
|
|
||||||
| 1. **In ChatGPT Sites:** open the site → **More actions → Settings → Add | ||||||
| domain**. | ||||||
| 2. **Enter** `sites.trackdub.com` (or the chosen subdomain). | ||||||
| 3. **Copy the DNS records Sites provides** — do not improvise: OpenAI | ||||||
| generates the exact record set (typically a verification TXT plus the | ||||||
| host record) per site. Add **exactly those records**. | ||||||
| 4. **Add them in Cloudflare** for the `trackdub.com` zone: | ||||||
| - Dashboard → `trackdub.com` → **DNS → Records → Add record**. | ||||||
| - Enter the type/name/value exactly as shown by Sites. | ||||||
| - **Proxying caveat:** for records that must resolve to OpenAI's | ||||||
| infrastructure, keep the record **DNS only** (grey cloud) if Sites | ||||||
| requires direct resolution — follow what the record needs to | ||||||
| validate. Don't leave it proxied if validation fails. | ||||||
| 5. **Wait a few minutes**, then **refresh the domain status** in Sites. | ||||||
| 6. When status shows connected, the generated site is live at | ||||||
| `https://sites.trackdub.com`. | ||||||
|
|
||||||
| > If the domain is already used by the real product (it is — trackdub.com), | ||||||
| > always use a **new subdomain**; never move the apex or an in-use host. | ||||||
|
|
||||||
| --- | ||||||
|
|
||||||
| ## 4. Pre-launch checklist | ||||||
|
|
||||||
| - [ ] Run the master prompt; review the generated preview carefully. | ||||||
| - [ ] **Accuracy:** no invented features, prices, or "available now" claims; | ||||||
| Studio still marked "in development". | ||||||
| - [ ] **CTAs:** every primary CTA goes to `trackdub.com/#waitlist` (or the | ||||||
| same waitlist), not a fake download. | ||||||
| - [ ] **Links:** contact emails, GitHub, changelog point to the real ones. | ||||||
| - [ ] **SEO:** decide whether the Sites copy should be `noindex` — if it | ||||||
| duplicates canonical marketing content, keep it out of search to | ||||||
| preserve trackdub.com as the authoritative page (Sites lets you | ||||||
| control indexing; prefer noindex on a near-duplicate). | ||||||
| - [ ] **Sensitive data:** no internal data, keys, or unreleased numbers. | ||||||
| - [ ] **Access:** set sharing to _Anyone on the internet_ only if it's meant | ||||||
| to be public; otherwise keep it workspace-limited. | ||||||
| - [ ] **Custom domain DNS:** records added at Cloudflare, status green in | ||||||
| Sites. | ||||||
| - [ ] After publish: open the URL, verify HTTPS, navigation, and that the | ||||||
| waitlist form/links work from the mirror. | ||||||
|
|
||||||
| --- | ||||||
|
|
||||||
| ## 5. Open questions before executing | ||||||
|
|
||||||
| 1. **Account eligibility:** confirm the OpenAI account is Plus/Pro/Business | ||||||
| and outside EEA/CH/UK (custom domains not available in Enterprise). | ||||||
| 2. **Subdomain choice:** `sites.trackdub.com` vs. default | ||||||
| `*.openai.chatgpt.site` (no DNS). | ||||||
| 3. **indexing:** noindex the Sites copy, or allow it (content isn't | ||||||
| byte-identical to trackdub.com, so duplicate-content risk is low). | ||||||
| 4. **Purpose:** is this a demo/experiment (workspace-only sharing is fine) | ||||||
| or a public companion page? | ||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
P2: The doc claims the
trackdub.devproxy has no consumer and is being replaced, but if the app still handles that origin, the waitlist API still accepts it, and deployment smoke tests still verify it, then decommissioning guidance is missing. Add a note about the required code/infra cleanup so maintainers don't leave obsolete proxy support in place indefinitely or mistakenly remove a path that's still exercised by tests.Prompt for AI agents