The AI stack.
Tools. Workflows. MCPs. Process.

The tools, workflows, and patterns I bring to every client engagement: the daily toolset, the workflows running in production, the custom Claude Code skills I install across machines, the connectors wired into my editor, and the process behind every build. Borrow whatever's useful.

01 · the kit

The daily-driver toolset.

Tools I reach for on every engagement, each one run across production deployments. The "not using" section below covers what gets left out and why.

01 · DAILY DRIVERS
Claude Code
The development surface. Replaces what an IDE, a pair-programmer, and a research assistant used to do separately.
DAILY
Vercel
Hosting, serverless functions, scheduled jobs, and storage in one place. Every client deploy runs through Vercel Pro.
DAILY
TypeScript
Default for anything past a single-file script. Strict mode on. Type-check must pass before any commit lands.
DAILY
Anthropic API
Claude 4.8 Opus for code and reasoning. Sonnet 4.6 for high-volume work. Prompt caching on every stable prompt.
DAILY
MCP
The standard that lets an AI agent call internal APIs, databases, and services directly, as typed tool calls. Custom connectors built per engagement when needed.
DAILY
Supabase
Postgres, auth, and database-level access rules in one platform. The access rules replace most of the permission code apps otherwise write by hand, and catch more edge cases.
DAILY
Stripe
Checkout, Customer Portal, webhooks. The webhook handles duplicate events safely so retries don't double-charge or double-fire.
DAILY
Resend
Transactional email with a clean SDK and reliable deliverability. Default mail provider for onboarding, lifecycle, and internal alerts.
DAILY
02 · DELIBERATELY NOT USING
n8n / Make / Zapier
Visual workflow platforms. I don't run production builds on them. The same workflows ship as scheduled jobs and serverless functions on the client's own infrastructure: versioned in git, reviewable in pull requests, debuggable in production logs. Logic on a third-party visual platform is a dependency the client can never fully own. Every workflow I've moved off these tools has fit inside 40 to 60 lines of TypeScript.
AVOIDED
02 · workflows

What I run on a schedule.

Every workflow below lives in a git repo and runs on Vercel scheduled jobs and serverless functions: versioned, debuggable in production logs, and owned by whoever holds the repo.

01DAILY · 06:00 ET

Morning operations brief

Claude reads my site analytics, GitHub commits, new Whop members, and newsletter signups from the past 24 hours, then writes a 5-line summary to a Slack DM.

Vercel CronAnthropic APIPlausible APISlack Webhook
02DAILY · 09:00 ET

Competitor watch

Scrapes competitor sites for new content, compares against yesterday, and surfaces anything that matters. Results are stored so I can read back across days.

Vercel CronFirecrawlClaude 4.8Vercel KV
03WEEKLY · MON 08:00

Newsletter draft generator

Pulls the week's commits across my repos, the notes I've tagged #newsletter, and saved highlights, then drafts the issue in Markdown. I edit and publish. Claude never ships copy on its own.

Vercel CronGitHub APIObsidian MCPBeehiiv API
04EVENT · LEAD CAPTURE

Lead enrichment + routing

When a contact form submits, Claude looks up the name and company via web search, judges fit against the kind of client I take, and scores urgency from the message. It writes the row to Supabase and pings Slack with a recommended action.

Vercel FunctionClaude 4.8SupabaseSlack
05EVENT · CLIENT ENGAGEMENT

Client onboarding sequence

A Stripe payment kicks off the sequence: signed-contract PDF, a Notion workspace cloned from the kickoff template, a scheduling-link email, and a day-1 onboarding Loom. One flow in Vercel.

Vercel FunctionStripe WebhookNotion APIResend
06ON-DEMAND · REPO GROOMING

Claude Code headless runs

I run claude code --headless against a queue of issues in a private repo for routine grooming: it picks one at a time, drafts a PR, runs the tests, and stops for review when blocked. I kick it off when the backlog warrants it, not as an always-on production agent.

Claude Code HeadlessGitHub APISub-agents
03 · claude code skills

Slash commands I install on every machine.

Custom skills live at ~/.claude/skills/. Each is a markdown spec plus optional helper scripts that Claude runs when I type /<name>. These are mine, installable via curl. Source: github.com/pravinemani5545/skills-and-mcp.

/growth-sprint
MINE
30-day outbound and content sprint planner. Takes a goal and drafts a per-week schedule: channel mix, message cadence, and content blocks, as calendar-ready markdown.
/design-system
MINE
Applies the Terminal design system to any project. A guided interview (accent, vibe, theme, motion, exclusions), then writes the tokens and per-page styles. This site came out of it.
/artifact
MINE
Turns a conversation into a saveable artifact. Strips the back-and-forth, structures the output, and asks where to save it. I use it for spec drafting and post-mortems.
/youtube-study
MINE
Turns any YouTube video into study notes. Pulls captions, metadata, and chapters, dedupes the transcript, and falls back to Whisper or Gemini when captions are missing.
/mimic-design
MINE
Reverse-engineers a reference site's design. Works from screenshots and extracted CSS tokens, then offers a menu to steal, adapt, or skip each piece.
04 · mcp servers

What's plugged into Claude.

MCP lets Claude talk directly to apps. Below is what runs in my Claude Code config: official servers, community ones, and my own Gmail server. I patch the Obsidian one locally, since upstream is abandoned.

context7DOCS

Current library docs without web search. Most-used by far; every framework question goes through it first.

githubCORE

Read repos, search code, list and comment on PRs, file issues. Covers most of what I used the gh CLI for.

gmail-organizerMINE

My own server. Multi-account Gmail: account-aware search, labels, archive, and filters across inboxes.

obsidianSELF-HOST

Read and write notes in my vault. Patched locally (PR #44); upstream abandoned.

supabaseDATA

Read and write to my Supabase projects without the dashboard round-trip.

playwrightTESTING

Drive a browser from Claude: visual checks, scroll-state debugging, scraping a live page.

vercelDEPLOY

Inspect deployments, read build and runtime logs, check projects without leaving the editor.

sentryERRORS

Pull issues and stack traces into context, triage runtime errors, and trace them to a fix.

stripePAYMENTS

Query payments, customers, and subscriptions while wiring up checkout and billing.

resendEMAIL

Send and inspect transactional email, manage domains and templates from Claude.

notionDOCS

Create pages, search workspaces, comment on docs. Used heavily during client onboarding.

thingsTASKS

Create and update tasks and projects in Things, so Claude can file follow-ups as I work.

google-adsADS

Query campaigns and performance data for client ad accounts without the Ads UI.

shadcnUI

Pull component source and registry items into a build when assembling a UI fast.

05 · dev process

How AI fits into the actual work.

Less about prompts than about workflow. These are the moves I make day to day, and none of them cost anything.

01

Plan Mode first, code after.

For anything touching 3+ files or with unclear scope, I open Plan Mode first. Claude proposes the approach, I push back, and we converge before any code ships. It cuts most of the "built the wrong thing" rework.

PLAN MODE
02

Sub-agents for parallel research.

When a task means exploring 5+ files or checking 3+ code paths, I run Explore sub-agents in parallel. The main context stays clean, and each one returns just its findings. Faster and cheaper than doing it inline.

SUB-AGENTS
03

Multi-window orchestration.

Tabbed Claude Code sessions, one per project, so I can switch context without losing the thread. Combined with /compress and /resume, I pick a week-old task back up in about 60 seconds.

MULTI-WINDOW
04

Headless mode for autonomous tasks.

Claude Code --headless runs in CI or on a server with no terminal attached. I use it for nightly repo grooming (dependency PRs, lint fixes, doc updates), pipeline rebuilds, and the issue-triage agent above.

HEADLESS
05

Hooks for guardrails.

Pre-commit hooks call Claude to review the diff before a commit lands. Pre-push hooks gate against direct pushes to main. A stop-hook summarizes state at the end of a long session. All of it lives in ~/.claude/settings.json.

HOOKS
06

Memory + CLAUDE.md per project.

Every project has a CLAUDE.md covering conventions, known bugs, and gotchas. Claude reads it on session start, and /preserve keeps it current. Context-rebuild time across sessions drops to near zero.

MEMORY