Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Krosebrook/continuum

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

170 Commits

Continuum

Next.js TypeScript License

AI-powered opportunity discovery platform. Save your most precious resource for the important stuff.

πŸš€ Status: Production-ready landing page with waitlist functionality

πŸ“‹ Before deploying? Check the Deployment Checklist for a comprehensive guide!

Quick Start (10 Minutes to Deploy)

Step 1: Create Supabase Project (3 min)

  1. Go to supabase.com/dashboard
  2. Click New Project
  3. Fill in:
    • Name: continuum-prod
    • Database Password: Generate a strong one (save it!)
    • Region: Choose closest to you
  4. Click Create new project and wait ~2 minutes

Step 2: Run Database Schema (2 min)

  1. In Supabase Dashboard β†’ SQL Editor (left sidebar)
  2. Click New Query
  3. Copy entire contents of supabase/schema.sql
  4. Paste into the query editor
  5. Click Run (bottom right)
  6. You should see "Success. No rows returned" - that's correct!

Step 3: Get API Keys (1 min)

  1. In Supabase β†’ Settings β†’ API
  2. Copy these values:
    • Project URL β†’ NEXT_PUBLIC_SUPABASE_URL
    • anon public key β†’ NEXT_PUBLIC_SUPABASE_ANON_KEY
    • service_role key β†’ SUPABASE_SERVICE_ROLE_KEY

Step 4: Configure Environment (1 min)

Open .env.local and fill in your values:

NEXT_PUBLIC_SUPABASE_URL=https://xxxxx.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGc...
SUPABASE_SERVICE_ROLE_KEY=eyJhbGc...
RESEND_API_KEY= # Optional - for email confirmations
RESEND_FROM_EMAIL=onboarding@resend.dev
NEXT_PUBLIC_SITE_URL=http://localhost:3000

Step 5: Install & Run Locally (2 min)

cd D:\projects\continuum
npm install
npm run dev

Open http://localhost:3000 - you should see the landing page!

Step 6: Test the Form

  1. Enter your email in the waitlist form
  2. Click "Join Waitlist"
  3. Check Supabase β†’ Table Editor β†’ waitlist - you should see your entry!

Step 7: Deploy to Vercel (1 min)

Option A: Vercel CLI

npm install -g vercel
vercel

Follow prompts, then add environment variables in Vercel dashboard.

Option B: GitHub + Vercel Dashboard

  1. Push to GitHub:
    git init
    git add .
    git commit -m "Initial commit"
    git remote add origin https://github.com/YOUR_USERNAME/continuum.git
    git push -u origin main
  2. Go to vercel.com/new
  3. Import your GitHub repo
  4. Add environment variables (same as .env.local)
  5. Deploy!

Optional: Email Confirmations (Resend)

To send confirmation emails when users join the waitlist:

  1. Sign up at resend.com
  2. Get your API key from the dashboard
  3. For production, verify your domain (Settings β†’ Domains)
  4. Add to .env.local:
    RESEND_API_KEY=re_xxxxx
    RESEND_FROM_EMAIL=waitlist@yourdomain.com
    

Note: Without Resend configured, the form still works - it just won't send confirmation emails.


Project Structure

continuum/
β”œβ”€β”€ app/
β”‚ β”œβ”€β”€ api/
β”‚ β”‚ └── waitlist/
β”‚ β”‚ └── route.ts # API endpoint for form submission
β”‚ β”œβ”€β”€ globals.css # Tailwind + custom styles
β”‚ β”œβ”€β”€ layout.tsx # Root layout with metadata
β”‚ └── page.tsx # Homepage
β”œβ”€β”€ components/
β”‚ β”œβ”€β”€ Hero.tsx # Hero section with value props
β”‚ β”œβ”€β”€ WaitlistForm.tsx # Form with validation
β”‚ └── Footer.tsx # Footer with links
β”œβ”€β”€ lib/
β”‚ β”œβ”€β”€ supabase.ts # Supabase client
β”‚ └── resend.ts # Resend client
β”œβ”€β”€ supabase/
β”‚ └── schema.sql # Database schema (run in Supabase SQL Editor)
β”œβ”€β”€ .env.example # Environment variable template
β”œβ”€β”€ .env.local # Your local environment (don't commit!)
└── package.json

Features

  • Next.js 16 App Router with React 19
  • TypeScript 5.x in strict mode
  • Tailwind CSS 4.x for styling
  • Zod 4.x for runtime input validation
  • Supabase for database with Row-Level Security (RLS)
  • Resend for email (optional)
  • Mobile-first responsive design
  • SEO optimized (metadata, Open Graph tags)

Troubleshooting

For detailed troubleshooting, see DEPLOYMENT.md.

Quick Fixes

"Supabase configuration missing"

  • Check that .env.local has all required values
  • Restart the dev server after changing env vars: Stop (Ctrl+C) and npm run dev

Form submission fails with 500 error

  • Verify Supabase dashboard β†’ SQL Editor β†’ waitlist table exists
  • Check browser console for specific error message
  • Verify your API keys are correct in .env.local

Email not sending

  • Resend is optional - form works without it
  • If using Resend, verify your API key is correct
  • Check Resend dashboard β†’ Emails for delivery status

Vercel deployment fails

  • Ensure all environment variables are set in Vercel Dashboard β†’ Settings β†’ Environment Variables
  • Click "Redeploy" after adding environment variables
  • Check Vercel build logs for specific error messages

Next Steps (After Landing Page)

Once you have 50+ waitlist signups, build the MVP:

  1. ICP Builder - Let users define their ideal customer profile
  2. Opportunity Scout - n8n workflow that discovers opportunities
  3. Dashboard - View and filter discovered opportunities
  4. Email Digest - Daily summary of top opportunities

See the full PRD and technical specs in the project documentation.


πŸ“š Documentation

Audit Reports (Archived)

Previous security and code quality audits:


🀝 Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

πŸ”’ Security

Found a security vulnerability? Please see SECURITY.md for responsible disclosure.

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ’¬ Support

About

AI-powered opportunity discovery platform

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 6

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /