- Platform
- Web App
- Duration
- 14 weeks
- Industry
- Marketing Tech
- Read time
- 6 min read
RaftLabs built GrowViral, a white-label referral and viral SaaS marketing platform for a US digital marketing agency. The platform enables marketers, agencies, and businesses to create and manage referral programs, sweepstakes, social contests, and affiliate campaigns from one dashboard. GrowViral integrates with 12+ third-party tools, delivers 2.5x higher conversion rates for active campaigns, and uses unique URL tracking for precise referral attribution across social, email, and direct links. Features include an embeddable campaign builder, custom domain hosting with SSL, automated winner selection, and affiliate commission management. Built in 14 weeks using Hasura, NestJS, Next.js, and React.
A digital marketing agency managing referral campaigns for multiple clients across separate tools (email in one platform, social contests in another, affiliate tracking in a spreadsheet) cannot give any client a clear picture of what drove a conversion. When attribution is fragmented, the strategic value of referral marketing disappears into manual reconciliation.
The agency needed a platform that could house every campaign type in one place, attribute conversions to specific referrers, and let non-technical marketers build and embed campaigns without a developer on every project. We built GrowViral for that. Referral programs, sweepstakes, social contests, and affiliate campaigns all run from the same dashboard with unique URL tracking across every channel. Conversion rates increased 2.5x for active campaigns. The platform integrates with 12+ marketing tools.

before & after
What changed
- The agency ran separate tools for email marketing, referral tracking, social contests, and affiliate management: no unified view of campaign performance across channels existed
- Creating a campaign for a client required configuring multiple third-party platforms and manually reconciling performance data from each source
- Referral attribution was unreliable; clients could not trace which referrer, channel, or campaign drove a specific conversion, making optimization guesswork
- Running a sweepstakes or social contest required custom development work for each campaign; no reusable structure existed for the agency's full client roster
- Affiliate partner performance and commission tracking happened in spreadsheets with no automation, frequent payout errors, and hours of monthly reconciliation
- All campaign types (referral programs, sweepstakes, social contests, affiliate programs) are created, launched, and monitored from one dashboard with consistent attribution logic
- Unique tracking URLs attribute each conversion to the specific referrer, channel, and campaign that drove it, giving clients a clear picture of what is working
- Non-technical marketers use a drag-and-drop campaign editor to build embeddable campaign widgets and embed them on any client website without developer involvement
- Sweepstakes and social contests run from the same campaign structure with automated winner selection and public results pages published at close
- Affiliate partner performance, commission tracking, and payout records are automated within the platform, replacing spreadsheet management
What we had to solve
- 01
Building a template editor that produces professional, embeddable output for non-technical marketers
A drag-and-drop campaign editor that looks flexible in a demo but produces brittle HTML when embedded on client websites is worse than a simple static template. The editor had to generate clean, embeddable widgets that displayed correctly on any website's existing stylesheet, scaled for mobile, and did not require the receiving site to add any CSS override. Building that underlying output layer while keeping the editing experience accessible to marketers with no HTML knowledge was the front-end engineering challenge at the core of the product.
- 02
Tracking referral attribution reliably across social platforms, email, and direct links
Referral attribution is only useful if it is accurate. Social platform sharing, email forwarding, and direct link copying each handle tracking parameters differently: some strip query strings, some truncate URLs, some cache pages that lose the original parameters. Building a unique URL system that maintained attribution through those paths, handled edge cases where the tracking parameter was lost, and flagged suspicious patterns (same referral link used from many different IPs in a short window) required careful design of the tracking layer before any campaign mechanic was built on top of it.
outcomes
What we achieved
The agency managed referral campaigns across five separate tools with no centralized attribution, no unified reporting, and hours of manual data reconciliation per campaign.
Marketers relied on manual data export and import between platforms to connect campaign performance data with the email, CRM, and analytics tools their clients already used.
Without reliable attribution or a centralized dashboard, the agency could not identify which campaign mechanics drove conversions, making optimization difficult.
What clients say
Most clients stay.
Some say so on camera.
Three-year average engagement. Founders and operators describing the work in their own words. No marketing varnish.
Partnering with RaftLabs to create a platform for customizable campaigns and analytics has transformed our approach to marketing, resulting in a boost in traffic, leads, and sales.
Your referral and word-of-mouth campaigns are generating activity but the attribution is fragmented?
the build
What we built
GrowViral is built around one commitment: every campaign mechanic a marketer configures in the dashboard maps directly to an attributable, embeddable output their clients can deploy on any website.
Marketers build campaigns without HTML or a developer
Marketers create campaigns using a visual editor that requires no HTML knowledge. Campaign components (entry forms, referral links, social share buttons, prize descriptions, countdown timers) are dragged, configured, and previewed in real time. The output is a clean embeddable widget that drops into any client website via a script tag without requiring CSS overrides or developer involvement on the receiving site.

Every referrer's contribution attributed, no spreadsheets
Each campaign participant receives a unique referral URL that persists across social sharing, email forwarding, and direct linking. Conversions and actions are attributed to the specific referrer who drove them. The attribution dashboard shows each referrer's contribution: clicks, conversions, commission earned, and campaign entries, replacing manual spreadsheet tracking with a live, queryable record.

Campaigns drop into any client site with one script tag
Campaign widgets embed on any web page with a single script tag: opt-in pages, welcome pages, product pages, thank-you pages. The widget renders the configured campaign mechanics without requiring the host site to use a specific CMS or framework. Campaigns can also be shared as standalone pages hosted on custom domains with automatic SSL certification, so clients with no website can still run the campaign.

All client campaigns in one view, results export at close
All active campaigns (referral programs, sweepstakes, social contests, affiliate programs) are visible in one dashboard. Real-time analytics show conversion rates, referral chain depth, top performers, and channel breakdown per campaign. Agencies see aggregate performance across all client accounts; individual clients see only their own data. At campaign close, the platform generates a full results page and exports winner data for payout processing.

Engagement
How we worked together
- 01Weeks 1–2
Discovery and scoping
We map the problem before writing code. Two weeks of technical audit, stakeholder interviews, and prototype — so both teams align on scope and risk before sprint one.
- 02Ongoing
Two-week Agile sprints
Each sprint ends with working software, not a status update. You review a real build, request changes, and approve before we move forward. No surprises at handover.
- 03Ongoing
Daily async updates
Slack for daily progress, Asana for task visibility, weekly video calls for decisions. You have full visibility without needing to attend every meeting.
- 04Final
Handover and warranty
Full code handover with deployment runbooks and documentation. Thirty-day warranty period for production issues at no extra cost.
stack
Why we chose this stack
- 01Campaign performance data (referral events, click tracking, conversion attribution, affiliate activity) needed to update in real time across the dashboard. Hasura's auto-generated GraphQL API eliminated the need to write repetitive data-fetch endpoints for every campaign metric type.Hasura
- 02The business logic layer (campaign eligibility rules, unique URL generation, winner selection algorithms, affiliate commission calculation, and fraud pattern detection) required structured, testable service modules. NestJS's architecture kept each domain organized as the feature set expanded.NestJS
- 03Campaign landing pages needed fast server-side rendering so that a referral link shared on social media loaded instantly. A slow-loading campaign page kills the conversion the referral was meant to drive. Next.js served those pages from cache with ISR revalidation.Next.js
- 04The drag-and-drop campaign template editor required a rich client-side interaction model that server rendering cannot support. A dedicated React SPA for the admin gave us full control over the editor's real-time preview, component drag behavior, and the embeddable widget output generation.React
Common questions about GrowViral
GrowViral supports four campaign types from the same platform: referral programs (existing users earn rewards for bringing new signups or customers), sweepstakes (entries awarded for specific actions with a random winner at close), social contests (entries earned by sharing on social platforms with optional leaderboard ranking), and affiliate programs (external partners earn commission on attributed conversions). Each campaign type uses the same template editor, attribution infrastructure, and reporting dashboard. A single agency can run all four types for different clients without switching tools.
Each participant's referral URL carries a persistent tracking parameter that survives social platform sharing, email forwarding, and direct link copying in most scenarios. For cases where platforms strip query parameters (some social media platforms cache and redirect URLs), GrowViral uses a server-side redirect that reconstructs attribution from the original registration. The system also monitors for unusual patterns (the same referral link used from many distinct IP addresses in a short window) and flags those for review rather than crediting them automatically.
Yes. GrowViral was designed as a white-label platform from the start. Agencies can configure their own domain, branding, and client subdomain structure. Each client account operates independently within the agency's instance: clients see their own campaigns and data, not other clients' information. Campaign templates can be styled to match each client's brand without affecting the platform's underlying mechanics. The agency manages billing, onboarding, and support relationships directly; their clients interact only with the agency-branded interface.
Integrations cover the main categories marketing teams use: email marketing platforms (for syncing campaign subscribers directly into email sequences), CRM systems (for attribution data to appear in deal records), analytics tools (for campaign event data to flow into existing reporting), and social platforms (for share-trigger tracking). Integrations are configured per campaign from the dashboard without writing API code. For tools without a native connector, a webhook layer sends campaign events to any endpoint in real time.
We delivered GrowViral (drag-and-drop campaign editor, embeddable widget generation, unique URL tracking, four campaign type mechanics, affiliate commission management, automated winner selection, 12+ integrations, and a unified analytics dashboard) in 14 weeks. The most complex pieces were the attribution layer (reliable tracking across platforms) and the template editor's output quality (clean embeddable HTML). A platform supporting only one campaign type with basic tracking would be faster. Contact us to scope based on your campaign mechanics, integration requirements, and white-label needs.
Related work
More work like this
AI phone agents automate global feedback loops through voice interviews
We transformed a text-based AI interview platform into a voice-first system that conducts automated phone interviews globally, eliminating user friction and delivering richer insights through natural conversations.
Read case study

An AI OCR loyalty platform drove 1,000+ sign-ups for a major supermarket chain
We built an AI loyalty platform for Musgrave's SuperValu and Centra that automates receipt validation with 99.9% accuracy, acquiring 1,062 users in 4 weeks.
Read case study
LoyaltyPass delivers wallet-native loyalty cards with 60% higher enrollment than app-based programs
LoyaltyPass runs loyalty programs inside Apple Wallet and Google Wallet. Customers earn and redeem without a separate app download, and businesses get real engagement data without the friction of a native app.
Read case study







