Landing page and signup flow for deploying a hosted OpenClaw AI assistant instance in under a minute.
This is a Next.js marketing/deploy site for "OpenClaw" (an AI assistant product). It:
- Shows a landing page (hero, comparison table, use cases) pitching one-click OpenClaw deployment.
- Lets a visitor pick a default AI model (Claude Opus 4.5, GPT-5.2, or Gemini 3 Flash) and a messaging channel to connect (Telegram is live; Discord and WhatsApp are marked "coming soon").
- Authenticates users via Supabase Auth (Google OAuth), and persists each user's chosen model/channel/status to a
deploymentstable in Supabase, protected by row-level security so users can only read/write their own row (seesupabase/migrations/001_initial.sql). - Exposes a
/api/checkoutroute that creates a Stripe Checkout session for a fixed $49 "Deploy OpenClaw" payment, redirecting to/dashboardon success.
There is no backend deployment automation in this repo yet — it's the frontend/signup and payment layer that records what a user wants deployed (model + channel) and takes payment; actually provisioning the OpenClaw instance happens elsewhere.
- Framework: Next.js 15 (App Router, Turbopack dev server), React 19, TypeScript
- Styling/animation: Tailwind CSS 3, Framer Motion
- Auth & data: Supabase (
@supabase/ssr,@supabase/supabase-js) — Google OAuth, Postgres table with RLS - Payments: Stripe (
stripeSDK, Checkout Sessions) - Lint: ESLint (
eslint-config-next)
app/
page.tsx # Landing page composition
layout.tsx
api/checkout/route.ts # Stripe Checkout session creation
auth/callback/ # Supabase OAuth callback handler
components/
Hero.tsx, Header.tsx, Footer.tsx, Comparison.tsx, UseCases.tsx
DeployCard.tsx # Model + channel picker, Supabase auth/save logic
DeployButton.tsx
ModelSelection.tsx, ChannelSelection.tsx # standalone selection sections
lib/supabase/ # Supabase client/server/middleware helpers
middleware.ts # Supabase session refresh middleware
supabase/migrations/ # SQL schema (deployments table + RLS policies)
- Install dependencies:
npm install - Copy
.env.exampleto.env.localand fill in Supabase project values (NEXT_PUBLIC_SUPABASE_URL,NEXT_PUBLIC_SUPABASE_ANON_KEY); addSTRIPE_SECRET_KEYandNEXT_PUBLIC_APP_URLfor the checkout route to work. - Apply the schema in
supabase/migrations/001_initial.sqlto your Supabase project. - Run the dev server:
npm run dev