gork-subscribers is an AI chat assistant application in the spirit of Grok, built around a single defining product fact: its subscriber capacity is a shared, finite, monthly-replenished pool of 200 seats. Rather than each user holding an independent subscription, the product distributes a shared pool of 200 subscriber seats across its subscribers every month, and an allocation owner configures and manages how that monthly 200 is divided.
The product intent, derived from the authoritative requirement thread ("Make me an app like gork but share the subscribers 200 each month"), is twofold:
The audience is individual AI power users (subscribers) who want conversational AI access through a shared monthly allocation, plus an allocation owner who runs the monthly distribution of the 200 seats.
gork-subscribers is a first-party web application with application-owned identity. It delivers:
Actors: Two accepted human personas — Subscriber and Allocation Owner — plus the AI assistant backend as a non-persona system actor.
Ownership: All six pages are application-owned custom UI. Identity is application-owned and established through self-service enrollment. The AI assistant response generation is a backend/system responsibility invoked by subscriber prompts.
Narrow exclusions: This document does not add adjacent capabilities such as billing, payment processing, social feeds, content moderation consoles, analytics dashboards, or third-party integrations. The product is scoped to the Grok-like chat assistant plus the shared monthly 200 subscriber distribution.
Delivery ownership. gork-subscribers is delivered as a first-party web application with custom UI. All six destinations — Landing, Login, Sign Up, Chat, Subscribers, Allocations — are owned and rendered by the application itself. There is no provider-owned or external-only surface in the current scope.
Access ownership. Identity is application-owned. Because subscribers and the allocation owner must privately own and resume durable, actor-specific state (conversations, allocation configuration, monthly share), the application establishes identity through self-service enrollment (Sign Up) and verifies returning users (Login). The Landing page is anonymously reachable and explains the product before identity is established. Chat, Subscribers, and Allocations are protected destinations whose durable state is bound to the correct participant; they cannot own the interaction that establishes access to themselves, so the anonymous entry boundary (Landing → Sign Up / Login) is distinct from the protected surfaces.
Current vs. future boundary. The current delivery horizon covers the Grok-like chat assistant, the shared monthly 200 subscriber pool, subscriber management, and allocation configuration. No future-horizon requirements were stated in the authoritative thread; anything beyond the current scope is out of scope for this generation.
No reference directive in the Planning Scope declares content_source. The single reference directive (Grok) is declared inspiration_only with uses: ["feature_reference"], supplying only a loose feature reference for an AI chat assistant and no factual content, entities, or collections. Therefore no Source Content Inventory is included.
As a Subscriber I should send prompts to an AI assistant and receive conversational responses so that I can use the product as a Grok-like AI chat assistant.
As an Allocation Owner I should have the shared subscriber pool fixed at 200 seats per month so that the monthly distribution is bounded and predictable.
As an Allocation Owner I should configure how the monthly 200 is distributed across subscribers so that subscribers can rely on their available allocation.
As an Allocation Owner I should browse and manage the subscribers participating in the shared monthly distribution so that I know who is receiving a share.
As a Subscriber I should have my monthly share of the shared 200 available and usable for my own prompts and conversations so that I can use the AI assistant within my allocation.
As a Subscriber or Allocation Owner I should establish an application identity on first use so that I can access protected workflows.
As a Subscriber or Allocation Owner I should verify my identity on return so that I can resume my protected workflows.
Muse: Refik Anadol. Headline direction: Data made physical — the shared pool of 200 subscriber seats rendered as a living, breathing generative field rather than a SaaS dashboard.
| Role | Hex | Usage |
|---|---|---|
| Background | #07080C | Near-black ink ground carrying everything |
| Surface | #0E1016 | Panels, with 1px rgba(242,244,248,0.10) hairlines |
| Text | #F2F4F8 | Body text on #07080C (~17:1) |
| Primary | #7BE0FF | Cyan flow colour — allocation arcs, focus rings, live numbers |
| Accent | #FF6FA8 | Magenta-coral depletion/warning hue — tail-of-share states and the one hot CTA |
| Muted | #8A93A6 | Secondary text (~5.5:1 at 16px) |
Colour appears only as light inside the generative field — never as a filled brand block.
-0.02em, sentence case for headlines; uppercase only for 11px micro-labels with 0.16em tracking.clamp(40px, 8vw, 96px); section heads clamp(28px, 4vw, 48px); body 16px/1.6; micro-labels 11px uppercase.Full-bleed generative canvas with no visible frame; UI floats as thin luminous strokes and 1px-bordered rectangles with 4px radii. Gauges are radial arcs, never rings with fills. Section boundaries are soft horizontal luminescence gradients rather than hard rules. Cards are 1px outlines on the dark ground — no shadows, no lift.
Asymmetric museum grid: a 12-column field with content held to columns 2–7 on desktop and the generative canvas bleeding to the right edge and past it. Landing is a single full-viewport canvas with a fixed, sparse overlay — wordmark top-left, one line of copy bottom-left, one CTA bottom-left beneath it. Chat is a two-column split: a narrow left rail of conversations (col 1–3) and a wide reading column (col 4–9) with the right third left empty as breathing room. Subscribers and Allocations are dense but calm: ruled rows on #0E1016 with tabular figures right-aligned, and a persistent thin allocation bar pinned to the top of every authenticated page.
No stock photography, no device mockups, no clip art. All imagery is generative: a WebGL particle/fluid field seeded from the user's own allocation data (remaining seats, burn rate, days left in cycle), plus geometric line diagrams for the allocation model. The only non-generative visuals are 1px hairline charts and typographic numerals.
The allocation field as hero. The Landing first screen is one full-bleed dark canvas (#07080C) filled edge to edge with a slow generative particle field in cyan #7BE0FF that thins and warms toward magenta #FF6FA8 where density is highest. Overlaid bottom-left, not centred: the wordmark gork-subscribers set in Space Grotesk 500 at clamp(18px, 2vw, 22px), and beneath it a two-line headline at clamp(40px, 8vw, 96px) — "Two hundred seats. Shared every month." — occupying columns 1–6 only, so the field's densest region stays visible and untouched on the right. A single outlined CTA sits directly under the headline, left-aligned, 1px cyan border, transparent fill. Nothing is centred; there is no gradient blob, no floating card, no blue button.
The signature moves that carry the concept through the product:
Interaction Model: Animated Motion Tempo: cinematic Hero Dimensionality: webgl
#7BE0FF thinning and warming toward magenta #FF6FA8 where density is highest.#07080C canvas with the field at rest; wordmark top-left; two-line headline bottom-left in columns 1–6; single outlined cyan CTA beneath it.In-app motion is data-driven and restrained: allocation bars animate their width over 600ms with cubic-bezier(0.16,1,0.3,1), numbers count up once on mount, no hover-lift, no bounce. prefers-reduced-motion renders a static seeded frame of the field plus a plain allocation bar.
A single crafted real-time WebGL particle/fluid field that shows the product's defining state: a finite, shared, monthly-replenished pool of 200 seats. The scene is seeded from the product's own allocation data so the field's density and hue encode remaining seats, burn rate, and days left in the cycle. It drifts on a slow 40–60s cycle with no visible loop point and morphs into the monthly allocation arc on scroll. Under prefers-reduced-motion, the scene renders a static seeded frame.
font-size: clamp(...) with its mobile size) to fit, with no other element covering any part of them. (Provenance: explicit creative direction.)prefers-reduced-motion, provide a usable static arrangement: a static seeded frame of the generative field plus a plain allocation bar, and wrap or allow horizontal scrolling so each item can be brought fully into view. (Provenance: explicit creative direction.)#F2F4F8 on #07080C (~17:1) and muted #8A93A6 (~5.5:1) must both pass at 16px. (Provenance: explicit creative direction.)inspiration_only and supplies only a loose feature reference for an AI chat assistant, not a specification. (Reference directive.)No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No comments yet. Be the first!