← WorkPrecision machineProduct · Live

Convertly

Turns a contact form into a qualifier that scores every answer.

Type
Micro-SaaS
Role
Product design, full-stack development, integrations
Year
2025–2026
For
Binary Brain Technologies product
Stack
Next.js 15 · React 19 · TypeScript · Supabase · TanStack Query · Paddle · Upstash Redis · Claude API · Vercel
Convertly homepage: “Stop collecting leads. Start qualifying them.”, beside a grid of incoming leads being sorted.
Live site

02

Context

A contact form treats every enquiry the same: a name, an email, and no idea who to call first. Quiz funnels help, but most of them are built for engagement, not for sales.

Convertly is a Binary Brain Technologies product, started at the end of 2025 and live in 2026.

03

Role

I designed and built the product - builder, public quiz, scoring, analytics, integrations and billing. The repository has a single author.

04

Idea

The lead sorting machine.

The product began as a quiz builder and was repositioned as lead qualification. The difference is where the value lands: not in the quiz, but in the sorted list a team opens on Monday morning.

The art direction, “precision machine”, follows from that - instruments, scales and rows instead of cards and confetti.

Budget$5–20k+30TimelineWithin 30 days+20Company size11–50 people+10IntentExploring options+5Cool 039Warm 4069Hot 7010065
Drawing: answers add up to a score; the score places the lead. Example from convertly.buzz.

05

Experience

  • A builder for questions and options with points, score ranges with their own call to action, category scoring and conditional logic.
  • AI generation drafts a complete quiz from an industry preset; the creator edits it like any other.
  • Visitors answer a short multi-step quiz and see a results page (also as a PDF). The team sees leads with scores, filters, analytics and drop-off.
  • Leads travel on: HubSpot, Mailchimp, Pipedrive, Klaviyo, ActiveCampaign, GetResponse, webhooks and a public REST API; a Zapier trigger is built and not yet listed publicly. Quizzes embed on any site with a plain-JavaScript widget.

06

System

  1. InterfaceNext.js 15 App RouterReact 19react-hook-form + Zodnext-intl (EN/PL)
  2. StateTanStack Query
  3. DomainServer actions for everything internalPlan limits enforced server-side
  4. APIPublic REST API v1 with hashed API keysZapier REST hooksEmbed widget scriptPaddle webhooks
  5. DataSupabase Postgres with row-level securityAtomic batch update as a Postgres functionEncrypted integration credentials
  6. InfrastructureVercelUpstash Redis rate limitingResend + React EmailSentry

07

Details

Saving a quiz is one transaction

The builder computes a diff on the client, gives new rows temporary IDs, and sends everything to a single Postgres function that applies it in one transaction - still under row-level security. Before that, partial saves and retries could produce duplicate rows.

Two doors, clearly separated

Everything inside the app goes through server actions. REST exists only for consumers outside it - the public API and Zapier - and both reuse the same hashed API keys instead of a second auth system.

Failing closed

If the rate limiter is not configured, rate-limited actions are denied rather than allowed. Outbound integration calls go through an SSRF-safe fetch.

08

Output

A live product at convertly.buzz with a public API, an embeddable widget and integrations with common CRM and email tools.

09

Reflection

Changing the positioning changed the design. Once the product was a machine that sorts leads, gradients, heavy rounding and decorative entrances no longer had a reason to exist, and they were removed.