ShipCard harvests your Claude Code sessions and git history, filters out anything sensitive, and generates a polished Twitter card in one command.
Building in public is one of the most powerful ways to grow an audience — but most developers never do it. Here's why.
After 8 hours of coding, the last thing you want to do is craft a Twitter thread about what you built. So you don't. And you forget.
You downplay your own work. That auth refactor you did? That performance fix? Those are exactly the stories people want to read.
You don't want to accidentally expose API keys, client details, or internal paths. So you just don't post. ShipCard filters all of that automatically.
Vague posts like "worked on my project today" don't build audiences. Real numbers — commits, lines, hours — make people engage and follow.
ShipCard does all the work between when you finish coding and when you hit Post.
Just work normally using Claude Code and git. ShipCard runs in the background, reading your session logs and commits as they happen.
shipcard collectOne command. ShipCard harvests your day's activity, strips secrets, ranks your top moments by impact, and writes structured JSON.
A polished, Twitter-optimized card with your stats, top highlight, tech stack tags, and your handle. Ready to post in seconds.
Drop the PNG into your tweet. Watch the engagement. Build in public consistently without it costing you any extra time or energy.
ShipCard generates a unique card for each session — big shipping days, deep focus days, even debugging marathons.
One command. One card. Consistent build-in-public presence without writing a single word.
ShipCard's privacy filter runs before anything is rendered. Your API keys, internal paths, and client names stay off the card. Always.
Any string matching a secret pattern (JWT, Bearer tokens, keys) is stripped before analysis even begins.
File paths containing company or client names are generalized. /acme-corp/billing becomes /[client]/billing.
Commits referencing ticket numbers, internal systems, or flagged keywords are excluded from the card entirely.
A simple .shipcardignore file lets you exclude repos, branches, or file patterns.
No session data ever leaves your machine without your explicit opt-in. All processing happens locally.
# Session prompt — raw (never leaves your machine)
"Set STRIPE_SECRET_KEY=sk_live_xK9mQ..."
"Fix bug in /acme-billing/invoices.py"
"See JIRA-4821 for context"
# After privacy filter (what ShipCard sees)
"Set STRIPE_SECRET_KEY=[REDACTED]"
"Fix bug in /[client]/invoices.py"
# ↑ internal ticket reference excluded
# .shipcardignore
repos:
- client-work/*
- internal-tools
branches:
- staging/*
- hotfix/*
Tweak everything from your handle to the color scheme. Ship cards that look like they came from your design system.
Choose from Dark (default), Light, Ocean, Sunset, and Forest. Or define your own gradient in ~/.shipcard.toml.
Set it once. Every card shows your name, avatar initial, and @handle exactly how you want it to appear on social.
Choose which stats matter most to you: commits, lines, hours, PRs merged, test coverage change, tools used.
Tell ShipCard what counts as a highlight: "prefer commits mentioning 'shipped' or 'deployed'" — it'll rank those first.
Only show certain repos. Focus your card on your side project, not your day-job commits. Full include/exclude control.
1200×675 for Twitter/X. 1080×1080 for Instagram. 1200×627 for LinkedIn. One command generates all three.
No dashboards to open. No blog post to write. No time you don't have. Just run it.
The core CLI is free forever. Upgrade when you're ready to go hands-free.
ShipCard tells the story. Sign up to get notified at launch.