Post Perks
A Shopify app that turns the post-purchase moment into repeat orders — automatic discount offers tied to the order webhook, plus a review/social-share proof pipeline merchants approve before a reward goes out.
- 4 reward types
- first-purchase, loyalty, social, review
- Approve before reward
- merchant-reviewed proof queue
- Attributed
- see which perk drove the repeat order
The problem
The moment right after a purchase is the highest-attention a customer ever gives a store, and most merchants waste it — nothing on the thank-you page, or a generic email flow. Post Perks turns that moment into a native Shopify surface for winning the next order.
What it does
A merchant sets up 'perks' from a few presets — a first-purchase reward, a returning-customer reward, a social-share reward, a photo/review reward. When an order is paid, the app checks it against real customer data — tags, total spend, order count, segment — and for straightforward reward perks automatically issues a real Shopify discount code and emails it.
For rewards that need proof, the customer submits it inline on the order-status page — a link for a social share, a star rating and text for a review — and the merchant approves or rejects it in a claims queue, which issues the discount on approval. Orders placed with a Post Perks code are attributed back to the campaign that drove them, so a merchant can see which perk actually produced the repeat purchase.
Key features
Automatic rewards the instant an order is paid
A reward discount issues and emails itself the moment a qualifying order is paid, so the high-attention post-purchase moment isn't left empty.
Target the right customer
Perks fire against real Shopify customer data — spend, order count, tags, segment — so a 'thank a returning customer' offer actually reaches returning customers, not everyone.
Proof-and-approve for reviews and shares
Customers submit a review or share inline on the order-status page and the merchant approves it before a reward goes out, so rewards for proof aren't handed out on trust alone.
Attribution back to the campaign
Orders placed with a perk's discount code are tagged and traced back to it, so a merchant can see which perk drove the repeat purchase instead of guessing.
Real transactional email built in
Reward emails go out through a proper transactional email pipeline with a WYSIWYG editor, so a small merchant sends clean, reliable reward emails without wiring up their own.
Where it stands
Production-ready and pre-launch — development is complete and it's awaiting Shopify App Store review.
Under the hood — for the technically-minded
How it's built
It's a Remix embedded app on Shopify over Postgres. The core trigger is Shopify's order-paid webhook: a targeting engine evaluates active perks against live Admin data, and qualifying reward perks issue a real Shopify discount code and schedule the email through a background job queue. Two customer-facing surfaces — a checkout UI extension on the order-status page and a thank-you-page theme block — carry the perk card and the proof form.
The proof pipeline is deliberately human-in-the-loop: submissions land in an admin claims queue with a proof viewer, rejection presets, and one-click resubmission, and only issue a reward on approval. Delayed and scheduled emails run on a job queue rather than inline, so a spike in orders doesn't stall the webhook.
The hard problems
Rewarding on real proof, not trust
Handing out a discount for a review or a share invites abuse, so the flow routes every proof submission through a merchant-reviewed claims queue with approve/reject and resubmission — the reward only issues once a human has approved the proof.
Reliable issuance under a burst of orders
Discount issuance and email sending hang off the order-paid webhook, which can arrive in bursts, so the work is pushed onto a background job queue with scheduling — keeping the webhook fast and the rewards reliable even during a sale.
Honest about what isn't finished
Photo-review perks currently accept a URL to a photo rather than a direct file upload — the backend photo-storage exists but isn't wired to a customer-facing uploader yet. That gap, and some known tech debt, are documented in-repo rather than papered over.
Built with
- Remix
- Shopify
- Prisma
- BullMQ
- AWS SES
Building something in this space?
Work with us →