nexu-io/open-design

waitlist-page

Minimal pre-launch landing with email capture, brand logo, and optional decorative layer. Reads DESIGN.md for colors, typography, and layout rules. Best for: product launches, beta signups, early access programs, indie projects.

79Collecting
See how to use itView GitHub source
npx skills add https://github.com/nexu-io/open-design --skill "design-templates/waitlist-page"
Automated source guideContent productionDeep source

Source checked Jul 28, 2026·Refresh due Oct 26, 2026

Reorganized from the pinned upstream SKILL.md

Source-grounded content guide: waitlist-page

Pre-launch pages are your first handshake with future users. This skill builds a focused, honest entrance: your brand identity, what you're making, one clear path to join the early list. No artificial scarcity, no fake countdown, no inflation tactics—just a clean, mobile-first v…

npx skills add https://github.com/nexu-io/open-design --skill "design-templates/waitlist-page"
Check the pinned source

The pinned source contains enough sections and task detail for a source-grounded deep guide; automated content is still not an independent test.

1,238 source words · 7 usable sections

Content deliverables

  • Emit clean HTML — Single file, CSS inlined, SVG for graphics. Mark interactive elements with data-od-id (headline, form, logo, ticker, grid, etc.) so agents can customize without parsing.
  • 7. Emit clean HTML — Single file, CSS inlined, SVG for graphics. Mark interactive elements with data-od-id (headline, form, logo, ticker, grid, etc.) so agents can customize without parsing.
  • Only emit after all P0 gates in references/checklist.md pass.

Content workflow

Read waitlist-page through these 5 source sections

Sections are extracted automatically from the pinned SKILL.md and link back to the source.

01

Workflow

0. Load the brand identity — Read DESIGN.md for the color system, font pairing, and spatial rules. This is your foundation. A waitlist page lives or dies by consistency with the brand it represents. If DESIGN.md is missing, ask the user to provide one before you proceed. 1. Read…

SKILL.md · Workflow
Load the brand identity — Read DESIGN.md for the color system, font pairing, and spatial rules. This is your foundation. A waitlist page lives or dies by consistency with the brand it represents. If DESIGN.md is missing…Read and copy the reusable template — Read assets/template.html. This template is the hardened seed for all outputs. Copy it to index.html as your base. Do not write HTML from scratch or deviate from this structure. The…Map tokens from inputs — For each placeholder in the template (e.g., {{PRODUCTNAME}}, {{BGEXPRESSION}}, {{BORDEREXPRESSION}}, {{LOGOMARK}}), follow the replacement rules below:
02

Preflight: Load hardened template and brand foundation

0. Load the brand identity — Read DESIGN.md for the color system, font pairing, and spatial rules. This is your foundation. A waitlist page lives or dies by consistency with the brand it represents. If DESIGN.md is missing, ask the user to provide one before you proceed. 1. Read…

SKILL.md · Preflight: Load hardened template and brand foundation
Load the brand identity — Read DESIGN.md for the color system, font pairing, and spatial rules. This is your foundation. A waitlist page lives or dies by consistency with the brand it represents. If DESIGN.md is missing…Read and copy the reusable template — Read assets/template.html. This template is the hardened seed for all outputs. Copy it to index.html as your base. Do not write HTML from scratch or deviate from this structure. The…0. Load the brand identity — Read DESIGN.md for the color system, font pairing, and spatial rules. This is your foundation. A waitlist page lives or dies by consistency with the brand it represents. If DESIGN.md is miss…
03

Steps: Token replacement with validation and escaping

2. Map tokens from inputs — For each placeholder in the template (e.g., {{PRODUCTNAME}}, {{BGEXPRESSION}}, {{BORDEREXPRESSION}}, {{LOGOMARK}}), follow the replacement rules below: - Text tokens ({{PRODUCTNAME}}, {{TAGLINE}}): HTML-escape , &, ", ' before insertion into HTML text…

SKILL.md · Steps: Token replacement with validation and escaping
Map tokens from inputs — For each placeholder in the template (e.g., {{PRODUCTNAME}}, {{BGEXPRESSION}}, {{BORDEREXPRESSION}}, {{LOGOMARK}}), follow the replacement rules below:Text tokens ({{PRODUCTNAME}}, {{TAGLINE}}): HTML-escape , &, ", ' before insertion into HTML text nodes or attribute values.HTML tokens ({{LOGOMARK}}): If using text initials, HTML-escape them by default. If using inline SVG, you must strictly sanitize it using an allowlist: strip tags, event handlers (on), , external refs (href, xlink:href,…
04

Validation: Run hardened quality gates before emitting

5. Run the quality checklist — Read references/checklist.md. Validate every P0 gate before emitting: - Exactly one CTA (email form) - No countdown timer, no fake social proof, no emoji - No horizontal scroll at 375px - Email input has type="email" and required; first name has no…

SKILL.md · Validation: Run hardened quality gates before emitting
Run the quality checklist — Read references/checklist.md. Validate every P0 gate before emitting:Exactly one CTA (email form)No countdown timer, no fake social proof, no emoji
05

Output

7. Emit clean HTML — Single file, CSS inlined, SVG for graphics. Mark interactive elements with data-od-id (headline, form, logo, ticker, grid, etc.) so agents can customize without parsing.

SKILL.md · Output
Emit clean HTML — Single file, CSS inlined, SVG for graphics. Mark interactive elements with data-od-id (headline, form, logo, ticker, grid, etc.) so agents can customize without parsing.7. Emit clean HTML — Single file, CSS inlined, SVG for graphics. Mark interactive elements with data-od-id (headline, form, logo, ticker, grid, etc.) so agents can customize without parsing.

SkillSignal prompt templates

Provide the task, context, and acceptance criteria

These prompts were written by SkillSignal from the source structure; they are not upstream text.

Source-grounded prompt

Use for a content task while explicitly checking the source sections.

Use waitlist-page for this content task: [task]. Inputs and constraints: [details]. Work through these pinned SKILL.md sections: “Workflow”, “Preflight: Load hardened template and brand foundation”, “Steps: Token replacement with validation and escaping”, “Validation: Run hardened quality gates before emitting”, “Output”. Cite the concrete requirements that shape each step, do not invent capabilities absent from the source, and verify the result against: [acceptance criteria].

Content checklist

Verify each item before delivery

The source section “Workflow” has been checked.

The source section “Preflight: Load hardened template and brand foundation” has been checked.

The source section “Steps: Token replacement with validation and escaping” has been checked.

The source section “Validation: Run hardened quality gates before emitting” has been checked.

Source output checked: Emit clean HTML — Single file, CSS inlined, SVG for graphics. Mark interactive elements with data-od-id (headline, form, logo, ticker, grid, etc.) so agents can customize without parsing.

Source output checked: 7. Emit clean HTML — Single file, CSS inlined, SVG for graphics. Mark interactive elements with data-od-id (headline, form, logo, ticker, grid, etc.) so agents can customize without parsing.

Choose a different workflow

When another Skill is the better fit

higgsfield-generate

Use when the user wants to generate an image or video via Higgsfield AI. Covers 30+ models: Soul V2, Seedance 2.0, Kling 3.0, Veo 3.1, GPT Image 2, Nano Banana 2. Also covers Marketing Studio — branded ad video/image with avatars and products. Use whenever: "generate an image", "make a video", "animate this photo", "image-to-video", "img2vid", "edit this image with AI", "produce a clip", "create an ad", "make a UGC video", "marketing video", "brand video", "TV spot", "import product from URL", "

A separate implementation from MoizIbnYousaf/marketing-cli; compare its source, maintenance signals, and permission requirements.

Open source detail

brand-landingpage

Brand-first landing page designer — runs a brand-identity interview (colors, typography, shape language), then generates and iterates on a polished landing page via Stitch with deployment-ready HTML. Use when the user asks to create, design, or build a landing page, homepage, or marketing page and has no established visual direction. Skip when they have a design mockup, need a dashboard or app UI, are working at component level, building a multi-page app, or restyling with known design tokens —

A separate implementation from wshobson/agents; compare its source, maintenance signals, and permission requirements.

Open source detail

emails

When the user wants to create or optimize an email sequence, drip campaign, automated email flow, or lifecycle email program. Also use when the user mentions "email sequence," "drip campaign," "nurture sequence," "onboarding emails," "welcome sequence," "re-engagement emails," "email automation," "lifecycle emails," "trigger-based emails," "email funnel," "email workflow," "what emails should I send," "welcome series," or "email cadence." Use this for any multi-email automated flow. For cold out

A separate implementation from coreyhaines31/marketingskills; compare its source, maintenance signals, and permission requirements.

Open source detail

FAQ

What does the waitlist-page source document cover?

Pre-launch pages are your first handshake with future users. This skill builds a focused, honest entrance: your brand identity, what you're making, one clear path to join the early list. No artificial scarcity, no fake countdown, no inflation tactics—just a clean, mobile-first v…

How do I install waitlist-page?

The source record exposes this install command: npx skills add https://github.com/nexu-io/open-design --skill "design-templates/waitlist-page". Inspect the command and pinned source before running it.

Repository stars
82,073
Repository forks
9,485
Quality
79/100
Source repository last pushed

Quality breakdown

Based on traceable docs and repository signals; stars are not treated as quality.

79/100
Documentation26/30
Specificity16/25
Maintenance20/20
Trust signals17/25

Compare before choosing

Related Agent Skills and source variants

These links are selected from shared tasks, functions, stacks, platforms, and same-name variants. Compare the source owner, documentation, permissions, and maintenance signals.

higgsfield-generate by MoizIbnYousaf

Use when the user wants to generate an image or video via Higgsfield AI. Covers 30+ models: Soul V2, Seedance 2.0, Kling 3.0, Veo 3.1, GPT Image 2, Nano Banana 2. Also covers Marketing Studio — branded ad video/image with avatars and products. Use whenever: "generate an image", "make a video", "animate this photo", "image-to-video", "img2vid", "edit this image with AI", "produce a clip", "create an ad", "make a UGC video", "marketing video", "brand video", "TV spot", "import product from URL", "

brand-landingpage by wshobson

Brand-first landing page designer — runs a brand-identity interview (colors, typography, shape language), then generates and iterates on a polished landing page via Stitch with deployment-ready HTML. Use when the user asks to create, design, or build a landing page, homepage, or marketing page and has no established visual direction. Skip when they have a design mockup, need a dashboard or app UI, are working at component level, building a multi-page app, or restyling with known design tokens —

emails by coreyhaines31

When the user wants to create or optimize an email sequence, drip campaign, automated email flow, or lifecycle email program. Also use when the user mentions "email sequence," "drip campaign," "nurture sequence," "onboarding emails," "welcome sequence," "re-engagement emails," "email automation," "lifecycle emails," "trigger-based emails," "email funnel," "email workflow," "what emails should I send," "welcome series," or "email cadence." Use this for any multi-email automated flow. For cold out

suede-workflow-skills by JasonColapietro

Umbrella workflow for 67 public skills: Full Send, copy, design, code review, SEO, launch packaging, MCP QA, iOS and Android app shipping, and creator workflows. Loads the full public skill pack.

free-tool-strategy by MoizIbnYousaf

Plans free tools, calculators, generators, and interactive widgets that attract target audience through search and social sharing. Engineering as marketing — build something useful, capture leads. Use when someone wants to build a free tool for marketing, says 'free tool', 'calculator', 'generator', 'engineering as marketing', 'side project marketing', 'interactive widget', 'lead generation tool', 'SEO tool', 'growth hack', 'build something to attract users', or wants to attract users through ut

View original Skill.mdThis page is parsed directly from the repository SKILL.md without editorial rewriting. Collected: Jul 28, 2026 · about 7 min

Waitlist Page Skill

Pre-launch pages are your first handshake with future users. This skill builds a focused, honest entrance: your brand identity, what you're making, one clear path to join the early list. No artificial scarcity, no fake countdown, no inflation tactics—just a clean, mobile-first vessel for genuine interest.

Workflow

Preflight: Load hardened template and brand foundation

  1. Load the brand identity — Read DESIGN.md for the color system, font pairing, and spatial rules. This is your foundation. A waitlist page lives or dies by consistency with the brand it represents. If DESIGN.md is missing, ask the user to provide one before you proceed.
  2. Read and copy the reusable template — Read assets/template.html. This template is the hardened seed for all outputs. Copy it to index.html as your base. Do not write HTML from scratch or deviate from this structure. The template has all required layout, form structure, decorations, focus styles, and accessibility scaffolding baked in.

Steps: Token replacement with validation and escaping

  1. Map tokens from inputs — For each placeholder in the template (e.g., {{PRODUCT_NAME}}, {{BG_EXPRESSION}}, {{BORDER_EXPRESSION}}, {{LOGO_MARK}}), follow the replacement rules below:
    • Text tokens ({{PRODUCT_NAME}}, {{TAGLINE}}): HTML-escape <, >, &, ", ' before insertion into HTML text nodes or attribute values.
    • HTML tokens ({{LOGO_MARK}}): If using text initials, HTML-escape them by default. If using inline SVG, you must strictly sanitize it using an allowlist: strip <script> tags, event handlers (on*), <foreignObject>, external refs (href, xlink:href, url()), and any disallowed attributes/elements before insertion. If the SVG cannot be safely sanitized, fallback to escaped text initials. Never emit raw, unsanitized arbitrary HTML. Ensure any SVG scales cleanly within its container.
    • Color expression tokens ({{BG_EXPRESSION}}, {{FG_EXPRESSION}}, {{ACCENT_EXPRESSION}}, {{DECO_EXPRESSION}}, {{STRIPE_EXPRESSION}}, {{SUCCESS_EXPRESSION}}, {{BORDER_EXPRESSION}}, {{BTN_LABEL_EXPRESSION}}, {{TICKER_BG_EXPRESSION}}, {{TICKER_FG_EXPRESSION}}, {{DECO_STROKE_EXPRESSION}}, {{LOGO_SHADOW_EXPRESSION}}, {{LOGO_FG_EXPRESSION}}): Must strictly adhere to an explicit color grammar (#hex, rgb/rgba, hsl/hsla, oklch, or color-mix() using only local variables). Hard reject any input containing ;, {}, <, >, comments (/*), @, url(, or external refs to prevent CSS injection. Do not wrap in # or add extra quotes. Examples: rgba(196, 169, 154, 0.38), color-mix(in srgb, var(--fg) 38%, transparent), #FDE8DF. Insert as-is into :root CSS variables. Derive --success from DESIGN.md if present; otherwise use the allowed fallback #2D6A4F only.
    • Font name tokens ({{DISPLAY_FONT_CSS}}, {{BODY_FONT_CSS}}): These are CSS font-family values, already quoted if they contain spaces (e.g., 'DM Sans', Syne). Insert as-is into --font-display and --font-body declarations; do NOT add extra quotes.
    • Font URL tokens ({{DISPLAY_FONT_URL}}, {{BODY_FONT_URL}}): Spaces must be encoded as + for the Google Fonts URL (e.g., DM+Sans, IBM+Plex+Serif). Validate the URL is well-formed before insertion.
  2. Verify token mapping rules — All color tokens are now in CSS variables:
    • --bg = {{BG_EXPRESSION}} (e.g., #FDE8DF)
    • --fg = {{FG_EXPRESSION}} (e.g., #1A1410)
    • --accent = {{ACCENT_EXPRESSION}} (brand badge)
    • --deco = {{DECO_EXPRESSION}} (decoration primary)
    • --deco-stripe = {{STRIPE_EXPRESSION}} (accent stripe)
    • --input-border = {{BORDER_EXPRESSION}} (full CSS expression with opacity)
    • --success = {{SUCCESS_EXPRESSION}} or #2D6A4F fallback
    • --btn-label = {{BTN_LABEL_EXPRESSION}} (button text color for contrast)
    • --ticker-bg = {{TICKER_BG_EXPRESSION}} (animated ticker background)
    • --ticker-fg = {{TICKER_FG_EXPRESSION}} (animated ticker text)
    • --deco-stroke = {{DECO_STROKE_EXPRESSION}} (SVG strokes, typically muted with 12–15% opacity)
    • --logo-shadow = {{LOGO_SHADOW_EXPRESSION}} (logo container shadow, subtle foreground shade)
    • --logo-fg = {{LOGO_FG_EXPRESSION}} (contrasting text color for logo initials)
  3. Responsive layout — The template includes mobile-first scaling:
    • 375px: form stacks to single column, logo shrinks to 40px, decoration compresses, no horizontal scroll.
    • 768px: comfortable two-column breathing room.
    • 1440px+: centered layout with generous whitespace.
    • Verify all text remains readable and the email input + button are fully visible (no clipping) at 375×667 and 390×844.

Validation: Run hardened quality gates before emitting

  1. Run the quality checklist — Read references/checklist.md. Validate every P0 gate before emitting:
    • Exactly one CTA (email form)
    • No countdown timer, no fake social proof, no emoji
    • No horizontal scroll at 375px
    • Email input has type="email" and required; first name has no required
    • Form does NOT use novalidate; JS uses checkValidity() guard
    • Success message has role="status" or aria-live="polite"
    • All colors from DESIGN.md or allowed fallback; no invented hex values
    • All user text is HTML-escaped; color tokens adhere to strict grammar; fonts are URL-encoded
    • Pass P0 or do not emit. If any P0 gate fails, ask the user or fix the token mappings and try again.
  2. Verify P1 gates for quality submission (recommended):
    • Hover and active states on submit button
    • Form validation with clear feedback
    • Ticker animation respects prefers-reduced-motion: reduce
    • All interactive elements have visible focus styles (input:focus includes outline)
    • Tab/Enter keyboard support
    • WCAG AA contrast for body text (≥4.5:1) and button label (≥4.5:1)
    • Logo alt/aria-label present; ticker has aria-hidden="true"
    • <html lang=""> is set

Output

  1. Emit clean HTML — Single file, CSS inlined, SVG for graphics. Mark interactive elements with data-od-id (headline, form, logo, ticker, grid, etc.) so agents can customize without parsing.

Quality gates

This skill enforces a hardened, template-based workflow to ensure compliance. You must follow this execution path; deviating from the template disqualifies the output.

Mandatory template-based execution:

  • Read assets/template.html as your base; do not write HTML from scratch.
  • Copy it to index.html and replace only the {{PLACEHOLDER}} tokens with validated/escaped values.
  • Run every P0 gate in references/checklist.md before emitting; if any fail, fix and re-validate.

P0 gates (must pass):

  • Single CTA: Email form is the only interactive element. No nav, no secondary buttons, no social links.
  • Logo placement: Fixed top-left, matches DESIGN.md accent color, scales down on mobile (50px → 40px).
  • Color consistency: Every color from DESIGN.md palette. Only allowed hardcoded exception: #2D6A4F for --success.
  • No anti-patterns: No countdown timer, no fake social proof, no emoji icons, no lorem ipsum.
  • Content integrity: Headline and copy tie directly to product_name and tagline inputs—no filler copy.
  • Mobile fit: No horizontal scroll at 375px. Email input and submit button are fully visible (no clipping) at 375×667 and 390×844. Vertical overflow is scrollable, not hidden.
  • Typographic discipline: Display + body fonts only (2-font rule). Consistent sizing across sections.
  • Form structure: Two fields (first name optional, email required), checkValidity() guard, success message with role="status".
  • Token escaping: All user-supplied text HTML-escaped; color tokens adhere to strict grammar and contain no unsafe characters (;, {}, <, >, /*, @, url(); font names are URL-encoded; {{LOGO_MARK}} is escaped text initials or strictly sanitized inline SVG (no scripts, no event handlers, no foreignObject, no external hrefs).

P1 gates (should pass for quality submission):

  • Hero section visually distinct and above-the-fold.
  • Email submit button has hover and active states.
  • Form validation provides clear feedback.
  • Page scrollable (not clipped) at all mobile viewports; CTA visible without scroll.
  • Ticker animation paused/removed under prefers-reduced-motion: reduce.
  • All interactive elements have visible focus styles (outline, not just outline:none).
  • Keyboard: Tab reaches each form field; Enter submits.
  • WCAG AA contrast: Body text ≥4.5:1, button label ≥4.5:1.
  • Logo alt/aria-label present; ticker has aria-hidden="true".
  • <html lang=""> set to correct language code.

Decoration restraint:

  • Lower zone enhances without distraction. Opacity, subtle strokes, muted animation.
  • No gradient that spans more than 20% of viewport height.
  • Coil, stripe, grid, or ticker all use colors from DESIGN.md only.

Output

Only emit after all P0 gates in references/checklist.md pass.

Emit the artifact between tags:

<artifact identifier="waitlist-id" type="text/html" title="Coming Soon — {{PRODUCT_NAME}}">
<!doctype html>
<html lang="en">
...
</html>
</artifact>

One line of description above the artifact; nothing below.

Post-emission: If the user asks for changes, update the index.html in-place and re-run the P0 checklist gates before emitting the next version. Do not skip validation on iterations.

Skill path
design-templates/waitlist-page/SKILL.md
Commit SHA
89d6d4ef21ba
Repository license
Apache-2.0
Data collected