๐Ÿš€ REISS BUILDS - CLOUDFLARE FORM SETUP GUIDE

Status: Ready to implement - All code created!
Time Required: 20-30 minutes initial setup
Monthly Cost: $0 (uses Cloudflare free tiers)

๐Ÿ“ WHAT'S BEEN CREATED

โœ… functions/api/contact.ts - Form handler with validation & email sending
โœ… wrangler.toml - Cloudflare configuration
โœ… contact.njk - Updated with Turnstile & proper form action
โœ… thank-you.njk - Success page after form submission

๐Ÿ”ง CLOUDFLARE DASHBOARD SETUP (Required)

Step 1: Enable Turnstile (Anti-Spam)

  1. Go to: Cloudflare Dashboard โ†’ Your Account โ†’ Turnstile
  2. Click: "Add Site"
  3. Configure:
  4. Save and copy the Site Key and Secret Key

Step 2: Setup Email Routing & Email Workers

  1. Go to: Cloudflare Dashboard โ†’ reissbuilds.com โ†’ Email โ†’ Email Routing
  2. Click: "Enable Email Routing"
  3. Add destination: jeff@reissbuilds.com (verify via email link)
  4. Go to: Email โ†’ Email Workers
  5. Click: "Enable Email Workers"
  6. Note: This creates the SEND binding we use in the code

Step 3: Update Configuration Files

A) Update Contact Form Turnstile Key

Edit contact.njk line 177:

<!-- REPLACE THIS LINE: -->
<div class="cf-turnstile" data-sitekey="YOUR_TURNSTILE_SITE_KEY"></div>

<!-- WITH YOUR ACTUAL SITE KEY: -->
<div class="cf-turnstile" data-sitekey="0x4AAAAABCDEFGHijk1234567890"></div>

B) Set Turnstile Secret (Command Line)

From your project directory:

cd /Users/neilwhite/Projects/reiss-builds-html
npx wrangler secret put TURNSTILE_SECRET
# When prompted, paste your Turnstile SECRET KEY

C) Update Email Settings (Optional)

Edit wrangler.toml if needed:

[vars]
MAIL_FROM = "no-reply@reissbuilds.com"  # Must be your domain
MAIL_TO = "jeff@reissbuilds.com"        # Where to receive leads
# MAIL_BCC = "neil@agilemedia.agency"   # Optional backup recipient

๐Ÿš€ DEPLOYMENT

Option 1: Git Push (Recommended)

npm run build
git add .
git commit -m "Add Cloudflare form submission system"
git push origin 11ty

โœ… Auto-deploys to: https://reiss-builds-html.pages.dev/

Option 2: Manual Deploy

npm run build
npx wrangler pages deploy _site --project-name reiss-builds-html

๐Ÿงช TESTING THE FORM

Test Form Submission:

  1. Go to: https://reiss-builds-html.pages.dev/contact
  2. Fill out form completely
  3. Submit โ†’ should redirect to /thank-you/
  4. Check email at jeff@reissbuilds.com

Test Anti-Spam:

๐Ÿ“ง EMAIL SAMPLE

You'll receive formatted emails like:

๐Ÿ  NEW CONTACT FROM REISS BUILDS WEBSITE

CONTACT INFORMATION:
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”
Name:      John Smith  
Email:     john@example.com
Phone:     (555) 123-4567
Address:   123 Main St, West Palm Beach, FL

PROJECT DETAILS:
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”
Type:      Kitchen Remodeling
Timeline:  Within 1 Month  
Budget:    $50,000 - $100,000
Source:    Google Search

SPECIAL INTERESTS:
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”
โ€ข Hurricane-resistant upgrades
โ€ข Insurance discount opportunities

PROJECT DETAILS:
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”
Looking to remodel my kitchen with hurricane-resistant 
features. Interested in maximizing insurance discounts.

SUBMISSION INFO:
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”
Submitted: Thursday, August 28, 2025 at 2:30 PM EST
Source:    https://reiss-builds-html.pages.dev/contact  
IP:        192.168.1.100

๐Ÿ”ง OPTIONAL: ADD KV STORAGE FOR BACKUP

If you want to store all form submissions:

1. Create KV Namespace

npx wrangler kv:namespace create LEADS_KV
# Copy the returned namespace ID

2. Update wrangler.toml

Uncomment and add your KV namespace ID:

[[kv_namespaces]]
binding = "LEADS_KV"
id = "your-actual-namespace-id-here"

3. Deploy

All form submissions will be stored in KV for 1 year as backup.

๐Ÿ†˜ TROUBLESHOOTING

Form Not Working?

Email Not Sending?

Build Issues?

rm -rf node_modules package-lock.json
npm install
npm run build

๐Ÿ“Š SUCCESS METRICS TO TRACK


๐ŸŽฏ NEXT STEPS AFTER SETUP

  1. Test form thoroughly on live site
  2. Train team on new email format
  3. Set response time goals (<24 hours)
  4. Consider auto-responder (future enhancement)
  5. Add form analytics (future enhancement)

Questions? Check the troubleshooting section or create an issue.


Form System: โœ… Production Ready
Cost: $0/month
Maintenance: Minimal
Scalability: Handles 100K+ submissions/month