Set up without waiting on us

Every step from purchase to live site, and the fixes for what usually goes wrong. Stuck anyway? Contact us.

Getting started

1. Get the code

In your portal, add your GitHub username under Connect GitHub. GitHub then emails you an invite to the private repo for your plan: venturi-base or venturi-pro. Accept it and the repo is yours to clone.

2. Start your project

init asks for your license key the first time (it’s in your portal), downloads the blueprint and activates this machine. Then setup asks for your Supabase and Stripe keys and writes them to .env.local.

npx venturi-dev init my-app
cd my-app
npm install
npx venturi-dev setup
npm run dev
3. Set up Supabase

Create a Supabase project and apply the database: run npx supabase db push, or paste the files in supabase/migrations into the SQL editor in order.

Under Authentication → Providers, enable Email (and GitHub, if you want it). Add http://localhost:3000/auth/callback to the redirect URLs, plus the same path on your live domain when you deploy.

4. Set up Stripe

Use your test secret key (sk_test_…) until launch. For local webhooks, run the command below and use the signing secret it prints as STRIPE_WEBHOOK_SECRET.

Turn on the Stripe customer portal (Settings → Billing → Customer portal) so “Manage billing” works.

stripe listen --forward-to localhost:3000/api/webhooks/stripe
5. Make the landing page yours

The home page is the Venturi conversion blueprint: every section in the order that converts, with notes saying what goes where and why. Fill in config/blueprint.config.ts (or ask your AI tool to, from your product description).

When you’re done, set guide: false to hide the notes and switch pricing to your real plans. Your app’s name, currency and billing model live in config/venturi.config.ts.

Connect your AI tool (Pro)

Claude Code, Cursor, Codex or Gemini CLI

Run setup with the tools you use, restart your AI tool, then ask it to “add a pricing table from Venturi” or “recommend Venturi components for my landing page”.

npx venturi-dev setup --tools claude,cursor,codex,gemini
Another tool that supports MCP

Add the Venturi server to its MCP settings. Make sure you’ve run npx venturi-dev login on this machine first.

{
  "mcpServers": {
    "venturi": { "command": "npx", "args": ["-y", "venturi-dev", "mcp"] }
  }
}

Components, themes and reviews

Add components to an app

add copies each component, and anything it needs, into components/venturi and installs its npm packages. Use --path for another folder, --overwrite to replace files you’ve edited, and --no-install to only print the install command.

npx venturi-dev list
npx venturi-dev add hero pricing-table faq
Add the blueprint to an existing app

The full landing page, section by section, with the same notes as a new project.

npx venturi-dev add blueprint
Apply a theme

Themes you generate in your portal are listed by the CLI. Applying one writes it into your app as CSS overrides.

npx venturi-dev theme list
npx venturi-dev theme apply <id>
Import your reviews

Turn a CSV of your real reviews into content/reviews.json for the testimonial blocks.

npx venturi-dev reviews import reviews.csv

Deploying

Go live on Vercel

Push your project to GitHub and import it in Vercel. Add every variable from your .env.local in the Vercel project settings, with NEXT_PUBLIC_SITE_URL set to your live URL.

Switch to your live Stripe key and add a webhook endpoint for /api/webhooks/stripe with the events listed in the README. Add your live /auth/callback URL in Supabase.

Your launch-bonus custom build

How the custom build works

Within 48 hours of your purchase we book your kickoff call, agree exactly what we build into your app and by when, then build it and hand it over.

Standard scope is hero copy, colors and fonts, up to 5 sections and one revision round.

Troubleshooting

“That doesn’t look like a license key”

Keys look like VNTR-XXXX-XXXX-XXXX. Copy the whole key from your portal, with no spaces before or after.

“This license is already active on 3 machines”

Your key works on up to 3 machines. In your portal, choose Generate new key: the old key stops working and all machines are signed out. Then run npx venturi-dev login on the machines you use.

My key stopped working

A new key was generated in your portal (the old one stops at once), or the order was refunded. Copy the current key from your portal and run npx venturi-dev login again.

The GitHub invite never arrived

Check the username in your portal is your GitHub username (not your email), then look at github.com/notifications and the inbox of the email on your GitHub account. GitHub invites expire after 7 days. Still nothing? Contact us and we’ll send it again.

The Venturi agent doesn’t show up in my AI tool

The agent is part of Pro. Run npx venturi-dev login, then npx venturi-dev setup --tools … again, and fully restart your AI tool.

Payments go through but nothing happens in my app

The webhook isn’t reaching your app. Locally, keep stripe listen running and check STRIPE_WEBHOOK_SECRET matches the secret it printed. In production, check the endpoint URL, its events and its signing secret in Stripe.

“Manage billing” doesn’t open

Turn on the Stripe customer portal: Settings → Billing → Customer portal.

Sign-in emails or links don’t work

In Supabase, enable the Email provider and add your /auth/callback URL (local and live) to the redirect URLs.

The app refuses to start

It checks your environment variables on startup and names any that are in the wrong format. It also refuses any secret given a NEXT_PUBLIC_ name, since those are sent to the browser.

The AI pricing assistant answers 503

Add ANTHROPIC_API_KEY to your environment. It’s optional, so the assistant is off without it.

Lifecycle emails aren’t sent

Add RESEND_API_KEY, and set CRON_SECRET to the same value locally and in Vercel so the email schedule can run.