Creator Studio, stacks, and workspace briefs
How GenCreator compiles source briefs into six channel artifacts, routes /personas to /stacks, and gates unprovisioned offers behind /products/waitlist.
frankxai/gencreator.ai/next.config.ts, frankxai/gencreator.ai/README.md, frankxai/gencreator.ai/GO-LIVE.md, frankxai/gencreator.ai/lib/creator-studio/core.ts, frankxai/gencreator.ai/app/stacks/stacks.data.tsGenCreator (frankxai/gencreator.ai) is built on Next.js 16 (App Router) and React 19 (fra1 Vercel region). It provides an editable source-to-artifact workspace (/creator-studio), a seven-stack operating directory (/stacks), and strict release-gate routing for commercial offers (/products/waitlist).
Creator Studio workflow (/creator-studio)
The Creator Studio (app/creator-studio/page.tsx and lib/creator-studio/core.ts) arranges a creator's own notes into reviewable, exportable drafts without requiring an account on first visit.
1. Validated workspace brief (briefSchema)
Every run is validated by Zod (briefSchema in lib/creator-studio/core.ts) before compilation:
| Field | Constraint | Purpose |
|---|---|---|
creator | 1–100 chars | Author attribution attached to exported editions |
title | 3–140 chars | Release headline |
audience | 3–240 chars | Intended reader or viewer segment |
source | 40–20,000 chars | Primary source notes supplied by the creator |
sourceLabel | 1–160 chars | Provenance label (for example notebook or session name) |
callToAction | 3–200 chars | Explicit human action appended to channel drafts |
destination | Valid https:// URL (<= 2048 chars, no credentials) | Canonical link destination |
channels | 1–6 unique channels | Selected from linkedin, instagram, x, newsletter, video, website |
sourcePermission | Literal true | Confirms the creator owns or has permission to use the source text |
2. Deterministic compilation and SHA-256 provenance
compileCreatorBrief(input) hashes the raw source via Web Crypto (crypto.subtle.digest('SHA-256', ...)) to emit a sourceDigest (sha256:<64-hex-chars>) and produces a typed CreatorArtifact (kind: 'source_arrangement') for each selected channel:
- LinkedIn post (
linkedin): Opening two paragraphs plus CTA and destination URL. - Instagram caption (
instagram): Lead paragraph plus CTA. - X post (
x): Lead paragraph plus destination URL. - Newsletter (
newsletter): Title, full source body, CTA, destination URL, and creator sign-off. - Video outline (
video): Structured intoOpening,Develop the idea, andClosingsections. - Website page (
website): Standalone, script-free HTML rendered viarenderCreatorWebsitewith HTML entity escaping (escapeHtml).
Stacks directory (/stacks) and route redirects
In app/stacks/stacks.data.ts, GenCreator organizes creator and infrastructure workflows into 7 stacks rendered at /stacks and /stacks/[slug]:
| Slug | Name | Target operator | Core pillars |
|---|---|---|---|
writer | Writer | Essayists, novelists, newsletter operators | Strategy, Governance (voice-match score >= 8), Data |
video | Video Creator | YouTubers, course creators, short-form creators | Strategy, Technology (transcript-based editing), Data |
founder | Founder | Solo founders, indie hackers, startup operators | Strategy, Governance (human sign-off on external sends), Technology |
musician | Musician | Independent artists, producers, composers | Strategy, Data (prompt + stem archive), Ethics |
coach | Coach | Coaches, consultants, educators | Governance (client data isolation), Talent, Data |
visual | Visual Artist | Illustrators, designers, photographers | Strategy, Ethics (training reference disclosure), Data |
stackguide | Starlight StackGuide | Sovereign local AI stack control plane (kind: 'infrastructure') | Sovereignty (local-first manifests), Memory, Governance |
Canonical redirects (next.config.ts)
gencreator.ai/next.config.ts enforces five redirects so legacy persona links and /docs paths resolve cleanly:
| Source path | Destination | Status |
|---|---|---|
/personas | /stacks | permanent: true (308) |
/personas/:slug | /stacks/:slug | permanent: true (308) |
/login | /sign-in | permanent: true (308) |
/apply | /studio/apply | permanent: false (307) |
/docs and /docs/:path* | https://docs.gencreator.ai / https://docs.gencreator.ai/:path* | permanent: false (307, PR #290) |
Waitlist routing for unprovisioned offers (/products/waitlist)
GenCreator refuses to display an active buy button for any product that has not passed its release gate. In app/products/waitlist/page.tsx (backed by commercePosture, getProduct, and products in lib/factory/manifest):
- Unprovisioned products route to
/products/waitlist?product=<id>(withrobots: { index: false, follow: true }). - The page displays the product's current stage (
not yet for sale), explains why checkout is disabled (posture.reason), lists the named alternatives the product must beat (product.mustBeat), and records early-access interest viaProductWaitlistFormwithout fabricating or seeding waitlist counts. - Live storefront checkout on
/osis reserved for verified Whop products (OS Circle,Suno Mastery,Personal AI CoE Playbook,Creator Prompt PackinGO-LIVE.md§7b) synced via/api/webhooks/whop.
Local verification and smoke checks (GO-LIVE.md)
# Run the full local verification gate (clean install -> lint -> typecheck -> unit tests)
pnpm go-live
# Run the 15-check production smoke suite and verify environment health
pnpm smoke https://gencreator.ai
curl -s https://gencreator.ai/api/healthGenCreator overview
AI video, music, and editorial publishing intelligence — Territory B design standards and multi-engine generation workflows.
Territory B editorial paper design system
Token specification, typography pairings, and the allowAmbientGlow restraint contract for GenCreator's Territory B light paper surfaces.