How we built SetClaude
By Eliran Yihye, Founder and CEO. .
SetClaude is an OpenClaw setup service: we install, harden and configure a self-hosted AI agent on a Mac Mini, a Linux machine, WSL or hosted infrastructure, then hand it over with documentation and a live walkthrough. SetClaude is built and run by Cuanto Labs, a software studio in Fort Lauderdale, Florida. This post covers how the service is structured, how the website and intake pipeline work, and the trade-offs we accepted. Prices and versions are as of October 2026, read from the repo.
The problem
OpenClaw is an agent gateway with a lot of moving parts: model providers, memory, messaging channels, browser automation, skills. The people who want one running are usually not the people who want to tune it. The agent also ends up holding keys to email, files and chat accounts, so a careless default is expensive. The site says it plainly in its pain points: hundreds of options for models, memory and browser automation, and no time to become an OpenClaw expert.
So the product is a repeatable install pattern with a security posture baked in, plus a human walkthrough so the customer owns the result. The website exists to explain that pattern, take payment through Stripe payment links, and collect an intake request.
Architecture
There are three tiers, defined in components/Pricing.tsx: Hosted Setup at $499, Mac Mini Setup (Remote) at $750 where the customer watches over a screen share, and Mac Mini Setup (In Person) at $1,880 for South Florida on-site work. Every tier follows the same pattern: install the OpenClaw gateway, configure a model (Claude, GPT or Ollama), connect messaging channels, set up memory, and apply security settings. The higher tiers add channels, Gmail and Outlook through a webhook pipeline, Playwright with Chrome for browser automation, LanceDB vector memory, and cron jobs.
The site is Next.js 16.2.7 with the App Router, React 19.2.7 and Tailwind CSS v4, using shadcn and Base UI primitives. Almost everything is static HTML. The single server-side piece is app/api/contact/route.ts. There is no database. Analytics is the OnyxMetric script, loaded after the page becomes interactive.
Data model and the key pipelines
The closest thing to a data model is the tier definition. A tier has a name, a price, a feature list and a Stripe payment link, and the same three tier keys (hosted, macmini, inperson) appear in the intake modal and in a label map inside the route handler. The modal walks through three steps, then posts JSON to /api/contact. The handler requires a name, email and tier, returns a 400 otherwise, builds a plain-text message and sends it with the Resend SDK to the studio inbox, with replyTo set to the lead so a reply goes straight to them.
The second pipeline is structured data. lib/seo.ts holds every shared identifier: the site URL, the studio organization id, the founder id, and a ROUTES list with a last-modified date per page. The sitemap and the llms.txt route are both generated from that one list, so they cannot disagree. The root layout emits one JSON-LD graph containing the service, a FAQ, the SetClaude organization, the studio organization and a single full Person node for the founder. Every other page refers to that node by its @id instead of redefining it, and all JSON-LD goes through one serializer that escapes the less-than sign so a stray value can never close the script tag.
The delivery pipeline is human. A 30 minute intro call, one to two days of configuration, then a live walkthrough of about one to two hours, followed by support whose length depends on the tier.
Trade-offs
1. Local first, with a hosted option
On the Mac Mini tiers the agent runs on the customer's machine. The hardening listed for them is sandboxing, an encrypted key vault and permission gates, with a Docker sandbox for group sessions on the remote tier. The cost is hardware: the FAQ recommends a Mac Mini M4 with 16GB of RAM for up to three agents. The hosted tier removes the hardware requirement but runs on studio infrastructure, so the privacy story is different, and the copy says so. It uses DM pairing and allowlist security instead.
2. Email instead of a lead database
Intake submissions become an email, not a row. That keeps the site stateless and leaves nothing stored to protect. What we give up is history and tooling: no deduplication, no pipeline view, and the handler checks that required fields are present rather than validating them deeply. Because every lead gets a personal reply, a reply-to email was the right size. If the volume outgrows an inbox, this is the first piece to replace.
3. CI gates the deploy, Vercel does the build
vercel.json turns off Vercel's own git deployments. The Woodpecker pipeline in .woodpecker/ci.yml installs dependencies once, runs typecheck and lint in parallel, and then .woodpecker/vercel-deploy.sh asks the Vercel deployments API to build that exact commit, targeting production only for a push to main. The pipeline has no build step of its own, because Vercel builds the same commit anyway and a second next build only duplicated work. Lint is informational: ESLint 10 with eslint-plugin-react 7.37.5 crashes on the react/display-name rule, so typecheck is the gate that actually blocks a deploy.
What's next
The repo has no roadmap file, so there is little to promise. The one open item it records is the lint step: once the ESLint plugin crash is resolved, lint can become a blocking gate like typecheck. Anything beyond that is not yet written down, and we would rather say so than invent a plan.
FAQ
- What is SetClaude?
- SetClaude is an OpenClaw setup service from Cuanto Labs. We install, harden and configure an OpenClaw AI agent on a customer's Mac Mini, Linux machine or WSL, or on hosted infrastructure, and walk the customer through it.
- What is the SetClaude website built with?
- Next.js 16 with the App Router, React 19 and Tailwind CSS v4. There is one API route, which sends intake form submissions by email through Resend. Deploys go to Vercel after CI passes.
- Where does my data go?
- On the Mac Mini tiers the agent runs on your own machine, and data leaves it only through integrations you configure, such as Telegram. The hosted tier runs on Cuanto Labs infrastructure instead.
- How long does a setup take?
- Per the process on the site, a 30 minute intro call, one to two days of configuration, then a live walkthrough of about one to two hours.
Written by Eliran Yihye. More about the people and the studio on the About page.