Case study · DADO · 2026

This case study is from a private beta

It documents shipped work at DADO, including internal tooling and real money flows. The access word is on my resume.

Need the word? Email atharva2089@gmail.com with the subject “DADO access”. Same-day reply.
Back to the DADO overview

Group gifting where no money moves until the gift is real. I lead it, from the pledge model to the console.

Group gifting where no money moves until the gift is real. I lead it, from the pledge model to the console.

Group gifting where no money moves until the gift is real. I lead it, from the pledge model to the console.

Role

Lead, One Big Wish

Team

Founder (PRD), engineers, QA testers. Initial sketches by Manish

Timeline

Aug 2026 to present

Tools

Figma, Claude Code, React, Supabase, Stripe

worldofdado.com
worldofdado.com
9:41

What One Big Wish is

One gift, many friends. Like GoFundMe, but for a gift you wish for.

One gift, many friends. Like GoFundMe, but for a gift you wish for.

One gift, many friends. Like GoFundMe, but for a gift you wish for.

01The organiser
A wish is created
One gift from DADO’s brands, with a goal that already covers the fee, estimated tax and shipping.
02Friends
Friends contribute
Each friend pledges what they want to give, as a guest or a member. Nothing is taken on the day.
03DADO
DADO fulfils the wish
DADO buys the gift and sends it. If the pot falls short, it becomes a brand gift card instead.

The short version

Problem

Pay-now took money months before the gift was ordered, charged the 8% fee twice and refunded every shortfall.

What I decided

A pledge saves a card and a promise. Money moves once, after a three-day notice, before DADO orders the gift.

Result

Live in a 5,000-invitee private beta. 122 QA cases on the feature, 14 failures fixed before invites. Not yet measured.

Wish creation

It starts with the wish. An organiser names one gift, and friends pledge toward it.

It starts with the wish. An organiser names one gift, and friends pledge toward it.

It starts with the wish. An organiser names one gift, and friends pledge toward it.

The organiser picks the products, checks a cost summary with DADO’s 8% fee and estimated tax, and chooses what contributors can see. Contributors pledge from the wish page, as guests or members.

worldofdado.com

Creating a demo wish on desktop, and a friend pledging to a wish on a phone. The wishes, cards and people are test data.

Problem

Money collected too early, or money never collected.

Money collected too early, or money never collected.

Money collected too early, or money never collected.

A July audit rated the platform not ready to launch, and most findings were about money. Pay-now charged a contributor on the day they pledged, months before the gift was ordered. The 8% fee sat inside the goal and again on top, so a wish cost 1.1664 times the goods. A wish that fell short meant refunding everyone.

A promise, not money · months
Money moves · days
the contributor needs certainty
operations needs collectability
Pledgecard saved, $0 taken
Noticeemail, at least 3 days before
Charge runthe batch runs
Ordergoods or a brand gift card
Pay-now: $120 taken here
Pledge-then-charge: nothing taken today
withdraw any time before the notice, and nothing is charged
Pay-now took the money at the pledge and refunded every shortfall. Pledge-then-charge moves it once, announced, in the days before the order.
After · Pledge-then-charge
Day one
The card is saved. Nothing is taken.
For months
A promise, not money. Withdraw any time before the notice.
The fee
One 8% line, shown once.
A short wish
DADO buys what the pot covers, or it becomes a brand gift card.
Before · Pay-now
Day one
The pledge is charged the moment it is made.
For months
The money sits with DADO before any order.
The fee
Inside the goal and again on top: 1.1664 times the goods.
A short wish
Everyone is refunded and the gift never happens.

Decision 01

Pledge now, charge before the order. A contribution stays a promise until DADO buys the gift.

Pledge now, charge before the order. A contribution stays a promise until DADO buys the gift.

Pledge now, charge before the order. A contribution stays a promise until DADO buys the gift.

Why

Three models were on the table: pay now, hold the money, or authorize then charge. Holding money makes DADO an escrow, which its purchasing-agent role forbids. A saved card and a mandate let a pledge wait months, then be charged in one announced run.

What it cost

A pledge is less certain than a payment. The organiser’s bar can go down, so it says pledged. Being charged into a shortfall is disclosed up front.

01
Wish
The organiser publishes one gift with an all-inclusive goal.
02
Pledge
The contributor authorizes an amount. The card is saved and no money is taken today.
03
Notice
An email at least 3 days before the charge. Withdrawal closes here.
04
Charge
Operations runs the batch. Authorized becomes collected, one row at a time.
05
Resolve
Goods ordered, or a brand gift card for what the pot covers.
worldofdado.com

Pledging on desktop with a test card. Nothing is taken today, and the review screen spells out the authorization before the contributor agrees.

Decision 02

Two numbers on every screen. Authorized and collected are different numbers.

Two numbers on every screen. Authorized and collected are different numbers.

Two numbers on every screen. Authorized and collected are different numbers.

Why

Under pay-now, what a wish had raised was one column. Under pledges it is two: what is promised and still live, and what has been taken. Authorizations got their own table and states, and contributions stay the record of money taken.

What it cost

Every progress bar, receipt and email had to choose which number it shows, and say so.

One wish, three pledgesTest amounts
$150.00Pledged
$301.00Pledged
$601.00Pledged
Authorized
Promised, not moved
$0.00
Collected
Nothing taken yet
$0.00
worldofdado.com
The console pledges tab with promised, in flight, collected, in grace and needs reconciliation totals

The console’s pledges tab: promised, in flight, collected, in grace, needs reconciliation. Contributor names are blurred.

Decision 03

Rules in the database. The console cannot fire a charge that was never announced.

Rules in the database. The console cannot fire a charge that was never announced.

Rules in the database. The console cannot fire a charge that was never announced.

Why

One database function moves every pledge from authorized to notice sent to charging, and refuses charging until the notice is three days old. Those three days are one named constant that the terms, the disclosure, the email and the charge job all read.

What it cost

Rules in the database are harder to change: moving the notice period means a database change, not a quick edit. Operations now runs a charge batch, so I rebuilt the console from a blank page: 18 tabs. Admins sign in twice, because the console has its own email code.

worldofdado.com

One demo wish in the console. A new wish waits for a first check on price and delivery, and contributors cannot be charged for a wish that was never checked.

Decision 04

Three manual checks became two. Henry Labs now supplies delivery, so an admin no longer types it in.

Three manual checks became two. Henry Labs now supplies delivery, so an admin no longer types it in.

Three manual checks became two. Henry Labs now supplies delivery, so an admin no longer types it in.

Why

Every merchant delivers differently, so DADO could not calculate delivery for a wish on its own. Before a wish could go live, an admin looked up delivery and entered it by hand, one of three manual checks. Henry Labs now supplies delivery, and it works with affiliate links, so that check left the admin queue.

What it cost

One more vendor in the path to a live wish. A delivery price the team used to update by hand now comes from Henry Labs.

3
2
Before · 3 checksAfter · 2 checks
Money pot check and charge cardsOrder placement
Delivery price update

Before, a wish went through three manual checks in the console: delivery price, the money pot and charging cards, and placing the order. Now it goes through two, and the delivery price arrives from Henry Labs.

Decision 05

When a wish falls short, the pot becomes a brand gift card. One failed card no longer stops the batch.

When a wish falls short, the pot becomes a brand gift card. One failed card no longer stops the batch.

When a wish falls short, the pot becomes a brand gift card. One failed card no longer stops the batch.

Why

Cancelling a short wish meant refunding everyone. Now a failed charge moves that one pledge into grace and the rest of the run continues. An under-funded wish resolves with a brand gift card for what was collected, or the organiser tops up.

What it cost

Contributors can be charged into a shortfall, so that sentence comes first on the screen. A Visa card was ruled out: it is cash by another name.

The pot fills toward the goalTest amounts
One Big Wish
Your wish
$0 of $1,500 pledged
Giving closes
Last day you can give
Open
DADOBrand gift card
$0.00
$1,052.00 collected, after DADO's 8% fee
Keep what you raised
Choose your gift card
“Your wish” didn't reach its goal. The $1,052.00 raised becomes a $967.84 gift card after DADO's 8% fee.
Or the organiser pays the remaining gap. They choose within 2 days.
worldofdado.com
A member's notification panel listing brand gift cards that are ready

Gift cards reaching a member as notifications. Names are blurred.

Decision 06

Lock at the first pledge. A wish stops being editable once someone pledges to it.

Lock at the first pledge. A wish stops being editable once someone pledges to it.

Lock at the first pledge. A wish stops being editable once someone pledges to it.

Why

A pledge is a promise against a specific gift at a price. A database trigger locks the title, story, items, goal and date at the first pledge, while invites and privacy stay open. A stale tab returns to the wish instead of a server error.

What it cost

Organisers lose the freedom to fix a typo after the first friend pledges. I explained the trade to the founder, who accepted it.

The organiser's manage page
Everything below can still be edited. Once the first pledge arrives, the details lock in.
First pledge
$150.00
Pledged
The Occasion & Story
Title
Story
Locked after the first pledge
The Products
Items
Goal
Locked after the first pledge
Where & When
Date
Locked after the first pledge
The Invite & Privacy
Invitations
Privacy
Stays open
worldofdado.com
The wish manage page: what happens next, and a note that details lock in once the first pledge arrives

The organiser’s manage page. What happens next, and the line that the details lock in at the first pledge.

Also decided

Smaller calls that shaped the flow.

Smaller calls that shaped the flow.

Smaller calls that shaped the flow.

Pay what you pledge. No fee or tax is added at pledge time. The fee comes out of the pot, and the goal includes estimated tax and shipping.

Consent is the words. The record stores the exact sentence the person saw, and a test keeps the server copy and the screen identical.

Withdraw before the notice, nothing charged. Guests withdraw from the link in their email, without an account.

An honest cost summary. Subtotal, DADO’s 8% fee and estimated tax. A tax rate of zero is never printed as a figure.

The organiser sets privacy. Names, amounts and totals can be hidden, and an invitation-only wish stays out of public discovery.

A child is never a user. A wish for a minor stores a first name only and is never public.

Apple Pay and Google Pay. Contributors can pledge with the wallet already on their phone, as well as a card.

Refunds and a top-up step. Refunds are part of the flow, and an organiser can top up a wish that falls short.

The console asks for its own email code. Never an SMS.

Full decision traces available on request.

Outcome

Shipped into a private beta. Not yet measured.

Shipped into a private beta. Not yet measured.

Shipped into a private beta. Not yet measured.

Pledge-to-charge conversion, withdrawal and shortfall rates will exist after the first charge runs. Until then, this is what shipped and what the team’s testing found.

5,000

invitees in the private beta

122

QA cases on One Big Wish, run by the team

14

failures, all fixed before the invitations

18

console tabs, designed and built from a blank page

8

money rules enforced in the database

Reflection

Shipped, not yet proven. Next time I would write the disclosure first.

Shipped, not yet proven. Next time I would write the disclosure first.

Shipped, not yet proven. Next time I would write the disclosure first.

The hardest sentence was about being charged into a shortfall. Writing it on day one would have shaped the model faster.

What I kept

On a money product, the copy is the contract. Every sentence on the contributor’s screen is a promise the system has to be structurally unable to break.