DRAFT

GET THE APP

Scan the QR code to join now

app.gnosis.io

Scan the QR code to join now

app.gnosis.io/circles/invite-links

GET THE APP

48 CRC welcome gift

circles.gnosis.io/invitation/nYYQgGPv

Studio · co-create Gnosis.com

Stop briefing.
Start building.

Marketing used to write briefs and wait. Now you build the page. Claude does the typing. Designer ships when it's ready. Same brand, faster.

Curious what's already built? See templates & components →

drafts created
0
campaigns shipped
0
recipes ready
0

The shift

Yesterday took two weeks.
Today takes minutes.

Yesterday

Brief in a doc.
Mock in Figma.
Iteration in Slack.
Hand-off to a dev.
Two weeks.

By then the moment is gone.

Today

Open Claude.
Describe the page.
A real URL in minutes.

Designer ships when it's ready.

Studio used to be a designer-only room.
Now everyone has the key.

The system

Three rooms.

Brainstorm

Notion · Figma · your head

Where you already work. Messy on purpose. Not changing it.

Studio

/drafts/<your-slug>

Real pages, real URLs, but Google never sees them. Iterate freely. Worst case: you delete a draft.

Production

world.gnosis.io

The face. A draft graduates here only when ready, and only the designer can promote.

🔒 You can't accidentally make something public. Only the designer can promote a draft to production.

Your first 5 minutes

Make a real page right now.

Follow these four steps. By the end, you'll have a real page on a real branch with a preview URL you can share with the team.

  1. 1. Open Claude Code in this repo

    If you can't find Claude Code on your machine, ask in #marketing-website. Make sure your working directory is gnosis-marketing/website/.

  2. 2. Paste this exact prompt

    Click the prompt to copy. Don't change anything in the first run, get the workflow working before you customize.

    I'm a marketer on Gnosis World, brand new to this repo. I want to
    make my first draft page.
    
    What I want to build:
    [DESCRIBE THE PAGE / CAMPAIGN HERE in 1-3 sentences. Real examples
    from our roadmap to spark ideas:
      • "An Earning Season expansion page targeting German-speakers
        in Berlin who are curious about crypto but allergic to it."
      • "A landing page for community managers wanting to launch their
        own Circles Group and issue a community currency."
      • "A Mini App Bounty Program recruitment page for indie devs."
      • "A page comparing Gnosis Pay to a neobank, framed for someone
        who doesn't care about crypto, just wants 5% cashback."
      • "A partner-onboarding page for local coffee shops accepting
        CRC payments."
    Replace this whole bracketed block with your own description.]
    
    Please:
    1. Read website/CLAUDE.md and website/src/pages/drafts/CLAUDE.md so
       you know the rules.
    2. Read _brand/brand-foundation.md and
       _brand/visual-identity/voice/brand-context.md so you know the
       Gnosis brand voice (Satoshi x Deadpool, confident, irreverent,
       anti-crypto-anxiety) and audience.
    3. Invent a sensible URL slug from my description (lowercase, dashes).
    4. Copy website/src/pages/drafts/_starter-template.astro to
       website/src/pages/drafts/[your-slug].astro.
    5. Replace the placeholder hero, sections, and CTA with content
       that fits my description. Use the brand voice. Keep the
       structure of the starter template.
    6. Mark the DraftPage status as "sketch" and put my name as owner
       (ask me what my name is if you don't already know).
    7. When done, tell me the localhost URL where I can see this draft
       (it will be http://localhost:4321/drafts/[your-slug]).
       If the dev server is not running, tell me to run `npm run dev`
       first.
    
    Don't push or open a PR yet, just create the file. I'll review
    locally first.
  3. 3. Review the file Claude made

    Claude will tell you the path to the new file. Open it and see the change. If anything looks weird, tell Claude what to fix in plain language.

  4. 4. Open a Pull Request

    Tell Claude: "open a PR with this change". Within ~30 seconds Vercel will post a preview URL in the PR comments. Click it. That's your page, live, on a real domain. You just built it.

🎉 Now you know the loop. The recipes below cover the next 15-or-so things you'll want to do.

Recipe book · 17 prompts

Copy-paste prompts.

Each recipe is a ready-to-paste prompt for Claude. Fill in the bracketed bits, hit send. The prompts encode the rules so Claude does the right thing automatically.

Aim for world-class. The bar isn't "on-brand and acceptable", it's the calibre of Linear, Stripe, Apple, Vercel, Phantom, Arc Browser. Drafts can borrow patterns from anywhere, extend the palette when the brief calls for it, and invent layouts the design system hasn't seen yet. Brand tokens are the starting palette, not the cage. The Iterate recipes below have prompts for exactly that, the brand stays Gnosis but the inspiration can come from anywhere.

🚀 Get going

Start a new campaign draft

You have a briefing and want a working draft.

I'm starting a draft for a new campaign:
- Slug (URL-friendly): [LIKE earning-season-berlin OR mini-app-bounty]
- Hero eyebrow: [SHORT-CAPS-LINE, e.g. "Earning Season · Berlin"]
- Hero headline: [ONE-PUNCHY-LINE in Gnosis voice (Fork x, Own y)]
- Theme: [ONE-SENTENCE. What changes for the visitor]
- Audience: [WHO. e.g. "Berlin neobank users curious about Gnosis Card"]
- Briefing link: [NOTION-OR-FIGMA-URL if you have one, otherwise skip]

Please:
1. Read website/CLAUDE.md and website/src/pages/drafts/CLAUDE.md.
2. Copy _starter-template.astro to a new draft using my slug.
3. Update DraftPage props (title, owner=ME, briefingUrl, status=sketch).
4. Replace the hero with my eyebrow + headline.
5. Use existing FeatureCard / PlanetHero / Button components.
6. Open a PR.

Stay in drafts. Don't promote to production.

When done, tell me the localhost URL where I can see this change
(it will be http://localhost:4321/drafts/[SLUG] for that draft).
If the dev server is not running, tell me to run `npm run dev` first.
🚀 Get going

Add a section to an existing draft

The draft needs another block (testimonial, features, FAQ).

In src/pages/drafts/[SLUG].astro, add a new section between the
[CURRENT-SECTION] and the [NEXT-SECTION].

The new section is: [DESCRIBE, e.g. "a row of three feature cards
about earning, creating, and building"].

Use existing components from src/components/ if any fit. List them
for me first and pick the closest match. If nothing fits, build it
inline in the draft (don't add new files to src/components/).

When done, tell me the localhost URL where I can see this change
(it will be http://localhost:4321/drafts/[SLUG] for that draft).
If the dev server is not running, tell me to run `npm run dev` first.
🚀 Get going

Fast landing page from a one-line briefing

When you only have one sentence, but want a draft now.

My one-line briefing: "[ONE SENTENCE. Examples:
  • Recruit Berlin coffee shops to accept CRC.
  • Landing for the next Earning Season cohort.
  • Mini App Bounty pitched to Polymarket builders.
  • Gnosis Pay vs Revolut, framed for the no-crypto crowd.]"

Please make a fast first-pass draft from this:
1. Invent a slug, hero eyebrow, hero headline, and 3 feature blocks
   that fit my one-liner. Use the brand voice (Satoshi x Deadpool,
   confident, irreverent, on-message).
2. Scaffold the draft following the starter template.
3. Add HTML comments inside the file marking which parts you
   invented (so I can see your assumptions and override them).
4. Open a PR titled "Draft v0: [SLUG]" so I know this is your
   first guess, not a final version.

Stay in drafts.

When done, tell me the localhost URL where I can see this change
(it will be http://localhost:4321/drafts/[SLUG] for that draft).
If the dev server is not running, tell me to run `npm run dev` first.
🚀 Get going

Build from a Figma layout description

You have a mock and want it as a real page.

I'm describing a Figma mock. Build a draft that approximates it
using existing canonical components.

The mock has, top to bottom:
- [DESCRIBE-SECTION-1: e.g. "a hero with a centered headline and CTA"]
- [DESCRIBE-SECTION-2: e.g. "a 2-column block with text on the left and an image on the right"]
- [DESCRIBE-SECTION-3: e.g. "three cards in a row"]
- [DESCRIBE-SECTION-4: e.g. "a quote / testimonial"]
- [DESCRIBE-SECTION-5: e.g. "a final CTA on a dark band"]

Please:
1. Match each described section to an existing component when possible
   (FeatureBlock, FeatureCard, PlanetHero, FinalCta, etc.).
2. Where no component fits, invent inline within the draft and tell me.
3. Use placeholder copy (Lorem-ipsum-but-on-brand) so I can read the
   layout without copy distractions.
4. Open a PR.

When done, tell me the localhost URL where I can see this change
(it will be http://localhost:4321/drafts/[SLUG] for that draft).
If the dev server is not running, tell me to run `npm run dev` first.
🚀 Get going

Port a component from an outside library

Our shared library is small. Borrow + tokenize.

I want to use a component pattern that doesn't exist in
src/components/ yet. The pattern is described / linked here:
[PASTE LINK or DESCRIPTION, e.g. "the pricing table from
ui.shadcn.com/blocks/pricing-1" or "the bento grid from
magicui.design/docs/components/bento-grid"]

Please:
1. Fetch / read the source if it's a URL.
2. Summarize the structural + visual idea in 3 bullets.
3. Check src/components/ for anything that already gets close.
4. If nothing close exists, port the pattern into my draft at
   src/pages/drafts/[SLUG].astro inline:
   - Astro idiom (HTML + scoped CSS, minimal JS)
   - Use Gnosis tokens (--space-*, brand colours, motion)
   - Don't copy their colours/copy verbatim, translate
   - Drop any framework dependencies (no React-only patterns)
5. Tell me whether this looks like a strong candidate for
   promotion to a shared component.

When done, tell me the localhost URL.
🎨 Iterate

Edit copy on an existing draft

Change words on a page that already exists.

I want to update the copy on the draft at
src/pages/drafts/[SLUG].astro.

Specifically:
- Change [WHAT-IT-CURRENTLY-SAYS] to [WHAT-IT-SHOULD-SAY]
- [ANY-OTHER-CHANGES]

Keep all the structure and components the same, just update the text.
After: summarize what you changed and remind me to open a PR.

When done, tell me the localhost URL where I can see this change
(it will be http://localhost:4321/drafts/[SLUG] for that draft).
If the dev server is not running, tell me to run `npm run dev` first.
🎨 Iterate

Try a different hero headline

A/B-ing copy ideas in your head.

In src/pages/drafts/[SLUG].astro, change the hero title to:

  "[NEW HEADLINE HERE]"

Keep everything else the same. After: tell me what the live URL will
be once I push, so I can share it with the team.

When done, tell me the localhost URL where I can see this change
(it will be http://localhost:4321/drafts/[SLUG] for that draft).
If the dev server is not running, tell me to run `npm run dev` first.
🎨 Iterate

Headlines inspired by another brand

Borrow headline energy from a brand you admire.

Look up the homepage of [BRAND, e.g. Linear / Stripe / Monzo /
Notion / Apple / Revolut / Wise / Coinbase / Phantom / Arc Browser].
Read its hero + first 3 sections. Then:

1. Summarize in 3 bullets what makes their headline writing
   distinctive (rhythm, length, pronoun usage, tense, attitude).

2. Generate 5 alternate hero headlines for my draft at
   src/pages/drafts/[SLUG].astro that BORROW that distinctive
   feeling but TRANSLATE through the Gnosis voice (Satoshi x
   Deadpool, confident, irreverent, mother-brand verb "Fork").

3. Brief on each:
   - Headline 1: [your version]. Borrowing: [what specifically].
   - Headline 2: ...
   ...up to 5.

Don't change the file yet. I'll pick one.
🎨 Iterate

Remix a section, inspired by an outside brand

A competitor or design-forward site nailed a layout you'd love to riff on.

Look up [BRAND]'s [PAGE, e.g. "homepage" or "pricing page" or
"feature page"]. Study the [SECTION, e.g. "hero" or "feature
comparison" or "testimonial section"].

Then on my draft at src/pages/drafts/[SLUG].astro, REMIX that
section's structural idea into a Gnosis-tokenized version:

1. Summarize the structural idea in 3 bullets (what's the layout
   doing? what's the visual hierarchy? what's the motion / hover?).
2. Translate it through the Gnosis brand:
   - Use our tokens (colours, spacing, motion) only.
   - Use Gnosis voice for any new copy.
   - Use our existing components when they map cleanly.
   - Invent inline only where their structure has no equivalent.
3. Replace [the relevant section] in my draft.

Important: this should NOT look like an imitation. The reader
should think "fresh," not "they're copying X." If you find
yourself replicating their colours or copy, stop and re-translate.

When done, tell me the localhost URL where I can see this change.
Polish

Translate a draft to German

When a campaign needs the de/ mirror.

The draft at src/pages/drafts/[SLUG].astro needs a German version.

Please:
1. Read existing de/ copy files for tone reference.
2. Create src/copy/drafts/de/[SLUG].md mirroring src/copy/drafts/en/[SLUG].md.
3. Translate all user-facing copy to German.
4. Keep brand-specific terms in English: Gnosis, Circles, CRC, Visa,
   Earning Season, tier names (Top Earner, Power Earner, etc.).
5. Use commas as decimal separators (1,5 not 1.5).
6. No long dashes. Use commas, periods, or middle-dot (·).

When done, tell me the localhost URL where I can see this change
(it will be http://localhost:4321/drafts/[SLUG] for that draft).
If the dev server is not running, tell me to run `npm run dev` first.
Polish

Ask designer to promote your draft

You think the draft is ready for prime time.

My draft at src/pages/drafts/[SLUG].astro is ready for stakeholder
review and possibly production.

Please:
1. Update the DraftPage status from "sketch" / "review" to "approved".
2. Run npm run check and fix anything that fails (with me reviewing
   each fix before applying).
3. Add a one-line summary at the top of the file describing what
   needs to happen for promotion (URLs to add to the registry, copy
   to move to production locales, etc.).
4. Open a PR titled "Draft ready for review: [CAMPAIGN NAME]" and
   tag the designer.

Don't promote yourself. Wait for designer approval.
Polish

Roast my draft, find the weak parts

Before sharing it with the team, you want honest feedback.

Read the draft at src/pages/drafts/[SLUG].astro and roast it for me.

Specifically:
1. What's the weakest line of copy? (One pick, with reasoning.)
2. Which section feels most generic or interchangeable?
3. Where does the energy drop?
4. Is the CTA earned by the end of the page?
5. Does the headline survive a 3-second skim?
6. What's something a competitor brand could say identically?

Be direct. Don't soften. Don't fix anything yet. I want a brutal
read first, then I'll tell you which parts to rework.
Polish

Mobile responsiveness pass

Before stakeholder review, make sure it doesn't fall apart on a phone.

Audit src/pages/drafts/[SLUG].astro for mobile (≤480px) issues.

Please:
1. List every place where text might overflow, sizing breaks, or
   layout fights itself on a 375px viewport.
2. For each issue, propose a fix using existing tokens
   (--space-*, clamp(), media queries), no new hardcoded breakpoints.
3. Don't apply fixes yet. Show me the list first; I'll pick which
   ones to apply.

After: tell me what's currently fine on mobile too, I want to
know what I don't have to worry about.
🛟 When stuck

I'm stuck and don't know what's wrong

Something broke and you don't know how to recover.

I'm stuck. Please diagnose:

1. Run npm run check and tell me what (if anything) fails, in plain
   English.
2. If npm run build also fails, run it and surface the error.
3. Look at git status and tell me what's uncommitted.
4. If you see something I should revert, tell me before doing it.

I want to understand what went wrong, not just have it fixed silently.
🛟 When stuck

Show me what components I can use

Before inventing anything, see what's already there.

List every component in src/components/ with:
- One-line description of what it does
- A code example of how to use it (props + slot if any)
- A link to where it's used in production (which page)

Format as a table. I want a quick reference for what I can compose
in my drafts without inventing anything new.
🛟 When stuck

Explain what just happened

Claude did something, you don't understand what or why.

In the last 3-5 turns, you made changes I don't fully understand.

Please:
1. Summarize, in plain English, every file you changed and why.
2. For each change, tell me one alternative you considered but
   rejected, and why.
3. Tell me if any of the changes have side effects I should know
   about (e.g. affects another page, requires a new env var,
   touches the link registry).
4. Tell me what would happen if I git-revert the last commit,
   what gets lost and what stays.

I want to understand the system, not just the keystrokes.
🛟 When stuck

Safely undo my last thing

You made a change you regret and want to roll back without breaking other things.

I want to undo my last change without breaking anything else.

Please:
1. Show me what's currently in git status / git diff.
2. Tell me which files I'd need to revert to roll back ONLY my
   recent change (keeping everyone else's work intact).
3. Walk me through the safest revert path: cherry-pick a revert
   commit? git restore individual files? git reset?
4. Don't run any destructive commands. Show me the commands you'd
   run, then wait for me to say "go" before executing.

I'd rather take 5 extra minutes and get this right than wreck
someone else's work.

Reference

Templates & components.

Everything below already exists in the repo. Name-drop any of these in a recipe and Claude will wire them up for you. No need to read the files yourself, but the links go to GitHub if you want to peek.

📄 Templates

Copy these as the starting point for a new draft.

🧩 Components

Reusable building blocks. Browse them all on GitHub.

Heroes
BrandHero · PlanetHero
Content
FeatureBlock · FeatureCard · HowItWorks · ComparisonTable · DifferentiationBlock
Social proof
SocialProof · StatsBand · TrustStrip · Leaderboard · TierLadder
UI
Button · AccordionItem · QrPopup · LanguageSwitcher
Visuals
AppPreview · PhoneMockup · Animation · Avatar · OwlSymbol
Closers
FinalCta · Disclaimer

📚 Pattern library

94 section patterns across 13 categories. The place to browse before you brief. Sketch-status; expect rough edges.

Open the library →

Page openers
Hero sections · Section kickers
Content
Highlights · Multi-feature layouts · Visualisations
Proof
Social proof · Trust + safety surfaces
Decision moments
Comparison · Pricing · FAQ · Steps
Closers
CTAs · Footer / closer

Tip: tell Claude "use pattern H-4 (Cycling noun) from drafts/library" and it will lift the structure into your draft.

Not sure which to use? Paste this into Claude.

Walk me through every reusable component in
src/components/. For each one, tell me:
  1. What it does in one sentence
  2. When to reach for it
  3. Its key props or content slots
  4. An example draft section that uses it well

Skip Nav, Footer, GnosisLogo (page chrome).
Group the rest by purpose: hero, content, proof, UI,
visual, closer. Then ask me what I'm building so you
can recommend the right two or three.

The rules, plainly

Free in drafts. Gated in production.

✅ Free

  • Make as many drafts as you want
  • Try wild ideas, delete what doesn't work
  • Share preview URLs with the team

❌ Designer-gated

  • Promoting drafts to production
  • Editing production pages directly
  • Adding new shared components or brand tokens

Get help

When you're stuck.

  • #marketing-website on Slack, async questions, share preview URLs.
  • Ask Claude, paste recipe #13 ("I'm stuck") and it'll diagnose for you.
  • The designer, direction, taste, promotion.

First day will have friction. Tell us where it hurts.

Your turn

Stop reading.
Start building.

Recipe one is two scrolls up. Open Claude. Paste it.

Or peek at the templates & components →