CapyDB/ docs
Guides

Programs and referrals

The startup program, the partner program and referral codes - what each grants, how a code is redeemed, and what the dashboard and API expose.

CapyDB runs three growth programs. All three pay out the same way: as a discount on the ordinary plans, applied at checkout by the billing provider. There is no special tier, no credit balance and no cash - a code turns some number of invoices to zero (or to 30% off), and everything else about the workspace is exactly what the pricing page describes.

ProgramWhoWhat the code doesRedemptions
CapyDB for StartupsEarly-stage teams building on Postgres100% off the Ship plan for 12 billing cycles1 workspace
PartnersAgencies, consultancies, freelancers building for clients30% off Vibe or Ship for 12 billing cyclesup to 5 workspaces
ReferralsAny workspaceReferred: 100% off Vibe or Ship for 2 cycles. Referrer: 1 cycle free per referred workspace that paysunlimited

Redeeming a code

A code is applied on the billing page of a workspace, before choosing a plan - either through the deep link in an acceptance email (/dashboard/settings/billing?code=…), a referral share link (/sign-up?plan=ship&code=…), or by typing it into the Have a code? field. Checkout then carries the discount.

Two rules follow from the code being a discount:

  • A code replaces the free month rather than stacking on it. Every self-serve plan opens with a one-month trial; when a code is applied, checkout disables the trial so the offer is exactly what the page says (twelve months is twelve months, two months is two months).
  • Codes cannot be typed into the payment provider's own form. Checkout is created with discount codes disabled there, so the only path is CapyDB's billing page - which is what lets a referral be attributed to a workspace, and the trial be switched off alongside it.

A code that has expired, has been used up, or does not cover the plan you picked sends you back to the billing page with a message saying which.

Applying to a program

Both applications are one form: company, stage or segment, team size, and a few sentences on what you build. The form posts to the CapyDB website, which files the application with the control plane using a service token that can only create applications, and sends a receipt to the applicant and a notice to the team. A person reads every application; decisions go out by email within five working days, in the language the application was made in.

The website's startups and partners pages carry the eligibility shape and the questions people ask before applying.

Referral codes in the dashboard

Every workspace has one share code, created the first time an organization admin opens the Refer a workspace card on the billing page. The card shows the code, a copyable share link, and a count of workspaces that signed up, were rewarded, or were void.

The referral lifecycle is driven by the billing provider's events:

  1. A workspace checks out with your code → the referral is recorded as pending.
  2. That workspace pays its first invoice (after its free cycles) → the referral is claimed as rewarding, a one-cycle discount is placed on your subscription for its next cycle, and the referral settles as rewarded. You get one email.
  3. If you have no active subscription to discount when that happens - or your subscription already carries a discount, such as a startup, partner or referral code still in its window - the referral settles as void with the reason. A reward never replaces a discount you have.

Redelivered events cannot reward twice: the claim is a single-winner transition on the control plane. You are never told who signed up, and they are never told what you earned.

API

The referral endpoints are ordinary organization routes, usable with an organization-wide API key or the SDK:

import { createCapyDB } from '@capydb/sdk'

const capydb = createCapyDB({ apiKey: process.env.CAPYDB_API_KEY! })

const { data } = await capydb.ensureReferralCode({ path: { orgID }, body: { locale: 'en' } })
// data.referral_code.code → "CAPYK7M3QX"

const { data: referrals } = await capydb.listReferrals({ path: { orgID } })

createProgramApplication exists on the SDK but requires the website's programs service token; with an API key it answers 403. The full reference is under Programs.