MuseMVP

MuseMVP Base: Next.js for Node and Cloudflare. MuseMVP Flare: an AI SaaS template that runs entirely on Cloudflare. Authentication, billing and administration included.

Product
  • Home
  • Pricing
  • Templates
Resources
  • Docs
  • Blog
  • Changelog
Legal
  • Privacy
  • Terms
  • Community
Open-Launch Top 1 Daily WinnerOpen-Launch Top 1 Daily WinnerVerified DR - Verified Domain Rating for musemvp.comVerified DR - Verified Domain Rating for musemvp.comMuseMVP - Featured on Startup FameMuseMVP - Featured on Startup FameFazier badgeFazier badgeLiftOff award badgeLiftOff award badge

© 2026 MuseMVP. All rights reserved.

MuseMVP
  • Pricing
  • Docs
  • Blog
  • Changelog
Buy MuseMVP Base
MuseMVP Docs
MuseMVP Docs
OverviewTech StackQuick Start
Project Structure
EmailObject Storage
Security BaselineRequest ProxyTurnstile Verification
Internationalization
SEOAnalytics
Security

Turnstile Verification

Integrate Cloudflare Turnstile on auth UI and backend verification pipeline.

MuseMVP uses Cloudflare Turnstile to protect sensitive auth endpoints from bots and abuse. Turnstile is a privacy-friendly CAPTCHA alternative that verifies human users without requiring cumbersome challenges.

Setup Steps

Create a Site

Go to Cloudflare Turnstile and create a site. Cloudflare Turnstile Cloudflare Turnstile

Copy the Site Key and Secret Key. Cloudflare Turnstile

Set NEXT_PUBLIC_TURNSTILE_SITE_KEY and TURNSTILE_SECRET_KEY. The site key is public and build-time. The widget stays off until both are non-empty. Changing them requires a rebuild or a platform secret update.


Common Issues

Debug Tip

Verify both Turnstile env vars first, then inspect business logic.

IssueSolution
Widget not renderingSet both NEXT_PUBLIC_TURNSTILE_SITE_KEY and TURNSTILE_SECRET_KEY. The widget stays off until both are non-empty
Verification failsEnsure TURNSTILE_SECRET_KEY matches the secret from Cloudflare
Mixed keysTest and production keys cannot be mixed across environments

Optional: Disable Captcha

To disable Turnstile, leave either the site key or the secret empty in the app environment. The captcha plugin stays unloaded, and the forgot-password form does not render the widget.

The current Better Auth captcha plugin explicitly configures /forget-password/email-otp and /email-otp/reset-password. Do not assume every signup/login/API endpoint is automatically protected. New protected endpoints need server validation and failure tests.

Request Proxy

MuseMVP uses a single Next.js proxy.ts entry for locale routing.

User Management

Entry, permissions, available actions, and key implementation notes for the admin user management page.

On this page

Setup StepsCreate a SiteCommon IssuesOptional: Disable Captcha

One payment. Tax included.

MuseMVP Base

Next.js for Node and for Cloudflare, with auth, payments and admin.

$69

Buy MuseMVP Base