Ship in 30 seconds

Pick the fastest method for you. No accounts, no writing, no blog setup.

bolt

Claude Code skill

FASTEST

Type /shipped in your terminal. AI reads your git log, generates a ship, you confirm. One prompt. Done.

/shipped

AI auto-gathers context from your git commits, diff, and package.json. Generates title, tags, full blog post. You just confirm.

smart_toy

Any AI coding agent

Cursor, Windsurf, Copilot, or any agent that can run git. Copy this prompt:

Fork github.com/t4s-club/shipped to my account.

Create my profile at people/MY_HANDLE/vibecoder.md with:
- handle: MY_HANDLE
- name: MY_NAME
- bio: one line about me

Create today's ship at shipped/MY_HANDLE/2026-02-19/shipped.md with:
Frontmatter:
- handle, date (2026-02-19), tags, category
- projectName: (optional) project name for timeline tracking
- projectUrl: (optional) live URL
- repoUrl: (optional) GitHub repo URL
- techStack: (optional) [tech1, tech2]

Sections:
- ## The Ship - what I built
- ## Why - motivation
- ## The Hard Part - challenges
- ## Story - (optional) first-person narrative of the journey

Open a PR to t4s-club/shipped with title "Ship: [brief description]"
or do it manually
1

Fork the Content Repo

Fork the content repository to your GitHub account.

Fork on GitHub
2

Create Your Profile (first time only)

Create a file at people/your-handle/vibecoder.md:

---
handle: your-handle
name: Your Name
bio: Builder, maker, shipper.
twitter: yourhandle
github: yourhandle
website: https://your.site
---

Optional longer bio in markdown.
3

Create Your Ship File

Create a file at shipped/your-handle/2026-02-19/shipped.md:

---
handle: your-handle
date: 2026-02-19
tags: [feature, web]
category: feature
# Optional: for project tracking
projectName: my-project
projectUrl: https://my-project.com
repoUrl: https://github.com/user/my-project
techStack: [TypeScript, React, Tailwind]
---

## The Ship

Describe what you shipped today. Be specific — what did you build, fix, design, or deploy?

## Why

Why did you build this? What problem does it solve? What motivated you?

## The Hard Part

What was challenging about this? What did you learn? What would you do differently?

## Story

(Optional) Tell the story in first person. How did it start? What happened along the way? Where did it end up?
4

Open a Pull Request

Commit your changes and open a PR to the main content repo.

info
Tip: Your PR will be reviewed and merged quickly. Once merged, your ship appears on shipped.md!
check

Done!

Once your PR is merged, your ship will appear on shipped.md/today and your profile page will show your shipping streak.

content_copy Quick Copy Template

---
handle: your-handle
date: 2026-02-19
tags: [feature]
category: feature
projectName: my-project
---

## The Ship

What I shipped today...

## Why

Why I built this...

## The Hard Part

What was challenging...

Optional Fields

projectName — group related ships into a project timeline
projectUrl — link to the live project
repoUrl — link to the code repository
techStack — list of technologies used [React, Node.js]

Categories

feature — new functionality
fix — bug fix
docs — documentation
release — version release
refactor — code improvement
design — visual/UX work
test — testing
other — everything else
bolt

Auto-Ship from Git

Push to main = automatic ship entry. Add this GitHub Action to your repo:

# .github/workflows/auto-ship.yml
name: Auto-Ship to shipped.md
on:
  push:
    branches: [main]

jobs:
  auto-ship:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 10

      - name: Gather context
        id: context
        run: |
          echo "commits<<EOF" >> $GITHUB_OUTPUT
          git log --oneline -10 >> $GITHUB_OUTPUT
          echo "EOF" >> $GITHUB_OUTPUT
          echo "diff_stat<<EOF" >> $GITHUB_OUTPUT
          git diff --stat HEAD~1 >> $GITHUB_OUTPUT
          echo "EOF" >> $GITHUB_OUTPUT

      - name: Generate ship entry via AI
        id: generate
        env:
          OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
        run: |
          # Send context to OpenRouter API
          RESPONSE=$(curl -s https://openrouter.ai/api/v1/chat/completions \
            -H "Authorization: Bearer $OPENROUTER_API_KEY" \
            -H "Content-Type: application/json" \
            -d '{
              "model": "anthropic/claude-sonnet-4",
              "messages": [{"role": "user",
                "content": "Generate a shipped.md entry..."}]
            }')
          # Parse and write to file

      - name: Create PR on t4s-club/shipped
        env:
          GH_TOKEN: ${{ secrets.SHIPPED_PAT }}
        run: |
          gh repo clone t4s-club/shipped /tmp/shipped
          # Copy generated file, commit, push, create PR
key
Required secrets: OPENROUTER_API_KEY (for AI generation) and SHIPPED_PAT (GitHub PAT with access to t4s-club/shipped)