Changelog
What's new in vibestrap.
v1.0.0
April 29th, 2026v1.0 — The complete scaffold
This is everything vibestrap ships today. Every customer-facing surface, every provider abstraction, every developer tool — bundled into one purchase. You'll never be charged again, and every future release lands in your repo for free.
Authentication
- Better Auth 1.4 with email + password (verification, reset, change)
- Google OAuth, GitHub OAuth, Google One-Tap
userandadminroles with audit fields (lastLoginAt, IP, UA)
Payments — three providers behind one facade
Multiple providers can be enabled at once via siteConfig.payment.enabled;
defaultProvider picks which one handles the bare /checkout flow.
- Stripe — North America / Europe default
- Creem — Alipay / WeChat Pay for mainland China
- NOWPayments — cryptocurrency settlement (BTC, ETH, USDC, …)
Subscriptions, one-time purchases, credit packs, idempotent webhooks, multi-currency (USD + CNY), customer portal — all uniform across providers.
Credits ledger
Four-type immutable ledger (GRANT / CONSUME / EXPIRE / REFUND)
with atomic balance updates. Every credit movement is auditable.
AI primitives
Six providers (1 mock + 5 real) behind one AIProvider interface:
OpenRouter, OpenAI, Anthropic, Replicate, fal.ai, plus
a deterministic offline mock that runs the demos without keys.
AIManager wraps every call with credit guard, token-based reservation,
refund-on-error, opt-in cache, and single-step provider fallback. Per-call
observability — input/output tokens (when reported), TTFT, total latency,
status — lands in the ai_call table.
Four hooks — useGeneration, useTask, useCredits, useHistory —
and a 17-component AI-native UI library (TokenMeter, ChatBubble,
GenerationCard, ImageGallery, ModelPicker, StreamingText,
RegenerateButton, …).
We deliberately don't ship a dollar-cost dashboard or a prompt registry admin — provider dashboards are the source of truth for billing, and prompt UIs are too product-specific for a one-size-fits-all starter.
Three working demos
/demos/chat— streaming chat with model picker/demos/image— prompt → 4 images with latency stats/demos/document— paste a doc, ask questions
All three run on the mock provider out of the box. Plug in a real key to swap in production models.
Growth & trust
- Customer service — Crisp / Tawk.to / Intercom / Chatwoot
- Affiliate — Affonso / Rewardful + an internal provider that works with any payment provider
- Newsletter — Beehiiv with double opt-in
- Anti-bot — Cloudflare Turnstile
Analytics
Five providers, all conditional, all loaded only when configured: Vercel Analytics, GA4, PostHog, Plausible, Umami.
Admin
/admin/usage— 30-day per-model AI calls, tokens, success rate, latency/admin/usersand/admin/ordersfor ops
Source delivery — GitHub invite, not a zip
After paying, buyers enter their GitHub username on /settings/purchases
and the server adds them as a read-only (pull) collaborator on your
private Org repo. They git clone, then git pull brings in every future
release for free.
Three layers, decoupled:
src/github/invite.ts— thin API client overPUT /repos/{owner}/{repo}/collaborators/{username}src/actions/send-github-invite.ts—userActionClientgate that requires a paidpaymentrow before calling the invitesrc/app/[locale]/(app)/settings/purchases/github-invite-form.tsx— pure UI with Sonner toasts mapped to invite-result codes
One env var: GITHUB_INVITE_TOKEN (fine-grained PAT scoped to one repo).
The 60-day rotation runbook lives in docs/operations/github-invite-delivery.mdx.
Content & i18n
- Fully bilingual marketing site (en + zh,
as-neededlocale prefix) - Fumadocs-powered
/docs/blog/changelogwith parallel*.zh.mdxfiles - Every doc page has a Chinese variant; Chinese content never bleeds into English routes and vice-versa
Polish
- Auto-generated OG image, sitemap, robots
- Locale-aware not-found, global error boundary, loading state
- 110-route runtime smoke + i18n parity check + Vitest unit suite
- GitHub Actions CI (typecheck + lint + tests + i18n + build) on every push
Deployment
- Vercel — push, set env, deploy. See
DEPLOYMENT.md. - Cloudflare Workers —
wrangler.toml.example+ OpenNext adapter, with notes on the connection-pooler requirement for serverless Postgres.