Giftag
A greeting card that carries a video, a message, and money the recipient can spend wherever they want. The giver keeps the sentiment. The recipient gets the choice. I built and ran the whole thing myself, on Monday nights, and recipients have redeemed more than $5,000.
- $5,000+
- in gift cards redeemed by recipients
- $3,000+
- in sales
- 2
- organizations adopted it for customer relations
- 1
- person, one night a week, alongside a full-time job
The idea
Gift giving has a trade-off baked in. Cash carries no thought and means a trip to the ATM. A gift card is a bet on someone else's taste, and usually a losing one. A considered gift costs hours nobody has. Giftag splits the gift in two: the giver chooses the amount and the sentiment, the recipient chooses the where.
The whole giving flow was designed to take under a minute, because the moment you are competing with a card off a rack, anything longer loses.
01
Record
The giver records a video, writes a message, chooses an amount, and pays.
02
Scan
The recipient scans the QR code on the card, watches the video, and reads the message. No app, no account.
03
Redeem
They redeem the balance as a gift card from a store or restaurant they use.
How I built it
I am a self-taught developer with a full-time job, so Giftag got Monday nights, seven in the evening to two in the morning. I chose a stack that let one person ship a real product with real money moving through it, rather than spend a year on auth and payment plumbing: FlutterFlow for the client, Buildship for the serverless workflows, Supabase for data and auth, and Stripe as the ledger of record.
The consumer idea is simple to describe. The hard part sits underneath it.
Hard problem 01
Money that exists in two states
A Giftag is not a purchase, it is a promise. The giver pays today and the recipient redeems weeks later at a merchant nobody has chosen yet. Every unredeemed tag is an outstanding liability, so the system has to know at all times what has been funded, what has been claimed, and what is still owed.
Hard problem 02
Redemption has to be idempotent
A QR code is a physical object. It gets scanned twice, screenshotted, forwarded, and scanned again on bad hotel wifi. The redemption path had to be safe against all of that without a logged-in account on the recipient's side.
Hard problem 03
A recipient who never asked to be a user
They were handed a card with a QR code on it. Video playback, message, merchant selection, and redemption all had to work instantly from a cold scan on someone else's phone, with no install and no account.
Hard problem 04
Fulfillment that makes "anywhere" true
Turning a redeemed balance into a live, valid code from a real merchant is the part that has to work. I worked through the available fulfillment APIs to find one with a catalog wide enough that "pick anywhere" was a fact rather than a marketing line.
Brand, video, and the campaign
I designed the brand, built the marketing site and an e-commerce store for the physical cards, and wrote, shot, and edited the promotional videos. For a product whose entire premise is video, that was the right call. A promo that could not demonstrate the emotional payload of a recorded message would have been arguing against itself.
Giftag went to market through a Kickstarter campaign. For a product that is part physical and part digital, the campaign validates demand and funds the first production run. It also forces the positioning work. You cannot run a campaign without knowing precisely who this is for and why they would care.
The market corrected the positioning
I built Giftag as a consumer product. The strongest pull came from organizations using it for customer relations. A personalized video with real value attached turns out to be a far better thank-you than a generic gift card in an envelope. One customer distributed Giftag across its entire partner network, the largest single distribution in the company's history. None of that was planned, and listening to it was worth more than any assumption I started with.
Nothing counted until a recipient scanned a code and walked away with something they could spend. Every hour not spent on that path was an hour on the wrong thing.On shipping the loop, not the feature
What I took from it
The constraint was the strategy. Seven hours a week meant I could not afford to build anything I could buy, and the stack was the only reason a solo founder with a day job got real money moving through a real product at all.
Doing every function taught me the whole business. Writing the code, designing the brand, shooting the promos, and running the campaign meant I could see exactly where each one was lying to the others: where the marketing promised something the product could not do, and where the product did something the marketing never mentioned.
What it used
- Product strategy
- Full-stack development
- FlutterFlow
- Buildship
- Supabase
- Stripe
- Brand and web design
- Video production
- Go-to-market
- Crowdfunding