How to use Claude Code to publish, generate ad images, and build future funnels.
This package is a complete DTC advertising funnel for Mat & Vic's — built, written, and ready to publish. It includes two live web pages, five AI-generated images, 50 ad creative concepts, and a system for building more in the future. This guide is your instruction manual for all of it.
Everything runs through Claude Code — an AI assistant you install on your computer. You type commands into it, it does the work. No coding required. The "skills" bundled in this folder are pre-built workflows that Claude Code knows how to run — one command and it handles research, copywriting, image generation, and publishing automatically.
You sent over a few thesis ideas for a new campaign direction. The one that stood out was the angle around cotton being fundamentally the wrong material — not just inferior, but the actual source of every problem your customer has been blaming on their feet, their shoes, or their routine.
We built the entire funnel around that thesis: "5 Reasons 100% Cotton Socks Are Designed to Fail You." Cotton is the villain. Your product isn't being sold as better cotton — it's being positioned as the exit from a category that was never designed to work.
This matters for how the funnel is structured: your Meta ads point at the education page (the "presell"), which makes the argument against cotton before your customer has ever seen your product or its price. By the time they reach the offer page, the case has already been made. That's the architecture.
A 2,000-word education page (funnel/presell-v2.html) that runs your cold traffic through the cotton villain argument before they ever see the product. Five reason sections, each with its own AI-generated image — those images are already done (funnel/generated_images/r1–r5.png). No product name, no price anywhere on this page — just the argument. The offer comes at the end, after the case has been made.
A dedicated offer page (funnel/offer-v2.html) that lives behind the presell. Product hero, the formula, testimonials, bundle options, FAQ — designed to convert the reader the presell page warmed up. Your Meta ads link to the presell; the presell links here.
A ready-to-run image generation script (funnel/generate_ad_images.py) with 50 distinct creative concepts — all built around your funnel headline and the cotton villain angle. UGC portraits, comparison formats, macro close-ups, social proof styles. You run the script, images generate via AI, and you pick the ones worth testing.
The three skills installed in this folder — /dtc-funnel-generate, /shopify-publish, and /dtc-ad-generate — mean you're not just getting this one funnel. You're getting a repeatable process: pick a new angle, run the build skill, review the strategy, approve, and the funnel writes and deploys itself. This guide covers both how to launch what we already built (Track A) and how to run the full pipeline from scratch for future campaigns (Track B).
Everything is in one folder on GitHub — the funnel pages, presell images, ad generation scripts, and skills. Download it once and you're set up permanently. Three steps.
Click the button below to download a ZIP of the entire funnel package.
↓ Download matandvics-funnel.zipOnce downloaded, unzip the file. You'll get a folder called matandvics-funnel-main. Put it somewhere you'll remember — your Desktop is fine.
Claude Code is the AI tool that powers everything in this funnel. It runs on your computer as a desktop app — you type instructions into it like a chat, and it executes them.
This is the most important step. Claude Code needs to have the funnel folder open so it can find the files and skills. Without this, nothing works.
matandvics-funnel-main folder you just unzipped.Your funnel copy and HTML pages are already done. Start here to get them live and generate ad images.
Do these steps once. You'll never need to repeat them.
Just tell Claude Code to do it:
Claude will run the install and confirm when it's done.
Go to fal.ai/dashboard, create a free account, then go to API Keys and create a new key. Copy it.
Once you have your key, tell Claude Code to set it:
This is what gives Claude Code permission to publish pages and upload images to your store on your behalf — without you ever having to log into Shopify Admin and do it manually. Every time you run /shopify-publish, Claude uses this access to deploy your funnel in one shot. You set it up once and never touch it again.
write_content, write_themes, write_filesshpat_Give Claude Code your store domain and token — it will save them to a .env file in this folder so it always has secure access without you having to type them again.
Claude saves both values to .env and confirms. Your token is stored locally in this folder — never shared, never uploaded.
/shopify-publish and the no-header template install — reads credentials from this file automatically. You won't need to paste your token into chat again.
Both funnel pages already contain the Meta Pixel tracking code with a placeholder ID (YOUR_PIXEL_ID). Before going live, replace it with your real pixel so Meta can attribute visits and conversions from your ads.
Find your pixel ID: Go to Meta Business Suite → Events Manager and copy the 15–16 digit number under your pixel name.
Claude will swap YOUR_PIXEL_ID for your real ID in both presell-v2.html and offer-v2.html.
This installs a small template file on your Shopify theme that makes funnel pages display without your store's navigation header and footer. Do this once — it stays permanently.
Claude reads your credentials from .env, runs one API call, installs the template, and confirms it worked.
Claude uploads your images to Shopify's CDN, rewrites the paths in the HTML, and publishes both pages live. Nothing to upload manually.
The offer page hero has a product image slot. Have your product photo saved on your computer. If you're unsure of the file path, drag the image into Claude Code's chat — it will tell you the path.
Your pages will live at:
yourstore.com/pages/cotton-socks-guide — presell pageyourstore.com/pages/mat-vics-socks — offer pagePick short slugs with hyphens and no spaces. These become permanent URLs so choose carefully.
Claude reads your store credentials from .env automatically. It will ask for your product photo path and the two URL slugs — that's it.
/shopify-publish again. Claude updates the existing pages in place — no duplicates created.
If anything looks wrong, describe it to Claude and it will fix and republish.
The presell page is your cold traffic landing page. Your Meta ad campaigns link here — not the offer page, not your homepage.
50 ad image concepts have already been written for you — built around your funnel headline, your avatar, and the 5 cotton villain reasons. All you need to do is talk to Claude Code and it handles the rest.
Paste this into Claude Code. It will read the concept file, show you all 50 ideas, and switch the language to German — all without you running any commands.
funnel/generate_ad_images.py. Can you read that file, show me a summary of all the concepts, and then translate all the in-image text and headline copy to German so they're ready to run for our DACH market? Don't generate anything yet — just show me what we've got and make the translation.Claude will read the file, list all 50 concepts with their descriptions, and update the German copy. You can then review them and swap out any concepts you don't like before spending anything.
Once you've reviewed the concepts, tell Claude which ones to run — by number, by description, or all at once. Plain language works:
Images save to funnel/generated_images/ad-concepts/ as they complete. Claude will let you know when each batch is done.
After generating, ask Claude to open the output folder so you can see the images. If any aren't right, just describe what you want changed:
For future campaigns — start here when you want to build a new funnel from zero.
The /dtc-funnel-generate skill researches your market, writes all the copy, reviews it, and builds the HTML pages — mostly automated. Use this for new products or completely new campaigns.
Claude will ask for:
cotton-socks-v2. All files get saved here./shopify-publish, Claude will ask for your Shopify collection page URL (e.g. yourstore.com/collections/all) and swap it in before going live. This lets customers browse by style, length, and fit rather than landing on a single product.
This takes a few minutes. Don't type anything — let it finish.
Claude presents the proposed strategy: villain angle, avatar problem, 5 reasons, coined term, and page 1 headline.
Read it. If it looks right, reply "looks good, go ahead." If something feels off, say what to change.
presell-v2.html and offer-v2.htmlEach copy section gets reviewed and fixed before Claude moves on. The full build takes 20–40 minutes. When done, Claude tells you the file paths and confirms all QA checks passed.
Once the build completes, you're back on Track A:
Editing a live page is just telling Claude what to change and republishing. No manual file handling.
Claude edits the HTML and publishes the update in place — same URL, no duplicates.
The no-header template wasn't applied. Tell Claude:
The page was created but not published, or the slug is wrong. Tell Claude the page handle and ask it to verify and republish.
The custom app is missing a scope. Go to Shopify Admin → Settings → Apps → your app → Configuration → Admin API integration. Confirm all three are checked: write_content, write_themes, write_files. Click Save, then uninstall and reinstall the app. Scope changes only take effect after reinstall.
The key isn't set in this session. Tell Claude:
Then ask it to try generating again.
Describe what you see to Claude in plain language — e.g. "The CTA button doesn't do anything when I click it" or "The offer page looks unstyled — no fonts or colours." Claude will diagnose and fix it.
Using the funnel we built for you
Replace 6 testimonial placeholders in offer-v2.html with real customer quotes.
Upload images to CDN + publish both pages live. Reads Shopify credentials from .env automatically — just provide your product photo and URL slugs.
Switch ad prompts to German, then generate from funnel/generate_ad_images.py. $0.08/image. Need FAL_KEY.
Future campaigns — build from scratch
Research, copy, HTML, QA — all automated. ~30 min. Then follow Track A from Step 2.