Referral Program
Turn your users into your growth channel.
What it adds
Unique referral links, reliable attribution, and rewards for both sides.
What your agent is told to do
4
What your agent is told to do
4-
1
Give every user a unique referral link.
-
2
Attribute a signup reliably: capture the code at first touch, persist it through the entire signup flow, and attach it at account creation.
-
3
Define what each side gets, and grant it only when the referred user hits a REAL milestone — not merely on signup.
-
4
Give the referrer a page showing their invites and each one's status.
Edge cases it handles
5
Edge cases it handles
5- Self-referral must be blocked.
- Someone signing up with an existing email must not create a new referral credit.
- Rewards must not be grantable twice for the same referral — make the grant idempotent.
- Attribution must survive the user closing the tab and returning days later.
- Fraud: many signups from one source should be flagged, not auto-paid.
Definition of done
7
Definition of done
7- Every user has a unique referral link.
- Attribution survives a delayed, multi-session signup.
- Self-referral and duplicate rewards are impossible.
- Rewards are granted on a real milestone, exactly once.
- Referrers can see the status of their invites.
- The feature matches the existing design system.
- No existing functionality is broken.
Related features
Waitlist
Waitlist
Capture demand before you're ready to open the doors.
What it does
An email capture that gates access and lets you admit people in batches.
How it works
- 1 Add an email capture on the landing page, storing entries with a timestamp and source.
- 2 Give yourself an admin way to admit people, individually or in batches.
- 3 Send an email when someone is admitted, with a unique access link.
Copy the prompt
No account needed
Add this feature to my app:
https://addthisfeature.com/x/waitlist
Quote Calculator
Quote Calculator
Let a visitor answer a few questions and get an honest price estimate on the spot.
What it does
A guided question flow that produces a priced estimate from server-held rules, with a saved copy for follow-up.
How it works
- 1 Build the question flow on the app's existing Multi-Step Form and Conditional Form Fields rather than a new one-off wizard. Showing and hiding questions based on earlier answers is exactly what conditional fields already do.
- 2 Keep every rate, multiplier, minimum, and discount on the server. The browser sends answers and receives a priced breakdown; it never holds the price list and never does the arithmetic that produces the total.
- 3 Show the estimate as itemised lines with a total, not a single number. A visitor who can see which answer added which cost will trust the figure and will adjust an answer instead of leaving.
Copy the prompt
No account needed
Add this feature to my app:
https://addthisfeature.com/x/quote-calculator
Experiment Assignment
Experiment Assignment
Put each user in one experiment bucket and keep them there.
What it does
Deterministic, stable assignment of users to experiment variants, with eligibility rules and protection against overlapping tests.
How it works
- 1 Assign by hashing a stable identity key together with the experiment key. Assignment must be computed, not stored and looked up, so the same user always lands in the same bucket.
- 2 Pick the identity key deliberately: an account id where one exists, a durable anonymous id otherwise. Never assign on session id — a new session becomes a new user.
- 3 Define eligibility as an explicit filter applied before assignment: exclude staff, known bots, and plans the variant cannot apply to.
Copy the prompt
No account needed
Add this feature to my app:
https://addthisfeature.com/x/experiment-assignment
How it works
-
1
Copy the link
Grab the Markdown instruction URL for this feature.
-
2
Give it to your AI
Paste it into Claude Code, Cursor, v0, Lovable — whatever you build with.
-
3
It inspects, then implements
Your agent reads your existing app first, then adds the feature to fit it.
Works with your stack
These instructions are written to adapt. They tell the agent to detect your framework, match your existing design system, and reuse what you already have — rather than assuming a particular stack.
Need it tighter than that? Customize the feature and tell it exactly what you're running.