ShipAgent

Changelog

What each ShipAgent release contains.

1.0.0 — first release

ShipAgent 1.0.0 is a Next.js 16 SaaS starter rebuilt so an AI agent can set it up, verify it and ship it.

What it is

  • Next.js 16, React 19, TypeScript, Tailwind 4, shadcn/ui.
  • Drizzle ORM + Postgres (Neon, Supabase or any Postgres), Better Auth with teams, Stripe, PayPal and Creem, a credit ledger, Resend, Cloudflare R2, Upstash, the AI SDK with OpenRouter, fal and Replicate, a CMS, an admin dashboard.
  • Deploys to Cloudflare Workers (OpenNext, GitHub Actions, encrypted env file) or to Vercel.
  • Eight languages: English, Chinese, Japanese, French, German, Korean, Spanish, Italian, with a key-by-key fallback to English.
  • Two one-time licenses: one year of updates, or lifetime.

Skills (skills/, read by Claude Code, Cursor and Codex)

  • setup-database, setup-auth, setup-stripe, setup-email, setup-storage, setup-ai: each ends in a check script (scripts/check-*.ts) that exits non-zero until the integration really works.
  • deploy-cloudflare, deploy-vercel: the deployed /api/health answering 200 is the proof.
  • add-tool-page: one more paid feature, with credits, tracking and translations.
  • reference/: how the code is organised, for changes the skills do not cover.

Fixes made while rebuilding

  • Restricted Stripe keys (rk_live_…) are treated as live, not test.
  • TLS is on for any hosted Postgres, not only for four known providers; ?sslmode= in the URL is honoured.
  • The anonymous sign-in endpoint is gone.
  • Google and GitHub buttons appear only when their client id is configured.
  • Turnstile verifies the magic-link and email-code routes, not only email + password routes the app does not use.
  • fal reads FAL_KEY everywhere.
  • PostHog waits for cookie consent when the consent banner is on.