Documentation

Guides and references

Reference

FAQ

Frequently asked questions about NextBento.

General

What is NextBento?

NextBento is a production-ready Next.js SaaS boilerplate with authentication, Stripe billing, teams, landing pages, docs portal, programmatic SEO, and more.

What tech stack does it use?

Next.js 16, React 19, TypeScript, Supabase, Stripe, Resend, Tailwind CSS, and shadcn/ui.

Can I customize everything?

Yes. NextBento is a boilerplate, not a framework. Every component, page, and API route can be modified.

What's included out of the box?

  • Auth (email/password, magic link, OAuth) + post-signup onboarding
  • Stripe subscriptions (Standard, Pro, Ultra)
  • Teams with owner / admin / member roles and invitations
  • Dashboard, admin (API keys, activity), settings
  • Two landing page variants
  • Blog, docs portal, legal pages
  • Programmatic SEO (hub, tool, comparison, howto, location)
  • Emails (Resend), middleware (CORS, Upstash-ready rate limiting)
  • SEO (metadata, schema, sitemaps, IndexNow)
  • AGENTS.md AI skills inventory in the product repo

Authentication

How do I add a new OAuth provider?

Configure the provider in Supabase Dashboard (Authentication → Providers), add the callback URL, and ensure app/auth/callback/route.ts handles the redirect.

How do I switch auth layouts?

Set AUTH_LAYOUT_VARIANT in lib/config/auth-layouts.ts to centered, split, or minimal. See Auth Layouts.

Billing

How does the free trial work?

New users get a 7-day free trial. No credit card required to start. Trial logic is in lib/subscriptions/.

Do you support annual billing?

Yes. Annual plans include a discount. Configure price IDs in env (STRIPE_PRICE_*_ANNUAL).

Where is the Stripe webhook secret configured?

Set STRIPE_WEBHOOK_SECRET in your environment. The webhook endpoint is /api/webhooks/stripe.

Teams

How do team invitations work?

Owner or admin invites via /admin/team (picks admin or member role). The invitee receives an email with a link to /accept-invitation. See Teams and Accept Invitation.

What roles exist?

Owner (subscription holder) — billing and full control. Admin — invite/manage members. Member — app access only.

What are the team member limits per plan?

Defined in lib/config/constants.ts as PLAN_TEAM_MEMBER_LIMITS.

Support

Where can I get help?

See Support for GitHub, documentation, and reporting issues.