I made my marketing GitHub public 90 days ago.
A week in, someone I'd never met emailed to say he cloned paid-channel-recap and shipped his first stakeholder report with it in 20 minutes. That was the moment.
I didn't put the repos public to help anybody. I did it because I needed a working version of my own brain that I could clone to any laptop and have Claude pick up where I left off. The fact that other people were grabbing it too was a surprise I hadn't planned for.
That email changed how I think about what GitHub is for marketers. Not a portfolio. Not a flex. A storage layer for the work itself.
What I actually put on it
I have 21 public repos at github.com/nickyc1. All MIT-licensed. They sit in four buckets.

Skills. Single-purpose things I do every week, each as its own repo. paid-ads-context is the foundation one. Every other paid-ads skill reads it first, so it carries the business model, ICP, ad accounts, profit-to-spend targets, and redaction rules in one place. google-ads-manager runs my weekly review, search-term mining, and budget reallocation. customer-research, ad-creative, paid-channel-recap, attribution-modeling, weekly-ops-review. Each one is a few markdown files and a tight YAML frontmatter that lets Claude Code invoke it from a natural-language prompt.
Tools. One repo called marketing-stack. APIs, MCPs, CLIs, and integrations I actually use, with the gotchas baked in. This is where I stopped pasting Reoon endpoints into Slack DMs to teammates. They get pointed at the repo instead.
Voice. This is the one most marketers haven't thought about. Your writing voice is now an asset you have to encode somewhere, or every AI tool you use will publish slop with your name on it. I built voice-profile-kit after going through the painful process of capturing my own voice. 100 questions across 7 sections. Interview yourself, synthesize, drop the output into a markdown file every agent loads first. Without it, AI writes you out of your own writing.
Workflows. End-to-end pipelines that compose skills and tools. Cron-triggered, multi-step, production. n8n-recipes is one repo with seven of them inside it. Daily ad spend to a Google Sheet. Lead enrichment with LLM scoring routed into Slack or CRM. Anomaly alerts on paid spend. UTM-to-revenue joins.
The shape of the system matters more than the count. Skills are atomic. Tools are referenced. Voice is encoded. Workflows compose the skills against the tools through the voice.
GitHub fixed AI memory for me
This is the part I didn't expect.
Long Claude Code sessions get worse as they grow. Six hours in, the context window is stuffed with dead branches and tangents, and the model is half-guessing at what you decided three hours ago. Compaction helps. It never fully recovers what was there.
What changed when I started committing important work to GitHub: the memory stopped being about chat history. It became about disk state. Decisions, opinions, and the shape of the work all live in markdown files now. SKILL.md files, reference docs, voice files. When the next session starts, Claude reads those directly. The prior session's clarity is preserved because it was written down, not stored as conversation tokens that get summarized into mush.
Responses are noticeably sharper deep into sessions when there's a commit trail. The skill files anchor the work. My Monday recap skill calls four reference files for context (account targets, GAQL queries, channel definitions, circuit-breaker thresholds). The session doesn't have to hold any of that in its head. It reads what it needs, when it needs it. Six months of accumulated decisions, recovered in seconds.
That's the underrated reason GitHub matters for a marketer using AI. The model gets a durable working surface to operate against. The portfolio piece is downstream. So is the skill reuse.
Why this works so well with Claude Code
Part of why I landed on this stack and not something else is that GitHub is native to Claude Code in a way nothing else is.
I think in folders when I work. Skills get their own folder, references sit next to them, projects get their own root. Claude Code sees those folders directly, edits files in place, commits them, pushes them to GitHub, and opens a PR from inside the session without me switching tabs. No browser tab, no copy-paste, no manual sync.
That ergonomic match is bigger than it sounds. When the agent and the storage layer share the same mental model (files in folders), there's no translation step between "what I'm working on" and "what got saved." The act of saving is the act of versioning. Everything I might want to find again is already in the right place.
Other storage options assume a human is the one moving content around: paste into Notion, upload to Drive, copy out of Slack. GitHub assumes the file is the unit. Claude Code assumes the file is the unit too. They meet in the middle without any glue.
What changes when you actually run it this way
I want to be specific about what this does, because the abstract case for "marketers should be on GitHub" is easy to write and easy to bounce off of. Three real things changed for me.
Monday mornings disappeared.
I used to spend Monday pulling data from three Google Ads accounts, formatting reports, writing the same five-bullet summary. Two to three hours, every week, for years. Now I type "run the weekly ops review for last week" into Claude Code. The skill reads paid-ads-context.md for my targets, pulls the profit table from BigQuery, applies my circuit-breaker thresholds, and writes the markdown. I review for two minutes and ship it. Done by 9:15.
Time saved is the obvious win. The bigger one is that the consistency went up. My recaps used to drift in format depending on how tired I was that Monday. Now every recap looks identical and gets graded against the same rubric. Easier to spot the actual signal.
New work feels solved before I start.
When someone asks me to do something I've never done before, like write a partner newsletter from scratch, I open my profile, scan what's already there, and 70% of the time there's a skill or workflow that gets me three-quarters of the way. The newsletter draft pulls from the n8n-recipes partner-newsletter recipe, generates per-partner sections with my voice profile applied, drops it as a Notion page for me to edit. I'm doing creative editing, not synthesis from a blank page.
That's the leverage you don't see until you've been at it a few weeks. Every new task gets discounted against the past work instead of starting at zero.
Other people use the skills, and it changes who reaches out.
The cloned-recap email was the first one. Last week a friend at another company asked if he could use customer-research as the template for his next round. Both of those are LinkedIn-worthy moments that came from a public repo, not from anything I posted on a feed.
When your work is public, code-shaped, and reusable, other operators reach for it. You stop being known for posting about the work and start being known for the work.
What a skill actually looks like
Below is one of mine. google-ads-manager. README, skill metadata, the workflow table, the requirements, install command. Everything Claude Code needs to invoke it on any of my machines, and everything another marketer needs to fork it.

No magic in there. It's a markdown file with opinions, a YAML frontmatter so Claude can find it, and links to the referenced inputs. The opinions are the part that travels.
GitHub had a product latency moment
Some of my repos are still doing GitHub's original job. I've shipped a handful of small software tools with Claude Code in the last year (internal dashboards, scripts to mine CSV exports, a Chrome extension I use daily) and the codebases live there. That part has been GitHub-as-GitHub since 2008.
The interesting part is everything else. My skill repos aren't code. They're markdown files with opinions, references, and instructions for an AI agent. Same with my voice profile, my marketing stack reference, my n8n recipes. They live on GitHub because that's where version control and shareability are already solved, not because there's any code to compile.
I'm not the only one running this play. My friend Corey Haines runs coreyhaines31/marketingskills, one of the most-starred marketing skills repos out there. 28,000+ stars. CRO, copywriting, SEO, analytics, growth engineering, all markdown, all cloned and shipped by marketers who don't write code.
This is what product latency looks like. GitHub was built for code in 2008. Engineers used it as their operating system for fifteen years. Then AI made marketing artifacts (skills, prompts, voice files, references) version-controllable in the same way code is. The infrastructure that ran the engineering world started running the marketing world too. The marketers who notice first stop trying to build their stack on Notion or Drive and just use the tool that already solved version control, sharing, forking, and durability.
How to actually do this in a weekend
The 30-minute version of getting started looks like this if you've never had a GitHub repo as a marketer.
-
Make a GitHub account. Pick a handle you can live with for 20 years. I picked
nickyc1becausenickchristensenwas taken in 2009 and I didn't fight for it. Pick better than I did. -
Create your profile README. Most marketers miss this one. GitHub renders the README of a repo named exactly like your username on your profile page. Create
<your-username>/<your-username>, init with a README, write five lines about who you are and what's in your repos. That becomes your front door. -
Pick the most boring, most repeatable thing you do every week. Generating a recap. Writing a partner email. Cleaning a CSV. That's your first skill. Create a repo, write a 500-word
SKILL.mdthat walks through how you do it. Don't worry about it being a "real" Claude skill yet. Just capture the process. -
Push it public. Resist the urge to leave it private "until it's ready." Private is where ambition dies. Push ugly and fix later.
That's a weekend.
If you want to convert that SKILL.md into something Claude Code can invoke, add a frontmatter block at the top:
---
name: my-weekly-recap
description: Generate the weekly performance recap. Use when asked to "build my weekly", "run the recap", or "what happened last week".
---
Now Claude Code reads the file, walks the process, and produces the output every time you ask for it. Same input, same voice, same shape. The thing you used to do for two hours every Monday becomes a 90-second invocation.
Three mistakes I'd save you from
I made all three.
Pretty before real. I spent the first weekend on logo placement, badge styling, and ASCII diagrams in READMEs. Garbage time. None of it matters until the skill does the thing. Push ugly, fix later.
Hiding everything as private until it's ready. It's never ready. Two weeks of private polishing is two weeks the work is invisible. Push public on day one with a note that says "alpha, evolving fast." People forgive incomplete. They don't forgive invisible.
Skills as a pile, not as a mesh. The first version of mine was 11 repos sitting next to each other with no cross-references. Useful in isolation, dead as a system. The unlock was adding "Related skills" sections to every SKILL.md, with explicit pointers to the skills upstream and downstream of this one. The mesh is the value. The individual repos are not.
What this becomes in 12 months
If you start now and add one skill every two weeks, you'll have 26 of them by next May. That's a complete marketing operating system you own, not subscribe to.
The count isn't the point. The point is that by month six you'll be reaching for your own skills more than the SaaS tools you used to pay for. The custom things you built will outpace the things you used to subscribe to. Your agents will get sharper because they're calibrated to you. Your work will get faster because past work is your foundation.
The agents need somewhere to live. Notion is for humans, Drive is for documents. GitHub is for the work itself.
Start the repo this weekend. Pick the most boring thing you do every week. Push it public. Be ugly about it.
If you want a starting template, mine is at github.com/nickyc1. Clone, fork, modify. Make it yours.