How a Developer Used Claude Code with Linear and Discord for a Solo 30-Day Build

✍️ OpenClawRadar📅 Published: March 30, 2026🔗 Source
How a Developer Used Claude Code with Linear and Discord for a Solo 30-Day Build
Ad

The Project and Stack

A developer created VGC Team Report (pokemonvgcteamreport.com), a team report builder for competitive Pokémon (VGC) that generates detailed breakdowns with matchup plans, damage calculations, speed tiers, and shareable reports. The project was built in 30 days of evenings and weekends with 274 commits, ~42,000 lines of TypeScript, 25 features shipped via Linear, 66 React components, 41 API routes, and 22 custom hooks. The stack included Next.js 16 (App Router), React 19, TypeScript (strict mode), Tailwind CSS v4, Clerk for authentication, Neon for serverless Postgres, and Vercel for hosting and deployments.

The Workflow: Linear → Claude → Discord → Vercel

The developer wired Claude Code into Linear for ticket tracking and Discord for build notifications to create an automated development pipeline. A typical session followed this sequence:

  1. Claude runs linear_get_in_progress to check the Linear board for tickets
  2. Picks the highest priority ticket (bugs first)
  3. Reads relevant files and implements the feature or fix
  4. Runs tsc --noEmit && npm run build — if it fails, Claude fixes the errors
  5. Commits with the ticket ID format: VGC-42: Add speed tier chart
  6. Pushes to main
  7. Posts a comment on the Linear ticket via GraphQL with commit URL and changed files
  8. Moves the ticket to In Review
  9. Calls discord_notify_build — posts an embed to Discord #builds with commit, changed file list, and deploy status
  10. Vercel auto-deploys from main
  11. Moves to the next ticket

This was implemented through a linear.sh bash script with functions that Claude calls directly: linear_get_in_progress (queries Linear GraphQL for In Progress tickets), linear_move_issue (moves a ticket to a new state), linear_comment_with_changes (posts a comment with commit link and changed files), and discord_notify_build (sends a Discord embed with commit info and deploy status).

Ad

The CLAUDE.md Operating Manual

A CLAUDE.md file at the repository root provides context for every Claude session. Key sections include:

  • Git strategy: Trunk-based development with direct pushes to main for routine work, feature branches only for large or risky changes, and npx tsc --noEmit && npm run build before every push as non-negotiable
  • Linear workflow: Exact state IDs for "In Progress" and "In Review," how to query and implement tickets, commit with VGC-XX prefix, post commit comments, move ticket states, with bug tickets always worked on first
  • Discord notifications: discord_notify_build function format with different embeds for direct-to-main pushes vs PR flows
  • Failure handling: Build fails → fix and retry, never push broken code; Linear API fails → still commit and push, note failure to user; Production breaks → git revert, push to main, notify Discord, move ticket back
  • Code conventions: Follow existing patterns, no drive-by refactors, commit messages: VGC-XX: description for tracked work

Automated Monitoring

Two Vercel cron jobs were set up: a daily check at 9 AM for site health, stale ticket scan, SEO audit, and database health (posts alerts to Discord only if something's wrong), and a weekly digest on Friday at 5 PM for Linear progress, user growth, and dependency updates (always posts a summary to Discord). Real-time uptime monitoring used UptimeRobot with 5-minute pings.

What Worked

The developer highlighted several effective practices: trunk-based development with type-checking gates (tsc --noEmit && npm run build) ensuring every push to main auto-deploys on Vercel with a minutes-long feedback loop; Linear ticket traceability with every commit linking back to a ticket and every ticket having a comment with commit URL and changed files; Discord as an audit trail with every build posting to #builds; and the CLAUDE.md file as the single most valuable project component for maintaining consistent context across sessions.

📖 Read the full source: r/ClaudeAI

Ad

👀 See Also