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.
Brief in a doc.
Mock in Figma.
Iteration in Slack.
Hand-off to a dev.
Two weeks.
By then the moment is gone.
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. 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 isgnosis-marketing/website/. -
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. 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. 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.
Want a specific component or section pattern in your recipe? Browse templates, components & the pattern library ↓
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
-
_starter-template.astroBlank canvas with the draft wrapper pre-wired. -
DraftPage.astroWrapper that adds the status banner and blocks search indexing. -
CampaignLayout.astroThe full-page chrome, nav, footer, fonts, tokens.
🧩 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.
- 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-websiteon 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 →