ShipAgent

What ShipAgent is

ShipAgent is a complete Next.js SaaS whose every integration ships as a skill an AI agent follows, verifies with a check script, and stops on when a person is needed.

ShipAgent is a finished Next.js SaaS: sign-in, payments, database, email, file storage, AI and deployment are already built. You do not wire them yourself. You open the repository in an AI coding agent (Claude Code, Cursor or Codex), say what you want, and the agent connects each piece to your accounts by following a skill in skills/.

Every setup skill ends with a check script. The agent reports a step as done only when that script prints all checks passed. When a step needs a person (creating an account, pasting a key, a click in a dashboard that no API can make), the agent stops, tells you exactly where to click, and waits.

These docs are for you, the person. The agent reads the repository, not these pages.

Who does what

The agent does everything that is code, a command or an API call. You do the steps that need your identity, your money or your domain.

The agent does You do
Writes .env.local and the production env files Create accounts (Neon or Supabase, Google Cloud, Stripe, Resend, Cloudflare, an AI provider)
Generates secrets (BETTER_AUTH_SECRET, CRON_SECRET) Copy an API key or connection string from a dashboard and paste it
Runs the database migrations and creates your superadmin account Name the email you sign in with as the site owner
Creates Stripe products and prices from config/pricing.ts and registers the webhook Turn on payment methods in Stripe (the API cannot)
Adds your sending domain to Resend and prints the DNS records Add those DNS records at your DNS provider
Writes the R2 CORS rule and tests a real upload Create the R2 bucket and token, turn on public access
Calls the AI provider once to prove the key works Add billing to the provider account
Creates the Cloudflare resources, seals the env, deploys, checks /api/health Create the Cloudflare API token, attach your domain to the Worker
Builds new paid tool pages on top of the demos Decide what the tool does, which model, and the price in credits
Runs the check script after every step and reads the failure table when one fails Sign in once with Google, make one test payment, confirm a test mail arrived

The full list of your steps, with where to click, is on one page: What you do.

What is in the box

Stack

Part What the repository uses
Framework Next.js 16 (App Router), React 19, TypeScript 5
Database PostgreSQL through Drizzle ORM 0.44: Neon, Supabase or any Postgres
Sign-in Better Auth 1.4 with the organization plugin (teams)
Payments Stripe, PayPal and Creem; plans defined in config/pricing.ts
Email Resend, or Cloudflare Email Sending; templates written with react-email
File storage Cloudflare R2 (S3 API, presigned uploads)
Cache and rate limits Upstash Redis, or any Redis through REDIS_URL
AI Vercel AI SDK with OpenRouter, OpenAI, Anthropic, Google, DeepSeek, xAI, fal, Replicate, KIE, and any OpenAI-compatible API
UI Tailwind CSS 4, shadcn/ui
Languages next-intl 4 with 8 locales: en, zh, ja, fr, de, ko, es, it; a missing key falls back to English
Deploy Cloudflare Workers (OpenNext, GitHub Actions) or Vercel
Monitoring Pino logging, Sentry (optional), /api/health

Features

  • Sign-in: Google (with One Tap), GitHub, magic link and 6-digit email code. There is no email-and-password sign-in. Cloudflare Turnstile can guard the email sign-in routes.
  • Roles: user, admin, superadmin. pnpm create-superadmin <email> makes the site owner.
  • Teams: an organization is the billing subject, with a shared credit pool and a seat cap taken from the team plan.
  • Payments: one-time licenses, subscriptions (monthly or yearly) and credit packs. config/pricing.ts is the only place prices are defined; there is no pricing table in the database and no pricing admin page. Each plan names its provider and holds a test and a live price ID.
  • Credits: two buckets, subscription credits (reset on each grant) and purchased credits (never expire). Every change goes through one ledger and is logged. Annual plans grant monthly through a cron job.
  • Email: sign-in link and code, welcome mail, newsletter welcome, team invitation, failed renewal, fraud alerts. The app sends no purchase receipt.
  • Storage: admin and user uploads straight from the browser to R2, an R2 file browser for admins, and cleanup when a user deletes their account.
  • AI demos: chat, image and video pages under /ai-demo, open to admins only so your keys are safe. The add-tool-page skill turns a demo into a paid tool that charges credits and refunds them when the call fails.
  • CMS: a blog and a glossary edited in the admin dashboard, plus MDX blog posts in blogs/.
  • Admin dashboard: overview, users, orders, credits, coupons, feedback, blog, glossary, R2 files.
  • User dashboard: billing, orders, credit history, team, settings, feedback.
  • Analytics (optional): Google Analytics, Plausible, Umami, Rybbit, PostHog, Microsoft Clarity, AdSense, each switched on by its env variable.

Skills

Skill What it sets up
setup-database Postgres connection, migrations, the superadmin account
setup-auth Better Auth secret, site URL, Google sign-in (GitHub and Turnstile optional)
setup-stripe Stripe key, products and prices, webhook, one signed test payment
setup-email Resend key, sender address, domain verification, one real test mail
setup-storage R2 bucket, token, public URL, CORS, a 1 MB upload round trip
setup-ai One AI provider, a real call through the app's code, video webhooks
add-tool-page A new paid AI tool page that charges credits
deploy-cloudflare Cloudflare Workers through GitHub Actions
deploy-vercel Vercel

PayPal and Creem are built into the payment code but have no setup skill yet; skills/reference/payments.md describes them for the agent. How skills are written and checked: Skills.

Supported agents

  • Claude Code finds the skills in .claude/skills/ and the project map in CLAUDE.md.
  • Cursor and Codex start from AGENTS.md at the repository root, which lists every skill and when to use it.
  • Any other agent works if it reads AGENTS.md and can run shell commands in the project folder. Every skill lists the exact commands it runs, so nothing depends on one vendor.

The agent needs to run pnpm, git and network calls on your machine. An agent that can only edit files, without a shell, cannot run the check scripts and cannot finish a skill.

Licenses

Both licenses are a single payment. They differ only in how long updates keep coming.

One year Lifetime
Price $79, once $129, once
Full source code, unlimited projects Yes Yes
Every setup skill: database, auth, Stripe, email, storage, AI, deploy Yes Yes
Cloudflare Workers and Vercel deploy Yes Yes
Updates and new skills For 12 months Forever
Support Discord Priority support
Early access to new skills — Yes

After purchase you receive access to the private repository.

No subscription, no credits

ShipAgent charges once. There is no ShipAgent subscription, no ShipAgent credits and no usage fee, and nothing in the code calls a ShipAgent server.

Your site runs on your own accounts and your own API keys. The services bill you directly for what you use: Stripe takes its fees per payment, your AI provider charges per call, and your database, email and hosting providers charge according to their plans. Deploying to Cloudflare Workers needs the Workers Paid plan, because the server Worker is larger than the free plan allows. Check each provider's current prices on its own site.

The credits inside the code are the ones your product sells to your users. They are yours to configure in config/pricing.ts and config/credits.ts.

Next

Get the code, then run your first session.