Changelog

The latest features and improvements across ShipAny templates.

v1.0.4

Webhook reliability, admin workflows, desktop auth hand-off

paymentauthadmindx

  • Admin workflows — order detail/edit dialog on the payments page, reworked users / roles / permissions screens, richer API keys management, ticket handling
  • Customer service widgets — Crisp and Tawk.to, toggled from admin settings
  • Cloudflare Email provider alongside Resend; auth emails now go through a provider-agnostic sender
  • Return-to-origin redirects — sign-in, Google One Tap, the support widget and checkout all bring the user back to the page they started from
  • Desktop hand-off — a new /auth-callback page hands a session token to app protocol URLs (myapp://…), limited to the schemes allow-listed in the new desktop_auth_schemes setting (empty by default)
  • Signup grants — the "grant credits on signup" toggle and the default role are finally applied to new users
  • /ads.txt route and AdSense support
  • AUTH_TRUSTED_ORIGINS accepts hostname-suffix wildcards (.e2b.app) for sandbox preview domains

  • Stripe webhooks on Cloudflare Workers: signature verification switched to constructEventAsync() — the sync call threw "SubtleCryptoProvider cannot be used in a synchronous context" and broke every event
  • Webhook failures return 500 so providers retry. They previously answered HTTP 200, so Stripe marked failed deliveries as succeeded and silently dropped renewals, periodic credits and subscription status syncs. Events the app doesn't handle are still acked with 2xx
  • Subscription renewals: renewal invoices are routed to the renewal handler instead of the first-purchase path, and deduped by provider + invoice ID
  • Admin settings: saved values take effect immediately (config cache refresh); the public config endpoint no longer returns secrets
  • Selects: a closed trigger shows the item label instead of the raw value
  • Docker build: reads .env.production and sets NODE_ENV in the builder stage so VITE_* vars get inlined
  • Dev server: allows e2b sandbox preview hosts

  • design-theme skill v2 — derives a distinctive visual identity from the project brief, with a 9-direction style library and an anti-slop checklist, so a new site never ships the stock look
  • Sandbox preview bridge — reports route changes and on-page links to the ShipAny Code parent frame
  • AGENTS.md: admin console hand-off, mandatory pnpm db:push after schema changes, Playwright/Chromium availability in the sandbox
v1.0.3

llms.txt, error pages, Creem mapping, email fix, Prettier

seouxpaymentauthdx

  • /llms.txt and /llms-full.txt routes — AI-readable site map, auto-generated from pages + blog posts
  • Styled error boundary in root route — "Oops" heading, retry button, dev-only error display (replaces TanStack Router default)
  • Creem Product IDs Mapping — admin setting to map internal product IDs to Creem prod_xxx IDs; auto-resolved during checkout

  • Email verification: public config API now supports Cloudflare Email provider for email_verification_enabled and password_reset_enabled
  • Sign-in: detects EMAIL_NOT_VERIFIED error code directly — always redirects to verify-email page
  • Verify-email Continue: shows toast instead of redirecting to sign-in when not yet verified

  • Prettier + husky + lint-staged — auto-format on commit
  • New scripts: pnpm format and pnpm format:check
  • Full codebase format pass applied
v1.0.2

OpenAI & Anthropic settings, custom configs, and login redirect

adminaiauth

  • Admin AI settings now include OpenAI and Anthropic providers (custom Base URL + API Key), each with a live Test that runs a real chat-completion check; Gemini card removed
  • Provider Test uses the values currently entered in the form — even unsaved — falling back to saved config (masked secrets left untouched)
  • New Custom settings tab — manage arbitrary key/value configs with add/remove rows
  • Auth: protected pages redirect to sign-in with a callbackUrl and send you back to the original page after login, preserved across the sign-in / sign-up switch

  • Turso: fixed drizzle.config.ts (turso dialect mapping + DATABASE_AUTH_TOKEN) so db:push / db:generate authenticate against the remote libsql database
v1.0.1

One-click deploy to Cloudflare Workers

cloudflaredeploy

  • One-click deploy to Cloudflare Workers (D1, or Postgres + Hyperdrive)
  • New deploy-cloudflare skill — handles D1, secrets, schema push and redeploy automatically
  • Fixed a number of SSR and hydration edge cases
v1.0.0

ShipAny TanStack first release

releasetanstack-start

The newest member of the ShipAny family — the full agent-native business engine, now on TanStack Start.

  • Brand-new template on TanStack Start (Vite 8 + Nitro + React 19, TypeScript strict)
  • File-based routing — no RSC, no "use client", all plain React components
  • TanStack Query / Form / Table throughout, backed by a typed api-client
  • Paraglide JS i18n — compiled, tree-shakeable message functions
  • better-auth + Drizzle ORM, sharing ShipAny's modular business logic (auth, credits, payments & subscriptions, API keys, RBAC)